Seite 2 von 6

Verfasst: 09.02.2009 17:03
von Shardik
Rings hat geschrieben:Einfach unter benutzerkonten den Namen ändern
Das ist natürlich die einfachste Möglichkeit, die User-ID ("P46789" bei CNESM) und den User-Namen (Beispiel: "Max Mustermann") gleich zu setzen. Aber erzähle dies einmal unseren Administratoren, die mehr als 2300 Anwender verwalten müssen. Wenn da jeder Anwender (oder Anwendungsprogrammierer) seine Sonderwünsche hätte... :lol:

Verfasst: 09.02.2009 17:52
von Rings
Shardik hat geschrieben:
Rings hat geschrieben:Einfach unter benutzerkonten den Namen ändern
Das ist natürlich die einfachste Möglichkeit, die User-ID ("P46789" bei CNESM) und den User-Namen (Beispiel: "Max Mustermann") gleich zu setzen. Aber erzähle dies einmal unseren Administratoren, die mehr als 2300 Anwender verwalten müssen. Wenn da jeder Anwender (oder Anwendungsprogrammierer) seine Sonderwünsche hätte... :lol:
Nein, ich meinte man sieht dann beide Namen.
Also den Angelegten und den vom User veränderten.
So wie es cnesm meint.

Verfasst: 09.02.2009 21:06
von Shardik
Rings hat geschrieben:Nein, ich meinte man sieht dann beide Namen.
Also den Angelegten und den vom User veränderten.
So wie es cnesm meint.
Damit wir nicht aneinander vorbei reden:

Wenn man als Administrator über Start/Systemsteuerung/Benutzerkonten einen definierten User auswählt, kann man den Namen ändern, der im Anmeldebildschirm angezeigt wird. Dies ist im Microsoft-Speak der "FullName".

In vielen Firmennetzwerken ist aber die Anmeldung über die Willkommensseite mit Auflistung der eingerichteten User und die schnelle Benutzerumschaltung aus Sicherheitsgründen abgeschaltet (über Systemsteuerung/Benutzerkonten/Art der Benutzeranmeldung ändern; ein Admin regelt dies über eine entsprechende Policy-Einstellung).

Melde ich mich aber über die "abgespeckte" Anmeldung oder ein Novell-Login an, dann muß ich die User-ID ("Name" in Microsoftisch, wahrscheinlich muß CNESM hier "P46789" eingeben) eintippen. Die User-ID erscheint bei dieser Anmeldung nirgendwo, sondern man muß sie bei jeder Anmeldung aus Sicherheitsgründen neu eintippen und sie ist relativ kryptisch...

Klarer wird dies, wenn man die Management-Konsole startet und "Lokale Benutzer und Gruppen" auswählt und dann "Benutzer" (am besten durch Rechtsklick auf Arbeitsplatz und Auswahl von "Verwalten"). Wenn man auf der linken Seite "Benutzer" aktiviert hat, erscheinen auf der rechten Seite die Einträge "Name", "Vollständiger Name" und "Beschreibung". "Name" müßte dann bei CNESM "P46789" lauten (von mir User-ID genannt), "Vollständiger Name" aber "Max Mustermann" (FullName).

Außerdem muß man davon ausgehen, daß im Firmenumfeld der normale Anwender mitnichten Administrator-Rechte besitzt und einfach einmal seinen Anmeldenamen ändern kann...:wink:
Ich habe es gerade extra noch einmal als User mit eingeschränkten Rechten ausprobiert: ich konnte wie erwartet nur mein Foto oder mein Kennwort ändern, aber nicht meinen Namen ("FullName").


CNESM,

ich habe mein 2.Beispiel jetzt auch in meinem Heimnetzwerk getestet, noch einen kleinen Fehler gefunden (als Länge des Unicode-Strings muß 128 statt 255 angegeben werden) und auch direkt in meinem 2.Beispiel korrigiert. Dieses korrigierte 2.Beispiel läuft jetzt auch korrekt bei mir zuhause, d.h. ohne DNS- oder Anmelde-Server, nur mit einer FritzBox als DHCP-Server.

Verfasst: 10.02.2009 09:04
von CNESM
Hi,

@ Shardik

Also das Beispiel gibt mir ebenfalls nur die ID aus, der Username ist weiterhin leer.

@ Rings

Zu Hause mit Admin-Rechte wäre das ne Option, aber hier habe ich keine Adminrechte und damit verbunden keine Möglichkeit, dies anzupassen. Auch die Option "Arbeitsplatz" -> "Verwalten" ist bei uns nur mit Adminrechten möglich.

@ All

Wenn ich eine Datei mit einem rechten Mausklich anklicke und dort auf "Eigenschaften" gehe, finde ich unter "Sicherheit" und der Option "Gruppen- und Benutzernamen" meine ID und meinen Namen. Bei sieht das wie folgt aus:
SYSTEM
Max, Mustermann (P46789@asd.com)
Administratoren (HH00408D\Administratoren)
Vielleicht gibt das irgendwie Aufschluss für einen Lösungsansatz...

Verfasst: 10.02.2009 12:46
von bobobo
registry ?

HKLM\Software\Microsoft\Windows NT\CurrentVersion\winlogon

enthält so einiges, was eventuell verwertbar sein könnte.

Verfasst: 10.02.2009 12:49
von DarkDragon
CNESM hat geschrieben:Hi,

@ Shardik

Also das Beispiel gibt mir ebenfalls nur die ID aus, der Username ist weiterhin leer.
Kann es sein, dass der String in Unicode oder UTF8/16/32 ist und nicht in ASCII, sodass der String leer ist?

@bobobo:

Kann man auf die Registry ohne Admin-Rechte zugreifen?

Verfasst: 10.02.2009 12:51
von bobobo
kommt drauf an
lesen sollte gehen

versuch es doch mal

(im übrigen kann man die registry sogar von entfernten rechnern tlw. auslesen -- rpc und so)

Verfasst: 10.02.2009 13:04
von ts-soft
> Kann man auf die Registry ohne Admin-Rechte zugreifen?
Lesen geht ohne probleme, man sollte aber drauf achten, auch nur rechte
zum lesen anzufordern, was bei manchen CodeSnippets hier nicht der Fall ist,
also: #KEY_READ und nicht #KEY_ALL_ACCESS

Verfasst: 10.02.2009 13:29
von Shardik
DarkDragon hat geschrieben:Kann es sein, dass der String in Unicode oder UTF8/16/32 ist und nicht in ASCII, sodass der String leer ist?
FullName wird als Unicode-String ausgelesen und mit WideCharToMultiByte() in einen ASCII-String umgewandelt...:wink:


DarkDragon, bobobo und ts-soft:

Ich fürchte, daß die Registry keine große Hilfe sein wird. :roll:
Ich habe gerade einmal die komplette lokale Registry nach meinem Vor- und Nachnamen durchsucht - Fehlanzeige (außer in einem Novell Groupwise-Eintrag für mein Adressbuch; nur wenn CNESM Novell Groupwise einsetzt, wäre dies eine Möglichkeit). Wahrscheinlich ist der FullName in unserem Firmennetzwerk nur auf dem Anmelde-Server hinterlegt. Bei Ausführung meiner beiden Code-Beispiele erhalte ich aber korrekt meine User-ID (z.B. wie "P46789") und meinen User-Namen (Vor- und Nachname) angezeigt. Ich fürchte schon fast, daß es mit CNESMs Vista zusammenhängt, weil es bei mir unter XP sowohl im Firmennetzwerk als auch im Heimnetzwerk problemlos funktioniert.

Verfasst: 10.02.2009 14:32
von Shardik
Ich habe noch eine andere Möglichkeit gefunden, Informationen über einen Benutzer zu ermitteln. Und zwar in der Eingabeaufforderung:

Code: Alles auswählen

net user P46789
In PureBASIC 4.20 liefert das folgende Code-Beispiel bei mir unter Windows XP SP2 ebenfalls den voll qualifizierten Benutzernamen (FullName):

Code: Alles auswählen

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

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

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

  FullName = StringField(Output, 2, #CR$)
  Debug Trim(Mid(FullName, FindString(UCase(FullName), "NAME", 1) + 4))
EndIf