PowerShellでは以下のコマンドでリモートのイベントログを取得する事ができる。
> Get-EventLog -ComputerName コンピュータ名 -LogName ログ名
例えば、
> Get-EventLog -ComputerName foo.xx.co.jp -LogName application
とすると、「foo.xx.co.jp」のアプリケーションログを取得する事ができる。
でも、コンピュータ名@ドメイン名を入力するということは、DNSで名前解決できるマシンじゃないと駄目ということだ。
俺の環境では使えないか…
っと思っていたら、引数がコンピュータ名などとなっているのにもかかわらず、IPアドレスでもリモートのイベントログを取得できることが分かった。
> Get-EventLog -ComputerName 192.168.0.1 -LogName Application
だだし、指定したIPによっては以下のようなエラーとなるかもしれない。
> Get-EventLog -ComputerName 192.168.0.1 -LogName Application
Get-EventLog : 許可されていない操作を実行しようとしました。
発生場所 行:1 文字:13
+ Get-EventLog <<<< -ComputerName 192.168.0.1 -LogName Application
+ CategoryInfo : NotSpecified; (:) [Get-EventLog], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands. Get
EventLogCommand
そんな時は、単にそのマシンに対して権限がないだけの話なので、以下のように「net use」コマンドを利用して、管理者権限でそのIPのマシンに接続してしまえばOKだ。
> net use \\192.168.0.1 パスワード /user:administrator
あと、Get-Processも引数に -ComputerName をとるので、リモートで何台も管理している人は覚えておくと便利だと思う。