gpt4 book ai didi

vb.net - 如何获取所有本地存储的用户配置文件的用户名和域?

转载 作者:行者123 更新时间:2023-12-02 06:59:19 25 4
gpt4 key购买 nike

如何检索计算机上存储的所有用户配置文件的用户名和域?

下面是用户配置文件管理器的屏幕截图,用于说明我的意思:

User Profiles

最佳答案

配置文件由 SID 映射。映射存储在此注册表项中:

[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList]

您可以使用 WMI enumerate SID 和 resolve他们到用户和域名:

Const HKLM = &h80000002
Const profiles = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"

Set wmi = GetObject("winmgmts://./root/cimv2")
Set reg = GetObject("winmgmts://./root/default:StdRegProv")

reg.EnumKey HKLM, profiles, subkeys
For Each sid In subkeys
Set acct = wmi.Get("Win32_SID.SID='" & sid & "'")
WScript.Echo acct.ReferencedDomainName & "\" & acct.AccountName
Next

如果您仅查找现有配置文件文件夹的用户/域,请检查子项中的 ProfileImagePath 值是否指向现有文件夹:

Const HKLM = &h80000002
Const profiles = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"

Set sh = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set wmi = GetObject("winmgmts://./root/cimv2")
Set reg = GetObject("winmgmts://./root/default:StdRegProv")

reg.EnumKey HKLM, profiles, subkeys
For Each sid In subkeys
reg.GetStringValue HKLM, profiles & "\" & sid, "ProfileImagePath", path
path = sh.ExpandEnvironmentStrings(path)
If fso.FolderExists(path) Then
Set acct = wmi.Get("Win32_SID.SID='" & sid & "'")
WScript.Echo acct.ReferencedDomainName & "\" & acct.AccountName
End If
Next

关于vb.net - 如何获取所有本地存储的用户配置文件的用户名和域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15309535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com