用户名由SID?

如果我拥有的是用户的SID,如何确定用户名和域?

ADFind可以做到这一点。 选项列表在这里 。 例如,你可能会这样做,用SID导出用户列表:

adfind -h domaincontroller01:389 -b "CN=Users,DC=domain,DC=com" -f "(objectClass=user)" objectSID displayName 

只要可以到达域控制器,您就可以从任何框中运行ADFind。 很明显,你会用域控制器的名称或IPreplacedomaincontroller01,并改变“CN = Users,DC = domain,DC = com”来反映有问题的用户的path。

PSTools将做到这一点。 把一个SID放在命令行上它会给你用户/组名,反之亦然。

启动Windows PowerShell并运行:

 $strSID="S-1-5-21-500000003-1000000000-1000000003-1001" $uSid = [ADSI]"LDAP://<SID=$strSID>" echo $uSid 

输出应该看起来像这样,

 distinguishedName : {CN=John Doe,OU=Domain Admins,OU=People,OU=xxx,DC=xxx} Path : LDAP://<SID=S-1-5-21-500000003-1000000000-1000000003-1001> 
  1. 打开registry(Windows-Rregistry)
  2. 导航到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
  3. 点击子键(类似S-1-5-19
  4. 看看ProfileImagePath (它会有类似于%SystemDrive%\Documents and Settings\LocalService )。

所以在这个例子中SID S-1-5-19是LocalService