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, 7489 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 ...

Batch & Shell

Anmeldeskript - Anmeldezeiten

Frage von Goldenone95Batch & Shell13 Kommentare

Hallo Community, ich will ein Skript verwenden um die Anmeldezeiten festzuhalten. Grundsätzlich funktioniert das auch schon ganz gut, jedoch ...

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 ...

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
Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 31 MinutenWindows 10

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 2 StundenSicherheit1 Kommentar

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Microsoft Office
TEAMS - Skype for business
Tipp von Nebellicht vor 3 StundenMicrosoft Office

Hallo, ms ersetzt Skype for business durch TEAMS. Also, nicht wundern wenn mit der OFFICE365 Umgebung kein Skype for ...

Windows 10

Windows 10: Cortana und die Suche gehen bald wieder eigene Wege

Information von Frank vor 6 StundenWindows 102 Kommentare

Microsoft hat einen neuen Insider Build von Windows 10 veröffentlicht (Fast Ring, Version 18317), wo die digitale Assistentin "Cortana" ...

Heiß diskutierte Inhalte
Microsoft
SFirm 4.0 auf Terminalserver startet für jeden angemeldeten Benutzer diverse Dienste
Frage von Frank84Microsoft25 Kommentare

Hallo zusammen, wir verwenden Sfirm 4.0 auf einem Terminalserver (der SQL Server ist auf einem separaten Server), das Problem ...

Windows Server
Uhren gehen immer wieder falsch
Frage von killtecWindows Server22 Kommentare

Hallo, ich habe folgende Konstellation: 1. Physischer DC Div. Virtuelle DC's auf Hyper-V Servern Die Hyper-V-Server, der Physische DC ...

Windows 10
VM wächst schnell von 14 auf 35 GB an - warum?
Frage von degudejungWindows 1018 Kommentare

Hallo, ich bin ein Freund schlanker VMs und setze daher gerne mit dem Erscheinen einer neuen Win10 Version - ...

Internet
Google-Suchergebnisse, Schnelleinblendung, woher kommt der Inhalt?
gelöst Frage von departure69Internet17 Kommentare

Hallo. Ich bin der Systembetreuer einer kleinen Gemeinde in Süddeutschland. Wir betreiben auch eine Leihbücherei. Eine Kundin hat letzten ...