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

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

Link zu diesem Kommentar

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")

Link zu diesem Kommentar

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")

 

...

Link zu diesem Kommentar

@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

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