blackflash
Goto Top

Logon Scripting, OU mit unterordnerversehen

Hilfe ich weiß nicht mehr weiter und zwar brauch ich Hilfe beim Scripting.

Und zwar Programmiere ich gerade ein Logon Script und hierbei hat sie folgendes Problem eingeschlichen.
Ich muss über das Script auf das Activ Directory zugreifen, um die Gruppenzugehörigkeit abzufragen. Also gebe ich "OU=Auszubildende" ein. So und nun kommt das problem die User, auf die ich zugreißen möchte liegen nicht in Auszubildende sonder in Auszubildende\User.
Nun meine frage wie muss ich das im Script schreiben damit der PC im Richtigen Unterordner den User sucht.


Für alle beiträge bedanke ich mich schon im Vorraus

Content-Key: 45101

Url: https://administrator.de/contentid/45101

Printed on: April 26, 2024 at 04:04 o'clock

Member: SlainteMhath
SlainteMhath Nov 22, 2006 at 14:13:54 (UTC)
Goto Top
Also so richtig versteh ich nicht was Du genau willst - aber wenn Du die
OU des angemeldeten Users erfahren willst, geht das so:

Set objADSysInfo  = CreateObject("ADSystemInfo")  
Set objUser = GetObject("LDAP://" & objADSysInfo.UserName)  
Set objOU  = GetObject(objUser.parent)
Member: bastla
bastla Nov 22, 2006 at 14:14:31 (UTC)
Goto Top
Hallo Blackflash und willkommen im Forum!

Versuch's einfach so:
ou=User,ou=Auszubildende,dc=...

HTH
bastla
Member: Blackflash
Blackflash Nov 22, 2006 at 14:26:34 (UTC)
Goto Top
Bastla hat das verstanden was ich meine.
Danke und das funktioniert auch einigermaßen aber nicht richtig.
Nun findet er den Ordner aber die abfrage über die Gruppenmitgliedschaften gibt er fehlerhaft aus.

Hier das script welches ich verwende


Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D


strName = "ThomasB"

Set RootDSE = GetObject("LDAP:RootDSE")
path = "LDAP:
OU=USERS,OU=ENERGIE" & RootDSE.Get("defaultNamingContext")
Set objContainer = GetObject(path)

Set objKonto = objContainer.GetObject("user", "CN=" & strName)

With objKonto
On Error Resume Next
.GetInfo
arrMemberOf = .GetEx("memberOf")

If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then
WScript.Echo "Keine Mitgliedschaften."
Else
WScript.Echo "Gruppenmitgliedschaften:"
For Each Group In arrMemberOf
WScript.Echo Group
Next
End If

intPrimaryGroupID = .Get("primaryGroupID")
WScript.Echo "Primäre Gruppe: " & intPrimaryGroupID
End With
Member: bastla
bastla Nov 22, 2006 at 14:46:15 (UTC)
Goto Top
Hallo Blackflash!

Nur zur Sicherheit / Klarstellung (zb finde ich überhaupt keine "Auszubildenden" in Deinem Beispiel):
"Users" ist eine Unter-OU von "Energie" und nicht Built-In (da sonst "LDAP://ou=Energie,cn=Users,...")?

Grüße
bastla
Member: Blackflash
Blackflash Nov 22, 2006 at 14:50:01 (UTC)
Goto Top
ja das siehst du richtig also die OU heißt Energie\Users\Auszubildende und
in Users liegen User und in Auszubildende und diese muss ich ansteuern
Member: bastla
bastla Nov 22, 2006 at 19:50:15 (UTC)
Goto Top
Hallo Blackflash!

Ich sehe eigentlich nur ein Problem: das fehlende Komma nach "Energie" - so müsste es daher klappen:
path = "LDAP://OU=USERS,OU=ENERGIE," & RootDSE.Get("defaultNamingContext")  

Grüße
bastla
Member: Blackflash
Blackflash Nov 23, 2006 at 07:33:19 (UTC)
Goto Top
danke hat jetzt funktioniert