Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fabricem [MS]
Bonjour
Il s'agit de récupérer la propriété Distinguished Name en faisant une recherche avec le display name de l'utilisateur sur un GC
voilà
'======================================================================================================================== ' This script will find an object by its name in the global catalog(GC). It will accept optional arguements to describe the ' objectCategory and objectClass of the object. '========================================================================================================================
Option Explicit
Dim strFilter 'As String Dim oConnection 'As ADODB.Connection Dim oRecordSet 'As ADODB.RecordSet Dim strQuery 'As String Dim oNameSpace 'As IADsContainer Dim oGC 'As IADs Dim obj 'As Variant Dim strGCPath 'As String
' Parse the command line and set the query filter ParseCommandLine()
' Find the GC Set oNameSpace = GetObject("GC:") For Each obj in oNameSpace set oGC = obj Next strGCPath = oGC.ADsPath 'cache the ADsPath to the GC set oGC = Nothing Set oNameSpace = Nothing
' Setup the ADO connection Set oConnection = CreateObject("ADODB.Connection") oConnection.Provider = "ADsDSOObject" oConnection.Open "ADs Provider"
'Execute the query set oRecordSet = oConnection.Execute(strQuery) if oRecordSet.Eof then WScript.Echo "No objects were found" WScript.Quit(0) Else Dim vClasses 'As Variant Dim strClass 'As String 'WScript.Echo "The following objects were found:"
' Iterate through the objects that match the filter While Not oRecordset.Eof vClasses = oRecordset.Fields("objectClass").Value strClass = vClasses(UBound(vClasses)) wscript.echo oRecordset.Fields("distinguishedName").Value 'WScript.Echo "Name: " & oRecordset.Fields("name").Value & " Class: " & strClass & " DN: " & oRecordset.Fields("distinguishedName").Value oRecordset.MoveNext Wend End if
'Clean up Set oRecordset = Nothing Set oConnection = Nothing
WScript.Quit(0)
' End of Script '========================================================================================================================== '==========================================================================================================================
'======================================================================================================================== ' The ParseCommandLine subroutine will build the query filter base on the arguments passed to the script. The bNameFlag ' is used so that the name given can have spaces in it. '======================================================================================================================== Sub ParseCommandLine() Dim vArgs, Value, Equals, I Dim bNameFlag 'As Boolean Dim strName 'As String Dim strObjectCategory 'As String Dim strObjectClass 'As String
Set vArgs = WScript.Arguments if VArgs.Count < 1 Then DisplayUsage() End if
bNameFlag = False For I = 0 to vArgs.Count - 1 If Left( vArgs(I) , 1 ) = "/" Or Left( vArgs(I) , 1 ) = "-" Then
Value = "" Equals = InStr( vArgs(I) , "=" ) If Equals = 0 Then Equals = InStr( vArgs(I) , ":" ) If Equals > 0 Then Value = Mid( vArgs(I) , Equals + 1 )
Select Case LCase( Mid( vArgs(I) , 2 , 1) )
Case "n" strName = Value bNameFlag = True 'This will allow us to catch spaces Case "o" strObjectCategory = Value bNameFlag = False Case "c" strObjectClass = Value bNameFlag = False Case Else DisplayUsage
End Select
Else 'no dash or slash; Check if we are giving a name if bNameFlag Then strName = strName & " " & vArgs(I) else DisplayUsage end if End if Next
'Should be okay to build filter
If strName = "" Then WScript.Echo "A name parameter must be given" WScript.Quit(1) Else strFilter = "(&(name=" & strName & ")" If Len(strObjectCategory) > 0 Then strFilter = strFilter & "(objectCategory=" & strObjectCategory & ")" End if If Len(strObjectClass) > 0 Then strFilter = strFilter & "(objectClass=" & strObjectClass & ")" End if
strFilter = strFilter & ")" 'Close filter End if End Sub
'======================================================================================================================== ' The DisplayUsage subroutine will display how to use this script, the objectCategory and objectClass arguments are optional. '======================================================================================================================== Sub DisplayUsage() WScript.Echo "Usage csript.exe " & WScript.ScriptName & vbLF & _ "-n=<name of the object you are looking for>" & vbLF & _ "[-o=<objectCategory of the object you are looking for>]" & vbLF & _ "[-c=<objectClass of the object you are looking for>]" & vbLF & vbLF & _ "Examples : " & vbLF & _ WScript.ScriptName & " -n=My Contact" & vbLF & _ WScript.ScriptName & " -n=Computer1 -o=computer" & vbLF & _ WScript.ScriptName & " -n=James Smith -o=Person -c=user" WScript.Quit(0)
End Sub
utilisation cscript nom_du script -n=Nom user
HTH -- Fabrice Meillon Architecte Infrastructure Division Développeurs et Plate-Forme d'Entreprise Microsoft France
"fabrice" wrote in message news:
bounjour,
je cherche le moyen simple (ou le vbs simple) pour récupération le nom LDAP complet d'un utilisateur à partir de son nom de connexion.
merci à ceux qui aurraient des infos
Bonjour
Il s'agit de récupérer la propriété Distinguished Name en faisant une
recherche avec le display name de l'utilisateur sur un GC
voilà
'======================================================================================================================== ' This script will find an object by its name in the global catalog(GC). It
will accept optional arguements to describe the
' objectCategory and objectClass of the object.
'========================================================================================================================
Option Explicit
Dim strFilter 'As String
Dim oConnection 'As ADODB.Connection
Dim oRecordSet 'As ADODB.RecordSet
Dim strQuery 'As String
Dim oNameSpace 'As IADsContainer
Dim oGC 'As IADs
Dim obj 'As Variant
Dim strGCPath 'As String
' Parse the command line and set the query filter
ParseCommandLine()
' Find the GC
Set oNameSpace = GetObject("GC:")
For Each obj in oNameSpace
set oGC = obj
Next
strGCPath = oGC.ADsPath 'cache the ADsPath to the GC
set oGC = Nothing
Set oNameSpace = Nothing
' Setup the ADO connection
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Provider = "ADsDSOObject"
oConnection.Open "ADs Provider"
'Execute the query
set oRecordSet = oConnection.Execute(strQuery)
if oRecordSet.Eof then
WScript.Echo "No objects were found"
WScript.Quit(0)
Else
Dim vClasses 'As Variant
Dim strClass 'As String
'WScript.Echo "The following objects were found:"
' Iterate through the objects that match the filter
While Not oRecordset.Eof
vClasses = oRecordset.Fields("objectClass").Value
strClass = vClasses(UBound(vClasses))
wscript.echo oRecordset.Fields("distinguishedName").Value
'WScript.Echo "Name: " & oRecordset.Fields("name").Value & " Class: "
& strClass & " DN: " & oRecordset.Fields("distinguishedName").Value
oRecordset.MoveNext
Wend
End if
'Clean up
Set oRecordset = Nothing
Set oConnection = Nothing
WScript.Quit(0)
' End of Script
'========================================================================================================================== '==========================================================================================================================
'======================================================================================================================== ' The ParseCommandLine subroutine will build the query filter base on the
arguments passed to the script. The bNameFlag
' is used so that the name given can have spaces in it.
'======================================================================================================================== Sub ParseCommandLine()
Dim vArgs, Value, Equals, I
Dim bNameFlag 'As Boolean
Dim strName 'As String
Dim strObjectCategory 'As String
Dim strObjectClass 'As String
Set vArgs = WScript.Arguments
if VArgs.Count < 1 Then
DisplayUsage()
End if
bNameFlag = False
For I = 0 to vArgs.Count - 1
If Left( vArgs(I) , 1 ) = "/" Or Left( vArgs(I) , 1 ) = "-" Then
Value = ""
Equals = InStr( vArgs(I) , "=" )
If Equals = 0 Then Equals = InStr( vArgs(I) , ":" )
If Equals > 0 Then Value = Mid( vArgs(I) , Equals + 1 )
Select Case LCase( Mid( vArgs(I) , 2 , 1) )
Case "n" strName = Value
bNameFlag = True 'This will allow us to catch spaces
Case "o" strObjectCategory = Value
bNameFlag = False
Case "c" strObjectClass = Value
bNameFlag = False
Case Else DisplayUsage
End Select
Else 'no dash or slash; Check if we are giving a name
if bNameFlag Then
strName = strName & " " & vArgs(I)
else
DisplayUsage
end if
End if
Next
'Should be okay to build filter
If strName = "" Then
WScript.Echo "A name parameter must be given"
WScript.Quit(1)
Else
strFilter = "(&(name=" & strName & ")"
If Len(strObjectCategory) > 0 Then
strFilter = strFilter & "(objectCategory=" & strObjectCategory & ")"
End if
If Len(strObjectClass) > 0 Then
strFilter = strFilter & "(objectClass=" & strObjectClass & ")"
End if
strFilter = strFilter & ")" 'Close filter
End if
End Sub
'======================================================================================================================== ' The DisplayUsage subroutine will display how to use this script, the
objectCategory and objectClass arguments are optional.
'======================================================================================================================== Sub DisplayUsage()
WScript.Echo "Usage csript.exe " & WScript.ScriptName & vbLF & _
"-n=<name of the object you are looking for>" & vbLF & _
"[-o=<objectCategory of the object you are looking for>]" & vbLF & _
"[-c=<objectClass of the object you are looking for>]" & vbLF & vbLF &
_
"Examples : " & vbLF & _
WScript.ScriptName & " -n=My Contact" & vbLF & _
WScript.ScriptName & " -n=Computer1 -o=computer" & vbLF & _
WScript.ScriptName & " -n=James Smith -o=Person -c=user"
WScript.Quit(0)
End Sub
utilisation cscript nom_du script -n=Nom user
HTH
--
Fabrice Meillon
Architecte Infrastructure
Division Développeurs et Plate-Forme d'Entreprise
Microsoft France
"fabrice" <fabrice@discussions.microsoft.com> wrote in message
news:A3BC4F77-BE4E-4601-92E7-66973201FCD3@microsoft.com...
bounjour,
je cherche le moyen simple (ou le vbs simple) pour récupération le nom
LDAP
complet d'un utilisateur à partir de son nom de connexion.
Il s'agit de récupérer la propriété Distinguished Name en faisant une recherche avec le display name de l'utilisateur sur un GC
voilà
'======================================================================================================================== ' This script will find an object by its name in the global catalog(GC). It will accept optional arguements to describe the ' objectCategory and objectClass of the object. '========================================================================================================================
Option Explicit
Dim strFilter 'As String Dim oConnection 'As ADODB.Connection Dim oRecordSet 'As ADODB.RecordSet Dim strQuery 'As String Dim oNameSpace 'As IADsContainer Dim oGC 'As IADs Dim obj 'As Variant Dim strGCPath 'As String
' Parse the command line and set the query filter ParseCommandLine()
' Find the GC Set oNameSpace = GetObject("GC:") For Each obj in oNameSpace set oGC = obj Next strGCPath = oGC.ADsPath 'cache the ADsPath to the GC set oGC = Nothing Set oNameSpace = Nothing
' Setup the ADO connection Set oConnection = CreateObject("ADODB.Connection") oConnection.Provider = "ADsDSOObject" oConnection.Open "ADs Provider"
'Execute the query set oRecordSet = oConnection.Execute(strQuery) if oRecordSet.Eof then WScript.Echo "No objects were found" WScript.Quit(0) Else Dim vClasses 'As Variant Dim strClass 'As String 'WScript.Echo "The following objects were found:"
' Iterate through the objects that match the filter While Not oRecordset.Eof vClasses = oRecordset.Fields("objectClass").Value strClass = vClasses(UBound(vClasses)) wscript.echo oRecordset.Fields("distinguishedName").Value 'WScript.Echo "Name: " & oRecordset.Fields("name").Value & " Class: " & strClass & " DN: " & oRecordset.Fields("distinguishedName").Value oRecordset.MoveNext Wend End if
'Clean up Set oRecordset = Nothing Set oConnection = Nothing
WScript.Quit(0)
' End of Script '========================================================================================================================== '==========================================================================================================================
'======================================================================================================================== ' The ParseCommandLine subroutine will build the query filter base on the arguments passed to the script. The bNameFlag ' is used so that the name given can have spaces in it. '======================================================================================================================== Sub ParseCommandLine() Dim vArgs, Value, Equals, I Dim bNameFlag 'As Boolean Dim strName 'As String Dim strObjectCategory 'As String Dim strObjectClass 'As String
Set vArgs = WScript.Arguments if VArgs.Count < 1 Then DisplayUsage() End if
bNameFlag = False For I = 0 to vArgs.Count - 1 If Left( vArgs(I) , 1 ) = "/" Or Left( vArgs(I) , 1 ) = "-" Then
Value = "" Equals = InStr( vArgs(I) , "=" ) If Equals = 0 Then Equals = InStr( vArgs(I) , ":" ) If Equals > 0 Then Value = Mid( vArgs(I) , Equals + 1 )
Select Case LCase( Mid( vArgs(I) , 2 , 1) )
Case "n" strName = Value bNameFlag = True 'This will allow us to catch spaces Case "o" strObjectCategory = Value bNameFlag = False Case "c" strObjectClass = Value bNameFlag = False Case Else DisplayUsage
End Select
Else 'no dash or slash; Check if we are giving a name if bNameFlag Then strName = strName & " " & vArgs(I) else DisplayUsage end if End if Next
'Should be okay to build filter
If strName = "" Then WScript.Echo "A name parameter must be given" WScript.Quit(1) Else strFilter = "(&(name=" & strName & ")" If Len(strObjectCategory) > 0 Then strFilter = strFilter & "(objectCategory=" & strObjectCategory & ")" End if If Len(strObjectClass) > 0 Then strFilter = strFilter & "(objectClass=" & strObjectClass & ")" End if
strFilter = strFilter & ")" 'Close filter End if End Sub
'======================================================================================================================== ' The DisplayUsage subroutine will display how to use this script, the objectCategory and objectClass arguments are optional. '======================================================================================================================== Sub DisplayUsage() WScript.Echo "Usage csript.exe " & WScript.ScriptName & vbLF & _ "-n=<name of the object you are looking for>" & vbLF & _ "[-o=<objectCategory of the object you are looking for>]" & vbLF & _ "[-c=<objectClass of the object you are looking for>]" & vbLF & vbLF & _ "Examples : " & vbLF & _ WScript.ScriptName & " -n=My Contact" & vbLF & _ WScript.ScriptName & " -n=Computer1 -o=computer" & vbLF & _ WScript.ScriptName & " -n=James Smith -o=Person -c=user" WScript.Quit(0)
End Sub
utilisation cscript nom_du script -n=Nom user
HTH -- Fabrice Meillon Architecte Infrastructure Division Développeurs et Plate-Forme d'Entreprise Microsoft France
"fabrice" wrote in message news:
bounjour,
je cherche le moyen simple (ou le vbs simple) pour récupération le nom LDAP complet d'un utilisateur à partir de son nom de connexion.
merci à ceux qui aurraient des infos
Arnaud
tu peux également utiliser ldif ou csvde pour obtenir c'est attribut et tous les autres au format texte Si tu n'as besoin que de celui la c'est vrai que l'interface graphique est plus conviviale
bounjour,
je cherche le moyen simple (ou le vbs simple) pour récupération le nom LDAP complet d'un utilisateur à partir de son nom de connexion.
merci à ceux qui aurraient des infos
tu peux également utiliser ldif ou csvde pour obtenir c'est attribut et tous
les autres au format texte
Si tu n'as besoin que de celui la c'est vrai que l'interface graphique est
plus conviviale
bounjour,
je cherche le moyen simple (ou le vbs simple) pour récupération le nom LDAP
complet d'un utilisateur à partir de son nom de connexion.
tu peux également utiliser ldif ou csvde pour obtenir c'est attribut et tous les autres au format texte Si tu n'as besoin que de celui la c'est vrai que l'interface graphique est plus conviviale
bounjour,
je cherche le moyen simple (ou le vbs simple) pour récupération le nom LDAP complet d'un utilisateur à partir de son nom de connexion.