错误:
New-PSSession : [{我的远程服务器的公共 IP}] 连接到远程服务器 {我的远程服务器的公共 IP} 失败并显示以下错误消息: 访问被拒绝。有关详细信息,请参阅 about_Remote_Troubleshooting 帮助主题。 在 C:\Scripts\Test.ps1:24 char:12 + $Session = New-PSSession -Computer $target -Authentication Credssp -C ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~ + CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException + FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed
“about_Remote_Troubleshooting”似乎是指我试图跟进的这篇文章,但没有运气。
我有一个脚本服务器(服务器 A),我试图通过不同的托管公司管理远程 DC。
免责声明:由于到目前为止我一直失败得很惨,我正在尝试将我的配置设置为尽可能开放(又名:暂时不安全),这样我就可以看到它工作,然后向后工作,收紧我的安全性 - 尽我所能,因为我首先要承担 CredSSP 的任务......而且,我在这方面太过分了,而且对 Powershell 非常陌生。考虑到这一点...
我在服务器 A 上完成的配置:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value * -Force
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB -Value 0 -Force
Enable-PSRemoting
Set-ExecutionPolicy Unrestricted
Enable-WSManCredSSP –Role Client –DelegateComputer *
我在服务器 B 上完成的配置:
Enable-PSRemoting
Enable-WSManCredSSP –Role Server
对于踢球,在两台机器上,我已经运行gpedit
并进入本地计算机策略 → 计算机配置 → 管理模板 → 系统 → 凭据委派...启用“允许委派新凭据”和“允许使用仅 NTLM 服务器委派新凭据”身份验证”*
并添加wsman/*
到服务器列表中(以及一些其他可能的 IP 或计算机名称组合,以作为良好的衡量标准)。
所以,我可以在没有CredSSP的情况下向服务器 B 发送远程命令:
这有效:
$cred = New-Object System.Management.Automation.PSCredential $username, $securePassword
Invoke-Command -ComputerName $target -Credential $cred -ScriptBlock {
Write-Host $env:computername | Select-Object
}
(输出服务器 B 的名称)
但是,如果我将其传递给带有 CredSSP 的相同$cred
内容New-PSSession
,那么就会出现上述错误。
$Session = New-PSSession -Computer $target -Authentication Credssp -Credential $cred
服务器 A能够将 CredSSP 与不同的域控制器(在同一网络/托管公司)一起使用。我读过的每一篇文章似乎都让我相信我所做的应该在这两种情况下都有效……我错过了什么?