psgetsid [\\computer[,computer[,...] | @file] [-u username [-p password]]] [account|SID]
-u Specifies optional user name for login to remote computer.
-p Specifies optional password for user name. If you omit this you will be prompted to enter a hidden password.
Account PsGetSid will report the SID for the specified user account rather than the computer.
SID PsGetSid will report the account for the specified SID.
Computer Direct PsGetSid to perform the command on the remote computer or computers specified. If you omit the computer name PsGetSid runs the command on the local system, and if you specify a wildcard (\\*), PsGetSid runs the command on all computers in the current domain.
@file PsGetSid will execute the command on each of the computers listed in the file.
9条答案
按热度按时间00jrzges1#
如果您查看以下键之一:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist
您可以在那里找到一个SID列表,其中包含各种值,包括包含用户名的“主路径”。
我不确定这有多可靠,我不建议你乱搞这个,除非你真的确定你在做什么。
2hh7jdfx2#
可以从WMI查询此信息。下面的命令将输出一个表,每个用户都有一行沿着每个用户都有一个SID。
您也可以将此信息导出为CSV:
我在Vista和7上使用过这个。有关更多信息,请参见WMIC - Take Command-line Control over WMI。
m2xkgtsf3#
1.打开注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
1.创建一个循环以获取所有子键
1.您感兴趣的子项是那些以[S-1-5-21-]开头的子项,这意味着user(请参阅项名称[ProfileImagePath],它们总是以路径c:\Users开头)
1.以[S-1-5-21-12]开头的都是本地用户
1.以[S-1-5-21-13]开头的用户都是以前登录到机器上的网络用户[* 如果加入到Domained网络 *]。
to94eoyn4#
通过在注册表中搜索我的用户名,我发现
e37o9pze5#
您可以使用来自Microsoft SysInternals团队的命令PSGetSid。
下载URL:http://technet.microsoft.com/en-gb/sysinternals/bb897417.aspx
用途:
示例:
注意:
更新
如果您使用PowerShell,以下内容可能有助于解析列出的任何AD用户:
您还可以进一步细化SID过滤器,以便仅拉回那些将解析为AD帐户的SID(如果您愿意);关于SID结构的更多信息,请参见:https://technet.microsoft.com/en-us/library/cc962011.aspx
prdp8dxp6#
在
HKEY_USERS\oneyouwanttoknow\
中,您可以查看\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
,它将显示他们的配置文件路径。c:\users\whothisis\Desktop
等klr1opcd7#
通过一点创造性的编程
1.在HKEY_USERS中枚举那些有趣的数字键的键...
1.枚举HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\中的键
你会发现同样的数字...现在在这些键中查看String值:ProfileImagePath ="SomeValue",其中的值为:
"%systemroot%\system32\config\systemprofile"...对这个不感兴趣因为它不是目录路径...
% SystemDrive %\Documents and Settings\LocalService-"Local Services" % SystemDrive %\Documents and Settings\NetworkService "NETWORK SERVICE"
或
% SystemDrive %\Documents and Settings\USER_NAME,在大多数未篡改的系统中,它直接转换为“USERNAME”值,即其中用户在几周后没有更改他们的用户名或明确更改路径……
xoefb8l88#
gab6jxml9#
正确的方法是利用SAM注册表配置单元(在Windows 10上,这需要
NT AUTHORITY\SYSTEM
权限)。您需要的信息在密钥中:HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
。每个子键都是用户名,并且每个子键中的默认值是二进制整数。此值(转换为十进制)实际上对应于SID的最后一个块。
以“Administrator”为例,默认情况下它与整数0x 1f 4(或500)相关联。
因此,理论上,您可以基于
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList
键和/或HKEY_USERS
键的子键名称构建一个SIDS列表,解析出最后一个连字符(-)之后的值,并将其与SAM配置单元中的信息进行比较。如果您没有
NT AUTHORITY\SYSTEM
权限,那么下一个最佳方法可能是遵循此处答案中描述的其他方法。参考:https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/81d92bba-d22b-4a8c-908a-554ab29148ab