2010-08-05 88 views
1

我試圖檢索Windows首次加載(XP,Vista和7)時實際可見的登錄帳戶。在VB6中枚舉Windows「登錄屏幕」用戶帳戶

我能夠所有賬戶枚舉(感謝這個代碼:freevbcode.com),然而這特定的功能列舉所有系統用戶帳戶(管理員,客戶,HomeGroupUser $,LogMeInRemoteUser等),無論它們出現在日誌是否在屏幕上。我如何區分可見和不可見帳戶?

回答

0

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList有一個列表,從中讀到的DWORD和位,並與1,如果是<> 0(或沒有條目在所有的用戶名),則該帳戶在歡迎屏幕上可見

(注意:那個註冊表鍵和dword值的含義是沒有記錄的AFAIK)

+0

我在XP和7上檢查了這個鍵,它似乎並不全面。例如,Win7僅列出了LogMeInRemoteUser帳戶,忽略了其他枚舉帳戶,例如__vmware_user__(由VMware創建的隱藏帳戶)。 進一步研究,解決方案似乎存在於許多USER_INFO結構之一中。 NetUserGetInfo API(http://msdn.microsoft.com/en-us/library/bb706729.aspx)鏈接到它們中的很多。但不確定哪一個會給出肯定的答案。 – 2010-08-05 18:44:22

+0

@Joe:您可能需要一些額外的檢查,確保該帳戶是像「管理員」或「用戶」等「用戶組」的成員(我認爲這有些暗示,因爲您需要過濾掉系統和禁用的帳戶等) – Anders 2010-08-06 11:14:36