Jump to content

VBS Logon Script OU


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hi,

ich habe auf unseren Terminalservern ein Script welches die Laufwerke anhand Gruppenzugehörigkeit zuweist. Da auf dem Terminalserver eine Loopback Policy mit ersetzen konfiguriert ist. Werden Laufwerke die in OU Scripts hinterlegt sind nicht verbunden. Ist es möglich Laufwerke anhand einer OU Zugehörigkeit zu mappen am besten mit einer Select Case damit das ganze auch bei 100 OU´s noch performant ist?

Anbei mein Script für die Gruppen so ungefähr soll es sein nur eben für OU´s:

 

On Error Resume Next

Set objSysInfo = CreateObject("ADSystemInfo")
Set objNetwork = CreateObject("Wscript.Network")
strUserPath = "LDAP://" & objSysInfo.UserName
Set objUser = GetObject(strUserPath)

For Each strGroup in objUser.MemberOf
   strGroupPath = "LDAP://" & strGroup
   Set objGroup = GetObject(strGroupPath)
   strGroupName = objGroup.CN
   Select Case strGroupName
       Case "Gruppe1" 
           objNetwork.MapNetworkDrive "S:", "\\server\groups\Gruppe1"
       Case "Gruppe2" 
           objNetwork.MapNetworkDrive "I:", "\\server\groups\Gruppe2"
Case n ....
       End Select
Next

Link zu diesem Kommentar

Hallo, also du machst ja folgendes mit deinem Script:

  • Die Gruppen des aktuellen Benutzers rausfinden
  • Je nach Gruppe ein Laufwerk setzen

 

So, und wenn Du das jetzt mit dem Kriterium "je-nachdem-in-welcher-OU-der USer ist", dann ist das ja keine Frage von 100en OUs (ein Benutzer kann ja nur in einer OU sein, na und dann noch logisch gesehen in den darüber liegenden, je nachdem wie man's sieht.....

 

Also dann müßte das ungefähr so aussehen. Ein "Select Case" kann man nicht machen, sondern muss irgendwie mit der InStr Funktion rumspielen, von wegen "Wenn im LDAP-Pfad des Benutzers der LDAP-Pfad einer OU enthalten ist, dann folgende Gruppenmitgliedschaft" ....

 

Infos zum LDAP PFad: SelfADSI : LDAP-Pfadnamen und Distinguished Names

 

On Error Resume Next

Set objSysInfo = CreateObject("ADSystemInfo")
Set objNetwork = CreateObject("Wscript.Network")
strUserPath = "LDAP://" & objSysInfo.UserName

ou1 = "ou=data,dc=example,dc=com"
ou2 = "ou=unterOU1,ou=data,dc=example,dc=com"
ou3 = "ou=unterOU2,ou=data,dc=example,dc=com"
ou4 = "ou=benutzer,dc=example,dc=com"
'.....usw usw

if (InStr(strUserPath , ou1) > 0 ) then
       objNetwork.MapNetworkDrive "S:", "\\server\OUs\ou1"
End if

if (InStr(strUserPath , ou2) > 0 ) then
       objNetwork.MapNetworkDrive "S:", "\\server\OUs\ou2"
end if

if (InStr(strUserPath , ou3) > 0 ) then
       objNetwork.MapNetworkDrive "S:", "\\server\OUs\ou3"
end if

if (InStr(strUserPath , ou4) > 0 ) then
       objNetwork.MapNetworkDrive "S:", "\\server\OUs\ou4"
end if

'....usw usw
end if

 

Gruß,

Philipp

bearbeitet von P.Foeckeler
Link zu diesem Kommentar

Ich nochmal:

 

...oder entsprechend als Array, außerdem habe ich noch ein paar LCase Aufrufe für Groß-/KleinSchreibung eingefügt...

 

On Error Resume Next

Set objSysInfo = CreateObject("ADSystemInfo")
Set objNetwork = CreateObject("Wscript.Network")
strUserPath = LCase(objSysInfo.UserName)

OU = Array( _
"ou=data,dc=example,dc=com", _
"ou=unterOU1,ou=data,dc=example,dc=com", _
"ou=unterOU2,ou=data,dc=example,dc=com", _
"ou=benutzer,dc=example,dc=com" )

SHARE = Array( _
"\\server\OUs\ou1", _
"\\server\OUs\ou2", _
"\\server\OUs\ou3", _
"\\server\OUs\ou4" )


for i = o to UBound(OU)
       if (InStr(strUserPath , OU(i)) > 0 ) then
               objNetwork.MapNetworkDrive "S:", SHARE(i)
       End if
next

 

Gruß,

Philipp

Link zu diesem Kommentar

Wieso nicht mit select Case? Das ist viel schneller, klar gibt es nur 1 OU in der User sein, aber das ist ja egal. Besser als 100x IF THEN.

 

 

On Error Resume Next

 

Set objADSysInf = CreateObject("ADSystemInfo")

Set objUser = GetObject("LDAP://" & objADSysInf.UserName)

Set objOU = GetObject(objUser.parent)

strOUName = objOU.distinguishedName

Select Case strOUName

Case "OU=Users,OU=SB WKD-IT,OU=Wolters-Kluwer Deutschland GmbH,DC=wkd,DC=wolterskluwer,DC=de"

 

Case "OU=Users,OU=Accounts,OU=35-Koeln,OU=D2-Germany,DC=wkd,DC=wolterskluwer,DC=de"

 

End Select

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...