Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: Hunduster

Hunduster (Level 1) - Jetzt verbinden

06.09.2007, aktualisiert 28.07.2008, 4941 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 ..
Ähnliche Inhalte
Windows Server

GPO Druckerverbindung auf Win2012r2 nicht vorhanden

gelöst Frage von RobyTheHoodWindows Server4 Kommentare

Hallo Zusammen, nach eine Umzug von Win2003r2 auf Win2008r2, heute auf win2012r2 unsere GPO Default Domain Policy zeigt eine ...

Batch & Shell

Batch Login

gelöst Frage von ValeriBatch & Shell3 Kommentare

Hi ich habe folgende Problem mit batch/cmd ich habe folgende Code set zeile1=WILKOMMEN set zeile2=Installation-CD set zeile3%=Bitte geben Sie ...

Webbrowser

Login Congstar

Frage von MinionWebbrowser7 Kommentare

Hallo all, hoffe Ihr könnt Licht in's Dunkel bringen. Heute Abend habe ich bei Bekannten ein Congstar-Tarif incl. Anmeldung ...

Vmware

Login an vCenter

gelöst Frage von racer1601Vmware7 Kommentare

Hallo ich habe folgendes Problem: Wir können und nicht mehr über den VSpherClient mit unseren VCenter verbinden. Es kommt ...

Neue Wissensbeiträge
iOS
WatchChat für Whatsapp
Tipp von Criemo vor 1 TagiOS

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 1 TagiOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 3 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Webbrowser
Microsoft bestätigt Edge mit Chromium-Kern
Information von Frank vor 4 TagenWebbrowser5 Kommentare

Microsoft hat nun in seinem Blog bestätigt, dass die nächste Edge Version kein EdgeHTML mehr für die Darstellung benutzen ...

Heiß diskutierte Inhalte
Windows Netzwerk
Kerio. Kann keine Mails empfangen aber senden. Wer ist schuld. Kerio oder Windows domäne?
gelöst Frage von frosch2Windows Netzwerk20 Kommentare

Hallo, es existiert ein Problem bei uns mit dem mailen. Alle bestehenden Nutzer können mailen. Raus wie rein. Neuen ...

Exchange Server
Exchange Server 2010: Keine Eingehenden E-MAils
gelöst Frage von gabeBUExchange Server17 Kommentare

Hallo Zusammen Ich habe das kurzen auf dem Exchange 2010 Server das Problem, dass ich keine externen E-Mails mehr ...

Hosting & Housing
VMware VM mit über 1TB RAM für S4HANA
Frage von Leo-leHosting & Housing17 Kommentare

Hallo zusammen, wer hat Erfahrng und kann mir einen Tipp zum sizing von S4HANA Systemen geben? Wir möchten, zunächst ...

Ubuntu
Eingehängte Partition ändern
Frage von Florian961988Ubuntu14 Kommentare

Hallo wir nutzen hier GITLAB(liegt in einer VMWARE ESXI mit UBUNTU 18.04), dort hat man eine Partition für Root ...