# Drucker-Infos von einem ThinPrint Client einlesen
# Drucker-Infos von einem ThinPrint Client einlesen
# Schritt 1
# Geben Sie die Adresse eines ThinPrint Clients inkl. TCP-Port an, um dessen Druckerliste zu beziehen:
$client = New-TpmsObjTpClient -Name client701 -Port 4000
# Schritt 2
# Geben Sie die Adresse des Tpms.Agents inkl. TCP-Port an; dieser wird eine Verbindung zum ThinPrint Client herstellen. Geben Sie ggf. weitere ThinPrint-Client-Information (-ClientQueries). Schreiben Sie die Einstellungen in ein Datenpaket (hier: $srva):
$srva = New-TpmsObjQueryAgent -Name "tpms002.ourdomain.local" -Port 5050 -ClientQueries ($client)
# Schritt 3
# Senden Sie das Datenpaket zum Tpms.Service, damit dieser es an den betreffenden Tpms.Agent weiterleitet. Der Agent bezieht dann die Druckerliste vom ThinPrint Client.
# Schreiben Sie die ermittelten Informationen in eine Variable (hier: $clientprinters), um diese später zum Anlegen neuer Drucker verwenden zu können (s. u.). Format-TpmsDispatch stellt die Ausgaben in Tabellenform dar:
$clientprinters = Start-TpmsQueryByAgent -Servers ($srva) | Format-TpmsDispatch
# Drucker anlegen
# Schritt 1
# Definieren Sie die Variablen für das Datenpaket, um mehrere Drucker (oder Ports) anzulegen (hier: $allprinters und $allports).
$allprinters = @() $allports = @()
# Generieren Sie eine Programmschleife, um die Informationen mehrerer Drucker in dieselbe Variable zu schreiben:
$clientprinters | foreach { if ($_ -is [ThinPrint.Tpms.Common.TpSrcPrn]) { $printer = $_.Name $printerid = $_.Id $printers = New-TpmsObjPrinterTpog -Name ([string]::Format("{0}#client701:{1}", $printer, $printerid)) -Port ThinPort01: -Template "TP Output Gateway color" Add-TpmsClientInfo -Printers ($printers) -Name client701 -Port 4000 -PrinterId $_.Id Add-TpmsSharingInfo -Printers ($printers) -Name $_.Name -Mode Network $allprinters += $printers $allports = New-TpmsObjTpPortTcp -TcpPort 4000 -Name ThinPort01: } }
<#
- $clientprinters enthält die Drucker-Information des ThinPrint Client (siehe # Schritt 3 oben). Die Schleife muss pro Drucker durchlaufen werden.
- if ($_ -is [ThinPrint.Tpms.Common.TpSrcPrn]) filtert die Drucker von anderen Informationen.
- Mit $printer = $_.Name und $printerid = $_.Id werden die Druckernamen und -IDs aus $clientprinters in Einzelvariablen geschrieben.
- $printers = New-TpmsObjPrinterTpog spezifiziert einen Output-Gateway-Drucker und puffert diesen in einer Variable.
- -Name ([string]::Format("{0}#client701:{1}", $printer, $printerid)) spezifiziert die Druckernamen entsprechend der Namenkonvention (hier ist die Clientadresse client701): <client-printer-name>#<client-address>:<printer-ID>
- Befindet sich das Template auf einem entfernten Server, muss sein Name mit FQDN-Adresse angegeben werden. Beispiel: -Template “\\cps48.ourdomain.local\TP Output Gateway color”. Und der Dienst des Tpms.Agents, der die Drucker anlegt, muss mit einem Account laufen, der das Recht besitzt, auf die Freigabe des Templates, das sich auf dem entfernten Rechner befindet, zuzugreifen.
- Mit Add-TpmsClientInfo werden die Eigenschaften jedes Druckers vom ThinPrint Client (hier: client701) eingelesen und nach $printers geschrieben.
- Mit Add-TpmsSharingInfo wird der jeweilige Drucker freigegeben, der vom ThinPrint Client eingelesen wurde. Der Client-Drucker-Name ($_.Name) wird als Freigabename verwendet und ebenfalls nach $printers geschrieben.
- Zum Schluss werden alle Drucker- und Port-Daten in Variablen gespeichert, um das Datenpaket vorzubereiten (hier: $allprinters und $allports). In diesem Beispiel wird der bereits existierende ThinPrint Port ThinPort01: als einziger Druckerport verwendet.
#>
# Schritt 2
# Spezifizieren Sie die Adresse des Tpms.Agent (hier: tpms002.ourdomain.local) mit TCP-Port mit Hilfe von New-TpmsObjApplyAgent, und sammeln Sie die betreffenden Drucker- und Port-Einstellungen mit Hilfe der Parameter -Printers und -Ports in einem Daten-Paket (hier: $srvb):
$srvb = New-TpmsObjApplyAgent -Name "tpms002.ourdomain.local" -Port 5050 -Printers ($allprinters) -Ports ($allports)
# Schritt 3
# Senden Sie das Daten-Paket zum Tpms.Service, der es zum betreffenden Tpms.Agent weiterleitet. Der Agent legt die Drucker an und verbindet sie mit dem Drucker-Port:
Start-TpmsApplyByAgent -Action Deploy -Servers ($srvb) | Format-TpmsDispatch
Deploy aktiviert diese Aktion – d. h., Drucker und Ports werden angelegt. Remove deaktiviert sie – d. h., Drucker, Ports und/oder Treiber werden entfernt. Format-TpmsDispatch zeigt die Ausgabe in Tabellenform an.
Windows Print Management: fünf neue Drucker und zwei Output-Gateway-Templates – hier wurde TP Output Gateway color verwendet
Für ein Beispiel-Skript mit mehreren ThinPrint Ports siehe Skript mit dem Cmdlet New-TpmsObjPrinterTpog.