Wie bekomme ich eine Liste von lokalen Windows-Benutzern (nur die Benutzer, die auf dem Windows-Anmeldebildschirm erscheinen)
Ich habe viele Methoden mit Windows Principle Library & amp; WMI Wählen Sie Befehle. Ich bekomme Administrator, Gast & amp; einige andere bizarre Konten (VUSRNEIL-DELL, $ HOMEGROUPUSER, ASPNET ... etc.)
Keines dieser 3 Benutzerkonten erscheint auf dem Anmeldebildschirm. Wie kann ich zwischen diesen Benutzertypen unterscheiden?
Ich schreibe in C #
Fügen Sie einfach einen Verweis auf System.Management
in einer Konsolenanwendung hinzu und versuchen Sie diesen Code:
Wenn Sie WMI zum Abfragen von Win32_UserAccount
verwenden, können Sie nur Elemente anzeigen, die die folgenden Bedingungen erfüllen:
AccountType
hat das UF_NORMAL_ACCOUNT
-Flag. Disabled
ist false
. Lockout
ist false
. LocalAccount
ist true
. SIDType
ist SidTypeUser
. Wenn Sie WMI nicht benutzen können (oder Sie es nicht benutzen wollen), müssen Sie ein bisschen mehr Arbeit erledigen, im Grunde müssen Sie NetGroupGetUsers Funktion zum Aufzählen aller Benutzer. In diesem Artikel zu CodeProject finden Sie ein Beispiel.
Wenn Sie eine Wrapper-Lösung verwenden möchten, bietet NuGet das Paket "Continuous.Management" - ein Open-Source-Projekt: Ссылка
Damit erhalten Sie eine Liste aller Benutzerkonten, ihrer Domain, des vollständigen Namens und der SID.
%Vor%Tags und Links c# wmi user-accounts userprincipal