windows - 检查当前用户 session 中是否有进程正在运行

标签 windows powershell process windows-7-x64

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

最佳答案

相对简单的代码:

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

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

关于windows - 检查当前用户 session 中是否有进程正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14343018/

相关文章:

sql-server - 如果尚未安装,仅安装 PowerShell PackageProvider 和 Module

powershell - Add-AzureRmServiceFabricClusterCertificate 以错误 'Certificates cannot be added and removed at the same time.' 结束

powershell - 将文件列表复制到目录

c - fork() pipeline() dup2 无法与外部子进程通信

javascript - 如何使用javascript自动关闭网页?

c++ - C++ 中的对话框不接收某些击键

c# - 从 C# 中的进程读取环境变量

java - 从终端发送命令到 Java swing 应用程序

java - 如何从 Java 获取 Windows 10 上已安装应用程序的列表

c# - 移动和删除文件的密码确认?