gelöst Problem mit Logon Script (Printer Mapping)
Hallo,
ich muss ein VBS erstellen, dass Drucker löscht und neu erstellt. habe das wie folgt gemacht.
nun, die Drucker werden gelöscht, jedoch nciht neu erstellt. Hat jemand eine Idee warum ? Die msgBox beim Printermapping erscheint nicht.
Anbei der code:
Danke für Eure Hilfe.
ich muss ein VBS erstellen, dass Drucker löscht und neu erstellt. habe das wie folgt gemacht.
nun, die Drucker werden gelöscht, jedoch nciht neu erstellt. Hat jemand eine Idee warum ? Die msgBox beim Printermapping erscheint nicht.
Anbei der code:
01.
'On Error Resume Next
02.
03.
Set objSysInfo = CreateObject("ADSystemInfo")
04.
Set objNetwork = CreateObject("Wscript.Network")
05.
Set objPrinters = objNetwork.EnumPrinterConnections
06.
Set objDrives = objNetwork.EnumNetworkDrives
07.
08.
09.
strUserPath = "LDAP://" & objSysInfo.UserName
10.
Set objUser = GetObject(strUserPath)
11.
12.
For Each strGroup in objUser.MemberOf
13.
strGroupPath = "LDAP://" & strGroup
14.
Set objGroup = GetObject(strGroupPath)
15.
strGroupName = objGroup.CN
16.
Next
17.
18.
'********************************************************************************
19.
'Delete Network Printer
20.
'********************************************************************************
21.
For LOOP_COUNTER = 0 To objPrinters.Count - 1 Step 2
22.
If Left(objPrinters.Item(LOOP_COUNTER +1),2) = "\\" Then
23.
objNetwork.RemovePrinterConnection objPrinters.Item(LOOP_COUNTER +1),True,True
24.
End If
25.
msgbox ( "Delete PRinter" )
26.
Next
27.
'********************************************************************************
28.
'Map Network Printer
29.
'********************************************************************************
30.
Select Case strGroupName
31.
Case "printserveR_user"
32.
objNetwork.AddwindowsPrinterConnection "printserver\prt22"
33.
msgBox ( " Map Printer" )
34.
End Select
35.
msgbox ( "END" )
2 Antworten
- LÖSUNG Biber schreibt am 10.09.2007 um 09:24:25 Uhr
- LÖSUNG repa schreibt am 10.09.2007 um 10:53:37 Uhr
LÖSUNG 10.09.2007 um 09:24 Uhr
Moin repa,
dann scheint es doch weniger mit der beabsichtigten Aktion (sei es "Drucker zuweisen" oder "Urlaub streichen") zu tun zu haben, sondern damit, dass der Gruppenname-Vergleich in die Grütze geht.
Ersetze doch mal
...durch....
...und/oder setz doch mal zu Debug-Zwecken ein Wscript.echo strGroupName an eine Dir genehme Stelle.
Außerdem ist es irgendwie merkwürdig, dass Du weiter oben in der "For Each strGroup.."_Schleife zwar alle Gruppen durchwackelst, denen der User angehört, aber nur die letzte davon speicherst.... ist das bei Euch so Vorschrift?
Ich würde die For Each-Klamotte eher um die Seclect Case...end case-Zeilen legen.
Grüße
Biber
dann scheint es doch weniger mit der beabsichtigten Aktion (sei es "Drucker zuweisen" oder "Urlaub streichen") zu tun zu haben, sondern damit, dass der Gruppenname-Vergleich in die Grütze geht.
Ersetze doch mal
01.
...
02.
Select Case strGroupName
03.
Case "printserveR_user"
04.
...
01.
...
02.
Select Case LCase(strGroupName)
03.
Case "printserver_user"
04.
...
Außerdem ist es irgendwie merkwürdig, dass Du weiter oben in der "For Each strGroup.."_Schleife zwar alle Gruppen durchwackelst, denen der User angehört, aber nur die letzte davon speicherst.... ist das bei Euch so Vorschrift?
Ich würde die For Each-Klamotte eher um die Seclect Case...end case-Zeilen legen.
Grüße
Biber
LÖSUNG 10.09.2007 um 10:53 Uhr
hi
habs mittlerweile rausgekriegt.
das script sieht nun wie folgt aus:
Leider werden die Netzlaufwerke nicht gelöscht, alles andere funktioniert...
Hat jemand eine idee warum ?
habs mittlerweile rausgekriegt.
das script sieht nun wie folgt aus:
01.
On Error Resume Next
02.
03.
Set objSysInfo = CreateObject("ADSystemInfo")
04.
Set objNetwork = CreateObject("Wscript.Network")
05.
Set objPrinters = objNetwork.EnumPrinterConnections
06.
Set objDrives = WshNetwork.EnumNetworkDrives
07.
08.
09.
strUserPath = "LDAP://" & objSysInfo.UserName
10.
Set objUser = GetObject(strUserPath)
11.
12.
'********************************************************************************
13.
'In this section, we define all things, used later in this script
14.
'********************************************************************************
15.
16.
'Define, what should be done:
17.
MapPrinter = enable
18.
DelPrinter = enable
19.
mapNetworkDrive = enable
20.
DelNetworkDrive = enable
21.
22.
'Define Network Drives
23.
NetDriveI = "i:"
24.
NetDriveJ = "j:"
25.
NetDriveK = "k:"
26.
NetDriveL = "l:"
27.
NetDriveM = "m:"
28.
NetDriveN = "n:"
29.
NetDriveO = "o:"
30.
NetDriveP = "p:"
31.
NetDriveQ = "q:"
32.
NetDriveR = "r:"
33.
NetDriveS = "s:"
34.
NetDriveT = "t:"
35.
NetDriveU = "u:"
36.
NetDriveV = "v:"
37.
NetDriveY = "y:"
38.
NetDriveX = "x:"
39.
NetDriveZ = "z:"
40.
41.
'Define Servers
42.
Server1 = "\\12"
43.
Server2 = "\\13"
44.
Server3 = "\\15"
45.
Server4 = "\\14"
46.
PSRV1 = "\\16"
47.
48.
'********************************************************************************
49.
'END
50.
'********************************************************************************
51.
52.
53.
'********************************************************************************
54.
'Remove Network Drives
55.
'********************************************************************************
56.
57.
objNetwork.RemoveNetworkDrive NetDriveI, True, True
58.
objNetwork.RemoveNetworkDrive NetDriveJ, True, True
59.
objNetwork.RemoveNetworkDrive NetDriveK, True, True
60.
objNetwork.RemoveNetworkDrive NetDriveL, True, True
61.
objNetwork.RemoveNetworkDrive NetDriveM, True, True
62.
objNetwork.RemoveNetworkDrive NetDriveN, True, True
63.
objNetwork.RemoveNetworkDrive NetDriveO, True, True
64.
objNetwork.RemoveNetworkDrive NetDriveP, True, True
65.
objNetwork.RemoveNetworkDrive NetDriveQ, True, True
66.
objNetwork.RemoveNetworkDrive NetDriveR, True, True
67.
objNetwork.RemoveNetworkDrive NetDriveS, True, True
68.
objNetwork.RemoveNetworkDrive NetDriveT, True, True
69.
objNetwork.RemoveNetworkDrive NetDriveU, True, True
70.
objNetwork.RemoveNetworkDrive NetDriveV, True, True
71.
objNetwork.RemoveNetworkDrive NetDriveY, True, True
72.
objNetwork.RemoveNetworkDrive NetDriveX, True, True
73.
objNetwork.RemoveNetworkDrive NetDriveZ, True, True
74.
75.
msgbox ("Del Drive")
76.
77.
'********************************************************************************
78.
'Map Network Drives
79.
'********************************************************************************
80.
if mapNetworkDrive = enable then
81.
82.
83.
84.
85.
For Each strGroup in objUser.MemberOf
86.
strGroupPath = "LDAP://" & strGroup
87.
Set objGroup = GetObject(strGroupPath)
88.
strGroupName = objGroup.CN
89.
90.
91.
objNetwork.MapNetworkDrive NetDriveI, Server2 & "\Installation"
92.
objNetwork.MapNetworkDrive NetDriveJ, Server1 & "\Daten"
93.
objNetwork.MapNetworkDrive NetDriveL, Server1 & "\se9"
94.
95.
Select Case strGroupName
96.
97.
'Map SoftM drive if user in group GLSoftMAdmin
98.
Case "GlSoftMAdmin"
99.
objNetwork.MapNetworkDrive NetDriveS, Server1 & "\se8"
100.
'Map SoftM drive if user in group GLSoftMUser
101.
Case "GlSoftMUser"
102.
objNetwork.MapNetworkDrive NetDriveS, Server1 & "\user"
103.
'Map Unikis drive if user in group GlRohagSpedi
104.
Case "GLRohagSpedi"
105.
objNetwork.MapNetworkDrive NetDriveU, Server3 & "\se7$"
106.
'Map Mammut drive if user in group GLMammut
107.
Case "GLMammut"
108.
objNetwork.MapNetworkDrive NetDriveM, Server3 & "\se4"
109.
'Map Finanz drive if user in group GLDietikerFinanz
110.
Case "GLDietikerFinanz"
111.
objNetwork.MapNetworkDrive NetDriveN, Server1 & "\finanzen"
112.
'Map Finanzen drive if user in group GLDietikerPersonal
113.
Case "GLDietikerPersonal"
114.
objNetwork.MapNetworkDrive NetDriveN, Server1 & "\finanzen"
115.
'Map Finanzen drive if user in group GLDietikerKonzernleitung
116.
Case "GLDietikerKonzernleitung"
117.
objNetwork.MapNetworkDrive NetDriveN, Server1 & "\finanzen"
118.
'Map Finanzen drive if user in group GLBuDiv
119.
Case "GLBuDiv"
120.
objNetwork.MapNetworkDrive NetDriveN, Server1 & "\finanzen"
121.
'Map Finanzen drive if user in group GLDietikerIfrsUmstellung
122.
Case "GLDietikerIfrsUmstellung"
123.
objNetwork.MapNetworkDrive NetDriveN, Server1 & "\finanzen"
124.
'Map Lager drive if user in group GLDiagLager
125.
Case "GLDiagLager"
126.
objNetwork.MapNetworkDrive NetDriveK, Server1 & "\lager$"
127.
'Map Stahl drive if user in group GLStahl
128.
Case "GLStahl"
129.
objNetwork.MapNetworkDrive NetDriveV, Server1 & "\stahl"
130.
'Map Alucd2003 drive if user in group GLAluCD
131.
Case "GLAluCD"
132.
objNetwork.MapNetworkDrive NetDriveY, Server1 & "\se3"
133.
'Map Lohn drive if user in group GLLohn
134.
Case "GLLohn"
135.
objNetwork.MapNetworkDrive NetDriveO, Server1 & "\lohn$"
136.
'Map SocoAG drive if user in group LOSoCoAG
137.
Case "LOSocAG"
138.
objNetwork.MapNetworkDrive NetDriveT, Server1 & "\se2"
139.
'Map analysen drive if user in group GLAnalysen
140.
Case "GLAnalysen"
141.
objNetwork.MapNetworkDrive NetDriveR, Server1 & "\Analysen$"
142.
'Map analysen drive if user in group G_SoCo_User
143.
Case "G_SoCo_User"
144.
objNetwork.MapNetworkDrive NetDriveZ, Server4 & "\se"
145.
'Map analysen drive if user in group G_SoCo_IT
146.
Case "G_SoCo_IT"
147.
objNetwork.MapNetworkDrive NetDriveQ, Server4 & "\Backupstorage"
148.
objNetwork.MapNetworkDrive NetDrivex, Server4 & "\Softwarestorage"
149.
End Select
150.
Next
151.
End IF
152.
153.
If delPrinter = enable then
154.
'********************************************************************************
155.
'Delete Network Printer
156.
'********************************************************************************
157.
For LOOP_COUNTER = 0 To objPrinters.Count - 1 Step 2
158.
If Left(objPrinters.Item(LOOP_COUNTER +1),2) = "\\" Then
159.
objNetwork.RemovePrinterConnection objPrinters.Item(LOOP_COUNTER +1),True,True
160.
End If
161.
msgbox ( "Delete PRinter" )
162.
Next
163.
end If
164.
165.
if mapPrinter = enable then
166.
'********************************************************************************
167.
'Map Network Printer
168.
'********************************************************************************
169.
170.
For Each strGroup in objUser.MemberOf
171.
strGroupPath = "LDAP://" & strGroup
172.
Set objGroup = GetObject(strGroupPath)
173.
strGroupName = objGroup.CN
174.
175.
Select Case strGroupName
176.
Case "print_user"
177.
objNetwork.AddwindowsPrinterConnection PSRV1 & "\printer_PRT22"
178.
msgBox ( " Map Printer" )
179.
End Select
180.
Next
181.
end If
182.
msgbox ( "END" )
Leider werden die Netzlaufwerke nicht gelöscht, alles andere funktioniert...
Hat jemand eine idee warum ?
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte