Batch Anmeldescript Erweiterung Ablauf Domain PW
Hallo zusammen,
ich komme hier nicht weiter eigentlich möchte ich net user /domain | find "Kennwort läuft ab"
in die unten angegebene Abfrage bekommen, problem ist hier wohl auch das es 3 Wörter sind
Hiermit bekomme ich das richtige Token, 12. Zeile ist das Ablaufdatum da kommt aber der ganze Rest auch und kann es nicht in einer Variable speichern
Im Idealfall würde ich gern %%i (Ablaufdatum) in einer Variable Speichern
Wollte sowas in der Art
nutze ich die | ohne ^ kommt ein Fehler mit kommt nix
dann hätte ich das Datum könnte es mit Date vergleichen und im Anmelde Script Meldungen anzeigen.
Alternativ wäre mir die Ausgabe der ersten Zeile in dem Fall Zeile 12 aber auch das bekomme das so nicht hin
Vielleicht kann mir da jemand von den Fachleuten hier einwenig helfen, Danke
Andy
ich komme hier nicht weiter eigentlich möchte ich net user /domain | find "Kennwort läuft ab"
in die unten angegebene Abfrage bekommen, problem ist hier wohl auch das es 3 Wörter sind
Hiermit bekomme ich das richtige Token, 12. Zeile ist das Ablaufdatum da kommt aber der ganze Rest auch und kann es nicht in einer Variable speichern
for /f "skip=11 tokens=1,2,3,4" %%f in ('net user %username% /domain') do @echo %%f %%g %%h %%i
Wollte sowas in der Art
for /f "skip=11 tokens=1,2,3,4" %%f in ('net user %username% /domain ^| find "Kennwort läuft ab" ') do pw=%%i
dann hätte ich das Datum könnte es mit Date vergleichen und im Anmelde Script Meldungen anzeigen.
Alternativ wäre mir die Ausgabe der ersten Zeile in dem Fall Zeile 12 aber auch das bekomme das so nicht hin
Vielleicht kann mir da jemand von den Fachleuten hier einwenig helfen, Danke
Andy
7 Antworten
- LÖSUNG andykb schreibt am 01.10.2016 um 13:57:13 Uhr
- LÖSUNG Friemler schreibt am 01.10.2016 um 18:49:46 Uhr
- LÖSUNG andykb schreibt am 01.10.2016 um 19:16:02 Uhr
- LÖSUNG Friemler schreibt am 01.10.2016 um 19:57:47 Uhr
- LÖSUNG andykb schreibt am 01.10.2016 um 21:07:35 Uhr
- LÖSUNG Friemler schreibt am 01.10.2016 um 19:57:47 Uhr
- LÖSUNG andykb schreibt am 01.10.2016 um 19:16:02 Uhr
- LÖSUNG Friemler schreibt am 01.10.2016 um 18:49:46 Uhr
- LÖSUNG Dani schreibt am 01.10.2016 um 20:02:16 Uhr
- LÖSUNG andykb schreibt am 01.10.2016 um 21:05:34 Uhr
LÖSUNG 01.10.2016 um 13:57 Uhr
Hallo habe nochmal getestet
so lässt sich der Befehl zwar ausführen, bekomme auch hier nur einen Wert weil "Letztes" nur einmal vorkommt. Aber da kann ich nicht mehr über Tokens filtern muss immer auf %%f zugreifen und bekomme dann die ganze Zeile ?
FOR /F "usebackq tokens=1,2,3,4 delims==" %%f IN (`net user /Domain %username% ^| findstr "Letztes"`) DO @echo %%f
LÖSUNG 01.10.2016 um 18:49 Uhr
Hallo Andy,
mein Rechner ist nicht Mitglied einer Domäne, ich kann deshalb die Ausgabe des Befehls net user /domain nicht reproduzieren. Poste doch mal die Ausgaben für alle möglicherweise auftretenden Fälle.
Alternativ kannst Du auch mal einen Blick in mein Tutorial zur FOR-Schleife werfen.
Grüße
Friemler
mein Rechner ist nicht Mitglied einer Domäne, ich kann deshalb die Ausgabe des Befehls net user /domain nicht reproduzieren. Poste doch mal die Ausgaben für alle möglicherweise auftretenden Fälle.
Alternativ kannst Du auch mal einen Blick in mein Tutorial zur FOR-Schleife werfen.
Grüße
Friemler
LÖSUNG 01.10.2016, aktualisiert um 19:18 Uhr
Hallo Friemler,
sowas kommt da raus
eigentlich kann man die Zeile so abfragen
net user /Domain %Username% | find "Kennwort läuft ab"
da gibt es aber Probleme weil es drei Worte sind, wenn ich "ab" eingebe bekomme ich zwei Zeilen
sowas kommt da raus
eigentlich kann man die Zeile so abfragen
net user /Domain %Username% | find "Kennwort läuft ab"
da gibt es aber Probleme weil es drei Worte sind, wenn ich "ab" eingebe bekomme ich zwei Zeilen
Die Anforderung wird auf einem Domänencontroller für Domäne name.ltd verarbeitet.
Benutzername Username
Vollständiger Name Vorname Name
Beschreibung
Benutzerbeschreibung
Länder-/Regionscode (null)
Konto aktiv Ja
Konto abgelaufen Nie
Letztes Setzen des Kennworts 07.09.2016 11:04:39
Kennwort läuft ab 08.12.2016 11:04:39
Kennwort änderbar 13.09.2016 11:04:39
Kennwort erforderlich Ja
Benutzer kann Kennwort ändern Ja
Erlaubte Arbeitsstationen Alle
Anmeldeskript Anmelde.cmd
Benutzerprofil
Basisverzeichnis
Letzte Anmeldung 30.09.2016 15:54:56
Erlaubte Anmeldezeiten Alle
Lokale Gruppenmitgliedschaften
*Gruppe
*Gruppe
*Gruppe
*Gruppe
Globale Gruppenmitgliedschaften
*Gruppe
*Gruppe
*Gruppe
*Gruppe
*Gruppe
Der Befehl wurde erfolgreich ausgeführt.
LÖSUNG 01.10.2016, aktualisiert um 20:05 Uhr
Hallo Andy,
der FIND-Befehl betrachtet den angegebenen Suchbegriff immer als Einheit, auch wenn er Leerzeichen enthält, und sucht somit buchstabengetreu.
Der FINDSTR-Befehel betrachtet durch Leerzeichen getrennte Worte als Liste von Suchbegriffen, außer man verwendet die Optionen /L oder /C:"Suchbgriff mit Leerzeichen", wobei sich /C:"..." auch mit /R kombinieren lässt.
Dein Problem liegt wahrscheinlich darin, dass Du den Quelltext Deines Batchscripts mit der Zeichen-Codierung ANSI abgespeichert hast und dadurch Dein Suchbegriff Kennwort läuft ab in der Ausgabe von net user (ist in OEM 850 codiert) nicht gefunden wird - das Problem ist das ä in läuft.
Grundregeln:
Grüße
Friemler
der FIND-Befehl betrachtet den angegebenen Suchbegriff immer als Einheit, auch wenn er Leerzeichen enthält, und sucht somit buchstabengetreu.
Der FINDSTR-Befehel betrachtet durch Leerzeichen getrennte Worte als Liste von Suchbegriffen, außer man verwendet die Optionen /L oder /C:"Suchbgriff mit Leerzeichen", wobei sich /C:"..." auch mit /R kombinieren lässt.
Dein Problem liegt wahrscheinlich darin, dass Du den Quelltext Deines Batchscripts mit der Zeichen-Codierung ANSI abgespeichert hast und dadurch Dein Suchbegriff Kennwort läuft ab in der Ausgabe von net user (ist in OEM 850 codiert) nicht gefunden wird - das Problem ist das ä in läuft.
Grundregeln:
- Batchscripte immer mit einem Editor schreiben, der in der Codierung OEM 850 speichern kann (z.B. Notepad++).
- Batchscripte zum Testen immer aus einer Konsole heraus starten und nicht per Doppelklick, damit man Fehlermeldungen auch lesen kann.
- Wenn das Script nicht so will wie es soll, echo off entfernen und die dann erscheinenden Ausgaben genau analysieren. Da hättest Du dann schon gesehen, dass der Suchbegriff beim FIND-Befehl irgendwie verstümmelt aussieht.
Grüße
Friemler
LÖSUNG 01.10.2016 um 20:02 Uhr
LÖSUNG 01.10.2016 um 21:05 Uhr
Hi Dani
Ich will beim Logon ein Msg öffnen, wo drin steht wann das passwort abläuft
Da wir viele logon scripte haben will ich es nicht mit vb machen.
Ja ich weiss es gibt ein fertiges Script für die Powershell will aber keinen Mails versenden.
Bekomme diese zeile nicht raus mit letztem PW gesetzt geht es
Ich will beim Logon ein Msg öffnen, wo drin steht wann das passwort abläuft
Da wir viele logon scripte haben will ich es nicht mit vb machen.
Ja ich weiss es gibt ein fertiges Script für die Powershell will aber keinen Mails versenden.
Bekomme diese zeile nicht raus mit letztem PW gesetzt geht es
LÖSUNG 01.10.2016, aktualisiert um 21:10 Uhr