web-dev-qa-db-ja.com

PowershellでGet-EventLogを使用してリモートでイベントログを読み取る

サーバー(test-server)で実行され、クライアント(DC1)のログファイルを読み取るPowerShellスクリプトを作成しました。

  • 両側は互いにpingできます。
  • 両側で、ファイアウォールは無効になっています。
  • DC1でリモートデスクトップとリモートアシスタンスが有効になっています。

    Get-EventLog System -ComputerName test-server -Source Microsoft-Windows-Winlogon # WORKS
    Get-EventLog System -ComputerName DC1 -Source Microsoft-Windows-Winlogon # DOESN'T WORK
    

このスクリプトをtest-serverで実行します。テストサーバーでローカルログファイルを読み取ると正常に動作しますが、DC1のログファイルをリモートで読み取ろうとすると、エラーが発生します "Get-EventLog:ネットワークパスが見つかりませんでした。 "。

エラーのスクリーンショット: enter image description here

このエラーを回避し、Get-EventLogを使用してDC1のログファイルをtest-serverから読み取るにはどうすればよいですか?

11
Korki Korkig

@Lars Truijensの提案は私の問題を解決しました。しかし、他の提案も確認することが重要です。

したがって、リモートでログファイルを取得しようとしたときにこの種のエラーが発生した場合のチェックリストを次に示します。

  • 両側でファイアウォール設定を無効にするか設定します。
  • クライアントマシンでリモートデスクトップとリモートアシスタンスを有効にします。
  • クライアントマシンにpingできますか?
  • dir \\dc1\c$を実行して、ハードディスクへのアクセスが許可されていることを確認します。 (@ Shay Levyの提案
  • Get-Service -ComputerName YOURCOMPUTERNAMEを実行して、サービスへのアクセスが許可されていることを確認します。 (@ Shay Levyの提案
  • リモートレジストリサービスを開始します。@ Lars Truijensの提案により、これが機能しました

このソリューションのスクリーンショットは次のとおりです。 SolutionScreenshot

11
Korki Korkig

RemoteRegistryサービスを開始しても、私の場合は役に立ちませんでした。

明らかに、Get-Serviceなどの一部のコマンドレットのComputerNameパラメーターを介してアクセスされるリモート処理と、Invoke-Commandなどのコマンドレットでアクセスされる新しい形式のリモート処理には違いがあります。

従来のリモートアクセスは個々のコマンドレットによって実装されるため、一貫性がなく(さまざまな手法を使用し、さまざまな要件を要求します)、選択したコマンドレットでのみ使用できます。リモートアクセスに使用されるテクノロジは、コマンドレットごとに異なる可能性があり、すぐにはわかりません。各コマンドレットは、作成者が選択したリモート処理テクノロジを使用します。ほとんどのコマンドレットはリモートプロシージャコール(RPC)を使用しますが、ターゲットシステムで追加のサービスと設定が必要になる場合もあります。

Windows PowerShell 2.0以降、リモートシステムにアクセスするための代替的でより普遍的な方法がWindows PowerShell Remotingです。この種類のリモート処理では、Windows PowerShellはすべてのコマンドのリモートアクセスを処理します。比較的新しく高度に設定可能なWinRMサービスを使用してコマンドをリモートシステムに転送し、リモートシステムで実行される別のセッションでコードを実行し、結果を呼び出し側システムに返します。

http://powershell.com/cs/media/p/7257.aspx

このコマンドからスワップしたとき

get-eventlog -LogName System -computername <ServerName>

これに

invoke-command {get-eventlog -LogName System} -ComputerName <ServerName>

次のエラーは発生しなくなりました

get-eventlog:ネットワークパスが見つかりませんでした。

9
Scott Munro