我正在使用此powershell命令来获取特定的用户个人资料
“Get-WmiObject -Class Win32_UserProfile | Where-Object {$ _.LocalPath -eq'C:\ Users \ Pela'}”
但是当我通过调用powershell在cmd中使用这个相同的命令时,我得到了 'Where-Object未被识别为内部或外部命令,可操作程序或批处理文件'
我在cmd中运行的命令如下: - “powershell Get-WmiObject -Class Win32_UserProfile | Where-Object {$ _.LocalPath -eq'C:\ Users \ Pela'}”
我只需要从cmd运行此命令,我没有任何其他选项。 所以请给我一个“Where-Object”的替代品
答案 0 :(得分:1)
powershell Get-WmiObject -Class Win32_UserProfile | Where-Object {$_.LocalPath -eq 'C:\Users\Pela
你不需要替代品。上面的命令失败,因为管道|
由cmd
shell解释,而不是由PowerShell
解释。
如果escape管道^|
,则管道由PowerShell命令按预期完成:
powershell Get-WmiObject -Class Win32_UserProfile ^| Where-Object {$_.LocalPath -eq 'C:\Users\Pela
示例:
F:\test>powershell Get-WmiObject -Class Win32_UserProfile ^| Where-Object {$_.LocalPath -eq 'C:\Users\DavidPostill'}
__GENUS : 2
__CLASS : Win32_UserProfile
__SUPERCLASS :
__DYNASTY : Win32_UserProfile
__RELPATH : Win32_UserProfile.SID="S-1-5-21-1699878757-1063190524-3119395976-1000"
__PROPERTY_COUNT : 12
__DERIVATION : {}
__SERVER : HAL
__NAMESPACE : root\cimv2
__PATH : \\HAL\root\cimv2:Win32_UserProfile.SID="S-1-5-21-1699878757-1063190524-3119395976-1000"
LastDownloadTime :
LastUploadTime :
LastUseTime : 20160822200129.697000+000
Loaded : True
LocalPath : C:\Users\DavidPostill
RefCount : 146
RoamingConfigured : False
RoamingPath :
RoamingPreference :
SID : S-1-5-21-1699878757-1063190524-3119395976-1000
Special : False
Status : 0
PSComputerName : HAL