Gruppenrichtlinien gelten, auch wenn der Name das einem Glauben macht, nicht auf AD-Gruppen, sondern auf Container.
Wenn ich Dein Problem halbwegs richtig verstanden habe, dann musst Du erst herausfinden, welche Gruppenrichtlinie(n) die Laufwerke zuweisen und dann kümmerst Du Dich um Freigabe- und NTFS-Rechte der Laufwerke.
Das alte VBS-Skript sollte immer noch funktionieren:
'Written by Jeffrey M. Oyler, Systems Engineer
' ICH (C) 2009
' Letzte Aenderung: 2010-03-06
Option Explicit
On Error Resume Next
Dim objShell : Set objShell = WScript.CreateObject("WScript.Shell")
Dim objNetwork : Set objNetwork = WScript.CreateObject("WScript.Network")
Dim objGroupList
Dim enumPrinters : Set enumPrinters = objNetwork.EnumPrinterConnections
Dim strWorkDir : strWorkDir = ObjShell.ExpandEnvironmentStrings("%temp%")
Dim strUser : strUser = objNetwork.UserName
Dim strDomain : strDomain = objNetwork.UserDomain
Dim strGroup
Dim objUser : Set objUser = GetObject("WinNT://" & strDomain & "/" & strUser & ",user")
Dim intCounter
Dim localPrinter : Set localPrinter = False
'Set script working directory to user %temp%
objShell.CurrentDirectory = strWorkDir
'Remove all current network printers
'ICH: drei folgende Zeilen auskommentiert
For intCounter = 1 to enumPrinters.Count -1 step 2
objNetwork.RemovePrinterConnection enumPrinters.Item(intCounter), true
Next
'Map standard printers for all users
objNetwork.AddWindowsPrinterConnection "\\servername\drucker_fuer_alle"
'Set standard default printer
'ICH: eine Zeile auskommentiert
objNetwork.SetDefaultPrinter "\\servername\druckername"
'If local printer exists on LPT or USB, set to default
For intCounter = 0 to enumPrinters.Count -1 step 2
if Left(enumPrinters(intCounter),3)="LPT" OR Left(enumPrinters(intCounter),3)="USB" OR Left(enumPrinters(intCounter),3)="DOT" Then
if Left(enumPrinters(intCounter+1),7)="Acrobat" Then
Else
objNetwork.SetDefaultPrinter enumPrinters(intCounter+1)
localPrinter = True
end if
end if
Next
'Map additional printers and change default printer if no local printer based on group membership
'Drucker für Connectors
'Drucker für Abteilung_X
strGroup = "Abteilung_X"
if IsMember(strGroup) Then
objNetwork.AddWindowsPrinterConnection "\\servername\druckername"
if localPrinter = false Then
objNetwork.SetDefaultPrinter "\\servername\druckername"
end if
end if
'For use with Windows 2003 built in fax servername (Client must have XP fax client installed)
' ICH: folgende vier Zeilen auskommentiert
' strGroup = "Fax Group"
' if IsMember(strGroup) Then
' objNetwork.AddWindowsPrinterConnection "\\FAXservername\Fax Printer$"
' end if
'Cleanup
Set objGroupList = Nothing
Set objUser = Nothing
MsgBox "Fertig",vbOKOnly,"Druckerskript"
'Function to test group membership
Function IsMember(strGroup)
If IsEmpty(objGroupList) Then
Call LoadGroups
End If
IsMember = objGroupList.Exists(strGroup)
End Function
'Subroutine to load user's groups into dictionary object
Sub LoadGroups
Dim objGroup
Set objGroupList = CreateObject("Scripting.Dictionary")
objGroupList.CompareMode = vbTextCompare
For Each objGroup In objUser.Groups
objGroupList(objGroup.name) = True
Next
Set objGroup = Nothing
End Sub
Oder Du machst alles über Gruppenrichtlinien und läßt das Skript nur einmal laufen um die alten Drucker zu löschen.