2

我需要帮助创建一个查找正在运行的进程的 powershell 脚本,如果它不存在则启动它。现在,我拥有的 VB 脚本会查找进程并启动,但由于 Windows 7 快速用户切换,该进程可以在任何用户会话中运行,它使脚本认为它在当前用户会话中运行。非常感谢任何帮助或指示!

4

1 回答 1

3

比较简单的代码:

if (
    Get-WmiObject -Class Win32_Process -Filter "Name = 'explorer.exe'" | 
        where { 
            $_.GetOwner().User -eq $env:USERNAME 
        }
    ) { 
    "explorer is running for $env:username" 
}

这应该忽略为当前用户以外的任何其他用户运行的此进程。只需将 explorer.exe 替换为实际进程并更改逻辑以满足您的需要。

于 2013-01-15T19:16:42.220 回答