【问题标题】:Invalid WMI query无效的 WMI 查询
【发布时间】:2016-02-01 15:40:26
【问题描述】:

我有一个输入函数的服务器列表。我希望查询每台机器并获取所有文件和文件夹的完整列表。我想将文件写入我的本地机器,文件名将是目标 ip ($computer) 并将 $userdata 中的所有数据附加到文件中。

我不断收到以下错误:

Get-WmiObject : 无效查询

foreach ($computer in $Server_List)
{
    $userdata = Get-WmiObject -Credential -Computer $computer -Query "SELECT * from CIM_Data File WHERE Drive = 'C:'"
    echo "$computer" | Out-File -FilePath $File_path + $computer +".txt" -Append $userdata
}

【问题讨论】:

    标签: powershell wmi-query


    【解决方案1】:

    您的查询中有一个虚假的空格。类名是CIM_DataFile,而不是CIM_Data File

    这个:

    "SELECT * from CIM_Data File WHERE Drive = 'C:'"
                           ^
    

    需要看起来像这样:

    "SELECT * from CIM_DataFile WHERE Drive = 'C:'"
    

    【讨论】:

    • 您可能希望像这样构建文件路径:$outputfile = Join-Path $File_path "$computer.txt",而不是在 Out-File 语句中进行字符串连接。您可能还希望将查询结果导出为 CSV,而不是使用 Out-File
    • 好的,谢谢你的建议,所以Export-CSV $outputfile = Join-Path $File_path "$computer.txt" ?
    • 没有。 $outputfile = Join-Path ...; Get-WmiObject ... | Export-Csv $outputfile -Append ...
    • 如果我可以过滤查询中的多个扩展名,那就太好了,但是,我对 AND Extension = 'txt' OR Extension = 'doc' 等没有任何运气。所以最后去了我现在正在使用的路线,我正在寻找过滤 csv 文件后收集
    • 请不要移动目标。如果您有新问题:发布新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多