AD: Nome do estilo de pesquisa NT usando distinguishedname

1

Na linha de comando, como posso procurar um nome no estilo NT usando um nome distinto? Ou seja, quero colocar "CN = Alice Smith, UO = Sede, DC = Cyberdyne, DC = local" e sair "CYBERDYNE \ ASmith"

Editar: nível do Active Directory 2003, se isso for importante.

    
por DrStalker 20.07.2009 / 09:38

2 respostas

1

Acho que você está procurando o sAMAccountname

tente o seguinte ...

dsquery * "CN = Alice Smith, OU = Sede, DC = Cyberdyne, DC = local" -scope base -attr sAMAccountName

Embora isso não tenha o prefixo DOMAIN \ (CYBERDYNE)

Nota: Eu acho que dsquery está instalado apenas no DC, você pode ter que pegar uma cópia de um DC se você quiser executá-lo em outro lugar ...

.. Ken

    
por 20.07.2009 / 10:40
4

Senti falta de sua pergunta com antecedência, talvez, para poupar o trabalho "à mão" que você mencionou em seu comentário a Ken Hughes. Para fazer isso de forma programática, você está usando a interface iADsNameTranslate . Você pode obter um monte de milhagem para lidar traduzindo os vários nomes possíveis de uma conta do AD (GUID, SID, samAccountName, displayName, DN, etc).

Exemplo:

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
    
por 20.07.2009 / 13:41