[英]How to get all windows user accounts associated with a PC
我的 work-pc 用戶帳戶與我工作的活動目錄域相關,但我還有 3 個本地 Windows 用戶帳戶。 我想以編程方式獲取這 4 個帳戶的用戶名。 我試過使用 WMI 和一些 powershell 命令,但我只能獲得 3 個本地帳戶或所有域帳戶(我和我所有的同事)。 如果 go 到控制面板中的用戶帳戶,我可以看到我需要什么。 有沒有一種方法可以讓域帳戶只與特定機器相關。
基本上我想要所有這些:
該配置文件列表保存在注冊表中:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
因此,您可以從代碼中讀取該注冊表項。 這些密鑰包含帳戶的 SID,然后您可以將其轉換為DOMAIN\username
格式,如下所示:
using (var profileList = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList")) {
foreach (string keyName in profileList.GetSubKeyNames()) {
using (var profile = profileList.OpenSubKey(keyName)) {
if ((int) profile.GetValue("FullProfile", 0) != 1) continue;
var sid = new SecurityIdentifier(keyName);
Console.WriteLine(sid.Translate(typeof(NTAccount)));
}
}
}
檢查FullProfile
值是否為1
只是為了排除SYSTEM
、 LOCAL SERVICE
和NETWORK SERVICE
帳戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.