Seite 3 von 6

Verfasst: 10.02.2009 15:47
von CNESM
Hallo Leute,

also die Möglichkeit mit der Registry hab ich gleich zu Beginn ausgeschlossen. Auch die NET Variante hab ich bereits ausgeschlossen. Leider findet er dort aber ebenfalls keine Informationen:
Der Benutzername konnte nicht gefunden werden.

Sie erhalten weitere Hilfe, wenn Sie NET HELPMSG 2221 eingeben.
Wahrscheinlich ist der FullName in unserem Firmennetzwerk nur auf dem Anmelde-Server hinterlegt.
Davon gehe ich stark aus, das es bei uns genauo ist. Gibts eine Möglichkeit, diese Abfrage im Grunde nachzubauen? Sprich: Schicke Stammnummer an den Server und erhalte den Namen. Irgendwie muss das ja auch Vista regeln ...

Verfasst: 11.02.2009 09:17
von Shardik
CNESM hat geschrieben:Leider findet er dort aber ebenfalls keine Informationen:
Zitat:
Der Benutzername konnte nicht gefunden werden.

Sie erhalten weitere Hilfe, wenn Sie NET HELPMSG 2221 eingeben.
NET HELPMSG 2221 hat geschrieben:Der Benutzername konnte nicht gefunden werden.


ERLÄUTERUNG

Sie haben einen unbekannten Benutzernamen angegeben.

AKTION

Überprüfen Sie die Schreibweise des Benutzernamens.
Zur Anzeige einer Liste der Benutzer in der Sicherheitsdatenbank, geben Sie ein:


NET USER
Welche Ausgabe generiert denn "net user"?

Verfasst: 11.02.2009 09:25
von CNESM
Folgendes:
R:\>NET USER

Benutzerkonten für \\HH00408D

-------------------------------------------------------------------------------
Administrator ASPNET Gast
SCBAdmin
Der Befehl wurde erfolgreich ausgeführt.

Verfasst: 11.02.2009 09:42
von jpd
wenn du benutzer der domäne suchst..

dann verwende:
net user /domain
Ciao
jpd

Verfasst: 11.02.2009 11:03
von CNESM
@ jpd

Da kriege ich nur ne ganze Latte von irgendwelchen Domainen, aber daraus irgendwie meinen Namen ableiten zu können, sehe ich nicht.

Verfasst: 11.02.2009 11:13
von jpd
Hi CNESM,

so ist es auch möglich:

net user username /domain

ich gehe davon aus dass alle andere beispiele auch funktionieren,

du hast immer den localen benutzer abgefragt-

bei nicht local user müsstes du den computername bei alleistehende server (workgroup) verwenden,

computername\username


oder den domainname (bei domäne)

domain\username

Ciao
jpd

Verfasst: 11.02.2009 13:04
von CNESM
Yes, das war's:

Code: Alles auswählen

Define FullName.S 
Define Output.S 
Define ProgramID.I 
Define UserID.S = "****" ; <-- Bitte User-ID eintragen 

ProgramID = RunProgram("Net", " User " + UserID+" /domain", "", #PB_Program_Hide | #PB_Program_Open | #PB_Program_Read) 

If ProgramID  
  While ProgramRunning(ProgramID) 
    Output + ReadProgramString(ProgramID) + #CR$ 
  Wend 

  FullName = StringField(Output, 4, #CR$) 
  Debug Trim(Mid(FullName, FindString(UCase(FullName), "NAME", 1) + 4)) 
EndIf
Vielen Dank jod! Vielleicht könnten die andere das auch nochmal testen, damit ich weiß, das das auch ne gängige Lösung ist!

Verfasst: 11.02.2009 13:37
von Shardik
CNESM hat geschrieben:Vielleicht könnten die andere das auch nochmal testen, damit ich weiß, das das auch ne gängige Lösung ist!
Diese Lösung funktioniert bei mir im Firmennetzwerk nicht, weil ich nicht bei einer Domäne angemeldet bin, sondern bei einem Novell Netware Server (Novell Workstation Manager):
net user xxx /domain hat geschrieben:Die Anforderung wird auf einem Domänencontroller für Domäne xxx verarbeitet.

Systemfehler 1355 aufgetreten.

Die angegebene Domäne ist nicht vorhanden oder es konnte keine Verbindung hergestellt werden.
Funktioniert denn eines meiner Beispiele mit NetUserGetInfo_(), wenn Du beim NetUserGetInfo()-Aufruf vor die "P46789" den Domänennamen einträgst, wie "\\123_ADS\P46789" oder "123_ADS\P46789"? Zumal Du geschrieben hattest:
> Auch die NET Variante hab ich bereits ausgeschlossen.

Verfasst: 11.02.2009 15:02
von CNESM
@ Shardik

Ich hab mal ein bissle mit der Funktion NetUserGetInfo_() und den neuen Erkenntnissen rumgespielt, aber trotzdem keine Ausgabe des FullRealNames erwirken können. Vielleicht man ich auch nur wieder etwas falsch :freak:

Verfasst: 11.02.2009 15:22
von bobobo
code geht (mit ohne unicode)

mit unicode wie folgt

Code: Alles auswählen

..
..
..
    Output + ReadProgramString(ProgramID) + #CR$ 
  Wend 
  output.s=PeekS(@output,Len(output),#PB_Ascii)  ; dies hier rein tun
  FullName = StringField(Output, 4, #CR$) 
..