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

Frage Microsoft Windows Userverwaltung

Mitglied: cjaugey

cjaugey (Level 1) - Jetzt verbinden

28.05.2008, aktualisiert 04.06.2008, 7444 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
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 ...

Batch & Shell
Anmeldeskript in VB
gelöst Frage von mschaedler1982Batch & Shell7 Kommentare

Hallo zusammen. Ich habe hier ein aktuelles VB Skript was bei uns zur Anmeldung verwendet wird. Am Ende des ...

Windows Server
Sicherungsstrategie (i.S.d. deseaster recovery) Win 2003 SBS
Frage von AnatolPigwaWindows Server6 Kommentare

Hallo, Aufgrund des Wevhsels des Backupmediums (von Band auf RDX) Habe ich utsprünglich angedacht den kleinen Praxisserver (Fileserver KEIN ...

Neue Wissensbeiträge
DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 StundenDSL, VDSL

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 2 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 5 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement17 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...