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 Anmeldeskript Win SBS 2003 mit WinXP

Mitglied: cjaugey

cjaugey (Level 1) - Jetzt verbinden

28.05.2008, aktualisiert 04.06.2008, 7468 Aufrufe, 7 Kommentare

Drucker Mapping mit login.vbs - Anmeldeskript für User bei Win SBS 2003 Std.Edition und WinXP Clients

System: Windows SBS 2003 Std. Edition mit 5 Win XP-Clients
Hallo,
ich habe folgende Problemstellung und würde mich über Hilfe freuen:

1) Der bei uns installierte WinSBS2003-Server verwendet ein Anmeldeskript (login.vbs) zum Mappen von Netzlaufwerken und Netzwerkdruckern.
Bisher funktionierte dies mit den zwei vorhandenen per LAN-Kabel am Server angeschlossenden Druckern einwandfrei.
Ich habe jedoch einen dritten Drucker hinzufügen wollen, der per USB-KAbel am Server hängt, und daher das Skript um eine Zeile ergänzt (s.u.).
Trotz der Ergänzung und Neustart des Servers und der Clients wird der neue Drucker NICHT automatisch gemappt.

2) Manuell lässt sich der neue Netzwerk-Drucker an den Clients jedoch problemlos hinzufügen und der Drucker funktioniert auch.
Der Pfad und NAME des Druckers ist im Skript korrekt wiedergegeben, exakt so, wie ich ihn beim manuellen Mappen am Client eingebe.

3) Das Anmeldeskript "login.vbs" enthält zum Thema Druckermapping folgenden Text:

If INGROUP ("NAMESICHERHEITSGRUPPE") Then
WSHNetwork.AddWindowsPrinterConnection "\\SERVERNAME\DRUCKER_1"
WSHNetwork.AddWindowsPrinterConnection "\\SERVERNAME\DRUCKER_2"
WSHNetwork.AddWindowsPrinterConnection "\\SERVERNAME\DRUCKER_3_NEU"
Rem WSHNetwork.SetDefaultPrinter "\\SERVERNAME\DRUCKER_1"
End If

4) Das SBS_LOGIN_SCRIPT.bat enthält ausschliesslich folgenden Code:

\\SERVERNAME\Clients\Setup\setup.exe /s SERVERNAME


Jetzt meine Frage: Wo liegt der Fehler?

Danke für Feedback!
Cyril
Mitglied: Biber
28.05.2008 um 18:40 Uhr
Moin cjaugey,

steht eventuell ein "on error goto 0" im nicht relevanten Teil des Loginscripts und werden eventuell die Drucker nicht vorher im Skript gelöscht?

Da läuft das Skript beim ersten bereits vorhandenen Drucker auf eine Mine (Kein Add möglich, weil ja schon vorhanden). Und zu der zeile mit dem nicht installierten Drucker kömmt er gar nicht.

tausche doch mal einfach die beiden Drucker1- und die DruckerNeu-Zeilen.

Grüße
Biber
Bitte warten ..
Mitglied: cjaugey
28.05.2008 um 19:12 Uhr
Danke für die schnelle Antwort.
Das Komplette login.vbs sieht so aus:

01.
'**********************************************************************************  
02.
' Set Environment Variables  
03.
'*********************************************************************************  
04.
Set WSHNetwork = WScript.CreateObject("WScript.Network")  
05.
Set WSHShell = WScript.CreateObject("WScript.Shell")  
06.
 
07.
On Error Resume Next  
08.
 
09.
Domain = WSHNetwork.UserDomain  
10.
UserName = ""  
11.
 
12.
While UserName = ""  
13.
UserName = WSHNetwork.UserName  
14.
MyGroups = GetGroups(Domain, UserName)  
15.
Wend 
16.
 
17.
'*********************************************************************************  
18.
' Main Process: 
19.
'*********************************************************************************  
20.
GrpMeb UserName  
21.
Wscript.Quit  
22.
 
23.
'*********************************************************************************  
24.
'Function: GetGroups 
25.
'*********************************************************************************  
26.
Function GetGroups(Domain, UserName)  
27.
Set objUser = GetObject("WinNT://" & Domain & "/" & UserName)  
28.
GetGroups=""  
29.
For Each objGroup In objUser.Groups  
30.
GetGroups=GetGroups & "[" & UCase(objGroup.Name) & "]"  
31.
Next  
32.
End Function  
33.
 
34.
'********************************************************************************  
35.
'Function: InGroup  
36.
'********************************************************************************  
37.
Function InGroup(strGroup)  
38.
InGroup=False  
39.
If InStr(MyGroups,"[" & UCase(strGroup) & "]") Then  
40.
InGroup=True  
41.
End If  
42.
End Function  
43.
 
44.
'********************************************************************************  
45.
'Map Drives: 
46.
'********************************************************************************  
47.
Sub GrpMeb(UNAME) 
48.
 
49.
If INGROUP ("NAMESICHERHEITSGRUPPE") Then 
50.
WSHNetwork.MapNetworkDrive "R:","\\SERVERNAME\ORDNER_1", TRUE 
51.
WSHNetwork.MapNetworkDrive "S:","\\SERVERNAME\ORDNER_2", TRUE 
52.
End If 
53.
 
54.
'********************************************************************************  
55.
'Map Printer: 
56.
'********************************************************************************  
57.
If INGROUP ("NAMESICHERHEITSGRUPPE") Then 
58.
WSHNetwork.AddWindowsPrinterConnection "\\SERVERNAME\DRUCKER_1" 
59.
WSHNetwork.AddWindowsPrinterConnection "\\SERVERNAME\DRUCKER_2" 
60.
WSHNetwork.AddWindowsPrinterConnection "\\SERVERNAME\DRUCKER_3_NEU" 
61.
Rem WSHNetwork.SetDefaultPrinter "\\SERVERNAME\DRUCKER_1" 
62.
End If 
63.
 
64.
End Sub 
Sieht also tatsächlich so aus, als würden die Drucker nicht erst entfernt. In der Tat habe ich den Eindruck, als würden Änderungen an dem Skript GAR nicht brücksichtigt (obwohl ich sicherheitshalber in der Gruppenrichtlinienverwaltung beim Skript den Objektstatus einmal auf 'deaktiviert' und dann wieder auf 'aktiviert' gesetzt habe). Muss man vielleicht sonst noch irgendwo dafür sorgen, dass das geänderte Skript auch tatsächlich "angewendet" wird (z.B. durch Serverneustart, o.Ä.)?

Wie müssten denn die Code-Zeilen lauten, um die das Skript ergänzt werden muss?

Wäre das hier (eingefügt VOR dem bisherigen Skript-Abschnitt "Map Printer" vielleicht eine Lösung?:

01.
'*********************************************************************************  
02.
'Delete All Network Printer Maps:  
03.
'*********************************************************************************  
04.
 
05.
If Left(WSHPrinters.Item(LOOP_COUNTER +1),2) = "\\" Then 
06.
      WSHNetwork.RemovePrinterConnection WSHPrinters.Item(LOOP_COUNTER +1),True,True 
07.
    End If 
08.
 
09.
On error resume next 
10.
 
11.
Set WshNetwork = WScript.CreateObject("WScript.Network") 
12.
Set oPrinters = WshNetwork.EnumPrinterConnections 
13.
For i = 0 to oPrinters.Count - 1 Step 2 
14.
WScript.Echo oPrinters.Item(i+1) 
15.
WshNetwork.RemovePrinterConnection oPrinters.Item(i+1) 
16.
 
17.
Next

Gruß
Cyril
Bitte warten ..
Mitglied: Biber
28.05.2008 um 19:54 Uhr
Moin Cyril,

(z.B. durch Serverneustart, o.Ä.)?
Na, so brutal nun nicht.. aber ein "gpupdate /force" könnte helfen.

Zu dem Skript:
Eine Forumssuche zu "RemovePrinterConnection" sollte (nach meiner Erinnerung) mehrere Beispiele liefern.
Insbesondere User gemini hat dazu ein paar Praxis/Produktiv-Beispiele gepostet.

Und nochmal zu dem Skript:
Wenn dort steht/stand "on Error macheinfachweiter", dann sieht es eher danach aus, als wenn wirklich das "neue" Skript noch gar nicht angezogen wird.
Denn funktionieren sollte es ja - auch wenn bei jedem gottverdammten Login mit In-Kauf-genommenen und einfach ignorierten Fehlern.

Schweineprogrammierung hieß das früher, bevor M$ sich durchsetzte.

Grüße
Biber
Bitte warten ..
Mitglied: cjaugey
28.05.2008 um 20:53 Uhr
Hallo Biber,

also ich habe

- versuchsweise den neuen Drucker an die erste Stelle gesetzt
- und dann gpupdate /force ausgeführt.
=> Es hat nichts geändert, der neue Drucker wird beim User-Logon NICHT gemappt.

Ausserdem habe ich folgendes probiert:
- Als User am Client eingeloggt.
- Einen der beiden ALTEN (=schon früher im Skript enthalten) Netzwerkdrucker manuell entfernt ("löschen")
- User abgemeldet und neu angemeldet.
=> selbst der soeben gelöschte ALTE Drucker wird nicht neu gemappt, ich muß ihn manuell mappen (dito für den NEUEN Drucker).

Bevor ich lange das Skript optimiere, stellt sich also zunächst die Frage, warum das Skript möglicherweise/offenbar GAR nicht gezogen wird, bzw. welche Einstellung ggf. dafür sorgt, dass die Skript-Zeilen zum Drucker-Mapping nichts bewirken.
Sonst kann ich da ja die tollsten "RemovePrinterConnection"-Schleifen einbauen...

Irgendwelche Ideen?

Grüße
Cyril

P.S. Bzgl. "Schweineprogrammierung": Die Installation des SBS2003 erfolgte durch ein großes (!) deutsches IT-Haus, für entsprechendes Geld, zugegebenermaßen allerdings unter ziemlichem Zeitdruck...
Bitte warten ..
Mitglied: Biber
28.05.2008 um 21:21 Uhr
Moin Cyril,

wenn es manuell gestartet klappt, dann hat ja auch der Computer oder User oder die Abteilung (ich weiß ja nicht, auf was sich deine SICHERHEITSGRUPPE bezieht) das Recht, die Druckerinformationen zu lesen. Den Fehler können wir wohl ausschließen.

Probier noch mal ein
gpupdate /target:computer /force /wait:0
Mit "computer" natürlich diurch den Computernamen ersetzt.

Muss schon an der Ecke sein... *grübel*

P.S.
Bzgl. "Schweineprogrammierung": Die Installation des SBS2003 erfolgte durch ein großes (!) deutsches IT-Haus...
Ein so genannter Schweineladen meinst Du?
Bitte warten ..
Mitglied: cjaugey
29.05.2008 um 11:33 Uhr
Hallo Biber,

gpupdate /target:computer /force /wait:0

hat leider nicht funktioniert ("computer" natürlich durch den richtigen Namen ersetzt).
(Am Rande: die Sicherheitsgruppe umfasst ALLE USER.)

Ich habe irgendwo noch was von "Richtlinienergebnissatz" gelesen. Kann es hiermit noch etwas zu tun haben?

Cyril
Bitte warten ..
Mitglied: cjaugey
04.06.2008 um 16:24 Uhr
Hallo,

ich habe jetzt eine (zwar nicht perfekt, aber zumindest vorerst akzeptable) Lösung des Problems.
Das Skript sieht jetzt so aus:

01.
'********************************************************************************** 
02.
' Set Environment Variables 
03.
'********************************************************************************* 
04.
Set WSHNetwork = WScript.CreateObject("WScript.Network") 
05.
Set WSHShell = WScript.CreateObject("WScript.Shell")  
06.
 
07.
On Error Resume Next  
08.
 
09.
Domain = WSHNetwork.UserDomain 
10.
UserName = ""  
11.
 
12.
While UserName = ""  
13.
	UserName = WSHNetwork.UserName  
14.
	MyGroups = GetGroups(Domain, UserName) Wend 
15.
 
16.
'********************************************************************************* 
17.
' Main Process: 
18.
'********************************************************************************* 
19.
GrpMeb UserName 
20.
Wscript.Quit  
21.
 
22.
'********************************************************************************* 
23.
'Function: GetGroups 
24.
'********************************************************************************* 
25.
Function GetGroups(Domain, UserName)  
26.
	Set objUser = GetObject("WinNT://" & Domain & "/" & UserName)  
27.
	GetGroups=""  
28.
	For Each objGroup In objUser.Groups  
29.
		GetGroups=GetGroups & "[" & UCase(objGroup.Name) & "]"  
30.
	Next 
31.
End Function  
32.
 
33.
'******************************************************************************** 
34.
'Function: InGroup 
35.
'******************************************************************************** 
36.
Function InGroup(strGroup)  
37.
	InGroup=False  
38.
	If InStr(MyGroups,"[" & UCase(strGroup) & "]") Then  
39.
		InGroup=True  
40.
	End If 
41.
End Function  
42.
 
43.
'******************************************************************************** 
44.
'Map Drives: 
45.
'******************************************************************************** 
46.
Sub GrpMeb(UNAME) 
47.
 
48.
Set oNetworkDrives = WSHNetwork.EnumNetworkDrives For i=0 to oNetworkDrives.Count -1 Step 2 
49.
	Rem WScript.Echo i & " - " & oNetworkDrives.Item(i) 
50.
	If oNetworkDrives.Item(i) <> "P:" AND Right(oNetworkDrives.Item(i),1) = ":" Then 
51.
		WSHNetwork.RemoveNetworkDrive oNetworkDrives.Item(i), TRUE 
52.
		WScript.Sleep (1000) 
53.
	End If 
54.
Next 
55.
 
56.
If INGROUP ("NAMESICHERHEITSGRUPPE") Then 
57.
	WSHNetwork.MapNetworkDrive "R:","\\SERVERNAME\ORDNER_1", TRUE 
58.
	WScript.Sleep (1000) 
59.
	WSHNetwork.MapNetworkDrive "S:","\\SERVERNAME\ORDNER_2", TRUE 
60.
	WScript.Sleep (1000) 
61.
End If 
62.
 
63.
 
64.
'******************************************************************************** 
65.
'Map Printer: 
66.
'******************************************************************************** 
67.
If INGROUP ("NAMESICHERHEITSGRUPPE") Then 
68.
	WSHNetwork.AddWindowsPrinterConnection "\\SERVERNAME\DRUCKER_3_NEU" 
69.
	WScript.Sleep (1000) 
70.
	WSHNetwork.AddWindowsPrinterConnection "\\SERVERNAME\DRUCKER_1" 
71.
	WScript.Sleep (1000)	 
72.
	WSHNetwork.AddWindowsPrinterConnection "\\SERVERNAME\DRUCKER_2" 
73.
	WScript.Sleep (1000) 
74.
End If 
75.
 
76.
End Sub
Danke nochmal für die Hilfe,
Cyril
Bitte warten ..
Ähnliche Inhalte
Windows 7

Ordnerumleitung Win 7 nach Win 2003 SBS geht nicht

Frage von ShakotaiWindows 710 Kommentare

Hallo liebe Forengemeinde, Bei uns läuft eine Win2003 SBS Domäne mit insgesamt 10 Clients, davon 4 XP und 6 ...

Windows Server

Bitlocker über Anmeldeskript GPO aktivieren bei Win 10 Clients

gelöst Frage von derLenhartWindows Server14 Kommentare

Hallo, ich habe zum o.g. Thema viel gelesen, aber leider keine Lösung gefunden. Ich möchte in einer kleineren Umgebung ...

Windows Server

Anmeldeskript für Benutzer im Active Directory Win 2012 R2

Frage von RitterKokoWindows Server6 Kommentare

Hallo, ich habe folgendes Anliegen im Windows Server 2012 R2 und brauche für die Umsetzung Unterstützung: Im Active Directory ...

Netzwerkprotokolle

Anmeldeskript im Netzerk

Frage von ManneKLNetzwerkprotokolle3 Kommentare

Hallo, Habe ein NAS ins Netzwerk eingebunden und das Anmeldeskript - bat. Datei entsprechende Einträge z. Bsp: NET USE ...

Neue Wissensbeiträge
Vmware
VMware Updates gegen L1 Lücke
Information von sabines vor 2 StundenVmware

Für die Vmware Produkte vCenter Server, ESXi, Workstation und Fusion stehe Updates bereit um die L1 Lücke zu schließen. ...

Drucker und Scanner
HP-MF-Drucker per Fax angreifbsr
Information von Lochkartenstanzer vor 2 TagenDrucker und Scanner3 Kommentare

Endlich eine sinnvolle Verwendung für Faxe: Damit kann man offensichtlich den Drucker übernehmen. lks

Router & Routing

Das pfSense Buch ist jetzt für jeden kostenlos zu beziehen

Tipp von magicteddy vor 2 TagenRouter & Routing2 Kommentare

Bisher war das Buch nur für zahlende Unterstützer verfügbar, jetzt steht für Jedermann kostenlos zur Verfügung. Siehe auch The ...

Firewall

Möglicherweise neue Sicherheitslücke in Mikrotik-Firmware

Information von LordGurke vor 4 TagenFirewall3 Kommentare

Hallo zusammen, vor ein paar Monaten gab es ja bereits eine Sicherheitslücke in der Firmware von Mikrotik-Routern, über welche ...

Heiß diskutierte Inhalte
Windows 10
WIN 10 1803 - LTE Stick kein Internetzugriff
Frage von killtecWindows 1023 Kommentare

Hallo, ich habe mit einem Windows 10 1803 Probleme mit einem LTE-Stick. Das gleiche Problem ist bei mehreren Rechnern ...

Datenbanken
MySQL Datenbank Import Aufgabe für mehrere .csv dateien
gelöst Frage von Marcel1989Datenbanken19 Kommentare

Hi, ich komm nicht weiter. Ich hab auf einem Windows Server 2012 r2 eine MariaDB/MySQL laufen. Nun soll diese ...

CPU, RAM, Mainboards
Xeon E5620: noch schnell genug?
Frage von ahussainCPU, RAM, Mainboards19 Kommentare

Hallo allerseits, ich habe die Möglichkeit, aus Restbeständen einen Tower mit Xeon E5620 CPU und 24 GB RAM zu ...

Batch & Shell
Windows Task per Batch hinzufügen für wöchentlichen Reboot
gelöst Frage von KusimirBatch & Shell15 Kommentare

Hallo, ich würde gern per Batch auf mehreren PC's (Windows 10) einen Reboot hinzufügen als geplante Task der jede ...