使用命令 Get-Process svchost.exe 提示:找不到名为“svchost.exe”的进程
时间: 2024-01-16 09:01:46 浏览: 39
这个问题可能是由于权限不足导致的。请使用管理员身份运行 PowerShell,并再次尝试使用该命令。
如果问题仍然存在,可能是因为 svchost.exe 进程被隐藏了。你可以尝试使用任务管理器或其他进程管理工具查看是否存在 svchost.exe 进程。如果仍然找不到,请运行杀毒软件扫描计算机以查找可能存在的恶意软件。
相关问题
使用 Get-WmiObject 命令列出所有用户名非"local service","system","network service" 的svchost进程列表,然后获取该列表中一个随机PID.
可以使用以下 PowerShell 命令来实现:
```powershell
$svchosts = Get-WmiObject -Class Win32_Process -Filter "Name='svchost.exe'" | Where-Object {$_.GetOwner().User -notlike "LocalService" -and $_.GetOwner().User -notlike "System" -and $_.GetOwner().User -notlike "NetworkService"}
$randomPID = Get-Random -InputObject $svchosts | Select-Object -ExpandProperty ProcessId
```
首先,我们使用 `Get-WmiObject` 命令获取所有名为 `svchost.exe` 的进程,然后使用 `Where-Object` 过滤掉用户名为 "LocalService"、"System" 和 "NetworkService" 的进程。筛选后的进程列表存储在 `$svchosts` 变量中。
接着,我们使用 `Get-Random` 命令从 `$svchosts` 中随机选择一个进程,并从中提取其 PID,存储在 `$randomPID` 变量中。最后,我们可以输出 `$randomPID` 变量的值,即可得到一个随机的 svchost 进程的 PID。
使用 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" 的进程。