You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过PowerShell的Get-Process cmdlet正确获取本地计算机上所有正在运行的进程?

如何通过PowerShell的Get-Process cmdlet正确获取本地计算机上所有正在运行的进程?

嗨,我来帮你理清楚这个问题!你遇到的情况其实挺常见的,核心原因大多是任务管理器里的显示名称和PowerShell中Get-Process默认返回的进程名不是一回事

先给你拆解下问题:任务管理器里看到的“nVision Axence Agent”是进程的显示名称(DisplayName),而Get-Process默认输出里的Name列,是进程实际可执行文件的名称(去掉了.exe后缀)——比如这个Axence Agent的进程名可能是AxenceAgent或者nVisionService这类,和显示名称完全不一样,所以你直接搜Axence自然找不到对应的进程。

那该怎么解决呢?给你几个实用的方法:

  • 第一步:匹配显示名称和进程名
    先运行这个命令,把所有进程的ID、进程名和显示名称都列出来,方便你对应查找:

    Get-Process | Select-Object Id, Name, DisplayName | Sort-Object DisplayName
    

    在输出里找到“nVision Axence Agent”对应的Name值,之后用Get-Process -Name 你找到的Name值就能精准定位到这个进程了。

  • 直接通过显示名称筛选
    如果你不想先查进程名,也可以直接用Where-Object匹配显示名称里的关键词,比如:

    Get-Process | Where-Object { $_.DisplayName -like "*Axence*" }
    

    这样就能直接捞出所有显示名称包含“Axence”的进程。

  • 检查PowerShell的位数(针对64位系统)
    如果你用的是64位Windows,但不小心启动了32位的PowerShell(路径一般是C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe),那它可能无法看到部分64位进程。这时候你需要切换到64位PowerShell(默认从开始菜单启动的就是,路径为C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe),再运行Get-Process就能看到完整的进程列表了。

  • 确认管理员权限
    虽然你说已经用了管理员权限,但有时候UAC的提示可能没真正让你获得最高权限。建议右键点击PowerShell图标,选择“以管理员身份运行”,再重试命令,确保你有足够权限访问系统级的进程。

备注:内容来源于stack exchange,提问作者dima hmel

火山引擎 最新活动