AD:使用可分辨名称查找NT样式名称

在命令行中,如何使用专有名称查找NT样式的名称? 也就是说,我想把“CN =爱丽丝史密斯,OU =总部,DC = Cyber​​dyne,DC =本地”,拿出来“CYBERDYNE \ ASMITH”

编辑:活动目录级别2003年,如果这件事。

我想你是在找sAMAccountname?

尝试以下…

dsquery *“CN = Alice Smith,OU =总部,DC = Cyber​​dyne,DC =本地”-scope base -attr sAMAccountName

虽然这不会得到DOMAIN \前缀(CYBERDYNE)

注意:我认为dsquery只安装在DC上,如果你想在其他地方运行,你可能需要从DC上获取一个副本。

我很早就错过了提出你的问题,或许是为了把你在评论中提到的那些“手工”劳动,拯救给肯·休斯。 要以编程方式执行此操作,请查看使用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