PowerShellでリモートのイベントログを取得する(その2)

| 2010年5月25日火曜日
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 をとるので、リモートで何台も管理している人は覚えておくと便利だと思う。

0 コメント: