AD:使用 DistinguishedName 查找 NT 样式名称

AD:使用 DistinguishedName 查找 NT 样式名称

从命令行,如何使用专有名称查找 NT 样式的名称?也就是说,我想输入“CN=Alice Smith,OU=Head Office,DC=Cyber​​dyne,DC=local”并输出“CYBERDYNE\ASmith”

编辑:Active Directory 级别 2003(如果重要的话)。

答案1

我认为您正在寻找 sAMAccountname??

请尝试以下操作...

dsquery * “CN=Alice Smith,OU=Head Office,DC=Cyber​​dyne,DC=local”-scope base-attr sAMAccountName

尽管这没有得到 DOMAIN\ 前缀 (CYBERDYNE)

注意:我认为 dsquery 仅安装在 DC 上,如果您想在其他地方运行它,则可能必须从 DC 获取副本...

..肯

答案2

也许我没能及时回答你的问题,以节省你在给 Ken Hughes 的评论中提到的“手工”劳动。要以编程方式执行此操作,你正在考虑使用iADsNameTranslate接口。您可以从中获得很多好处,用于翻译 AD 帐户的各种可能名称(GUID、SID、samAccountName、displayName、DN 等)。

例子:

Option Explicit

' Constants for the iADsNameTranslate object. (from http://msdn.microsoft.com/en-us/library/aa772267(VS.85).aspx)
Const ADS_NAME_TYPE_NT4 = 3
Const ADS_NAME_TYPE_1779 = 1

Const ADS_NAME_INITTYPE_GC = 3

Dim objNameTranslate 
Dim strUsersamAccountName

' Create a nametranslate object and init to talk to a global catalog server
Set objNameTranslate = CreateObject("NameTranslate")
objNameTranslate.Init ADS_NAME_INITTYPE_GC, ""

' We're looking for a distinguished name, aka 1779
objNameTranslate.Set ADS_NAME_TYPE_1779, "CN=Bob, OU=blah, ..."

' Translate into the user's samAccountName
strUsersamAccountName = objNameTranslate.Get(ADS_NAME_TYPE_NT4)

WScript.Echo strUsersamAccountName

相关内容