PowerShell 远程身份验证

PowerShell 远程身份验证

user当我以与服务器相同的身份登录时,我可以Enter-PSSession使用:

> Enter-PSSession -ConnectionURI http://xxx.xx.xxx.xx:5985

但是,当我以不同的用户身份登录(在同一台机器上)并尝试Enter-PSSession使用-Credential参数时:

> Enter-PSSession -ConnectionUri http://xxx.xx.xxx.xx:5985 -Credential user

输入密码后,我得到:

Enter-PSSession : Connecting to remote server xxx.xx.xxx.xx failed with the
following error message : Access is denied. For more information, see the
about_Remote_Troubleshooting Help topic.
At line:1 char:1
+ Enter-PSSession -ConnectionUri http://xxx.xx.xxx.xx:5985 -Credential user
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument: (http://xxx.xx.xxx.xx:5985/:Uri
  ) [Enter-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : CreateRemoteRunspaceFailed

答案1

(1)如果您使用默认的 WinRM 配置,则可以跳过 http:// 内容,而是:

输入-PSSession-ConnectionURIhttp://xxx.xx.xxx.xx:5985

输入以下内容:

输入-PSSession xxx.xx.xx.xx

如果系统有 DNS 条目,您也可以使用服务器的 DNS 名称而不是其 IP。

(2) 默认情况下,只有管理员组的成员才允许连接到 PS 远程端点。您确定您的帐户是该组的成员吗?

(3) 我在某处读到 Enter-PSSession 的 -Credential 参数已损坏。解决方法是预先创建凭据对象:

$cred = 获取凭证

输入 PSSession XXX.XX.XX.XX -credential $cred

请尝试并报告是否有效。

(4)如果您尝试连接到不属于您域的计算机,则需要将其添加到您尝试启动远程会话的计算机上的受信任计算机列表中:

winrm s winrm/config/client'@{TrustedHosts="RemoteComputerName"}'

并且您需要明确告诉 enter-pssession 将使用远程计算机上的哪个用户帐户:

$Cred = Get-Credential“远程计算机名称\用户名”

输入-PSSession XXX.XX.XX.XX -Credential $Cred

相关内容