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

本地保存的脚本运行invoke-command出现Access Denied错误咨询

问题解决建议

根因说明

你遇到的是PowerShell ISE与普通PowerShell窗口的运行上下文差异、以及WinRM本地环回链路的UAC权限过滤共同导致的报错:Invoke-Command访问localhost本质走WinRM远程协议而非本地直接执行,会触发Windows默认的UAC远程令牌过滤规则,哪怕你拥有域管理员权限,未做特殊配置时也会被拦截。

具体排查与解决步骤

  • 优先确认ISE运行身份
    打开PowerShell ISE时必须右键选择以管理员身份运行,Windows默认启动程序时会使用普通用户权限上下文,哪怕你的账号属于Domain Admins组,未提升权限时也无法通过WinRM本地链路获得管理员权限。可分别在普通PowerShell和ISE中执行whoami /groups,对比返回的权限组列表中是否标注强制组\启用的组属性来确认权限上下文是否一致。
  • 关闭UAC远程令牌过滤
    该规则默认会拦截所有远程访问的本地管理员权限,哪怕是本地环回链路也会生效,执行以下命令修改注册表:
    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
    
    修改后重启WinRM服务生效:
    Restart-Service WinRM -Force
    
  • 配置本地环回信任
    将localhost加入WinRM客户端信任列表,避免NTLM认证拦截:
    Set-Item WSMan:\localhost\Client\TrustedHosts -Value "localhost","DP01" -Concatenate
    
  • 验证PowerShell架构一致性
    如果你使用的是64位服务器,需确认ISE和正常运行的普通PowerShell架构一致,SCCM相关的客户端操作模块存在架构兼容限制:
    • 64位ISE路径:C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe
    • 32位ISE路径:C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell_ise.exe
  • 显式指定认证参数
    执行Invoke-Command时显式指定凭据和Kerberos认证,避免自动认证逻辑触发权限限制:
    Invoke-Command -ComputerName DP01 -ScriptBlock { # 你的执行逻辑 } -Credential (Get-Credential 你的域名\你的管理员账号) -Authentication Kerberos
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:30:03