【发布时间】:2018-08-16 20:26:12
【问题描述】:
我希望能够在远程 Windows 桌面上查询特定文件,但是我有以下限制:
- 我无法假设 Powershell 远程处理已启用。
- 我不知道文件的确切位置
- 时间是一个因素
这导致我进行以下查询:
SELECT * FROM CIM_DataFile WHERE Drive ='C:'AND FileName='Fake' AND Extension='dll'
与 powershell 中的 Get-childitem 之类的东西相比,这需要相对较长的时间,它允许我按文件夹和子文件夹优化搜索。
我总是可以这样做:
SELECT * FROM CIM_DataFile WHERE Drive ='C:'AND FileName='Fake' AND Extension='dll' AND Path like '\\Windows\\System32\\%' 但是这个查询增加了遥控器的负载,实际上并没有减少任何时间。
有什么方法可以使用 WMI 进行某种类型的递归搜索?
【问题讨论】:
-
Get-CimInstance Win32_Directory -Filter "Name = 'C:\\Windows\\System32'" |Get-CimAssociatedInstance -Association Win32_Subdirectory -
你没有说什么操作系统和 PS 版本(源和目标)。有些 cmdlet 可以在不启用 PSRemoting 的情况下使用。 technet.microsoft.com/en-us/library/ff699046.aspx 或 Mathias 吹捧的路线。
标签: powershell wmi wmi-query