# [Batch] Standarddrucker auslesen



## Steusi (1. Oktober 2009)

Hallo Leute, wir arbeiten mit einem Citrix-System (also Terminalsystem) dort funktioniert die Übergabe der Druckereinstellung nicht mehr, primäres Problem ist das der Standarddrucker immer ein andere ist.
Also dachte ich mir, mal ließt den Standarddrucker vom eigenen System aus und setzten diesen ausgelesenen Drucker als Standarddrucker im Terminalsystem.

Nur wie lese ich den Standarddrucker aus?
Ihr könnt mir sicher sagen wie ich den Wert aus der Registry auslesen kann, da fehlt mir einfach die Ahnung :-(

Ich habe folgendes Script gefunden zum Auslesen, welches ich nicht verstehe:


```
ScriptLogName = "defprinter.log"

strComputer = "."

Set WshShell = WScript.CreateObject("WScript.Shell")
fTMP = WshShell.ExpandEnvironmentStrings("%HOMEDRIVE%")
Set fso = WScript.CreateObject("Scripting.FileSystemObject") 
Set inputFile = fso.OpenTextFile("H:" & "\" & ScriptLogName, 2, True) 

Set objWMIService = GetObject ("winmgmts:\\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery ("Select * From Win32_Printer Where Default = TRUE")

For Each objPrinter in colPrinters
inputFile.WriteLine(objPrinter.ShareName)
```

Den Standarddrucker setzen ist ganz einfach:

```
SET Printer=\\SERVER\DRUCKER


rundll32 printui.dll,PrintUIEntry /y /n %Printer%
```
Natürlich muss Printer aus einer Datei ausgelesen werden, welche vorher erzeugt werden muss.
Ich hoffe jemand kann mir fehlen und sagen wie ich an den Standarddrucker komme.
Vielen Dank im Voraus


----------



## deepthroat (1. Oktober 2009)

Hi.

Warum nimmst du nicht einfach das VBScript?

Oder du verwendest die Skripte die Microsoft dafür bereit hält in %systemroot%\system32\prn*.vbs


```
cscript //NoLogo prnmngr.vbs -g
```

Gruß


----------

