Trojaner-Board

Trojaner-Board (https://www.trojaner-board.de/)
-   Alles rund um Windows (https://www.trojaner-board.de/alles-rund-um-windows/)
-   -   Loginname - Nachname (https://www.trojaner-board.de/54697-loginname-nachname.html)

cosinus 25.06.2008 13:01

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

Benutzername                        testuser
Vollständiger Name                  Nachname, Vorname
Beschreibung                        <gruppe>
Benutzerbeschreibung
Ländereinstellung                  000 (Standardsystemvorgabe)
Konto aktiv                        Ja
Konto abgelaufen                    Nie

Letztes Setzen des Kennworts        6/2/2008 9:22 AM
Kennwort läuft ab                  8/1/2008 9:22 AM
Kennwort änderbar                  7/2/2008 9:22 AM
Kennwort erforderlich              Ja
Benutzer kann Kennwort ändern      Ja

Erlaubte Arbeitsstationen          Alle
Anmeldeskript                      logon.bat
Benutzerprofil
Basisverzeichnis                    \\***\XXX\user\testuser
Letzte Anmeldung                    6/25/2008 9:20 AM

Erlaubte Anmeldezeiten              Alle

Lokale Gruppenmitgliedschaften
Globale Gruppenmitgliedschaften    XXX
Der Befehl wurde erfolgreich ausgeführt.

Was ich nun bräuchte wäre "Nachname". Ich hab im Internet recht viel Code gesehen, der mir aber zu "fett" und kompliziert erscheint, nur um einen Nachnamen, der ja abhängig ist vom Username (Loginname) herauszubekommen.

MightyMarc 25.06.2008 14:04

<<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
Für ne Batchdatei z.B.:
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?

cosinus 25.06.2008 16:19

Danke, das hilft mir schon mal sehr viel weiter!

MightyMarc 25.06.2008 17:27

Ich spüre leichte Schwingungen der Unzufriedenheit. Was stört Dich? Das Komma?

%ComSpec%

cosinus 25.06.2008 17:47

Zitat:

Zitat von %ComSpec% (Beitrag 349285)
Ich spüre leichte Schwingungen der Unzufriedenheit. Was stört Dich? Das Komma?

%ComSpec%

Hm jo. Nun wo Du es sagst. Ich bin leider nicht allzu fit was den FOR-Befehl angeht. Wenn ich ein eol=, bleibt das Komma bestehen. :(

MightyMarc 25.06.2008 18:17

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.

cosinus 26.06.2008 07:53

Zitat:

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.
Ich hatte vor, quasi eine universelle Batchdatei zu erstellen. Sie sollte, sobald sich ein User einloggt, aus dem "net user" Befehl seinen Nachnamen herausbekommen um den dann später wieder verwenden zu können. Wenn das nur bei einem einzigen user wäre, würde ich das wohl schon längst ganz einfach gemacht haben. :p
Ich hatte schon geschaut direkt eine LDAP-Abfrage zu machen, aber das scheint mir irgendwie zu hoch zu sein. :schmoll:

MightyMarc 26.06.2008 08:02

Sollen die Namen lokal abgelegt werden oder auf einem Share? Wenn auf einem Share, eine Datei pro User oder eine Sammelliste?

%ComSpec%

cosinus 26.06.2008 08:15

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
Superdank für Deine Hilfe! :aplaus:

MightyMarc 26.06.2008 08:25

Zitat:

Zitat von root24 (Beitrag 349430)
Das hier scheint das gewünschte anscheinend zu machen:

Was mich jetzt doch wundern würde. Wenn du einfach delims=, setzt, liefert Dir %a Vollständiger Name Nachname und %b Vorname.
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%

cosinus 26.06.2008 08:32

Zitat:

Zitat von %ComSpec% (Beitrag 349433)
Was mich jetzt doch wundern würde. Wenn du einfach delims=,, liefert Dir %a Vollständiger Name Nachname und %b Vorname.

%ComSpec%

delims=, ??

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
Aber Deine Hilfe hat mich wirklich weitergebracht! :daumenhoc


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 Uhr.

Copyright ©2000-2025, Trojaner-Board


Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131