一部のサーバー(W2K8 R2)は先週クラウドに移動しましたが、一度powerswhellスクリプトが失敗し始めた(以前は正常に動作していました)と、接続を確立しようとしている回線で例外がスローされ、
$ExSession = New-PSSession –ConfigurationName Microsoft.Exchange –ConnectionUri "http://$g_strExchangeServer/PowerShell" `
-Credential $Credentials –Authentication Kerberos
次のメッセージとともに、
[subd.staging.com] Connecting to remote server failed with the following error message :
**WinRM cannot process the request**. The following error occured while using Kerberos authentication: There are currently no logon servers available to service the logon request.
Possible causes are:
-The user name or password specified are invalid.
-Kerberos is used when no authentication method and no user name are specified.
-Kerberos accepts domain user names, but not local user names.
-The Service Principal Name (SPN) for the remote computer name and port does not exist.
-The client and remote computers are in different domains and there is no trust between the two domains.
After checking for the above issues, try the following:
-Check the Event Viewer for events related to authentication.
-Change the authentication method; add the destination computer to the WinRM TrustedHosts configuration setting or use HTTPS transport.
Note that computers in the TrustedHosts list might not be authenticated.
-For more information about WinRM configuration, run the following command: winrm help onfig. For more information, see the about_Remote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionOpenFailed
これは、テストドメインをターゲットにしようとする場合にのみ発生し、スクリプトを運用ドメインに向けると動作します。
同じエラーがすでにクラウドに移動されたすべてのサーバーで表示されます。
まだクラウドに移動していないすべてのサーバーは、問題なく両方のドメインでスクリプトを実行できることに注意してください。
私は次のことを試しましたが、運はありません。
//Add the destination computer to the WinRM TrustedHosts configuration setting.
c:\>WinRM set winrm/config/client @{TrustedHosts="stagingserver"}
//Confirm that WinRM is properly configured.
c:\>Winrm quickconfig
//Make sure that the remote server allows commands from any machine.
PS c:\>Set-item wsman:localhost\client\trustedhosts -value *
Powershell v2およびWinRM v2の使用
コメントを歓迎します。
クライアントマシンで次のコマンドを実行し、リモートホストに到達しようとします。
まず、クライアントマシンのTrustedHostsを確認する必要があります。
PS C:\> WinRM get winrm/config/client
Client
NetworkDelayms = 5000
URLPrefix = wsman
AllowUnencrypted = false
Auth
Basic = true
Digest = true
Kerberos = true
Negotiate = true
Certificate = true
CredSSP = false
DefaultPorts
HTTP = 5985
HTTPS = 5986
TrustedHosts
例のように空の場合、clientマシンで以下のコマンドを実行します。
PS C:> Set-item wsman:localhost\client\trustedhosts -value *
これにより、TrustedHostsパラメーターに*が書き込まれ、クライアントマシンが任意のホストに接続できるようになります。または、この値をipまたはターゲットサーバーのホスト名。
PS C:\> WinRM get winrm/config/client
Client
NetworkDelayms = 5000
URLPrefix = wsman
AllowUnencrypted = false
Auth
Basic = true
Digest = true
Kerberos = true
Negotiate = true
Certificate = true
CredSSP = false
DefaultPorts
HTTP = 5985
HTTPS = 5986
TrustedHosts = *