私は最初の(私にとっては複雑な)スクリプトを作成しました。より簡単な方法があるのか、それとも正しくフォーマットされているのか不思議でした。Powershellのフォーマット
私のコードは、それぞれの末尾にdatetimeを持つ複数のファイル(ex:noapp.logdatetime)を含むフォルダを検索します。私は文字列の最新のファイル検索を探して、それが見つかった場合は電子メールを送ります。これは私がこれまで働いてきたものです。あなたのコメントのための
Get-ChildItem "c:\temp" -Filter "noapp.log*" | Sort-Object -Property LastWriteTime -Descending | Select-Object -First 1 | Select-String "Pool maximum size exceeded" | Select-Object -First 1
foreach { Send-MailMessage -Subject "Pool Max Exceeded ctdaysis42" -From [email protected] -To [email protected] -Body "Pool Max Exceeded ctdaysis42" -SmtpServer mail.xxx.com}
おかげで
ベストプラクティスとして、コマンドレットのスクリプトで使用する各パラメータを定義することをお勧めします。たとえば、 'Get-ChildItem -Path 'C:\ Temp'となります。文字列展開を使用していない場合は、文字列リテラル(一重引用符と二重引用符)を使用する必要があります – TheIncorrigible1
ForEach-Objectコマンドの前に '|'を間違えたと思いますが、実際のスクリプト。 –