Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Problem mit VBS Login Druckerverbindung

Frage Entwicklung VB for Applications

Mitglied: Hunduster

Hunduster (Level 1) - Jetzt verbinden

06.09.2007, aktualisiert 28.07.2008, 4855 Aufrufe, 12 Kommentare

Hallo zusammen,

wir sind in der Firma gerade dabei ein neues Loginscrip in VBS zu schreiben. Soweit läuft auch alles nur 2 Scripte nicht. Wir wollen das beim Login alle Drucker getrennt und danach neu verbunden werden. Wenn wir die einzelnen VBS Scripte nun einzeln abspeichern dann laufen diese auch allerding nicht wenn wir alles in ein Script packen. Nur die Drucker Scripte laufen nicht wenn wir alles in ein großes Script packen! Könnt ihr und einen Tipp geben?

01.
' *   Description:	This script configures the standard settings for domain computers 
02.
' * 
03.
' ******************************************** 
04.
 
05.
On Error Resume Next 
06.
 
07.
' *** Initialze objects *** 
08.
Set WSHNetwork = WScript.CreateObject("WScript.Network") 
09.
Set WSHShell = WScript.CreateObject("WScript.Shell") 
10.
Set WSHFso = WScript.CreateObject("Scripting.FileSystemObject") 
11.
Set MSIE = WScript.CreateObject("InternetExplorer.Application") 
12.
Set MailMSIE = WScript.CreateObject("InternetExplorer.Application") 
13.
Set FileSystem = CreateObject("Scripting.FileSystemObject") 
14.
Set fs = CreateObject("Scripting.filesystemobject") 
15.
Set net = CreateObject("WScript.Network") 
16.
 
17.
 
18.
' *** Get environment information *** 
19.
OS 				= WSHShell.ExpandEnvironmentStrings("%OS%") 
20.
WINDIR 				= WSHShell.ExpandEnvironmentStrings("%WINDIR%") 
21.
PROGRAMDIR 			= WSHShell.ExpandEnvironmentStrings("%ProgramFiles%") 
22.
USERPROFILE 			= WSHShell.ExpandEnvironmentStrings("%USERPROFILE%") 
23.
GatewayIP 			= "" 
24.
WSHVer 				= WScript.Version 
25.
WORKSTATION 			= WSHNetwork.ComputerName 
26.
USERDOMAIN 			= WSHNetwork.UserDomain 
27.
USERDNSDOMAIN 			= WSHShell.ExpandEnvironmentStrings("%USERDNSDOMAIN%") 
28.
LOGONSERVER			= LCase(WSHShell.ExpandEnvironmentStrings("%LOGONSERVER%") & "." & USERDNSDOMAIN) 
29.
LOGONSERVER_NFQDNS 		= LCase(WSHShell.ExpandEnvironmentStrings("%LOGONSERVER%")) '*** NOT Ffull qualified DNS (=WINS-Notation "\\Servername") *** 
30.
NETLOGON_DIR 			= WSHShell.ExpandEnvironmentStrings("%LOGONSERVER%") + "\NETLOGON\" 
31.
 
32.
While USERNAME = "" 
33.
	USERNAME = WSHNetwork.UserName		' Wird solange ausgeführt, bis der User ermittelt ist. 
34.
Wend 
35.
 
36.
 
37.
' *** IE-Ausgabe vorbereiten *** 
38.
SetupMSIE()	' IE einstellen für das Anzeige Fenster. 
39.
 
40.
'*** Ausgabe Logo 
41.
MSIE.Document.Write "<HTML><TITLE>" & USERDOMAIN & " Domain-Initialisierung für Benutzer " & UCase(USERNAME) & "</TITLE>" &_ 
42.
		    "<BODY bgcolor=#ffffff>" &_ 
43.
		    "<FONT FACE=ARIAL size='-1'>" &_ 
44.
		    "<table><tr><td align='left'><IMG SRC='" & NETLOGON_DIR & "images\logos\logo.bmp' WIDTH='50%'></td></tr></table><BR>" &_ 
45.
		    "<HR>" 
46.
 
47.
' *** Ausgabe Willkommensmeldung 
48.
Welcome() 
49.
 
50.
' *** Synchronisation der Systemzeit *** 
51.
TimeSync() 
52.
 
53.
' *** Laufwerke verbinden*** 
54.
MSIE.Document.Write "<BR>- Verbinden der Netzlaufwerke" 
55.
fs = CreateObject("Scripting.filesystemobject") 
56.
net = CreateObject("WScript.Network") 
57.
 
58.
' *** Löschen der Druckerverbindungen *** 
59.
MSIE.Document.Write "<BR>- Trennen der Drucker" 
60.
WSHNetwork = WScript.CreateObject 
61.
WshNetwork.RemovePrinterConnection 
62.
 
63.
' *** Herstellen der Druckerverbindungen *** 
64.
MSIE.Document.Write "<BR>- Verbinden der Drucker" 
65.
WSHNetwork = WScript.CreateObject 
66.
WshNetwork.AddWindowsPrinterConnection 
67.
 
68.
' *** Standard-Drucker definieren 
69.
MSIE.Document.Write "<BR>- Definition des Standard-Druckers " 
70.
WSHNetwork = WScript.CreateObject 
71.
WSHNetwork.SetDefaultPrinter(DefaultPrinter) 
72.
 
73.
' *** Fehlerbehandlung *** 
74.
MSIE.Document.Write "<HR>" 
75.
If NErr = 0 Then 
76.
	' *** Keine Fehler aufgetreten *** 
77.
	MSIE.Document.Write "Die Domain-Initialsierung für " & USERNAME & " wurde erfolgreich abgeschlossen." 
78.
Else 
79.
	MSIE.Document.Write "<script language='javascript'>alert('Während der Domain-Initialisierung sind Fehler aufgetretten. Bitte informieren Sie Ihren Administrator.');</script>" 
80.
	MailBetreff = "Admin-Alert Fehler" 
81.
	MailText = "Fehler: " & NErr 
82.
	SendMail AdminMailAccount,MailBetreff,MailText 
83.
End If 
84.
 
85.
MSIE.Document.Write "</p></FONT></BODY></HTML>" 
86.
WScript.Sleep(10000) 	' *** Warten, damit Ausgabe gelesen werden kann *** 
87.
MSIE.Quit		' *** Fenster zu! *** 
88.
WScript.Quit		' *** Ende des Domain-Initialisierungs-Scripts *** 
89.
 
90.
 
91.
' ************************************************************************** 
92.
' *************************** Functions and Subs *************************** 
93.
' ************************************************************************** 
94.
 
95.
 
96.
' ********************************************** 
97.
' * Funktion:		Sub Welcome 
98.
' * Beschreibung:	Gibt die Willkommensmeldung aus. 
99.
' * Parameter:		<keine> 
100.
' * Rückgabe:		<keine> 
101.
' ********************************************** 
102.
Sub Welcome() 
103.
	On Error Resume Next 
104.
	 
105.
	MSIE.Document.Write "<B>Guten " 
106.
	 
107.
	If Hour(Now) < 12 Then 
108.
		MSIE.Document.Write "Morgen" 
109.
	ElseIf Hour(Now) < 17 Then 
110.
		MSIE.Document.Write "Tag" 
111.
	Else 
112.
		MSIE.Document.Write "Abend" 
113.
	End If 
114.
	 
115.
	MSIE.Document.Write " " & UCase(USERNAME) & " und willkommen in " & UCase(USERDOMAIN) & "!</B>" 
116.
 
117.
	MSIE.Document.Write "<p>Ihr Logon-Server ist " & UCase(LOGONSERVER) & ".</p>" 
118.
 
119.
	If Err.Number <> 0 Then 
120.
		Err.Clear 
121.
	End If 
122.
End Sub 
123.
 
124.
 
125.
' ********************************************** 
126.
' * Funktion:		Sub SetupMSIE 
127.
' * Beschreibung:	Bereitet das Internet-Explorer-Fenster für die  
128.
' *			Ausgabe während der Ausführung des Login-Scripts vor 
129.
' * Parameter:		<keine> 
130.
' * Rückgabe:		<keine> 
131.
' ********************************************** 
132.
Sub SetupMSIE() 
133.
	On Error Resume Next 
134.
	MSIE.Navigate "About:Blank" 
135.
	MSIE.ToolBar = False 
136.
	MSIE.StatusBar = False 
137.
	MSIE.Resizable = False 
138.
	MSIE.Center = True 
139.
	 
140.
	Do 
141.
	Loop While MSIE.Busy 
142.
 
143.
	SWidth = MSIE.Document.ParentWindow.Screen.AvailWidth 
144.
	SHeight = MSIE.Document.ParentWindow.Screen.AvailHeight 
145.
	MSIE.Width = SWidth * 0.5 
146.
	MSIE.Height = SHeight * 0.8 
147.
	MSIE.Left = (SWidth - MSIE.Width)/2 
148.
	MSIE.Top = (SHeight - MSIE.Height)/2 
149.
 
150.
	MSIE.Visible = True 
151.
 
152.
	If Err.Number <> 0 Then 
153.
		Err.Clear 
154.
	End If 
155.
End Sub 
156.
 
157.
' ********************************************** 
158.
' * Funktion:		Remove Printer 
159.
' * Beschreibung:	Entfernt alle Drucker 
160.
' * Rückgabe:		<keine> 
161.
' ********************************************** 
162.
 
163.
Set WSHNetwork = WScript.CreateObject("WScript.Network") 
164.
On Error Resume Next 
165.
	PrinterPath = "\\192.168.0.21\RICOH2018D" 
166.
	WshNetwork.RemovePrinterConnection PrinterPath, true, true 
167.
	PrinterPath = "\\192.168.0.21\HP1320NOG1l" 
168.
	WshNetwork.RemovePrinterConnection PrinterPath, true, true 
169.
	PrinterPath = "\\192.168.0.21\HP1320NOG2r" 
170.
	WshNetwork.RemovePrinterConnection PrinterPath, true, true 
171.
	PrinterPath = "\\192.168.0.21\hp2800" 
172.
	WshNetwork.RemovePrinterConnection PrinterPath, true, true 
173.
	If Err.Number <> 0 Then 
174.
		Err.Clear 
175.
	End If 
176.
 
177.
 
178.
' ********************************************** 
179.
' * Funktion:		Map Printer 
180.
' * Beschreibung:	Mapped Alle Drucker und definiert Standard 
181.
' * Rückgabe:		<keine> 
182.
' ********************************************** 
183.
 
184.
Set WSHNetwork = WScript.CreateObject("WScript.Network") 
185.
On Error Resume Next 
186.
	WshNetwork.AddWindowsPrinterConnection "\\192.168.0.21\RICOH2018D" 
187.
	WshNetwork.AddWindowsPrinterConnection "\\192.168.0.21\HP1320NOG1l" 
188.
	WshNetwork.AddWindowsPrinterConnection "\\192.168.0.21\HP1320NOG2r" 
189.
	WshNetwork.AddWindowsPrinterConnection "\\192.168.0.21\hp2800" 
190.
	WSHNetwork.SetDefaultPrinter "\\192.168.0.21\RICOH2018D" 
191.
	If Err.Number <> 0 Then 
192.
		Err.Clear 
193.
	End If 
194.
	 
195.
' ********************************************** 
196.
' * Funktion:		Sub MapDrive 
197.
' * Beschreibung:	Mapped Netzlaufwerke 
198.
' * Rückgabe:		<keine> 
199.
' ********************************************** 
200.
Set fs = CreateObject("Scripting.filesystemobject") 
201.
Set net = CreateObject("WScript.Network") 
202.
On Error Resume Next 
203.
 
204.
If fs.driveExists("X:\") Then net.RemoveNetworkDrive "X:",True,True 
205.
net.MapNetworkDrive "X:", "\\192.168.0.24\mxcshare" 
206.
 
207.
' ********************************************** 
208.
' * Funktion:		Sub TimeSync 
209.
' * Beschreibung:	Synchronisiert die Systemzeit mit dem Timeserver 
210.
' * Parameter:		<keine> 
211.
' * Rückgabe:		<keine> 
212.
' ********************************************** 
213.
Sub TimeSync() 
214.
	'On Error Resume Next 
215.
	MSIE.Document.Write "<p>Synchronisation der Systemzeit</p>" 
216.
	WSHShell.Run "w32tm.exe /resync", 0 
217.
End Sub
Mitglied: bastla
06.09.2007 um 16:26 Uhr
Hallo Hunduster!

Das Problem sind die jeweiligen Zeilen
01.
WSHNetwork = WScript.CreateObject
Eigentlich wird ja in * Initialze objects * schon das "WSHNetwork"-Objekt erzeugt - also die fraglichen Zeilen einfach entfernen und dieses Objekt verwenden (übrigens kann auch für das Mappen der Laufwerke das "net"-Objekt durch das "WSHNetwork"-Objekt ersetzt werden).

Und wenn Du schon beim Aufräumen bist, könntest Du ein einziges "FileSystemObject" (egal ob "WSHFso" oder "FileSystem" oder "fs") durchgängig im gesamten Script verwenden und auch noch die überflüssige Zeile
01.
Set MailMSIE = WScript.CreateObject("InternetExplorer.Application")
einstampfen ...

Grüße
bastla
Bitte warten ..
Mitglied: Hunduster
07.09.2007 um 08:43 Uhr
Danke für den Tipp. Ich habe nun alle überflüssigen Einträge entfernt doch leider klappt das noch immer nicht mit den Druckern. mein Script sieht nun folgendermaßen aus:
01.
' *   Description:	This script configures the standard settings for domain computers 
02.
' * 
03.
' ******************************************** 
04.
 
05.
On Error Resume Next 
06.
 
07.
' *** Initialze objects *** 
08.
Set WSHNetwork = WScript.CreateObject("WScript.Network") 
09.
Set WSHShell = WScript.CreateObject("WScript.Shell") 
10.
Set WSHFso = WScript.CreateObject("Scripting.FileSystemObject") 
11.
Set MSIE = WScript.CreateObject("InternetExplorer.Application") 
12.
Set FileSystem = CreateObject("Scripting.FileSystemObject") 
13.
Set fs = CreateObject("Scripting.filesystemobject") 
14.
Set net = CreateObject("WScript.Network") 
15.
 
16.
 
17.
' *** Get environment information *** 
18.
OS 				= WSHShell.ExpandEnvironmentStrings("%OS%") 
19.
WINDIR 				= WSHShell.ExpandEnvironmentStrings("%WINDIR%") 
20.
PROGRAMDIR 			= WSHShell.ExpandEnvironmentStrings("%ProgramFiles%") 
21.
USERPROFILE 			= WSHShell.ExpandEnvironmentStrings("%USERPROFILE%") 
22.
GatewayIP 			= "" 
23.
WSHVer 				= WScript.Version 
24.
WORKSTATION 			= WSHNetwork.ComputerName 
25.
USERDOMAIN 			= WSHNetwork.UserDomain 
26.
USERDNSDOMAIN 			= WSHShell.ExpandEnvironmentStrings("%USERDNSDOMAIN%") 
27.
LOGONSERVER			= LCase(WSHShell.ExpandEnvironmentStrings("%LOGONSERVER%") & "." & USERDNSDOMAIN) 
28.
LOGONSERVER_NFQDNS 		= LCase(WSHShell.ExpandEnvironmentStrings("%LOGONSERVER%")) '*** NOT Ffull qualified DNS (=WINS-Notation "\\Servername") *** 
29.
NETLOGON_DIR 			= WSHShell.ExpandEnvironmentStrings("%LOGONSERVER%") + "\NETLOGON\" 
30.
 
31.
While USERNAME = "" 
32.
	USERNAME = WSHNetwork.UserName		' Wird solange ausgeführt, bis der User ermittelt ist. 
33.
Wend 
34.
 
35.
 
36.
' *** IE-Ausgabe vorbereiten *** 
37.
SetupMSIE()	' IE einstellen für das Anzeige Fenster. 
38.
 
39.
'*** Ausgabe Logo 
40.
MSIE.Document.Write "<HTML><TITLE>" & USERDOMAIN & " Domain-Initialisierung für Benutzer " & UCase(USERNAME) & "</TITLE>" &_ 
41.
		    "<BODY bgcolor=#ffffff>" &_ 
42.
		    "<FONT FACE=ARIAL size='-1'>" &_ 
43.
		    "<table><tr><td align='left'><IMG SRC='" & NETLOGON_DIR & "images\logos\logo.bmp' WIDTH='50%'></td></tr></table><BR>" &_ 
44.
		    "<HR>" 
45.
 
46.
' *** Ausgabe Willkommensmeldung 
47.
Welcome() 
48.
 
49.
' *** Synchronisation der Systemzeit *** 
50.
TimeSync() 
51.
 
52.
' *** Laufwerke verbinden*** 
53.
MSIE.Document.Write "<BR>- Verbinden der Netzlaufwerke" 
54.
 
55.
 
56.
' *** Löschen der Druckerverbindungen *** 
57.
MSIE.Document.Write "<BR>- Trennen der Drucker" 
58.
 
59.
 
60.
' *** Herstellen der Druckerverbindungen *** 
61.
MSIE.Document.Write "<BR>- Verbinden der Drucker" 
62.
 
63.
 
64.
' *** Standard-Drucker definieren 
65.
MSIE.Document.Write "<BR>- Definition des Standard-Druckers " 
66.
WSHNetwork.SetDefaultPrinter(DefaultPrinter) 
67.
 
68.
' *** Fehlerbehandlung *** 
69.
MSIE.Document.Write "<HR>" 
70.
If NErr = 0 Then 
71.
	' *** Keine Fehler aufgetreten *** 
72.
	MSIE.Document.Write "Die Domain-Initialsierung für " & USERNAME & " wurde erfolgreich abgeschlossen." 
73.
Else 
74.
	MSIE.Document.Write "<script language='javascript'>alert('Während der Domain-Initialisierung sind Fehler aufgetretten. Bitte informieren Sie Ihren Administrator.');</script>" 
75.
	MailBetreff = "Admin-Alert Fehler" 
76.
	MailText = "Fehler: " & NErr 
77.
	SendMail AdminMailAccount,MailBetreff,MailText 
78.
End If 
79.
 
80.
MSIE.Document.Write "</p></FONT></BODY></HTML>" 
81.
WScript.Sleep(10000) 	' *** Warten, damit Ausgabe gelesen werden kann *** 
82.
MSIE.Quit		' *** Fenster zu! *** 
83.
WScript.Quit		' *** Ende des Domain-Initialisierungs-Scripts *** 
84.
 
85.
 
86.
' ************************************************************************** 
87.
' *************************** Functions and Subs *************************** 
88.
' ************************************************************************** 
89.
 
90.
 
91.
' ********************************************** 
92.
' * Funktion:		Sub Welcome 
93.
' * Beschreibung:	Gibt die Willkommensmeldung aus. 
94.
' * Parameter:		<keine> 
95.
' * Rückgabe:		<keine> 
96.
' ********************************************** 
97.
Sub Welcome() 
98.
	On Error Resume Next 
99.
	 
100.
	MSIE.Document.Write "<B>Guten " 
101.
	 
102.
	If Hour(Now) < 12 Then 
103.
		MSIE.Document.Write "Morgen" 
104.
	ElseIf Hour(Now) < 17 Then 
105.
		MSIE.Document.Write "Tag" 
106.
	Else 
107.
		MSIE.Document.Write "Abend" 
108.
	End If 
109.
	 
110.
	MSIE.Document.Write " " & UCase(USERNAME) & " und willkommen in " & UCase(USERDOMAIN) & "!</B>" 
111.
 
112.
	MSIE.Document.Write "<p>Ihr Logon-Server ist " & UCase(LOGONSERVER) & ".</p>" 
113.
 
114.
	If Err.Number <> 0 Then 
115.
		Err.Clear 
116.
	End If 
117.
End Sub 
118.
 
119.
 
120.
' ********************************************** 
121.
' * Funktion:		Sub SetupMSIE 
122.
' * Beschreibung:	Bereitet das Internet-Explorer-Fenster für die  
123.
' *			Ausgabe während der Ausführung des Login-Scripts vor 
124.
' * Parameter:		<keine> 
125.
' * Rückgabe:		<keine> 
126.
' ********************************************** 
127.
Sub SetupMSIE() 
128.
	On Error Resume Next 
129.
	MSIE.Navigate "About:Blank" 
130.
	MSIE.ToolBar = False 
131.
	MSIE.StatusBar = False 
132.
	MSIE.Resizable = False 
133.
	MSIE.Center = True 
134.
	 
135.
	Do 
136.
	Loop While MSIE.Busy 
137.
 
138.
	SWidth = MSIE.Document.ParentWindow.Screen.AvailWidth 
139.
	SHeight = MSIE.Document.ParentWindow.Screen.AvailHeight 
140.
	MSIE.Width = SWidth * 0.5 
141.
	MSIE.Height = SHeight * 0.8 
142.
	MSIE.Left = (SWidth - MSIE.Width)/2 
143.
	MSIE.Top = (SHeight - MSIE.Height)/2 
144.
 
145.
	MSIE.Visible = True 
146.
 
147.
	If Err.Number <> 0 Then 
148.
		Err.Clear 
149.
	End If 
150.
End Sub 
151.
 
152.
' ********************************************** 
153.
' * Funktion:		Remove Printer 
154.
' * Beschreibung:	Entfernt alle Drucker 
155.
' * Rückgabe:		<keine> 
156.
' ********************************************** 
157.
 
158.
On Error Resume Next 
159.
	PrinterPath = "\\192.168.0.21\RICOH2018D" 
160.
	WshNetwork.RemovePrinterConnection PrinterPath, true, true 
161.
	PrinterPath = "\\192.168.0.21\HP1320NOG1l" 
162.
	WshNetwork.RemovePrinterConnection PrinterPath, true, true 
163.
	PrinterPath = "\\192.168.0.21\HP1320NOG2r" 
164.
	WshNetwork.RemovePrinterConnection PrinterPath, true, true 
165.
	PrinterPath = "\\192.168.0.21\hp2800" 
166.
	WshNetwork.RemovePrinterConnection PrinterPath, true, true 
167.
	If Err.Number <> 0 Then 
168.
		Err.Clear 
169.
	End If 
170.
 
171.
 
172.
' ********************************************** 
173.
' * Funktion:		Map Printer 
174.
' * Beschreibung:	Mapped Alle Drucker und definiert Standard 
175.
' * Rückgabe:		<keine> 
176.
' ********************************************** 
177.
 
178.
On Error Resume Next 
179.
	WshNetwork.AddWindowsPrinterConnection "\\192.168.0.21\RICOH2018D" 
180.
	WshNetwork.AddWindowsPrinterConnection "\\192.168.0.21\HP1320NOG1l" 
181.
	WshNetwork.AddWindowsPrinterConnection "\\192.168.0.21\HP1320NOG2r" 
182.
	WshNetwork.AddWindowsPrinterConnection "\\192.168.0.21\hp2800" 
183.
	WSHNetwork.SetDefaultPrinter "\\192.168.0.21\RICOH2018D" 
184.
	If Err.Number <> 0 Then 
185.
		Err.Clear 
186.
	End If 
187.
	 
188.
' ********************************************** 
189.
' * Funktion:		Sub MapDrive 
190.
' * Beschreibung:	Mapped Netzlaufwerke 
191.
' * Rückgabe:		<keine> 
192.
' ********************************************** 
193.
 
194.
On Error Resume Next 
195.
 
196.
If fs.driveExists("X:\") Then net.RemoveNetworkDrive "X:",True,True 
197.
net.MapNetworkDrive "X:", "\\192.168.0.24\mxcshare" 
198.
 
199.
' ********************************************** 
200.
' * Funktion:		Sub TimeSync 
201.
' * Beschreibung:	Synchronisiert die Systemzeit mit dem Timeserver 
202.
' * Parameter:		<keine> 
203.
' * Rückgabe:		<keine> 
204.
' ********************************************** 
205.
Sub TimeSync() 
206.
	'On Error Resume Next 
207.
	MSIE.Document.Write "<p>Synchronisation der Systemzeit</p>" 
208.
	WSHShell.Run "w32tm.exe /resync", 0 
209.
End Sub
Bitte warten ..
Mitglied: bastla
07.09.2007 um 18:42 Uhr
Hallo Hunduster!

Wenn in den Zeilen
01.
' * Laufwerke verbinden* 
02.
MSIE.Document.Write "<BR>- Verbinden der Netzlaufwerke" 
03.
 
04.
 
05.
' * Löschen der Druckerverbindungen * 
06.
MSIE.Document.Write "<BR>- Trennen der Drucker" 
07.
 
08.
 
09.
' * Herstellen der Druckerverbindungen * 
10.
MSIE.Document.Write "<BR>- Verbinden der Drucker"
Dein Script nicht nur behauptete, dass das Eine oder Andere gerade durchgeführt würde, sondern die entsprechenden Aktionen durch Deklaration und Aufruf des jeweiligen Subs (etwa am Beispiel des Verbindens der Netzlaufwerke:
01.
' * Laufwerke verbinden* 
02.
MSIE.Document.Write "<BR>- Verbinden der Netzlaufwerke" 
03.
MapNWDrives 
04.
 
05.
... 
06.
... 
07.
 
08.
Sub MapNWDrives() 
09.
' * Funktion: Sub MapDrive 
10.
' * Beschreibung: Mapped Netzlaufwerke 
11.
' * Rückgabe: <keine> 
12.
13.
 
14.
On Error Resume Next 
15.
 
16.
If fs.driveExists("X:\") Then net.RemoveNetworkDrive "X:",True,True 
17.
net.MapNetworkDrive "X:", "\\192.168.0.24\mxcshare" 
18.
End Sub
tatsächlich erfolgten, könnte es vielleicht klappen (allerdings habe ich nur oberflächlich über den Code geschaut).
(Die diversen "FileSystemObject"-Zuweisungen sind übrigens immer noch vorhanden, was allerdings ebensowenig ursächlich für Dein Problem sein sollte wie die beiden "WScript.Network"-Objekte "WSHNetwork" und "net".)

Grüße
bastla
Bitte warten ..
Mitglied: Biber
07.09.2007 um 19:00 Uhr
Moin Hunduster,

nur kurz Off Topic: ich habe Deine Skripts in < code > -Tags gesetzt.
Wie? Bitte schau es Dir mit "Editieren" an oder lies es in unseren "Häufigen Fragen" unter "Formatierungen" durch.

...länger wollte ich die Lösung gar nicht aufhalten...

Schönes Wochenende
Biber
Bitte warten ..
Mitglied: Hunduster
13.09.2007 um 11:36 Uhr
So, nun läuft das Script und sieht folgendermaßen aus:

01.
On Error Resume Next 
02.
 
03.
' *** Initialze objects *** 
04.
Set WSHNetwork = WScript.CreateObject("WScript.Network") 
05.
Set WSHShell = WScript.CreateObject("WScript.Shell") 
06.
Set objShell = CreateObject("Shell.Application") 
07.
Set WSHFso = WScript.CreateObject("Scripting.FileSystemObject") 
08.
Set MSIE = WScript.CreateObject("InternetExplorer.Application") 
09.
Set FileSystem = CreateObject("Scripting.FileSystemObject") 
10.
Set fs = CreateObject("Scripting.filesystemobject") 
11.
Set net = CreateObject("WScript.Network") 
12.
 
13.
 
14.
' *** Get environment information *** 
15.
OS 						= WSHShell.ExpandEnvironmentStrings("%OS%") 
16.
WINDIR 					= WSHShell.ExpandEnvironmentStrings("%WINDIR%") 
17.
PROGRAMDIR 				= WSHShell.ExpandEnvironmentStrings("%ProgramFiles%") 
18.
USERPROFILE 			= WSHShell.ExpandEnvironmentStrings("%USERPROFILE%") 
19.
WSHVer 					= WScript.Version 
20.
WORKSTATION 			= WSHNetwork.ComputerName 
21.
USERDOMAIN 				= WSHNetwork.UserDomain 
22.
USERDNSDOMAIN 			= WSHShell.ExpandEnvironmentStrings("%USERDNSDOMAIN%") 
23.
LOGONSERVER				= LCase(WSHShell.ExpandEnvironmentStrings("%LOGONSERVER%") & "." & USERDNSDOMAIN) 
24.
LOGONSERVER_NFQDNS 		= LCase(WSHShell.ExpandEnvironmentStrings("%LOGONSERVER%")) '*** NOT Ffull qualified DNS (=WINS-Notation "\\Servername") *** 
25.
NETLOGON_DIR 			= WSHShell.ExpandEnvironmentStrings("%LOGONSERVER%") + "\NETLOGON\" 
26.
 
27.
While USERNAME = "" 
28.
	USERNAME = WSHNetwork.UserName		' Wird solange ausgeführt, bis der User ermittelt ist. 
29.
Wend 
30.
 
31.
 
32.
' *** IE-Ausgabe vorbereiten *** 
33.
SetupMSIE()	' IE einstellen für das Anzeige Fenster. 
34.
 
35.
'*** Ausgabe Logo 
36.
MSIE.Document.Write "<HTML><TITLE>" & USERDOMAIN & " Domain-Initialisierung für " & UCase(USERNAME) & "</TITLE>" &_ 
37.
		    "<BODY bgcolor=#ffffff>" &_ 
38.
		    "<FONT FACE=ARIAL size='-1'>" &_ 
39.
		    "<table><tr><td align='left'><IMG SRC='" & NETLOGON_DIR & "images\logos\logo.bmp' WIDTH='50%'></td></tr></table><BR>" &_ 
40.
		    "<HR>" 
41.
 
42.
' *** Ausgabe Willkommensmeldung 
43.
Welcome() 
44.
 
45.
 
46.
' ************************************************************************** 
47.
' *************************** Functions and Subs *************************** 
48.
' ************************************************************************** 
49.
 
50.
 
51.
' ********************************************** 
52.
' * Funktion:		Sub Welcome 
53.
' * Beschreibung:	Gibt die Willkommensmeldung aus. 
54.
' * Parameter:		<keine> 
55.
' * Rückgabe:		<keine> 
56.
' ********************************************** 
57.
Sub Welcome() 
58.
	On Error Resume Next 
59.
	 
60.
	MSIE.Document.Write "<B>Guten " 
61.
	 
62.
	If Hour(Now) < 12 Then 
63.
		MSIE.Document.Write "Morgen" 
64.
	ElseIf Hour(Now) < 17 Then 
65.
		MSIE.Document.Write "Tag" 
66.
	Else 
67.
		MSIE.Document.Write "Abend" 
68.
	End If 
69.
	 
70.
	MSIE.Document.Write " " & UCase(USERNAME) & " und willkommen in " & UCase(USERDOMAIN) & "!</B>" 
71.
 
72.
	MSIE.Document.Write "<p>Ihr Logon-Server ist " & UCase(LOGONSERVER) & ".</p>" 
73.
 
74.
	If Err.Number <> 0 Then 
75.
		Err.Clear 
76.
	End If 
77.
End Sub 
78.
 
79.
 
80.
' ********************************************** 
81.
' * Funktion:		Remove Printer 
82.
' * Beschreibung:	Entfernt alle Drucker 
83.
' * Rückgabe:		<keine> 
84.
' ********************************************** 
85.
 
86.
' *** Löschen der Druckerverbindungen *** 
87.
MSIE.Document.Write "<BR>- Trennen der Drucker..." 
88.
 
89.
On Error Resume Next 
90.
	PrinterPath = "\\printers.server.de\RICOH2018D" 
91.
	WshNetwork.RemovePrinterConnection PrinterPath, true, true 
92.
	PrinterPath = "\\printers.server.de\HP1320NOG1l" 
93.
	WshNetwork.RemovePrinterConnection PrinterPath, true, true 
94.
	PrinterPath = "\\printers.server.de\HP1320NOG2r" 
95.
	WshNetwork.RemovePrinterConnection PrinterPath, true, true 
96.
	PrinterPath = "\\printers.server.de\hp2800" 
97.
	WshNetwork.RemovePrinterConnection PrinterPath, true, true 
98.
	If Err.Number <> 0 Then 
99.
		Err.Clear 
100.
	End If 
101.
	 
102.
MSIE.Document.Write "<b><font color=#00FF00>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;erfolgreich</font></b>" 
103.
 
104.
' ********************************************** 
105.
' * Funktion:		Map Printer 
106.
' * Beschreibung:	Mapped Alle Drucker und definiert Standard 
107.
' * Rückgabe:		<keine> 
108.
' ********************************************** 
109.
 
110.
' *** Herstellen der Druckerverbindungen *** 
111.
MSIE.Document.Write "<BR>- Verbinden der Drucker..." 
112.
 
113.
 
114.
On Error Resume Next 
115.
	WshNetwork.AddWindowsPrinterConnection "\\printers.server.de\RICOH2018D" 
116.
	WshNetwork.AddWindowsPrinterConnection "\\printers.server.de\HP1320NOG1l" 
117.
	WshNetwork.AddWindowsPrinterConnection "\\printers.server.de\HP1320NOG2r" 
118.
	WshNetwork.AddWindowsPrinterConnection "\\printers.server.de\hp2800" 
119.
	If Err.Number <> 0 Then 
120.
		Err.Clear 
121.
	End If 
122.
	 
123.
	MSIE.Document.Write "<b><font color=#00FF00>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;erfolgreich</font></b>" 
124.
	 
125.
	' *** Standard-Drucker definieren 
126.
MSIE.Document.Write "<BR>- Definition des Standard-Druckers..." 
127.
	 
128.
	WSHNetwork.SetDefaultPrinter "\\printers.server.de\RICOH2018D" 
129.
	If Err.Number <> 0 Then 
130.
		Err.Clear 
131.
	End If 
132.
	 
133.
	MSIE.Document.Write "<b><font color=#00FF00>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;erfolgreich</font></b>" 
134.
	 
135.
	 
136.
' ********************************************** 
137.
' * Funktion:		Sub MapDrive 
138.
' * Beschreibung:	Mapped Netzlaufwerke 
139.
' * Rückgabe:		<keine> 
140.
' ********************************************** 
141.
 
142.
' *** Laufwerke verbinden*** 
143.
MSIE.Document.Write "<BR>- Verbinden der Netzlaufwerke..." 
144.
 
145.
On Error Resume Next 
146.
 
147.
If fs.driveExists("X:\") Then net.RemoveNetworkDrive "X:",True,True 
148.
net.MapNetworkDrive "X:", "\\fileserver.server.de\mxcshare" 
149.
objShell.NameSpace("X:").Self.Name ="Fileserver" 
150.
objShell.NameSpace("Z:").Self.Name =" User.Home " 
151.
 
152.
MSIE.Document.Write "<b><font color=#00FF00>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;erfolgreich</font></b>" 
153.
 
154.
' ********************************************** 
155.
' * Funktion:		Sub TimeSync 
156.
' * Beschreibung:	Synchronisiert die Systemzeit mit dem Timeserver 
157.
' * Parameter:		<keine> 
158.
' * Rückgabe:		<keine> 
159.
' ********************************************** 
160.
 
161.
' *** Synchronisation der Systemzeit *** 
162.
TimeSync() 
163.
 
164.
Sub TimeSync() 
165.
	'On Error Resume Next 
166.
	MSIE.Document.Write "<BR>- Synchronisation der Systemzeit..." 
167.
	WSHShell.Run "w32tm.exe /resync", 0 
168.
End Sub 
169.
MSIE.Document.Write "<b><font color=#00FF00>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;erfolgreich</font></b>" 
170.
 
171.
' ********************************************** 
172.
' * Funktion:		Sub SetupMSIE 
173.
' * Beschreibung:	Bereitet das Internet-Explorer-Fenster für die  
174.
' *			Ausgabe während der Ausführung des Login-Scripts vor 
175.
' * Parameter:		<keine> 
176.
' * Rückgabe:		<keine> 
177.
' ********************************************** 
178.
Sub SetupMSIE() 
179.
	On Error Resume Next 
180.
	MSIE.Navigate "About:Blank" 
181.
	MSIE.ToolBar = False 
182.
	MSIE.StatusBar = False 
183.
	MSIE.Resizable = False 
184.
	MSIE.Center = True 
185.
	 
186.
	Do 
187.
	Loop While MSIE.Busy 
188.
 
189.
	SWidth = MSIE.Document.ParentWindow.Screen.AvailWidth 
190.
	SHeight = MSIE.Document.ParentWindow.Screen.AvailHeight 
191.
	MSIE.Width = SWidth * 0.5 
192.
	MSIE.Height = SHeight * 0.8 
193.
	MSIE.Left = (SWidth - MSIE.Width)/2 
194.
	MSIE.Top = (SHeight - MSIE.Height)/2 
195.
 
196.
	MSIE.Visible = True 
197.
 
198.
	If Err.Number <> 0 Then 
199.
		Err.Clear 
200.
	End If 
201.
End Sub 
202.
 
203.
' *** Fehlerbehandlung *** 
204.
MSIE.Document.Write "<HR>" 
205.
If NErr = 0 Then 
206.
	' *** Keine Fehler aufgetreten *** 
207.
	MSIE.Document.Write "Die Domain-Initialsierung für " & USERNAME & " wurde <b>erfolgreich</b> abgeschlossen. <br> <b>Unternehmen</b> wünscht einen schönen Tag." 
208.
Else 
209.
	MSIE.Document.Write "<font color=#FF0000>Während der Domain-Initialisierung sind <b>Fehler</b> aufgetretten. Bitte informieren Sie Ihren Administrator.</font>" 
210.
End If 
211.
 
212.
MSIE.Document.Write "</p></FONT></BODY></HTML>" 
213.
WScript.Sleep(10000) 	' *** Warten, damit Ausgabe gelesen werden kann *** 
214.
MSIE.Quit		' *** Fenster zu! *** 
215.
WScript.Quit		' *** Ende des Domain-Initialisierungs-Scripts ***
Wir hatten uns intern erst darauf geeinigt, dass ein bsetimmter Drucker auf der ersten Etage bei allen Usern als Standard definiert wird. Nun möchte die Geschäftsführung aber, dass in dem Ausgabefenster des Script eine Dropdown Wahl erscheint, in der der User angibt auf welcher Etage er gerade sitzt (wir haben hier alle Notebooks und freie Platzwahl). Je nach dem, was der User dann angibt soll ein bestimmter Drucker als Standard gesetzt werden. Ist sowas überhaupt realisierbar in VBS???

Danke schonmal für Eure Hilfe!
Bitte warten ..
Mitglied: bastla
13.09.2007 um 12:44 Uhr
Hallo Hunduster!

Ist sowas überhaupt realisierbar in VBS???
In reinem VBS nicht, aber da Ihr ja ohnehin schon DHTML verwendet, müsste sich eigentlich das folgende Beispiel (hier geklaut) integrieren lassen:
01.
sStockwerk = SelectBox("Bitte Stockwerk wählen", Array("E", "1.", "2.", "3.")) 
02.
WScript.Echo sStockwerk 
03.
 
04.
Function SelectBox(sTitle, aOptions) 
05.
Dim oIE, s, item 
06.
set oIE = CreateObject("InternetExplorer.Application") 
07.
With oIE 
08.
	.FullScreen = True 
09.
	.ToolBar = False 
10.
	.RegisterAsDropTarget = False 
11.
	.StatusBar = False : .Navigate("about:blank") 
12.
	Do Until .ReadyState = 4 : WScript.Sleep 100 : Loop 
13.
	.width= 400 
14.
	.height=200 
15.
 
16.
	With .document 
17.
		With .parentWindow.screen 
18.
			oIE.left = (.availWidth - oIE.width ) \ 2 
19.
			oIE.top = (.availheight - oIE.height) \ 2 
20.
		End With 
21.
 
22.
		s = "<html><head><title>" & sTitle _ 
23.
			& "</title></head><script language=vbs>bWait=true<" & "/script>" _ 
24.
			& "<body bgColor=Silver><center>" _ 
25.
			& "<b>" & sTitle & "<b><p>" _ 
26.
			& "<select id=entries size=1 style='width:325px'>" _ 
27.
			& " <option selected>" & sTitle & "</option>" 
28.
		For Each item In aOptions 
29.
			s = s & " <option>" & item & "</option>" 
30.
		Next 
31.
			s = s & " </select><p>" _ 
32.
			& "<button id=but0 onclick='bWait=false'>OK</button>" _ 
33.
			& "</center></body></html>" 
34.
		.open 
35.
		.Write(s) 
36.
		.close 
37.
		Do Until .ReadyState ="complete" : Wscript.Sleep 50 : Loop 
38.
		With .body 
39.
			.scroll="no" 
40.
			.style.borderStyle = "outset" 
41.
			.style.borderWidth = "3px" 
42.
		End With 
43.
		.all.entries.focus 
44.
		oIE.Visible = True 
45.
		CreateObject("WScript.Shell").AppActivate sTitle 
46.
		On Error Resume Next 
47.
		Do While .ParentWindow.bWait 
48.
			WScript.Sleep 100 
49.
			If oIE.Visible Then SelectBox = "Aborted" 
50.
			If Err.Number <> 0 Then Exit Function 
51.
		Loop 
52.
		On Error Goto 0 
53.
		With .ParentWindow.Entries 
54.
			SelectBox = .Options(.SelectedIndex).Text 
55.
		End With 
56.
	End With 
57.
	.Visible = False 
58.
End With 
59.
End Function
Ähnlich: http://support.microsoft.com/kb/197959/de

Grüße
bastla
Bitte warten ..
Mitglied: Hunduster
13.09.2007 um 14:07 Uhr
1000 Dank sieht schonmal sehr genial aus. Nun bin ich persönlich aber noch schwer am forschen, wie ich ihm sage das er je nach Auswahl des Users ein bestimmtes Script starten soll in meinem Fall dann die Standard Definierung des Druckers.
Bitte warten ..
Mitglied: bastla
13.09.2007 um 15:22 Uhr
Hallo Hunduster!

Ohne Deinen Forscherdrang behindern zu wollen: Eigentlich musst Du ja nur den richtigen Druckerpfad in eine Variable schreiben, was sich per "Select Case" einigermaßen übersichtlich machen ließe - Beispiel:
01.
Select Case sStockwerk 
02.
    Case "E" 
03.
        Printerpath = "\\printers.server.de\RICOH2018D" 
04.
    Case "1." 
05.
        Printerpath = "\\printers.server.de\HP1320NOG1l" 
06.
    ... 
07.
    ... 
08.
    Case Else 
09.
        'keine Etage gewählt ... 
10.
        Printerpath = "\\printers.server.de\hp2800" 
11.
End Select 
12.
 
13.
WSHNetwork.SetDefaultPrinter Printerpath
Grüße
bastla
Bitte warten ..
Mitglied: Hunduster
13.09.2007 um 15:27 Uhr
Sorry, bin Azubi (FISI) im ersten Lehrjahr und der einzigste in der ganzen Firma der den Ansatz von VBS versteht Werd mal probieren. bin dir echt dankbar!
Bitte warten ..
Mitglied: retz12
03.07.2008 um 08:56 Uhr
Hallo bastl,
Du kennst dich ziemlich gut mit VBS aus so wie ich es hier herauslese.
Ich bin von dem Script oben von Hunduster sehr begeister. Bin gerade dabei es für unsere Firma umzuschreiben. Bin aber neuling beim VBS Programmieren.
Ich möchte gerne das Script so umschreiben, dass sich die Drucker PC-bezogen mappen und auch ein bestimmter Standard Drucker eingerichtet wird.

Info:
PC1, PC2 soll Drucker 1 mappen
PC3, PC4, PC5 soll Drucker 2 und Drucker 3 mappen, wobei Drucker 2 als Standard eingerichtet werden soll.

Wie kann ich dies Lösen?
Ich bedanke mich schon für eure Antworten.
Bitte warten ..
Mitglied: retz12
27.07.2008 um 21:21 Uhr
es öffnet sich beim Anmelden ein Intern Explorer Fenster.
Kann man es irgendwie verhinder, dass user dieses Fenster schließen können.
Weiß nicht ob das Script fertig ausgeführt wird, wenn das Fenster frühzeitig geschlossen wurde!
Bitte warten ..
Mitglied: bastla
28.07.2008 um 09:19 Uhr
Hallo retz12!

... Intern Explorer Fenster. Kann man es irgendwie verhinder, dass user dieses Fenster schließen können.
Diese Frage solltest Du besser in einem eigenen Thread stellen.

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Windows Server
gelöst Windows Server 2012 - Remote Login Problem (2)

Frage von Loginfriek zum Thema Windows Server ...

Exchange Server
Problem mit POP3-Abruf eines Exchange-2013-Postfachs

Frage von YotYot zum Thema Exchange Server ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

Multimedia & Zubehör
gelöst BENQ Beamer Fernbedingung Frequenz Problem (4)

Frage von xbast1x zum Thema Multimedia & Zubehör ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...