ich arbeite seit ein Paar tagen an einem Skript in PowerShell(kompletter Neuling) welches das Ablaufdatum der Passwörter(Windows) mit dem momentanen Datum vergleicht.
Ich kann es jedoch nicht starten, da jedes mal folgende Fehlermeldung kommt:
Fehler beim Aufrufen der Methode, da [System.DateTime] keine Methode mit dem Namen "substring" enthält.
In C:\Users\MHE\Desktop\Unbenannt1.ps1:12 Zeichen:1
+ $datum = $datum.substring(0,10)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
Und das auch bei der Funktion Split.
Da ich Komplett neu bin habe ich keine Idee wie ich das fixen kann.
Hier Das Programm:
net user $env:username /DOMAIN | findstr /C:"Kennwort l" > $env:temp\expiry.txt
# Ablaufdatum wird Aus Net user ausgelesen
$ablaufdatum = (Get-Content $env:temp\expiry.txt)
$ablaufdatum = $ablaufdatum.substring(36,10)
$ablaufdatumtag = [int]$ablaufdatum.split(".")[0]
$ablaufdatummonat = [int]$ablaufdatum.split(".")[1]
$ablaufdatumjahr = [int]$ablaufdatum.split(".")[2]
#Das extrahierte datum wird zurechtgeschnitten, aufgeteilt und in integer gewandelt
$datum = Get-date -Format $datum
$datum = $datum.substring(0,10)
$datumtag = [int]$datum.split(".")[0]
$datummonat = [int]$datum.split(".")[1]
$datumjahr = [int]$datum.split(".")[2]
#Das Momentane Datum wird zurechtgeschnitten, aufgeteilt und in integer gewandelt
if($datumjahr -eq $ablaufdatumjahr)
#Hier Wird nach dem Jahr geprüft
{
if($datummonat -ge $ablaufdatummonat)
#Hier Wird nach dem Monat Geprüft
{
if($datumtag -ge $ablaufdatumtag)
#Hier Wird nach dem Tag Geprüft
{
msg $env:username Passwort muss Zurückgesetzt werden
}
elseif($datumtag + 5 -eq $ablaufdatumtag)
#Erinnerung 5 Tage vor den Ablaufdatum
{
if($datumtag -lt $ablaufdatumtag)
{
msg $env:username Passwort muss Zurückgesetzt werden
}
}
}
}
{
if($datummonat + 5 -ge $ablaufdatummonat)
{
msg $env:username Passwort muss Zurückgesetzt werden
}
else
{
Exit 0
}
}
Frage
merlin20302
Hallo,
ich arbeite seit ein Paar tagen an einem Skript in PowerShell(kompletter Neuling) welches das Ablaufdatum der Passwörter(Windows) mit dem momentanen Datum vergleicht.
Ich kann es jedoch nicht starten, da jedes mal folgende Fehlermeldung kommt:
Fehler beim Aufrufen der Methode, da [System.DateTime] keine Methode mit dem Namen "substring" enthält.
In C:\Users\MHE\Desktop\Unbenannt1.ps1:12 Zeichen:1
+ $datum = $datum.substring(0,10)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
Und das auch bei der Funktion Split.
Da ich Komplett neu bin habe ich keine Idee wie ich das fixen kann.
Hier Das Programm:
net user $env:username /DOMAIN | findstr /C:"Kennwort l" > $env:temp\expiry.txt
# Ablaufdatum wird Aus Net user ausgelesen
$ablaufdatum = (Get-Content $env:temp\expiry.txt)
$ablaufdatum = $ablaufdatum.substring(36,10)
$ablaufdatumtag = [int]$ablaufdatum.split(".")[0]
$ablaufdatummonat = [int]$ablaufdatum.split(".")[1]
$ablaufdatumjahr = [int]$ablaufdatum.split(".")[2]
#Das extrahierte datum wird zurechtgeschnitten, aufgeteilt und in integer gewandelt
$datum = Get-date -Format $datum
$datum = $datum.substring(0,10)
$datumtag = [int]$datum.split(".")[0]
$datummonat = [int]$datum.split(".")[1]
$datumjahr = [int]$datum.split(".")[2]
#Das Momentane Datum wird zurechtgeschnitten, aufgeteilt und in integer gewandelt
if($datumjahr -eq $ablaufdatumjahr)
#Hier Wird nach dem Jahr geprüft
{
if($datummonat -ge $ablaufdatummonat)
#Hier Wird nach dem Monat Geprüft
{
if($datumtag -ge $ablaufdatumtag)
#Hier Wird nach dem Tag Geprüft
{
msg $env:username Passwort muss Zurückgesetzt werden
}
elseif($datumtag + 5 -eq $ablaufdatumtag)
#Erinnerung 5 Tage vor den Ablaufdatum
{
if($datumtag -lt $ablaufdatumtag)
{
msg $env:username Passwort muss Zurückgesetzt werden
}
}
}
}
{
if($datummonat + 5 -ge $ablaufdatummonat)
{
msg $env:username Passwort muss Zurückgesetzt werden
}
else
{
Exit 0
}
}
Über Hilfe würde ich mich sehr freuen!!
Danke im Vorraus,
Merlin
Bearbeitet von merlin20302vergessener Apell
Link zu diesem Kommentar
Auf anderen Seiten teilen
7 Antworten auf diese Frage
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.