Это моя команда powershell: powershell -noprofile -NonInteractive -Command "(gwmi win32_process | select ProcessID,ParentProcessID,@{e={$_.GetOwner().User}}, CommandLine) | ft -AutoSize"
Когда я запускаю его, я получаю следующий вывод
C:\Users\Administrator>powershell -noprofile -NonInteractive -Command "(gwmi win32_process | select ProcessID,ParentProcessID,@{e={$_.GetOwner().User}}, CommandLine) | ft -AutoSize"
ProcessID ParentProcessID $_.GetOwner().User CommandLine
--------- --------------- ------------------ -----------
0 0
4 0
236 4 SYSTEM
332 320 SYSTEM
384 320 SYSTEM wininit.exe
392 376 SYSTEM
420 376 SYSTEM winlogon.exe
476 384 SYSTEM
484 384 SYSTEM C:\Windows\system32\lsass.exe
544 476 SYSTEM C:\Windows\system32\svchost.exe -k DcomLaunch
584 476 NETWORK SERVICE C:\Windows\system32\svchost.exe -k RPCSS
680 420 DWM-1 "dwm.exe"
...
1256 1176 Administrator "C:\cygwin64\bin\mintty.exe" -i /Cygwin-Terminal.ico -
3052 3000 Administrator \??\C:\Windows\system32\conhost.exe 0x4
2760 2856 Administrator "C:\cygwin64\bin\bash.exe"
2104 1176 Administrator "C:\Windows\system32\cmd.exe"
1504 2104 Administrator \??\C:\Windows\system32\conhost.exe 0x4
2440 1108 Administrator "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
1268 2440 Administrator "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --type=gpu-process --channel="2440.0.15...
2472 2440 Administrator "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --type=renderer --enable-deferred-image...
1496 2440 Administrator "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --type=renderer --enable-deferred-image...
2640 2840 user001 C:\Windows\system32\cmd.exe /c c:\windows\temp\tmpyaoyv0.bat
1040 2640 user001 \??\C:\Windows\system32\conhost.exe 0x4
Я хочу иметь возможность фильтровать для процесса user001
Если я использую where-object, я получаю эту ошибку:
+ ... where-object {$.e -eq user001} | ft -AutoSize
+ ~~~
+ CategoryInfo : ObjectNotFound: ($.e:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Если я использую где, я получил это:
}}, CommandLine) | where $_.GetOwner().User -eq 'user001' | ft -AutoSize"
You cannot call a method on a null-valued expression.
At line:1 char:1
+ (gwmi win32_process | select ProcessID,ParentProcessID,@{e={$_.GetOwner().User}} ..
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Итак, как правильно фильтровать $_.GetOwner().User
?