VBS : Trouver le "CN" à partir du "samAccountName ?
1 réponse
Olivier G.
Bonjour,
Je suis en train de developper un VBScript afin de désactiver un utilisateur
dans un AD 2003 à partir du "samAccountName" sans connaitre le "CN" ,
seulement je n'y arrive pas.
A partir du "samAccountName", mon script est pour le moment capable de me
dire s'il existe ou non dans l'AD, par contre impossible d'éditer l'objet CN
sans connaitre sa valeur.
En gros la quetion est comment fait t'on pour obtenir le "CN" à partir du
"samAccountName"
Voici un bout du script :
'--- Lecture du fichier des utilisateurs à désactiver -------
WScript.Echo " Etape n°1 - Lecture du fichier des users à désactiver..."
WScript.Echo ""
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strDisabledUserADFile,1,False)
While Not objFile.AtEndOfStream
strRecord = objFile.ReadLine
strUserLogonName = strRecord
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText =
"<LDAP://"&strRootDomaine&">;(&(objectCategory=User)" & "(samAccountName=" &
strUserLogonName & "));samAccountName;subtree"
Set objRecordSet = objCommand.Execute
If objRecordset.RecordCount = 0 Then
WScript.Echo " UserLogonName : " & strUserLogonName & " n'existe
pas."
Else
Je suis en train de developper un VBScript afin de désactiver un utilisateur dans un AD 2003 à partir du "samAccountName" sans connaitre le "CN" , seulement je n'y arrive pas. A partir du "samAccountName", mon script est pour le moment capable de me dire s'il existe ou non dans l'AD, par contre impossible d'éditer l'objet CN sans connaitre sa valeur.
En gros la quetion est comment fait t'on pour obtenir le "CN" à partir du "samAccountName"
Voici un bout du script :
'--- Lecture du fichier des utilisateurs à désactiver -------
WScript.Echo " Etape n°1 - Lecture du fichier des users à désactiver..." WScript.Echo "" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile(strDisabledUserADFile,1,False)
While Not objFile.AtEndOfStream strRecord = objFile.ReadLine
strUserLogonName = strRecord Set objConnection = CreateObject("ADODB.Connection") objConnection.Open "ProvidersDSOObject;" Set objCommand = CreateObject("ADODB.Command") objCommand.ActiveConnection = objConnection objCommand.CommandText = "<LDAP://"&strRootDomaine&">;(&(objectCategory=User)" & "(samAccountName=" & strUserLogonName & "));samAccountName;subtree" Set objRecordSet = objCommand.Execute If objRecordset.RecordCount = 0 Then WScript.Echo " UserLogonName : " & strUserLogonName & " n'existe pas." Else
Je suis en train de developper un VBScript afin de désactiver un utilisateur
dans un AD 2003 à partir du "samAccountName" sans connaitre le "CN" ,
seulement je n'y arrive pas.
A partir du "samAccountName", mon script est pour le moment capable de me
dire s'il existe ou non dans l'AD, par contre impossible d'éditer l'objet CN
sans connaitre sa valeur.
En gros la quetion est comment fait t'on pour obtenir le "CN" à partir du
"samAccountName"
Voici un bout du script :
'--- Lecture du fichier des utilisateurs à désactiver -------
WScript.Echo " Etape n°1 - Lecture du fichier des users à désactiver..."
WScript.Echo ""
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strDisabledUserADFile,1,False)
While Not objFile.AtEndOfStream
strRecord = objFile.ReadLine
strUserLogonName = strRecord
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "ProvidersDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText =
"<LDAP://"&strRootDomaine&">;(&(objectCategory=User)" & "(samAccountName=" &
strUserLogonName & "));samAccountName;subtree"
Set objRecordSet = objCommand.Execute
If objRecordset.RecordCount = 0 Then
WScript.Echo " UserLogonName : " & strUserLogonName & " n'existe
pas."
Else
Je suis en train de developper un VBScript afin de désactiver un utilisateur dans un AD 2003 à partir du "samAccountName" sans connaitre le "CN" , seulement je n'y arrive pas. A partir du "samAccountName", mon script est pour le moment capable de me dire s'il existe ou non dans l'AD, par contre impossible d'éditer l'objet CN sans connaitre sa valeur.
En gros la quetion est comment fait t'on pour obtenir le "CN" à partir du "samAccountName"
Voici un bout du script :
'--- Lecture du fichier des utilisateurs à désactiver -------
WScript.Echo " Etape n°1 - Lecture du fichier des users à désactiver..." WScript.Echo "" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile(strDisabledUserADFile,1,False)
While Not objFile.AtEndOfStream strRecord = objFile.ReadLine
strUserLogonName = strRecord Set objConnection = CreateObject("ADODB.Connection") objConnection.Open "ProvidersDSOObject;" Set objCommand = CreateObject("ADODB.Command") objCommand.ActiveConnection = objConnection objCommand.CommandText = "<LDAP://"&strRootDomaine&">;(&(objectCategory=User)" & "(samAccountName=" & strUserLogonName & "));samAccountName;subtree" Set objRecordSet = objCommand.Execute If objRecordset.RecordCount = 0 Then WScript.Echo " UserLogonName : " & strUserLogonName & " n'existe pas." Else