- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Powershell プログラミングについて)
Powershellでサーバ管理のための前日のイベントログを出力するプログラムを作成する際の疑問
このQ&Aのポイント
- 初めてPowershellを使用してサーバ管理のための前日のイベントログを出力するプログラムを作成しましたが、一部エラーが発生しています。
- エラーが発生している箇所は、HostNameの出力方法です。正しいHostNameを表示させるためにはどのように書けば良いのでしょうか?
- ご指導いただけると幸いです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
間違っていたら申し訳ないのですが、Get-EventLogの出力にHostNameは無いと思いますので、Get-EventLogの結果にカスタマイズでHostNameを追加したいということでいいでしょうか? また、$hostnameは質問文に設定が出て来ませんのでどこかで設定されていると考えていいでしょうか? >HostName[SAKURAI-PC] : このように表示されるのは、 >Select-Object EntryType,EventID,TimeGenerated,Source,Message,HostName[$hostname] ここで定義されていないオブジェクトをselectしているので空の値が表示されているのでこのようになっていると思います。 前提が正しければ、$eventにプロパティとしてHostNameを追加してやればご希望の結果が得られると思います。 $a = "[$hostname]" Add-Member -InputObject $event -MemberType noteproperty -Name HostName -Value $a $eventのパイプの中に入れたければ InputObjectを外した形にすればいいでしょう。 Add-Memberについてはヘルプで確認して見て下さい。 違っていたらごめんなさいです。
お礼
無事ホスト名を出力させることができました! ありがとうございます。 Add-Memberすら知らなくて…ご迷惑をお掛けしました。 結局、下記のようにプログラムを追加しました。 # ログ取得 $event = get-EventLog -logname $type -after $start_time_yesterday -before $end_time_yesterday | ` Where-Object { $_.EntryType -eq "Warning" -or $_.EntryType -eq "Error" } | ` Where-Object { $_.EventID -ne "1111" -and $_.EventID -ne "5722" -and $_.EventID -ne "5719" -and $_.EventID -ne "1530" }| ` Add-Member NoteProperty HostName $hostname -pass | ` Select-Object EntryType,EventID,TimeGenerated,Source,HostName,Message 本当にありがとうございます。