2009-08-06 13 views
3

ich einen Weg brauchen eine Liste aller Benutzerkonten auf einem (Windows) Computer zu bekommen, muss ich über C# .NET 1,1 + 2003Programatically erhalten die Anzahl der Windows-Benutzerkonten

+1

Was meinst du mit „in einem System“? Welches System? – Mez

+2

Benutzerkonten auf welchem ​​System? Das System, das Sie entwickeln, oder die Hostumgebung (Maschine, Domäne usw.)? –

+0

ist da jemand bitte –

Antwort

7

Sie können diese Informationen erhalten, nutzen WMI lokale Benutzer und Gruppen aufzuzählen:

class Program 
{ 
    static void Main(string[] args) 
    { 
     SelectQuery sQuery = new SelectQuery("Win32_UserAccount", "Domain='mypcname'"); 

     try 
     { 
      ManagementObjectSearcher mSearcher = new ManagementObjectSearcher(sQuery); 

      Console.WriteLine("User Accounts"); 
      Console.WriteLine(); 

      foreach (ManagementObject mObject in mSearcher.Get()) 
      { 
       Console.WriteLine("Account {0}", mObject["Name"]); 
       foreach (PropertyData prop in mObject.Properties) 
       { 
        Console.WriteLine("Name: {0}\tValue: {1}", prop.Name, prop.Value); 
       } 
       Console.WriteLine(); 
      } 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.ToString()); 
     } 

     Console.ReadKey(); 
    } 
} 

der obige Code einen Verweis auf System.Management erfordert, und Sie müssen ‚mypcname‘ mit dem Namen Ihrer Maschine zu ersetzen.

4

Sie müssen WMI verwenden, um die benötigten Informationen zu erhalten.

einen Verweis auf System.Management hinzufügen und der Code wird im Folgenden genau das tun, was Sie brauchen :)

using System; 
using System.Management; 

namespace ConsoleApplication5 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_UserAccount Where LocalAccount = True"); 
      ManagementObjectCollection results = mos.Get(); 

      foreach (ManagementObject user in results) 
      { 
       Console.WriteLine("Account Type: " + user["AccountType"].ToString()); 
       Console.WriteLine("Caption: " + user["Caption"].ToString()); 
       Console.WriteLine("Description: " + user["Description"].ToString()); 
       Console.WriteLine("Disabled: " + user["Disabled"].ToString()); 
       Console.WriteLine("Domain: " + user["Domain"].ToString()); 
       Console.WriteLine("Full Name: " + user["FullName"].ToString()); 
       Console.WriteLine("Local Account: " + user["LocalAccount"].ToString()); 
       Console.WriteLine("Lockout: " + user["Lockout"].ToString()); 
       Console.WriteLine("Name: " + user["Name"].ToString()); 
       Console.WriteLine("Password Changeable: " + user["PasswordChangeable"].ToString()); 
       Console.WriteLine("Password Expires: " + user["PasswordExpires"].ToString()); 
       Console.WriteLine("Password Required: " + user["PasswordRequired"].ToString()); 
       Console.WriteLine("SID: " + user["SID"].ToString()); 
       Console.WriteLine("SID Type: " + user["SIDType"].ToString()); 
       Console.WriteLine("Status: " + user["Status"].ToString()); 
      } 
      Console.ReadKey(); 
     } 
    } 
} 
Verwandte Themen