# prtg-adchanges.ps1 # # prtg-sensor to read the highest USN on a DC to find out changes # # Polling für Changes using USNChanged (Windows) # http://msdn.microsoft.com/en-us/library/windows/desktop/ms677627(v=vs.85).aspx param( [string]$dclist="dc.msxfaq.de" # FQDN of a DC to ask ) write-host "prtg-adchanges: Start" if ($dclist.contains(" ")) {write-host " Splitting by space"; $dclistlist = $dclist.split(" ")} elseif ($dclist.contains(",")) {write-host " Splitting by ,"; $dclistlist = $dclist.split(",")} elseif ($dclist.contains(";")) {write-host " Splitting by ;"; $dclistlist = $dclist.split(";")} else { write-host " SingleItem"; $dclistlist=$dclist} $result="`r`n" foreach ($dc in $dclistlist){# $adsipath="LDAP://"+$dc+"/RootDSE" write-host "prtg-adchanges: LDAPPath" $adsipath $rootdse = [ADSI]$adsipath $highestCommittedUSN = $rootdse.highestCommittedUSN write-host "prtg-adchanges: highestCommittedUSN" $highestCommittedUSN $result+=" `r`n" $result+=" USNChanges $dc`r`n" $result+=" "+$highestCommittedUSN+"`r`n" $result+=" Count`r`n" $result+=" Difference`r`n" $result+=" `r`n" } $result+="" Write-host "Sending Result to output pipeline" $result