電子書籍の厳選無料作品が豊富!

◆コマンド
filter LastNHours
{
param([string]$source, [int]$hour=24)
if($_.TimeGenerated -gt (Get-Date).AddHours(-$hour) -and `
($_.Source -eq $source -or $source -eq ""))
{
return $_
}
}
Get-EventLog -logname Application -message "*<特定の文字>*"| LastNHours -source <任意のソース> W32Time -hour 1

◆質問
Sourceは隠していますが、上記のコマンドを実行すると、正常であれば特定のイベントログが2件、正常でなければ0件となり、結果が返ってきた後のコマンド入力可能となる状態、「PS C:\users\Administrator>」に戻ります。

結果が0件の場合は、ログ出力を行い、2件の場合はログ出力を行わないという条件分岐の方法をご教示頂けませんでしょうか。ログがあればエラーとして以降のコマンドは実行しないようにしたいので、そのためのログ出力方法を確認させていたきたく。。
※こちら2件の場合と書いていますが、イベントログに出力される結果が返って来ればログ出力を行わない形でも構いません。


Powershell初心者のため分かりやすくご教示いただけると助かります。
お手数ですが、宜しくお願い致します。

A 回答 (1件)

たいていの場合、.Lengthで数がわかるので、こんな感じで判定できると思います。



(Get-EventLog -logname Application -message "*<特定の文字>*"| LastNHours -source <任意のソース> W32Time -hour 1).Length -eq 0
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!