Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
vollständiger Benutzername rausfinden
Behoernchen
myCSharp.de - Member



Dabei seit:
Beiträge: 67

Themenstarter:

vollständiger Benutzername rausfinden

beantworten | zitieren | melden

Hallo zusammen,
hab nen kleines Problem und find irgendwie nichts passendes zur Lösung.

Ich würde gerne zu dem Windows-Login-Benutzernamen (in diesem Fall ein Kürzel) den dazu entsprechenden vollständigen Namen des Benutzers haben.. Also Vorname und Nachname. Irgendwo muss das gespeichert sein, denn ich logge mich zwar mit dem Kürzel ein, aber bei der Startleiste unter WinXp steht ganz oben mein vollständiger Name.

Weiß jemand ob es eine Möglichkeit gibt an diesen vollständigen Namen zu gelangen.


Enviroment.UserName
liefert halt immer nur das Kürzel. Das bringt mir aber leider nichts.
In diversen Foren oder bei Google hab ich dazu leider auch nichts passendes gefunden.
private Nachricht | Beiträge des Benutzers
nin
myCSharp.de - Member

Avatar #avatar-2166.gif


Dabei seit:
Beiträge: 738
Herkunft: graz,AT

beantworten | zitieren | melden

vielleich(!)
mit dem WMI Code Generator nach dem Registrierungsname suchen:

root\\CIMV2
Win32_OperatingSystem
RegisteredUser
private Nachricht | Beiträge des Benutzers
Borg
myCSharp.de - Member



Dabei seit:
Beiträge: 1.529
Herkunft: Berlin, Germany

beantworten | zitieren | melden

System.Security.Principal.WindowsIdentity.GetCurrent().Name liefert aber - glaube ich - auch nur den Login-Namen.
Ansonsten musst du die WinAPI-Funktion NetUserGetInfo benutzen.
private Nachricht | Beiträge des Benutzers
nin
myCSharp.de - Member

Avatar #avatar-2166.gif


Dabei seit:
Beiträge: 738
Herkunft: graz,AT

beantworten | zitieren | melden

dieser minimalistische code aus dem WMI code generator sollte den namen ausgeben, auf den der rechner registriert ist.


ManagementObjectSearcher searcher2 = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_OperatingSystem");
            foreach (ManagementObject queryObj in searcher2.Get())
            {
                lblname.Text = queryObj["Organization"].ToString();//Lizensinhaber
            }
private Nachricht | Beiträge des Benutzers
Borg
myCSharp.de - Member



Dabei seit:
Beiträge: 1.529
Herkunft: Berlin, Germany

beantworten | zitieren | melden

@nin: Nur leider war dieser Name nie gesucht. Es geht um den vollständigen Benutzernamen, den man in der Computerverwaltung zusätzlich zum Benutzernamen (= Login-Name) angeben kann. Der Explorer zeigt diesen, wenn er vorhanden ist, im Startmenü an.
private Nachricht | Beiträge des Benutzers
Behoernchen
myCSharp.de - Member



Dabei seit:
Beiträge: 67

Themenstarter:

beantworten | zitieren | melden

genau der ist gesucht

inzwischen hab ich ihn dank des Tools auch gefunden, wenn auch unter anderen Einstellungen

falls es wen interessiert hier der Code:


               String userKuerzel = Enviroment.UserName;
                ManagementObjectSearcher searcher =
                    new ManagementObjectSearcher("root\\CIMV2",
                    "SELECT * FROM Win32_UserDesktop");

                foreach (ManagementObject queryObj in searcher.Get())
                {
                     String temp = queryObj["Element"].ToString();
                    if (temp.ToLower().Contains(userKuerzel.ToLower()))
                    {
                        ManagementObjectSearcher searcher2 =
                            new ManagementObjectSearcher("root\\CIMV2",
                            "SELECT * FROM Win32_UserAccount where name='" +   
                             userKuerzel + "'");

                        foreach (ManagementObject queryObj2 in searcher2.Get())
                        {
                             MessageBox.Show(queryObj2["FullName"].ToString());
                        }
                     }
                }

nicht ganz so elegant wie ich gedacht hatte aber gut was solls *g*
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Behoernchen am .
private Nachricht | Beiträge des Benutzers
Borg
myCSharp.de - Member



Dabei seit:
Beiträge: 1.529
Herkunft: Berlin, Germany

beantworten | zitieren | melden

Ich vermute mal, da ist NetUserGetInfo kürzer, einfacher und performanter.
private Nachricht | Beiträge des Benutzers