Guten Morgen,
ich habe nun schon einiges probiert, aber ich komme leider nicht weiter, vielleicht könntet Ihr mir bitte helfen:
Ich habe folgendes Skript im Internet gefunden, welches sauber funktioniert, so lange das englische Uhrzeitformat vorliegt. Sobald ein anderes Format verwendet wird, funktioniert, das Skript nicht mehr richtig.
Das Skript liest aus einer Datei definfo.dat das Datum aus. Die Datei hat den folgenden Inhalt:
Wie muss ich das Skript umbauen, damit es egal ist, welches Uhrzeitformat auf dem Server verwendet wird? Ich hab habe schon einiges mit get-date probiert, aber ich falle immer wieder auf die Nase - dazu langen meine Programmierkenntnisse leider nicht aus...
Grüße
Julian.
--
[DefDates]
CurDefs=201340722.016
--
# Signatur von Symantec Endpoint Protection (Version 11.x) ueberpruefen
# Made by Pixelschubser - 2012-01-24
# s.geiselbrecht(at)naip.de
# Pfad zu Definitionsdatei
# Pfad bei deutschem Betriebssystem
$path = "C:\ProgramData\Symantec\Definitions\VirusDefs\definfo.dat"
# Pfad bei englischsprachigen Betriebssystem
$path = "C:\ProgramData\Symantec\Definitions\VirusDefs\definfo.dat"
# Pruefe ob die Datei existiert
if((test-path $path) -eq $true) {
# Auslesen der letzten Zeile
$defdate = (get-content $path)[-1]
# Auslesen des Datums
$year = $defdate.substring(8, 4)
$month = $defdate.substring(12, 2)
$day = $defdate.substring(14, 2)
# Aktuelles Datum
$date = get-date
# Formatieren des Datums
$olddate = get-date($month + "/" + $day + "/" + $year)
# Berechnen der Differenz der beiden Datumsangaben
$datediff = $date - $olddate
# Prüfe ob Tag ein- oder zweistellig ist
if($datediff.tostring().substring(1, 1) -eq "." -or $datediff.tostring().substring(1, 1) -eq "/") {
$daydiff = $datediff.tostring().substring(0, 1)
} else {
$daydiff = $datediff.tostring().substring(0, 2)
}
# Entfernt Uhrzeit aus dem Datum
$smalldate = $day + "." + $month + "." + $year
if($daydiff -lt 3) {
Write-Host "OK: Virendefinition aktuell [" $smalldate "]"
Start-Sleep -second 15
$host.SetShouldExit(0)
} elseif($daydiff -lt 6) {
write-Host "WARNING: Virendefinition ist nicht aktuell [" $smalldate "]"
Start-Sleep -second 15
$host.SetShouldExit(1)
} else {
Write-Host "CRITICAL: Virendefinition veraltet [" $smalldate "]"
Start-Sleep -second 15
$host.SetShouldExit(2)
}
} else {
Write-Host "UNKNOWN: Virendefinitionsdatei konnte nicht gefunden werden";
$host.SetShouldExit(3)
}