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

如何使用PowerShell检查进程是否以提升权限运行?

如何用PowerShell判断进程是否以提升权限运行

嘿,我来帮你搞定这个问题!你需要判断进程是否以管理员权限运行,尤其是针对用-verb runas启动的控制面板任务(比如appwiz.cpl)对吧?首先得说明:你之前用Get-WmiObject查看进程路径的方法没法判断权限状态,得通过检查进程的安全令牌角色来实现。

核心原理

判断进程是否提升权限,本质是检查该进程的Windows身份令牌是否属于管理员内置角色。我们可以借助.NET的WindowsIdentity和WindowsPrincipal类来实现,这是最可靠的方式。

针对你的场景的解决方案

因为appwiz.cpl是控制面板项,它本身不是独立进程,而是由rundll32.exe启动的。所以我们需要检查对应的rundll32.exe进程是否处于提升状态:

# 目标进程名称(appwiz.cpl由rundll32.exe承载)
$targetProcess = "rundll32.exe"

# 获取所有同名进程
$processes = Get-CimInstance Win32_Process -Filter "Name='$targetProcess'"

foreach ($proc in $processes) {
    # 检查进程是否以管理员权限运行
    try {
        $processIdentity = [System.Security.Principal.WindowsIdentity]::GetCurrent($proc.ProcessId)
        $processPrincipal = New-Object System.Security.Principal.WindowsPrincipal($processIdentity)
        $isElevated = $processPrincipal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)

        # 输出结果
        [PSCustomObject]@{
            ProcessName = $proc.Name
            ProcessId   = $proc.ProcessId
            IsElevated  = $isElevated
            Owner       = $proc.GetOwner().User
        }
    }
    catch {
        Write-Warning "无法检查进程ID $($proc.ProcessId):$_"
    }
}

如果你只是想检查当前脚本是否提升权限

如果你的需求是确认自己的PowerShell脚本是否以管理员身份运行,可以用更简洁的代码:

$currentPrincipal = New-Object System.Security.Principal.WindowsPrincipal([System.Security.Principal.WindowsIdentity]::GetCurrent())
$isCurrentElevated = $currentPrincipal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)

if ($isCurrentElevated) {
    Write-Host "当前脚本已以管理员权限运行" -ForegroundColor Green
}
else {
    Write-Host "当前脚本未提升权限" -ForegroundColor Red
}

补充说明

  1. 当你用Start-Process appwiz.cpl -Verb RunAs启动时,系统会弹出UAC提示(如果UAC未禁用),确认后对应的rundll32.exe进程才会以管理员权限运行。
  2. 推荐用Get-CimInstance替代Get-WmiObject,因为WMI cmdlets已经被标记为过时,CIM是更现代的替代品。

内容的提问来源于stack exchange,提问作者Sumeet Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:51:06