未安装RSAT的两台域内PC执行Get-ADUser命令结果不同的原因咨询
这确实是个挺让人困惑的问题,我来帮你梳理几个可能的原因,你可以逐一排查验证:
其中一台PC其实已隐式安装了AD PowerShell模块:有时候RSAT组件可能通过Windows自动更新、域组策略部署,甚至某些第三方软件安装时悄悄装上了,只是你没留意到。你可以在两台PC上分别运行以下命令来确认:
Get-WindowsCapability -Name RSAT* -Online | Where-Object State -eq Installed或者直接检查ActiveDirectory模块是否存在:
Get-Module -Name ActiveDirectory -ListAvailable如果其中一台返回了模块的相关信息,那说明它其实已经具备运行
Get-ADUser的条件,只是你误以为没安装RSAT。Windows版本或可选功能配置差异:不同版本的Windows对RSAT组件的分发方式不同,比如Windows 10 1809及以后、Windows 11的RSAT是拆分为独立的可选功能的。可能你在其中一台PC上曾经手动或自动添加了「Active Directory模块 for Windows PowerShell」这个单独的可选功能,但没安装完整的RSAT包,所以才会出现“没装RSAT却能运行命令”的情况。
AD模块被独立部署到系统中:有些场景下,AD PowerShell模块文件可能被单独复制到了其中一台PC的PowerShell模块路径(比如
C:\Program Files\WindowsPowerShell\Modules或用户个人模块目录),而不是通过官方RSAT安装包部署。这种情况下,系统里没有完整的RSAT组件,但核心的AD模块已经可以正常加载使用。本地权限或PowerShell运行环境差异:虽然是同一个AD域用户,但两台PC上的本地权限可能不同——比如其中一台你是以本地管理员身份登录运行PowerShell,能访问到系统级的模块文件;而另一台是普通用户权限,无法加载相关模块。你可以尝试在两台PC上都用管理员身份启动PowerShell,再测试
Get-ADUser命令看结果是否有变化。
备注:内容来源于stack exchange,提问作者Hand

