![]() |
Loginname - Nachname Hallo, hat einer eine Idee wie ich aus einem Username (z.B. testuser) unter Windows den Nachnamen herausbekommen und in eine Variable bzw. Textdatei speichern kann? Angenommen ich wäre mit testuser in einer Windowsdomäne angemeldet und führe den Befehl net user %username% /domain aus bekomm ich ja nen ganzen Schwung an Daten, ich bräuchte aber nur den Nachnamen. Heraus würde sowas kommen: Code: Die Anforderung wird auf einem Domänencontroller für Domäne XXX verar |
<<Sorry, war ne blödsinnige Frage von mir.>> Edit: Für die DOS-Box: Code: for /f "tokens=1-4" %a in ('net user %username% /domain ^| findstr "Vollst"') do echo %c Code: for /f "tokens=1-4" %%a in ('net user %%username%% /domain ^| findstr "Vollst"') do echo %%c > %systemdrive%\domainuser.log Oder habe ich Dich jetzt komplett falsch verstanden? |
Danke, das hilft mir schon mal sehr viel weiter! |
Ich spüre leichte Schwingungen der Unzufriedenheit. Was stört Dich? Das Komma? %ComSpec% |
Zitat:
|
Wenn Du den Ablauf genauer beschreiben würdest, wäre es einfacher eine Lösung zu erarbeiten. Grundsätzlich gibt es zwei Möglichkeiten: 1. Das Zeichen "," durch "" ersetzen. Was aber gar nicht so trivial ist. 2. Temporär in eine Datei schreiben und mit einer zweiten for-Schleife ("," als Delimiter setzen) den ersten Token grabschen (recht trivial). Willst Du das bei einem User machen oder erstellst Du quasi eine Sammeldatei mit allen Usern drin oder ist das nur akademisches Gefrickel? Soll damit eine Textdatei gefüllt oder Variablen gesetzt werden? Fragen über Fragen. %ComSpec% P.S.: Lösungsvorschläge kann ich erst wieder nach dem Einzug ins Finale geben ;) Edit: Tritt das Komma in Natura auf? In unserer Domäne ist die Geschichte kommafrei. |
Zitat:
Ich hatte schon geschaut direkt eine LDAP-Abfrage zu machen, aber das scheint mir irgendwie zu hoch zu sein. :schmoll: |
Sollen die Namen lokal abgelegt werden oder auf einem Share? Wenn auf einem Share, eine Datei pro User oder eine Sammelliste? %ComSpec% |
Ich glaub ich habs. Durch Deinen 2. Tipp hab ich noch ein delims eingebaut. Das hier scheint das gewünschte anscheinend zu machen: Code: for /f "tokens=1-4 delims=, " %a in ('net user %username% ^| findstr "Vollst"') do echo %c |
Zitat:
AFAIR holt man sich mit dem Standarddelimiter (Space bzw Tab), erst den Token, schreibt den in eine temporäre Datei. Dann macht man eine ähnliche Schleife (for /f "tokens=1,2 delims=," %a in ('more temp.log') do echo %a) und holt sich den Token vor dem Komma. Allerdings bin ich auch kein Held der For-Schleife. Nur kann immer nur einen Delimiter verwenden, weswegen es mir unmöglich zu sein scheint, in einem Rutsch links Tab zu nehmen und rechts das Komma. %ComSpec% |
Zitat:
Hm, also bei mir klappts jetzt so wie ich das wollte. Achso, die Ausgabe von net user %username% /domain scheint auf den Zielrechnern etwas anders zu sein. Da sieht die relevante Zeile nämlich so aus: Code: fullname Nachname, Vorname |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 Uhr. |
Copyright ©2000-2025, Trojaner-Board