Filesystem überwachen mit Powershell

Hier möchte ich kurz zeigen, wie ich mir beholfen habe, um Filesystem Änderungen mitzubekommen. In meinem Speziellen Fall ging es um ein Phänomen, bei welchem die Berechtigungen eines Ordners ohne mein Zutun geändert wurden. Hier erstmal der Code:

param(
$folder
)
if(!$folder){$folder = "\\file2\apps\CIP"}
$init_acl = Get-Acl $folder
$utf8 = New-Object System.Text.utf8encoding

while($true -eq $true){

$proc_acl = get-acl $folder

if($init_acl.Access.Count -ne $proc_acl.Access.Count){
Write-host -ForegroundColor Green "Rechte auf $folder wurden geändert"
Send-MailMessage -SmtpServer ###YOUR_SRV### `
-Subject "Rechte auf $folder wurden geändert" `
-Encoding $utf8 `
-From ###YOUR_SENDER### `
-to ###YOUR_RECEIPIENT### `
-Body "Rechte auf $folder wurden geändert `n`n$(Get-date)"
break
}

Start-Sleep -Seconds 30
}

Die Variable $init_acl wird zu beginn mit den „Ausgangsrechten“ gefüllt und vergleich in der while Dauerschleife die Anzahl der berechtigten Benutzer. Auch die Überwachung weiterer Attribute ist denkbar. Ich nutze dieses Snippet um Live zu sehen, was am System passiert.