【发布时间】:2018-04-10 00:55:54
【问题描述】:
我正在尝试查找已登录用户的所有 .PST 文件。但是,我似乎无法添加到“驱动器”的路径。我想搜索 C:\users\ + $env:UserName
下的所有文件此命令似乎可以找到 C:\ 上的所有 PST 文件
$Res = Get-CimInstance CIM_DataFile -filter "Drive='c:' AND extension='pst'" -OutVariable m | Select-Object -Property Name
但是,当我将其更改为:
$Res = Get-CimInstance CIM_DataFile -filter "Drive='C:\users\' + $env:UserName AND extension='pst'" -OutVariable m | Select-Object -Property Name
甚至只是:
$Res = Get-CimInstance CIM_DataFile -filter "Drive='C:\users\' AND extension='pst'" -OutVariable m | Select-Object -Property Name
我收到以下错误:
Get-CimInstance : 无效查询 在 C:\Users\mntle2\Documents\PSTMig.ps1:2 char:8 + $Res = Get-CimInstance CIM_DataFile -filter "Drive='c:\users\' AND ex ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Get-CimInstance], CimException + FullyQualifiedErrorId : HRESULT 0x80041017,Microsoft.Management.Infrastructure.CimCmdlets.GetCimInstanceCommand
有人可以帮我解决这个问题吗?
【问题讨论】:
-
我对此进行了更多研究:CIM 对于 subtree 搜索效率低下,因此最好使用
Get-ChildItem -Recurse解决方案。此外,CIM 方法在来自1703更新通道的至少一个 Windows 10 版本上损坏。
标签: powershell powershell-4.0 wmi-query wql cim