Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Abfrage Batch-Datei ausgeben

Frage Entwicklung Batch & Shell

Mitglied: KissMyN0se

KissMyN0se (Level 1) - Jetzt verbinden

22.11.2012 um 13:15 Uhr, 3521 Aufrufe, 6 Kommentare

Hallo,
ich wollte eine kleine Batch-Datei schreiben die kurz und knapp den aktuellen Stand eines Domaenenaccounts anzeigt.

Mein bisheriger Code lautet:

"
@echo off
SET /P Domain= Bitte geben Sie den Namen der Domaine ein:
echo Domaene lautet: %Domain%
SET /P User=Bitte geben Sie den Benutzernamen ein:
echo Username lautet: %User%

net user /%Domain% %User% | find "Konto aktiv"
net user /%Domain% %User% | find "Konto abgelaufen"
net user /%Domain% %User% | find "Letztes Setzen des Kennworts"
net user /%Domain% %User% | find "Kennwort läuft ab"
net user /%Domain% %User% | find "Letzte Anmeldung"


pause
"

Soweit bin ich dann schonn mal nach 10 Minuten gekommen.

Die funktion selbst klappt auch wunderbar, nur fuehrt die Batch 5x nacheinander die Abfrage fuer "Net User" aus.
Dies ist alles andere als elegant, bzw. schnell geloest!

Gibt es eine Option eimalig die Abfrage "net user /%Domain% %User%" zu starten und anschließend dann die noetigen (5) Informationen zu suchen und anzuzeigen?

Googlen konnte mir leider nicht weiterhelfen und wie man sieht bin ich ein Batch-Neuling

Achja, die Domaene muss abgefragt werden, da es 2 (eig 3, aber 3. ist nicht relevant) Domaenen gibt, in der User sich befinden koennnen.

Schon mal im vorraus vielen Dank wenn mir geholfern werden kann.

MfG

KissMyN0se



Mitglied: bastla
22.11.2012 um 13:22 Uhr
Hallo KissMyN0se und willkommen im Forum!

Du könntest eine Textdatei (im Beispiel "D:\Userinfo.txt") mit den relevanten Filtern erstellen:
01.
Konto aktiv 
02.
Konto abgelaufen 
03.
Letztes Setzen des Kennworts 
04.
Kennwort läuft ab 
05.
Letzte Anmeldung
und dann
net user /%Domain% %User% |findstr /g:D:\Userinfo.txt
verwenden ...

Grüße
bastla
Bitte warten ..
Mitglied: B4ZTI4N
22.11.2012 um 13:30 Uhr
schau mal in Richtung PowerShell. DerWoWusste kann dir bestimmt helfen. Grüße bye the Way
Bitte warten ..
Mitglied: KissMyN0se
22.11.2012 um 13:54 Uhr
Hallo und schon mal Danke

Das Ergebnis/die Ergebnisse wollte ich schon sehr gerne sofort in der Batch anzeigen lassen.

Vielen Dank fuer den Tipp mit "Findstr", dieser hat mir schonmal sehr gut weitergeholfen.

Code sieht nun so aus:

"
@echo off
SET /P Domain= Bitte geben Sie den Namen der Domaine ein:
echo Domaene lautet: %Domain%
SET /P User=Bitte geben Sie den Benutzernamen ein:
echo Username lautet: %User%

net user /%Domain% %User% | findstr "Konto aktiv","Konto abgelaufen","Letztes Setzen des Kennworts","Kennwort läuft ab","Letzte Anmeldung"

pause
"

Anzeige in der Console nun:
"
Bitte geben Sie den Namen der Domaine ein:domain
Domaene lautet: domain
Bitte geben Sie den Benutzernamen ein: Test123
Username lautet: Test123
Konto aktiv Ja
Konto abgelaufen Nie
Letztes Setzen des Kennworts 14.11.2012 15:40:51
Anmeldeskript Logon.bat
Letzte Anmeldung 16.11.2012 12:52:34
Drücken Sie eine beliebige Taste . . .
"

Dies geht auch schon gut schneller, nur ueberaus "ruckelnd", also alles andere als fluessig, vielleicht kannst du das selbe feststellen...

Aber warum wird bei der Ausgabe das "Anmeldeskript" angezeigt? Dies ist doch lt. Code s.o. nicht gewollt...

Vielleicht wegen Findstr "Letzte ANMELDUNG", waere spontan meine einzige Erklaerung, dass dann ANMELDEskript mit ausgegeben wird...

MfG

KissMyN0se
Bitte warten ..
Mitglied: Biber
22.11.2012, aktualisiert um 14:24 Uhr
Moin KissMyN0se,

die Zeile mit dem "Anmeldeskript" wird ausgegeben, da der Suchstring "des" aus "Letztes Setzen des Kennworts" enthalten ist. ("Anmeldeskripts).

Abhilfe z.B.
net user /Domain %User% | findstr "Konto aktiv","Konto abgelaufen","Letztes Setzen","Kennwort läuft ab","Letzte Anmeldung"

-oder kürzer-
net user /Domain %user% | findstr "aktiv abgelaufen läuft Anmeldung Setzen"

Anmerkung: Die Abfrage nach %Domain% kannst du dir sparen. Der Parameter "/Domain" ist fest - da darf nichts anderes stehen als "/Domain".

Grüße
Biber
Bitte warten ..
Mitglied: KissMyN0se
22.11.2012 um 14:43 Uhr
Die Batch schaut nun so aus:
"
@echo off
SET /P User=Bitte geben Sie den Benutzernamen ein:
echo Username lautet: %User%

net user /Domain %User% | findstr "Konto aktiv","Konto abgelaufen","Letztes Setzen Kennworts","Kennwort uft ab","Letzte Anmeldung"

pause
"

Mit "Kennwort uft ab" konnte ich "Kennwort läuft ab" umgehen, nur mit "Kennwort ab" hat's nicht geklappt, egal, funktioniert!

Jetzt klappt's zumindest komplett und viel schneller als die erste Version, zwar noch nicht ganz fluessig, aber egal

Jetzt hab ich nur noch das Problem mit der Domaene...

Kann man das iwie umgehen? Oder is das "fest" Computer abhaengig in welcher Domaene er sich befindet auf dem die Batch ausgefuehrt wird?

Besten Dank

MfG

KissMyN0se
Bitte warten ..
Mitglied: bastla
22.11.2012 um 15:55 Uhr
Hallo KissMyN0se!

Eine weitere Möglichkeit, nicht nach jeweils einzelnen Wörtern suchen zu lassen, wäre:
net user /Domain %User% | findstr /c:"Konto aktiv" /c:"Konto abgelaufen" /c:"Letztes Setzen des Kennworts" /c:"Kennwort läuft ab" /c:"Letzte Anmeldung"
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch ausgabe zeilenweise stat spaltenweise ausgeben (4)

Frage von sugram zum Thema Batch & Shell ...

Batch & Shell
Nummerierte dateien lücke finden .batch (2)

Frage von franky89 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheit

Millionen Euro in den Sand gesetzt?

(2)

Information von transocean zum Thema Sicherheit ...

Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Erkennung und -Abwehr

Ccleaner-Angriff war nur auf große Unternehmen gemünzt

(10)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Heiß diskutierte Inhalte
Humor (lol)
gelöst Freidach Beitrag (40)

Frage von Penny.Cilin zum Thema Humor (lol) ...

Firewall
gelöst Firewall Firmeneimsatz (22)

Frage von wiesi200 zum Thema Firewall ...

Multimedia & Zubehör
gelöst 8 GB USB Stick besitzt nur noch 4 MB Kapazität (13)

Frage von Gwahlers zum Thema Multimedia & Zubehör ...