使用 Get-WmiObject 命令并查询 Win32_Process 类来获取svchost进程的用户名, 过滤出非"local service","system","network service" 的进程列表,以PID, processname,username字段显示。
时间: 2023-12-12 22:05:05 浏览: 329
可以使用以下命令:
```
Get-WmiObject -Class Win32_Process | Where-Object {($_.GetOwner().User -ne "SYSTEM") -and ($_.GetOwner().User -ne "LOCAL SERVICE") -and ($_.GetOwner().User -ne "NETWORK SERVICE")} | Select-Object ProcessId, Name, @{n='UserName';e={$_.GetOwner().User}}
```
这个命令会列出所有非"local service","system","network service" 的进程的 PID、进程名和用户名。
相关问题
使用 Get-WmiObject 命令列出所有用户名非"local service","system","network service" 的svchost进程列表。
可以使用以下命令来列出所有用户名非"local service","system","network service" 的svchost进程列表:
```
Get-WmiObject -Class Win32_Process -Filter "Name='svchost.exe'" | Where-Object {$_.GetOwner().User -notmatch "^(local service|system|network service)$"} | Select-Object Name, ProcessId, @{Name="Owner";Expression={$_.GetOwner().User}}
```
该命令会使用 WMI 获取 Win32_Process 类的实例,并筛选出进程名为 svchost.exe 的实例。然后使用 Where-Object 过滤出用户名不是 "local service","system","network service" 的实例,并使用 Select-Object 选择进程名、进程 ID 和所有者用户名。
使用 Get-WmiObject 命令列出所有非"local service","system","network service" 的进程的 PID、进程名和用户名,然后过滤出svchost列表。
可以使用以下命令来实现:
```powershell
Get-WmiObject -Class Win32_Process | Where-Object {($_.GetOwner().User -ne "LOCAL SERVICE") -and ($_.GetOwner().User -ne "SYSTEM") -and ($_.GetOwner().User -ne "NETWORK SERVICE")} | Select-Object ProcessId, Name, @{Name="UserName";Expression={$_.GetOwner().User}} | Where-Object Name -eq "svchost.exe"
```
这个命令首先使用 `Get-WmiObject` 获取所有进程的信息,然后使用 `Where-Object` 过滤掉用户名为 "LOCAL SERVICE"、"SYSTEM" 和 "NETWORK SERVICE" 的进程,接着使用 `Select-Object` 选择 PID、进程名和用户名,并使用一个计算表达式来获取用户名。最后使用另一个 `Where-Object` 来过滤出进程名为 "svchost.exe" 的进程。
阅读全文