Jump to content

Problem mit LoginScript


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

Empfohlene Beiträge

Geschrieben

Hallo zusammen,

 

ich habe mir folgendes LoginScript gebaut. Leider habe ich das problem, dass die Laufwerksbuchstaben nicht gelöscht werden, wenn der Benutzer nicht mehr Mitglied der AD-Gruppe ist.

Hat jemand eine Idee?

 

 

ON ERROR RESUME NEXT

 

'==========================================================================

' Variables

'==========================================================================

Dim objNet, strUser, strDomain, strComputer, objShell, objUser, objDomain

 

'==========================================================================

' Creating the objects and predefine the variables

'==========================================================================

Set objNet = CreateObject("WScript.Network")

Set objShell = CreateObject("WScript.Shell")

 

'==========================================================================

' Automatically find the Domain name

'==========================================================================

Set objDomain = getObject("LDAP://rootDse")

 

strDomain = objDomain.Get("dnsHostName")

strUser = objNet.UserName

strComputer = objNet.ComputerName

 

Set objUser = GetObject("WinNT://" & strDomain & "/" & strUser)

 

'==========================================================================

'Now check for group memberships and map appropriate drives

'==========================================================================

For Each GroupObj In objUser.Groups

Select Case LCase(GroupObj.Name)

 

Case "_gf"

objNet.RemoveNetworkDrive "G:", True, True

WScript.sleep 300

objShell.Run("net use G: \\kaisksbs1\Daten\_gf")

 

Case "_finanz"

objNet.RemoveNetworkDrive "F:", True, True

WScript.sleep 300

objShell.Run("net use F: \\kaisksbs1\Daten\_Finanz")

 

Case "_controlling"

objNet.RemoveNetworkDrive "K:", True, True

WScript.sleep 300

objShell.Run("net use K: \\kaisksbs1\Daten\_controlling")

 

Case "_vertrieb"

objNet.RemoveNetworkDrive "V:", True, True

WScript.sleep 300

objShell.Run("net use V: \\kaisksbs1\Daten\_Vertrieb")

 

 

 

End Select

Next

 

'==========================================================================

' Cleaning up the used memory

'==========================================================================

Set objNet = Nothing

Set strUser = Nothing

Set strDomain = Nothing

Set strComputer = Nothing

Set objShell = Nothing

Set objUser = Nothing

Set objDomain = Nothing

 

'==========================================================================

'Quit the Script

'==========================================================================

WScript.quit

 

 

grüße Jens

Geschrieben

okay, habe das Script jetzt so umgebaut und bekomme einen Syntax Fehler:

 

ON ERROR RESUME NEXT

 

'==========================================================================

' Variables

'==========================================================================

Dim objNet, strUser, strDomain, strComputer, objShell, objUser, objDomain

 

'==========================================================================

' Creating the objects and predefine the variables

'==========================================================================

Set objNet = CreateObject("WScript.Network")

Set objShell = CreateObject("WScript.Shell")

 

'==========================================================================

' Automatically find the Domain name

'==========================================================================

Set objDomain = getObject("LDAP://rootDse")

 

strDomain = objDomain.Get("dnsHostName")

strUser = objNet.UserName

strComputer = objNet.ComputerName

 

Set objUser = GetObject("WinNT://" & strDomain & "/" & strUser)

 

'==========================================================================

'Now check for group memberships and map appropriate drives

'==========================================================================

For Each GroupObj In objUser.Groups

Select Case LCase(GroupObj.Name)

 

objNet.RemoveNetworkDrive "G:", True, True

objNet.RemoveNetworkDrive "F:", True, True

objNet.RemoveNetworkDrive "I:", True, True

objNet.RemoveNetworkDrive "K:", True, True

objNet.RemoveNetworkDrive "V:", True, True

 

Case "_gf"

WScript.sleep 300

objShell.Run("net use G: \\kaisksbs1\Daten\_gf")

 

Case "_finanz"

WScript.sleep 300

objShell.Run("net use F: \\kaisksbs1\Daten\_Finanz")

 

Case "_controlling"

WScript.sleep 300

objShell.Run("net use K: \\kaisksbs1\Daten\_controlling")

 

Case "_vertrieb"

WScript.sleep 300

objShell.Run("net use V: \\kaisksbs1\Daten\_Vertrieb")

Geschrieben

ansonsten hilft auch ein

 

net use /persistent:no

 

wird dieser Parameter gesetzt, dann sind die folgenden Mappings nur für die Anmeldesitzung gesetzt - sprich sie sind nicht dauerhaft und werden auch nicht automatisch wiederhergestellt

Geschrieben

DU musst die Removes OBERHALB der For-Schleife plazieren!

 

...

'==========================================================================

'Now check for group memberships and map appropriate drives

'==========================================================================

objNet.RemoveNetworkDrive "G:", True, True

objNet.RemoveNetworkDrive "F:", True, True

objNet.RemoveNetworkDrive "I:", True, True

objNet.RemoveNetworkDrive "K:", True, True

objNet.RemoveNetworkDrive "V:", True, True

 

For Each GroupObj In objUser.Groups

Select Case LCase(GroupObj.Name)

 

Case "_gf"

WScript.sleep 300

objShell.Run("net use G: \\kaisksbs1\Daten\_gf")

 

...

Geschrieben

@fjordman

 

Wieso benutzt Du das Kommandozeilentool "net use" in Dein VB-Skript? Mit Hilfe der MapNetworkDrive-Methode kannst Du freigegebene Netzlaufwerke zum Computersystem hinzufügen.

 

Syntax:

object.MapNetworkDrive(strLocalName, strRemoteName, [bUpdateProfile], [strUser], [strPassword])

 

So trennst Du alle vorhandene Netzlaufwerke.

Set objNetworkDrives = objNet.EnumNetworkDrives

For i = 0 To objNetworkDrives.Count -1 Step 2
 objNet.RemoveNetworkDrive objNetworkDrives.Item(i), True, True
Next

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