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

Geschrieben

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

Geschrieben (bearbeitet)

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
Geschrieben

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

Geschrieben

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

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

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...