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

Printed on: April 19, 2024 at 13:04 o'clock

Member: TlBERlUS
TlBERlUS Oct 02, 2015 at 07:17:10 (UTC)
Goto Top
Guten Morgen,

Macht man sowas normalerweise nicht mit Batch?
Dürfte auch einfacher sein.
Member: Rabauke84
Rabauke84 Oct 02, 2015 at 07:21:10 (UTC)
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 Oct 02, 2015 updated at 07:35:32 (UTC)
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
Member: Rabauke84
Rabauke84 Oct 02, 2015 at 07:31:42 (UTC)
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
Solution 122990 Oct 02, 2015 updated at 07:51:34 (UTC)
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  
Member: Rabauke84
Rabauke84 Oct 02, 2015 at 07:51:49 (UTC)
Goto Top
Vielen Dank ;)