Powershell

不受信任域的 Windows 遠端管理

  • June 10, 2015

我目前正在嘗試在 2 個不受信任的域之間啟用 Windows 遠端管理(特別是 Powershell Remoting),但沒有運氣。

我的設置的簡要說明:

  • domain1 - 我的工作站在這個域上
  • domain2 - 我想連接的伺服器在這個域上

這些域之間沒有信任。

我正在嘗試使用來自我的工作站(加入域 1)的以下命令創建 Powershell 遠端連接:

參數 (
[參數(強制=$True)]
$伺服器
)

$username = "域\使用者"
$password = read-host "輸入 $username 的密碼" -AsSecureString

$credential = 新對象 System.Management.Automation.PSCredential($username, $password)

$session = New-PSSession "$server" -Authentication CredSSP -Credential $credential -UseSSL -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck)
輸入-PSSession $session

這會導致以下錯誤消息:

New-PSSession : [computername.domain2.com] 連接到遠端伺服器 computername.domain2.com 失敗並顯示以下錯誤消息:WinRM 客戶端
無法處理請求。電腦策略不允許將使用者憑據委派給目標電腦,因為該電腦不受信任。目標的身份
如果您使用以下命令將 WSMAN 服務配置為使用有效證書,則可以驗證電腦: winrm set winrm/config/service '@{CertificateThumbprint=""}' 或
您可以在事件查看器中檢查指定無法創建以下 SPN 的事件:WSMAN/。如果您發現此事件,您可以使用手動創建 SPN
設置.exe。如果 SPN 存在,但 CredSSP 無法使用 Kerberos 驗證目標電腦的身份,並且您仍希望允許將使用者憑據委派給目標
電腦,使用 gpedit.msc 並查看以下策略:電腦配置 -> 管理模板 -> 系統 -> 憑據委派 -> 允許僅使用 NTLM 的新憑據
伺服器身份驗證。驗證它是否已啟用並使用適合目標電腦的 SPN 進行配置。例如,對於目標電腦名稱“myserver.domain.com”,SPN 可以是
以下之一:WSMAN/myserver.domain.com 或 WSMAN/*.domain.com。在進行這些更改後再次嘗試請求。有關詳細資訊,請參閱 about_Remote_Troubleshooting 幫助主題。

我已經嘗試/驗證了以下內容:

  1. 我驗證了域 2 中的 WSMAN\computername 和 WSMAN\computername.domain2.com 都存在 SPN。
  2. 已驗證電腦配置 -> 管理模板 -> 系統 -> 憑據委派 -> 允許使用僅 NTLM 伺服器身份驗證的新憑據已正確設置。
  3. 在目標電腦上配置 winrm 以使用 ssl。
  4. 使用以下命令在目標電腦和我的本地工作站上配置 CredSSP:
Enable-WSManCredSSP -Role Server #在目標電腦上
Enable-WSManCredSSP -Role Client -DelegateComputer * -Force
  1. 我已驗證沒有任何 FW 規則(無論是本地電腦還是網路)阻止我的訪問。

其中沒有一個允許我從 domain1 中的工作站成功連接到 domain2 中的目標電腦。我可以成功連接到加入域 1 的其他伺服器,而不是域 2 中的伺服器。還有什麼我應該尋找和/或嘗試讓它發揮作用的東西嗎?

更新 06/08/2015 實際上我已經能夠驗證我可以在不使用 CredSSP 的情況下從我的工作站連接到伺服器,這很好;但是,我需要能夠針對 SharePoint 執行腳本,並且在沒有 CredSSP 的情況下這樣做會失敗並出現權限錯誤。

這篇MSDN文章展示瞭如何配置 WinRM 以支持多躍點,該文章還解決了在不能選擇 Kerberos 時建立連接的問題。簡要總結如下。

Windows 遠端管理 (WinRM) 支持跨多台遠端電腦委派使用者憑據。多跳支持功能現在可以使用憑據安全服務提供程序 (CredSSP) 進行身份驗證。CredSSP 使應用程序能夠將使用者的憑據從客戶端電腦委託給目標伺服器。

CredSSP 身份驗證適用於無法使用 Kerberos 委派的環境。添加了對 CredSSP 的支持以允許使用者連接到遠端伺服器並能夠訪問第二跳電腦,例如文件共享。

具體來說,文章中有關系統資料庫項/組策略設置 AllowFreshCredentialsWhenNTLMOnly 的部分解決了我遇到的問題。來自文章:

如果 Kerberos 身份驗證和證書指紋均不可用,則使用者可以啟用 NTLM 身份驗證。如果使用 NTLM 身份驗證,則必須啟用僅使用 NTLM 伺服器身份驗證 (AllowFreshCredentialsWhenNTLMOnly) 策略,並且必須將具有 WSMAN 前綴的 SPN 添加到策略中。此設置不如 Kerberos 身份驗證和證書指紋安全,因為憑據被發送到未經身份驗證的伺服器。

有關 AllowFreshCredentialsWhenNTLMOnly 策略的詳細資訊,請參閱組策略編輯器和 KB 951608 提供的策略說明。AllowFreshCredentialsWhenNTLMOnly 策略位於以下路徑:電腦配置\管理模板\系統\憑據委派。

引用自:https://serverfault.com/questions/696321