Powershell - Masseninstallation von Druckern auf Printserver:

In einer CSV-Datei werden in einer Tabelle die entsprechenden Angaben für die Drucker eingepflegt.
Form:

Printserver,Driver,Portname,IPAddress,Sharename,Location,Comment,Printername

Im Anschluss wird dann folgendes Powershell-Script ausgeführt:

#region
# Variablendefinition
$printers = Import-Csv C:\001-Scripts\printers.csv
#
# Drucker anlegen
#
Write-Host "Anlegen der Drucker" -ForegroundColor Yellow
#
function CreatePrinter {
$server = $args[0]
$print = ([WMICLASS]"\\$server\ROOT\cimv2:Win32_Printer").createInstance()
$print.drivername = $args[1]
$print.PortName = $args[2]
$print.Shared = $true
$print.Sharename = $args[3]
$print.Location = $args[4]
$print.Comment = $args[5]
$print.DeviceID = $args[6]
$print.Put()
}
#
#
# Druckerport anlegen
Write-Host "Anlegen der Druckerport" -ForegroundColor Yellow
#
function CreatePrinterPort {
$server =  $args[0]
$port = ([WMICLASS]"\\$server\ROOT\cimv2:Win32_TCPIPPrinterPort").createInstance()
$port.Name= $args[1]
$port.SNMPEnabled=$true
$port.Protocol=1
$port.HostAddress= $args[2]
$port.Put()
}
<#
# neue Variablen V.1.1 Hochzählen und Verlaufsanzeige
# $count = $Printers.Count
# $pos = 0
#>
foreach ($printer in $printers) {
# write-progress -activity "Anlegen der Drucker" -status "% Complete" -percentcomplete (($pos++/$count)*100)
CreatePrinterPort $printer.Printserver $printer.Portname $printer.IPAddress
CreatePrinter $printer.Printserver $printer.Driver $printer.Portname $printer.Sharename $printer.Location $printer.Comment $printer.Printername
}
$PrinterGesamt = Get-Printer
$AnzahlPrinter = $PrinterGesamt.Count
Write-Host "Anlegen von $AnzahlPrinter Druckern durchgeführt !!!" -ForegroundColor Yellow
#endregion