rabauke84
Goto Top

Script um Drucker als Standard zu definieren

Hallo zusammen,

wir haben VMware View im Einsatz mit ZeroClients (OS Windows 7 Prof). Die User weisen sich daher einmalig ihren Arbeitsplatzdrucker,
der als Netzwerkdrucker am Client angeschlossen ist, zu. Dieser wird dann in Ihrem Profil gespeichert und ist bei der nächsten Anmeldung auch da. Alles gut.
Problem hierbei ist, das bei der nächsten Neuanmeldung der Drucker nicht mehr als Standard definiert ist.

Hier mein vbs.Script, um das Problem zu lösen:

On Error Resume Next

strComputer = "."  

Set cShell = CreateObject("WScript.shell")  
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
Set colItems = objWMIService.ExecQuery("Select * from Win32_Printer where Name like '%Laser%' ",,48)  


For Each objItem in colItems
Wscript.Echo "Name: " & objItem.Name  

REM cShell.run "rundll32 printui.dll,PrintUIEntry /q /n " & "objltem.Name" , 1, true  
wshell.run("rundll32 printui.dll,PrintUIEntry /y /n objltem.Name" )  

Next

Die Ausgabe des Namen des Netzwerkdruckers klappt, aber er wird nicht als Standard definiert.
Ich hoffe, es weiß jem ne Lösung!
Danke

Content-Key: 284443

Url: https://administrator.de/contentid/284443

Ausgedruckt am: 29.03.2024 um 07:03 Uhr

Mitglied: TlBERlUS
TlBERlUS 02.10.2015 um 09:17:10 Uhr
Goto Top
Guten Morgen,

Macht man sowas normalerweise nicht mit Batch?
Dürfte auch einfacher sein.
Mitglied: Rabauke84
Rabauke84 02.10.2015 um 09:21:10 Uhr
Goto Top
Gut möglich,
aber wie bekomme ich per Batch den Namen des schon eingebundenen Netzwerkdruckers raus? Hab da nicht wirklich
ne Lösung gefunden....
Mitglied: 122990
122990 02.10.2015 aktualisiert um 09:35:32 Uhr
Goto Top
Warum nicht per GPO ?

Du hast in deinem Code eine Variable innerhalb von Anführungszeichen gesetzt, das geht so nicht du musst sie mit & verknüpfen.

Simpler ohne den DLL Aufruf geht es in VBS hiermit
CreateObject("WScript.Network").SetDefaultPrinter "\\Server\LaserjetXYZ"  

Den Namen des Druckers kannst du ja mit dem Teil deines Skriptes an den Aufruf übergeben ...

Gruß grexit
Mitglied: Rabauke84
Rabauke84 02.10.2015 um 09:31:42 Uhr
Goto Top
Hmm, die Übergabe klappt leider nicht, bekomme da immer ein Error:

CreateObject("WScript.Network").SetDefaultPrinter & objItem.Name  


Sry, bin leider nicht der große vbs-Experte.
Mitglied: 122990
Lösung 122990 02.10.2015 aktualisiert um 09:51:34 Uhr
Goto Top
Zitat von @Rabauke84:

Hmm, die Übergabe klappt leider nicht, bekomme da immer ein Error:
Nee, das & weglassen ...
CreateObject("WScript.Network").SetDefaultPrinter objItem.Name  
Mitglied: Rabauke84
Rabauke84 02.10.2015 um 09:51:49 Uhr
Goto Top
Vielen Dank ;)