我试图使用Powershell的Enter-PSSession远程进入另一个桌面以自动运行脚本,但是,我什至无法连接到远程桌面。
Enter-PSSession -Computername 172.16.164.14 -credential $cred
但是它说访问被拒绝。这是错误消息:
Enter-PSSession:连接到远程服务器172.16.164.14失败,并显示以下错误消息:访问被拒绝。有关更多信息,请参见about_Remote_Troubleshooting帮助主题。
我也尝试使用:
Invoke-Command -ComputerName 7450-56Z0BP2 -FilePath -C:\user_automation\automate.vbs -credential $cred
其中7450-56Z0BP2是主机名,但它给我的错误是:
[7450-56Z0BP2]连接到远程服务器7450-56Z0BP2失败,并显示以下错误消息:WinRM无法处理该请求。
我不确定导致我无法访问远程计算机的原因是什么。我可以通过RDP访问它,但是无法使用Powershell脚本登录。
答案 0 :(得分:1)
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
答案 1 :(得分:0)
这是权限问题,而不是Powershell远程处理问题。
您的错误是“访问被拒绝”(您的示例1),而不是“无法连接”。
本质上,与使用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
组或本地管理员组的成员来授予的。