Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 3413 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.

Mit freundlichen Grüßen

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...

Mit freundlichen Grüßen

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

Mit freundlichen Grüßen

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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...