Powershell

遠端 Powershell 不起作用,但 test-wsman 可以

  • December 5, 2017

我需要編寫一些例行任務腳本以從伺服器 A 遠端執行到許多主機,但其中一些無法執行腳本。

如果我執行這個:

$cred = Get-Credential myUser
Invoke-Command -ComputerName serverB -ScriptBlock{gci d:\} -Credential $cred

或這個:

Test-WSMan -ComputerName ServerB -Credential $cred -Authentication Negotiate

我收到以下錯誤

$$ SeverB $$連接到遠端伺服器 ServerB 失敗並顯示以下錯誤消息:WinRM 無法處理請求。使用協商身份驗證時出現錯誤程式碼 0x80090322 的以下錯誤:發生未知安全錯誤。可能的原因有: - 指定的使用者名或密碼無效。-Kerberos 在沒有指定身份驗證方法和使用者名時使用。-Kerberos 接受域使用者名,但不接受本地使用者名。- 遠端電腦名稱和埠的服務主體名稱 (SPN) 不存在。-客戶端和遠端電腦在不同的域中,兩個域之間沒有信任。檢查上述問題後,請嘗試以下操作: - 檢查事件查看器中與身份驗證相關的事件。-改變認證方式;將目標電腦添加到 WinRM TrustedHosts 配置設置或使用 HTTPS 傳輸。請注意,TrustedHosts 列表中的電腦可能未經過身份驗證。- 有關 WinRM 配置的更多資訊,請執行以下命令:winrm help config。有關詳細資訊,請參閱 about_Remote_Troubleshooting 幫助主題。+ CategoryInfo : OpenError: (serverB:String)$$ $$, PSRemotingTransportException + FullyQualifiedErrorId : -2144108387,PSSessionStateBroken

但是當我單獨使用 test-wsman 時:

Test-WSMan -ComputerName ServerB

wsmid : 
http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd
ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
ProductVendor   : Microsoft Corporation
ProductVersion  : OS: 0.0.0 SP: 0.0 Stack: 3.0

我不知道問題可能出在哪裡。我已經嘗試過使用enable-psremote、 winrm qc、檢查防火牆設置和使用者權限

我解決了我的問題。Kerberos 身份驗證、遠端 Powershell 和集成服務(伺服器正在執行該應用程序)之間存在一個已知問題。資訊可以在這里這裡找到

我必須為伺服器(serverB_alias)創建一個 A 記錄 DNS,並將該伺服器的 HTTP spn 設置為指定 wsman 嘗試連接的埠(5985)的帳戶。

setspn -s http/serverB domain\user
setspn -s http/serverB.domain domain\user
setspn -s http/serverB_alias:5985 domain\user
setspn -s http/serverB_alias.domain:5985 domain\user

最後,我使用以下命令將別名 DNS 添加到伺服器 A 受信任主機列表:

$curValue = (get-item wsman:\localhost\Client\TrustedHosts).value
set-item wsman:\localhost\Client\TrustedHosts -value "$curValue, serverB_alias"

似乎是現有 spn 映射問題的問題,在 powershell 中,您可以刪除 spn 帳戶並重試。

setspn -D HTTP/SERVERNAME <domain account>
setspn -D HTTP/SERVERNAME.DOMAINAME.COM <domain account>

如果問題仍然存在,您可以檢查使用 ip 地址 (IPv4) 而不是伺服器名稱來繞過 Kerberos 錯誤。

來源 https://serverfault.com/questions/580411/windows-server-manager-kerberos-error-0x80090322

https://social.technet.microsoft.com/Forums/windows/en-US/a4c5c787-ea65-4150-8d16-2a19c569a589/enterpssession-winrm-cannot-process-the-request-kerberos-authentication-error-0x80090322?forum=winserverpowershell

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