2017-01-22 8 views
-1

毎週私たちはファイルサーバ上のフォルダにバックアップファイルを複製しています。私は7日以上でそのフォルダにファイルが書き込まれていない場合、私に通知する方法を探しています。書き込まれたファイルが7日以上経過していない場合のアラート

私はこのスクリプトをオンラインで見つけました(私はクレジットを得ることができないと著者に謝罪します)。そして、私は正しい軌道に乗っているように感じます。私が本当に探しているのは、ファイルがまったく書き込まれていないかどうかを教えてくれる出力です。バックアップが成功した場合、確認は必要ありません。

$lastWrite = (get-item C:\ExampleDirectory).LastWriteTime 
$timespan = new-timespan -days 7 
if (((get-date) - $lastWrite) -gt $timespan) { 
    # older 
} else { 
    # newer 
} 

答えて

3

あなたがしたいと思うたいソートLastWriteTimeにより、ディレクトリ内のすべてのファイルを取得し、その後、7日前に、最新のファイルとを比較している:

$LastWriteTime = (Get-ChildItem C:\ExampleDirectory |Sort LastWriteTime)[-1].LastWriteTime 
if($LastWriteTime -gt [DateTime]::Now.AddDays(-7)) 
{ 
    # File newer than 7 days is present 
} 
else 
{ 
    # Something is wrong, time to alert! 
} 

警告する部分については、チェックアウトSend-MailMessageまたはWrite-EventLog

+0

ありがとう、これは非常に便利です。私はいくつかの質問があります。 #何か間違っていると書いたときにwrite-eventlog文に入力すると、何も起きません。最初の2行が1行になるようにスクリプトを修正しようとしましたが、2行目はIf($ LastWriteTime - eq 'False'){Write-EventLog -LogNameを実行すると、ファイルが古いかどうかにかかわらず毎回ログが書き込まれますが、緑のテキストをWrite Event Logステートメントに置き換えるのですか? –

+0

'#'は "コメントを意味し、#の後ろにあるこの行のすべてを無視する" - 次の行に 'Write-EventLog'文を置く(またはコメントを完全に置き換える) –

+1

最後のコメントは無視してください。この問題は、私のwrite-eventlogステートメントの構文に問題がありました。ありがとうございました。 –

関連する問題