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

PowerShell以管理员身份通过PSSession运行命令权限不足问题

问题根因

该问题由WinRM远程会话的默认UAC权限过滤机制导致:即使用户传入的凭据属于管理员组,远程PowerShell会话默认也会运行在标准用户权限上下文,不会自动触发UAC提升;而RDP属于交互式登录,会触发管理员批准模式的权限提升,因此可以正常执行Invoke-AdminCommand这类特权命令。


解决方案

方法1:创建会话时显式请求权限提升(推荐,无需修改系统配置)

PowerShell 5.1及以上版本支持-RunAsAdministrator参数,可要求WinRM在高权限上下文启动远程会话,修改后的脚本如下:

$username = "domain\adminUser"
$password = "**********" | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList $username,$password
# 新增-RunAsAdministrator参数触发远程权限提升
$s = New-PSSession -Credential $cred -RunAsAdministrator
$sc = {
    whoami
    # 可选:输出当前会话权限状态,返回True表示已获得管理员权限
    [Security.Principal.WindowsPrincipal]::new([Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
    Invoke-AdminCommand -Register -Verbose
}
Invoke-Command -Session $s -Scriptblock $sc
Remove-PSSession $s

方法2:关闭远程管理员UAC限制(方法1不生效时使用)

如果目标设备开启了远程管理员批准模式强制策略,可通过本地组策略修改配置:

  • 登录目标Windows Server 2019设备,运行gpedit.msc打开本地组策略编辑器
  • 定位到路径:计算机配置 > Windows 设置 > 安全设置 > 本地策略 > 安全选项
  • 找到策略「用户账户控制: 对位于本地管理员组中的帐户的远程登录强制实施管理员批准模式」,设置为已禁用
  • 执行命令Restart-Service WinRM -Force重启WinRM服务生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:27:03