为什么域管理员可以在本地运行 powershell cmd,但使用同一个帐户通过 WinRM 连接,命令返回 UnauthorizedAccessException?

gro*_*wse 5 remote-access powershell winrm

我正在尝试远程管理 Windows 7 机器。我已启用 WinRM 并可用于Enter-PsSession连接到远程计算机。

但是,我注意到本地运行特定命令与远程运行它之间的区别,即使我使用相同的用户帐户(这是域管理员)进行连接。

远程会话的输出是:

> enter-pssession -computername  REMOTEHOST
[REMOTEHOST} > Get-WURebootStatus
New-Object : Creating an instance of the COM component with CLSID {C01B9BA0-BEA7-41BA-B604-D0A36F469133} from the IClassFactory failed due to the following error: 80070005.
At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\pswindowsupdate\Get-WURebootStatus.ps1:52 char:33
+             $objSystemInfo= New-Object <<<<  -ComObject "Microsoft.Update.SystemInfo"
+ CategoryInfo          : NotSpecified: (:) [New-Object], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.NewObjectCommand
Run Code Online (Sandbox Code Playgroud)

ExecutionPolicy 设置为“无限制”,当我在远程机器上使用本地 powershell 会话时,此命令非常有效。

远程 powershell 会话是否有不同的安全上下文?

编辑:它失败的具体线路是这个:

$objSystemInfo= New-Object -ComObject "Microsoft.Update.SystemInfo"
Run Code Online (Sandbox Code Playgroud)

小智 4

Windows Update API 很特殊。它通过检查您的令牌是否标记为远程来专门检查并禁止远程访问。我不知道为什么要这样写。

我最终创建了一个计划任务并调用其中的 Windows 更新 API - 相当麻烦。