You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows Server 2019中允许非管理员用户运行Get-CimInstance命令

非管理员执行Get-CimInstance访问Win32_Process权限错误解决及子进程树获取方案

原命令权限修复操作步骤

你可以通过修改WMI命名空间权限给非管理员用户授权,无需赋予管理员全权限,操作路径如下:

  • 登录目标Windows Server 2019实例,按下Win+R组合键,输入wmimgmt.msc后回车打开WMI管理控制台
  • 右键点击左侧导航栏的「WMI控制(本地)」,选择属性,切换到安全选项卡
  • 展开节点列表找到root\cimv2,选中该节点后点击下方的安全按钮
  • 在弹出的权限配置窗口中,点击添加,输入需要授权的非管理员用户或对应用户组,点击确认
  • 给刚添加的主体勾选以下权限的允许复选框:
    • 启用账户
    • 远程启用
    • 读取权限
  • 点击高级按钮,选中刚添加的权限主体,点击编辑
  • 将「应用于」选项修改为「这个命名空间和子命名空间」,依次确认保存所有打开的配置窗口
  • 以管理员身份运行PowerShell执行以下命令重启WMI服务使配置生效:
    Restart-Service winmgmt -Force
    配置完成后非管理员用户即可正常执行原Get-CimInstance Win32_Process命令。

子进程树获取替代方案

如果你不想修改WMI权限,可使用以下原生PowerShell脚本实现指定PID子进程树查询,无需额外权限即可获取当前用户可见的进程树:

function Get-ProcessChildTree {
    param(
        [Parameter(Mandatory = $true)]
        [int]$TargetPID
    )
    # 优先用Get-Process获取基础进程信息
    $allProcess = Get-Process | Select-Object Id, Name, @{
        Name = "ParentProcessId"
        Expression = {
            try {
                $_.Parent.Id
            }
            catch {
                $null
            }
        }
    }
    $childProcess = $allProcess | Where-Object { $_.ParentProcessId -eq $TargetPID }
    foreach ($proc in $childProcess) {
        $proc
        Get-ProcessChildTree -TargetPID $proc.Id
    }
}

# 调用示例:查询PID为1024的子进程树
Get-ProcessChildTree -TargetPID 1024

如果需要查询系统所有进程的子树,还是需要先完成上文中的WMI权限配置。

内容的提问来源于stack exchange,提问作者Kevin Leutzinger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 21:57:00