2009-08-06 5 views
3

가 나는 (윈도우) 컴퓨터의 모든 사용자 계정의 목록을 얻을 수있는 방법이 필요합니다 계정 얻을, 나는 C# .NET 1.1 + 2003는, 프로그램 Windows 사용자의 수는

+1

은 "시스템에"무엇을 의미합니까? 어떤 시스템입니까? – Mez

+2

어떤 시스템에 사용자 계정이 있습니까? 개발중인 시스템 또는 호스트 환경 (기계, 도메인 등)? –

+0

누구든지 환영합니다 –

답변

7

당신은 사용할 수 있습니다 통해이 정보를 얻을 필요 WMI는 로컬 사용자 및 그룹 열거하기 : 위의 코드는 System.Management에 대한 참조를 필요로

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(); 
    } 
} 

을 당신은 당신의 컴퓨터의 이름으로 'mypcname'을 교체해야합니다.

4

필요한 정보를 얻으려면 WMI를 사용해야합니다.

System.Management에 대한 참조를 추가하고 아래 코드는 할 것입니다 정확히 :) 필요

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(); 
     } 
    } 
}