Enter-PSSession 无法远程进入远程桌面

Enter-PSSession unable to remote into a remote desktop

我正在尝试使用 Powershell 的 Enter-PSSession 自动远程进入另一个桌面 运行 一个脚本,但是,我什至无法连接到远程桌面。

Enter-PSSession -Computername 172.16.164.14 -credential $cred

但是它说访问被拒绝。这是错误消息:

Enter-PSSession : Connecting to remote server 172.16.164.14 failed with the following error message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.

我也试过使用:

Invoke-Command -ComputerName 7450-56Z0BP2 -FilePath -C:\user_automation\automate.vbs -credential $cred

其中 7450-56Z0BP2 是主机名,但它给我的错误是:

[7450-56Z0BP2] Connecting to remote server 7450-56Z0BP2 failed with the following error message : WinRM cannot process the request.

我不确定是什么原因导致我无法访问远程计算机。我可以通过 RDP 访问它,但我无法使用 powershell 脚本登录。

这是权限问题,不是powershell远程处理问题。 您的错误是 "access denied"(您的示例 1),而不是 "could not connect".
本质上,能够使用远程桌面登录需要与能够使用 psremoting 不同的权限。 以下是您如何在目标服务器上检查哪些安全组成员身份将允许您使用 psremoting:

PS C:> (Get-PSSessionConfiguration -Name Microsoft.PowerShell).Permission
NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllo
wed

虽然远程桌面是通过成为 Remote Desktop Users 组或本地管理员组的成员授予的。

PowerShell Remoting 不是远程桌面,它们的设置不同,使用不同的组件并且没有任何共同点。

权限在两者之间没有联系,仅仅因为你可以 RDP 到计算机并不意味着你有 PSRemoting 权限。

您使用 PSRemoting,您需要在远程计算机上 运行 Enable-PSRemoting。这会设置所有要求:设置、防火墙规则和服务。此命令需要 运行 作为对远程计算机具有管理员权限的用户。

设置完成后,您将能够使用 Enter-PSSession / Invoke-Command

进行连接

您的 运行 远程 vbscript 代码将无法运行,因为 FilePath 参数用于 PowerShell 脚本。要远程 运行 一个 vbscript,您需要调用 cscript:

Invoke-Command -ComputerName '7450-56Z0BP2' -ScriptBlock { cscript.exe "C:\user_automation\automate.vbs" } -Credential $cred