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

为何通过PowerShell远程会话运行AccessChk检查系统权限时遭拒绝?

使用SysInternals AccessChk远程查询用户权限时遇到拒绝访问错误

问题场景

  • 本地以管理员身份登录,将SysInternals工具复制到本地LocalAppData文件夹后,运行以下PowerShell代码可正常获取特定用户的系统安全权限:
[System.IO.FileInfo]$LocalApplicationDataFolder = [System.Environment]::GetFolderPath(
  [System.Environment+SpecialFolder]::LocalApplicationData
)

& "$LocalApplicationDataFolder\SysInternals\accesschk64.exe" /accepteula -nobanner -u domain\plainuser -a *
  • 执行Enter-PsSession -ComputerName host1进入PowerShell远程会话后,运行相同代码,收到错误提示:

枚举账户权限时出错:
拒绝访问。

解决思路及方案

1. 修复远程会话权限受限问题

PowerShell远程默认使用受UAC限制的管理员令牌,即使以管理员身份连接,也无法获取枚举账户权限所需的完整权限。可尝试:

  • 连接远程会话时启用网络访问权限:
    Enter-PSSession -ComputerName host1 -EnableNetworkAccess
    
  • 在远程会话中以高权限启动AccessChk:
    Start-Process -FilePath "$LocalApplicationDataFolder\SysInternals\accesschk64.exe" `
      -ArgumentList "/accepteula -nobanner -u domain\plainuser -a *" `
      -NoNewWindow -Wait -PassThru
    

2. 确认工具已部署到远程主机

进入远程会话后,LocalApplicationData指向的是远程主机的对应文件夹,若仅将工具复制到本地,远程主机上不存在该工具可能引发权限相关隐式错误。先将工具复制到远程主机:

# 本地执行,复制工具到远程主机指定路径
$remoteUser = (Get-WmiObject -Class Win32_ComputerSystem -ComputerName host1).UserName
$remotePath = "\\host1\C$\Users\$remoteUser\AppData\Local\SysInternals\"
New-Item -Path $remotePath -ItemType Directory -Force
Copy-Item -Path "$env:LOCALAPPDATA\SysInternals\accesschk64.exe" -Destination $remotePath

3. 检查远程主机安全策略

确认远程主机的本地安全策略中,你的账户拥有以下权限:

  • 从网络访问此计算机:确保账户在该权限列表内
  • 管理审核和安全日志:枚举账户权限可能需要此权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:30:16