PowerShell Remoting を使用して、リモート ドメインのサーバーからいくつかのディスク サイズをチェックしようとしていますが、実行しているコマンドが機能しません。
状況は次のとおりです。
- ソース サーバーはドメイン A にあります
- 宛先サーバーはドメイン B にあります
- これらのドメイン間には信頼関係がありません
ドメイン B のサーバーは Exchange 2010 を実行しており、次のコマンドを使用してサーバー A から Exchange 2010 固有のコマンドを実行できます。
$Session = New-PSSession -ConfigurationName Microsoft.Exchange –ConnectionUri $ConnectionURI -Credential $Credentials -Authentication Basic
Import-PSSession $Session
問題は、このセッションを使用してこのサーバーに対して Exchange 以外のコマンドを実行できないことです。実行しようとすると、コマンドを理解できないと表示されます。Invoke-Command を使用して Get-Command を確認して実行したところ、確立されたセッションに設定された -Session 変数は Exchange コマンドのみを返します。
だから私はInvoke-Commandと関連するComputerName、Authentication typeとCredentialsを使おうと思ったが、これは失敗している:
Invoke-Command -ScriptBlock {Get-Service} -ComputerName "Servername.destination.com" -Credential $Credentials -Authentication "Basic"
これはエラーです:
[servername.destination.com] Connecting to remote server failed with the following error message : The WinRM client can
not process the request. The authentication mechanism requested by the client is not supported by the server or unencry
pted traffic is disabled in the service configuration. Verify the unencrypted traffic setting in the service configurat
ion or specify one of the authentication mechanisms supported by the server. To use Kerberos, specify the computer nam
e as the remote destination. Also verify that the client computer and the destination computer are joined to a domain.
To use Basic, specify the computer name as the remote destination, specify Basic authentication and provide user name a
nd password. Possible authentication mechanisms reported by server: Negotiate Kerberos For more information, see th
e about_Remote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (:) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionStateBroken
そこで、ターゲット サーバーの WSMAN 構成に移動し、基本認証と暗号化されていない接続を許可するための関連設定を設定します。
cd WSMan:\localhost\Service
Set-Item AllowUnencrypted $True
cd .\Auth
Set-Item Basic $True
また、宛先サーバーをソース ドメイン サーバーの信頼できるホストに追加しました。
cd WSMan:\localhost\Client
Set-Item TrustedHosts servername.destination.com
その後、エラーは変わりますが、あまり役に立ちません。
PS WSMan:\localhost\Client> Invoke-Command -ScriptBlock {Get-Service} -ComputerName "servername.destination.com" -Creden
tial $Credentials -Authentication "Basic"
[servername.destination.com] Connecting to remote server failed with the following error message : Access is denied. Fo
r more information, see the about_Remote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (:) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionStateBroken
-Credential (Get-Credential) を介してドメイン管理者の資格情報も使用しようとしましたが、これは同じ問題で失敗しています。
使用しようとしているユーザーは、問題のサーバーのローカル管理者ユーザーのメンバーであるため、アクセス許可は PSSessionConfiguration コンテナーに既に設定されている必要があります。
これに関するさらなる指針が欲しいです!WMI を使用するだけですが、現時点ではファイアウォールを介して有効化されていません。