Tagi na forum.

Windows 14197 SQL Server 2119
sieci 6793 Windows XP 1904
SQL 6564 Outlook 1823
SBS 3855 Uprawnienia 1772
Windows 2003 2755 IIS 1622
Windows Server 2584 Office 1503
DNS 2300 Skrypt 1495

pokaż wszystkie tagi na forum

Parametr LDAP query

panoramix 2007-10-15 12:31:03
0
avatar
 
 
Hej

Taka sytuacja - mam 1000 userow w arkuszu excela (imie i nazwisko)

Jak przekazac tez parametr do zapytania LDAP zeby znalesc OU usera?

Napisalem cos takiego:

On Error Resume Next

strFileName = "c:\pwdne.xls"

If objFSO.FileExists(strFileName) Then
Set objExcel = CreateObject("Excel.Application")
Set myBook = objExcel.Workbooks.Open(strFileName)
end if

RowY = 1

Const ADS_SCOPE_SUBTREE = 2

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

objCommand.CommandText = _
"SELECT distinguishedName FROM 'LDAP://dc=fabrikam,dc=com' WHERE objectCategory='user' " & _
"AND sAMAccountName=objExcel.cells(RowY,1)"
Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst
Do Until objRecordSet.EOF
objExcel.cells(RoyY,2) = objRecordSet.Fields("distinguishedName").Value
objRecordSet.MoveNext
RowY = RowY + 1
Loop

Ale wydaje mi sie, że źle przekazuje parametry do query.

Wiecie może jak to ugryśc?

Panoramix


yacoob  2007-10-15 13:03:45 #1
0
avatar Ekspert WSS
 
 
Nie mam teraz trochę czasu i możliwości, żeby to sprawdzić, ale popróbowałbym:

"AND sAMAccountName=' " & objExcel.cells(RowY,1) & " ' "

lub bez wewnętrznych skopek
"AND sAMAccountName=" & objExcel.cells(RowY,1)

Daj znać, czy poszło.
Jeśli nie, i nikt inny nie podpowie, mogę głębiej pogrzebać po południu

z pozdrowieniami

yacoob

panoramix  2007-10-15 14:42:08 #1.1
0
avatar
 
 
Hej

Dzięki za odpowiedź ... zabrałem się za problem od D... strony.

Jeżeli ktoś będzie chciał sobie wybrac userów z opcją hasło nie wygasa i do tego znaleśc jego OU to przepis ponizej:



strFileName = "C:\pwdne.xls"


Set objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(strFileName) Then
Set objExcel = CreateObject("Excel.Application")
Set myBook = objExcel.Workbooks.Open(strFileName)
end if


On Error Resume Next

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 100000

objCommand.CommandText = _
"<LDAP://dc=mojadomena,dc=com>;" & _
"(&(objectCategory=User)(userAccountControl:1.2.840.113556.1.4.803:=65536));" & _
"distinguishedName;Subtree"
Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst

RowY=1

Do Until objRecordSet.EOF

objExcel.cells(RowY,1) = objRecordSet.Fields("distinguishedName").Value
objRecordSet.MoveNext
RowY=RowY + 1

Loop

MyBook.Save



Potem Excel -> text to column i mamy gotowe.

Panoramix

Things should be made as simple as possible -- but no simpler

yacoob  2007-10-15 15:11:49 #1.1.1
0
avatar Ekspert WSS
 
 
Dzięki za odpowiedź ... zabrałem się za problem od D... strony.
A tak z ciekawości to znaczy co - zadziałało? Nie zadziałało? Nie próbowałeś?

;)

z pozdrowieniami

yacoob

gibon  2007-10-15 15:11:51 #1.1.2
0
avatar VIP
 
 
W zasadzie cały ten skrypt można zastąpić przez:

adfind -b DC=w2k,dc=pl -s subtree -f "(&(objectclass=user)(obje
ctCategory=Person)(userAccountControl:1.2.840.113556.1.4.803:=65536))" -adcsv


Jak juz korzystasz z VBScript to mozesz sobie ulatwic zycie i przybindowac sie do obiektu a potem wyciagnac Parent .. bedziesz mial konkretnie OU a nie całego DN obiektu.

--
Tomasz Onyszko
http://www.w2k.pl/

Tomasz Onyszko

Connected Dots http://www.cdots.pl

Blog: http://www.w2k.pl/

 

yacoob  2007-10-15 15:19:10 #1.1.2.1
0
avatar Ekspert WSS
 
 
A Tomek (jak zwykle?) potrafi w dwóch słowach zawrzeć to, co innym zajmuje całe stronice ;)


z pozdrowieniami

yacoob

Udziel odpowiedzi

avatar
Treść wpisu:

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.