1

その役割の一部として、一連の Windows Server 2008R2 マシンからパフォーマンス カウンターを読み取る C# プロセスがあります。すべてのマシンは企業 AD ドメイン内にあり、同じネットワーク上にあります。サーバー マシンにログオンし、ログイン セッション内から C# プロセスを実行すると、このプログラムは正常に動作します。私は現在、この C# プロセスを powershell で使用して、いくつかの実験を自動化しようとしています。目標は、サーバーの 1 つでデスクトップからリモートで起動することです。すべてのマシンは同じドメイン (デスクトップとサーバー) にあります。

すべてのマシンは次のようにセットアップされています。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Configure-SMRemoting.ps1 -force -enable

PowerShell スクリプトは、C# プロセスを実行し、invoke-command を使用してプロセスを開始するマシンに接続するための PsSession を作成しています。ただし、リモート ホスト上の C# アプリケーションは、監視対象のセット マシン上のパフォーマンス カウンターにアクセスできなくなります:-「アクセスが拒否されました」。

これはマルチホップ認証の問題ではないかと疑い、http: //www.ravichaganti.com/blog/?p=1230 の手順に従ってマルチホップ認証を有効にしました。CredSSP を使用しようとしています:

$cred = Get-Credential -Credential "Company\user"
$session = new-pssession -ComputerName $loadHost -Credential $cred -Authentication CredSSP -ErrorAction Stop

収量:

リモート サーバーへの接続に失敗し、次のエラー メッセージが表示されました: WinRM クライアントは要求を処理できません。CredSSP 認証は現在、クライアント構成で無効になっています。クライアント構成を変更して、要求を再試行してください。CredSSP 認証もサーバー構成で有効にする必要があります。また、グループ ポリシーを編集して、ターゲット コンピューターへの資格情報の委任を許可する必要があります。gpedit.msc を使用して、次のポリシーを確認します: [コンピューターの構成] -> [管理用テンプレート] -> [システム] -> [資格情報の委任] -> [新しい資格情報の委任を許可する]。ターゲット コンピューターに適した SPN で有効化され、構成されていることを確認します。たとえば、ターゲット コンピュータ名が "myserver.domain.com" の場合、SPN は次のいずれかになります: WSMAN/myserver.domain.com または WSMAN/*。

gpedit.msc を使用すると、ドメインに対応する SPN エントリを使用して [新しい資格情報の委任を許可する] が設定されます。すべてのマシンのファイアウォールは、WinRM Http-In を有効にするように構成されています。about_Remote_Troubleshooting のドキュメントを読みましたが、役に立ちませんでした。

マルチホップ認証が実際に正しいアプローチであるかどうか、またはこれを破る可能性のある他の何かについてのアイデアはありますか?

4

1 に答える 1

1

そのブログ記事を書きました。そして、はい、問題の説明から、CredSSP 認証の問題のように見えます。まず、パフォーマンス カウンターを監視するための適切な特権が必要です。リモート処理を使用する場合、資格情報が委任されている場合、2 番目は要求を SYSTEM として受信し、したがってリモート システムの Invoke-COMmand によってアクセスが拒否されます。

最初の質問は、リモート システムで Enable-PSremoting を使用しなかったのはなぜですか? 2 番目の質問は、C# アプリケーションが CredSSP クライアントとして実行されているローカル システムを構成しましたか。

Enable-WSManCredSSP -Role Client -DelegateComputer "*.SP2010lab.com"

これは、クライアントとして使用しているコンピューターでのみ行う必要があります。Invoke-Command を使用しているシステムで、CredSSP サーバーを設定する必要があります。

Enable-WSManCredSSP -Role Server

これを確認できますか?

于 2012-05-27T11:20:09.357 に答える