2009-08-06 3 views
3

アカウントを取得、私はあなたが使用することができますC#.NET 1.1 + 2003は、プログラム上のWindowsユーザの数が、私は(Windowsの場合)、コンピュータ上のすべてのユーザーアカウントのリストを取得する方法が必要

+1

あなたは「システムの」とはどういう意味ですか? どのようなシステムですか? – Mez

+2

どのシステムのユーザーアカウントですか?開発しているシステムまたはホスト環境(マシン、ドメインなど)? –

+0

ありがとうございます –

答えて

7

を経由してこの情報を取得する必要がありますローカルユーザーとグループ列挙するWMI:上記のコード

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

System.Managementへの参照を必要とし、あなたのマシンの名前と「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(); 
     } 
    } 
} 
関連する問題