簡體   English   中英

如何獲取與PC關聯的所有windows用戶帳戶

[英]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只是為了排除SYSTEMLOCAL SERVICENETWORK SERVICE帳戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM