Tagi na forum.

Windows 14206 SQL Server 2132
sieci 6796 Windows XP 1922
SQL 6578 Outlook 1838
SBS 3868 Uprawnienia 1777
Windows 2003 2781 IIS 1636
Windows Server 2588 Office 1516
DNS 2315 Skrypt 1499

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ść.

Idź na górę strony