Bei einer Active Directory Migration müssen oft viele Logfiles die ausgewertet werden. Entweder muss eine E-Mail geschrieben, eine Datenbank aktualisiert oder etwas Anderes gemacht werden.
Hier ein einfaches Beispiel für einen PowerShell Logfile Monitoring Code für einen Share:
PowerShell: Logfile Überwachung für Share
Der Code überprüft alle 10s ob es ein neues Log-File in $share („\\server\share\“) gibt, welches mit $startsWith („ADMT*“) anfängt. Der Asterisk (*) ist ein Wild-Card und steht für eine beliebige Zeichenfolge.
$share = „\\server\share\“ # Change to your share
$startsWith = „ADMT*“
$logs = Get-ChildItem ($share + $startsWith) | Sort-Object LastWriteTime -Descending # Get all files starting with $startsWith in $share and sort by DateModified. Latest is first.
$lastWriteTime = $logs[0].LastWriteTime # The time stamp of the latest log file
while($true) {
$logs = Get-ChildItem ($share + $startsWith) | Where-Object {($_.LastWriteTime -gt $lastWriteTime)} # Get all files starting with $startsWith in $share that are newer than $lastWriteTime
if($logs -ne $null) { # If we have new logs…
$logs = $logs | Sort-Object LastWriteTime -Descending # Sort logs descending
if($logs.Count -eq $null) { # If we have one log…
$lastWriteTime = $logs.LastWriteTime # Set $lastWriteTime to DateModified of new log
}
else {
$lastWriteTime = $logs[0].LastWriteTime # Otherwise, use DateModified of latest log
}
foreach($logFile in $logs) { # for each log file found do…
# <YOUR CODE HERE>
}
}
else { # If there are no new logs
Write-Host „no new logs found. Sleeping for 10s“
}
Sleep 10 # Sleep for 10s
}
Leave a Reply
<p>Danke für Ihre Anregungen, Fragen und Hinweise.<br/>Infos zum <a href="https://www.active-directory-faq.dekontakt/">Datenschutz</a></p>