pixel0815
Goto Top

Powershell Import CSV zum Drucker erstellen mit Port

Hallo liebe Kollegen,

folgendes Skript würde ich gerne verwenden aber irgendwie funktioniert das nicht auf meiner Win 2008 R2 Maschine.


 function CreatePrinter {

 $server = $args

 $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()
 }
 

 function CreatePrinterPort {

 $server =  $args

 $port = ([WMICLASS]"\\$server\ROOT\cimv2:Win32_TCPIPPrinterPort").createInstance()  

 $port.Name= $args[1]

 $port.SNMPEnabled=$false
 $port.Protocol=1

 $port.HostAddress= $args[2]

 $port.Put()
 }
 

 $printers = Import-Csv printers.csv
 

 foreach ($printer in $printers) {
 CreatePrinterPort $printer.Printserver $printer.Portname $printer.IPAddress
 CreatePrinter $printer.Printserver $printer.Driver $printer.Portname $printer.Sharename $printer.Location $printer.Comment $printer.Printername
 }


Folgende Meldungen bekomme ich wenn ich es ausführe:

Die drivername-Eigenschaft wurde in diesem Objekt nicht gefunden. Stellen Sie s
icher, dass sie vorhanden ist und festgelegt werden kann.
Bei C:\Users\heiko.wellendorf\Desktop\Drucker_erstellen.ps1:7 Zeichen:9
+  $print. <<<< drivername = $args[1]
    + CategoryInfo          : InvalidOperation: (drivername:String) , Runtim 
   eException
    + FullyQualifiedErrorId : PropertyNotFound
 
Die PortName-Eigenschaft wurde in diesem Objekt nicht gefunden. Stellen Sie sic
her, dass sie vorhanden ist und festgelegt werden kann.
Bei C:\Users\heiko.wellendorf\Desktop\Drucker_erstellen.ps1:9 Zeichen:9
+  $print. <<<< PortName = $args[2]
    + CategoryInfo          : InvalidOperation: (PortName:String) , RuntimeE 
   xception
    + FullyQualifiedErrorId : PropertyNotFound
 
Die Shared-Eigenschaft wurde in diesem Objekt nicht gefunden. Stellen Sie siche
r, dass sie vorhanden ist und festgelegt werden kann.
Bei C:\Users\heiko.wellendorf\Desktop\Drucker_erstellen.ps1:11 Zeichen:9
+  $print. <<<< Shared = $true
    + CategoryInfo          : InvalidOperation: (Shared:String) , RuntimeExc 
   eption
    + FullyQualifiedErrorId : PropertyNotFound
 
Die Sharename-Eigenschaft wurde in diesem Objekt nicht gefunden. Stellen Sie si
cher, dass sie vorhanden ist und festgelegt werden kann.
Bei C:\Users\heiko.wellendorf\Desktop\Drucker_erstellen.ps1:13 Zeichen:9
+  $print. <<<< Sharename = $args[3]
    + CategoryInfo          : InvalidOperation: (Sharename:String) , Runtime 
   Exception
    + FullyQualifiedErrorId : PropertyNotFound
 
Die Location-Eigenschaft wurde in diesem Objekt nicht gefunden. Stellen Sie sic
her, dass sie vorhanden ist und festgelegt werden kann.
Bei C:\Users\heiko.wellendorf\Desktop\Drucker_erstellen.ps1:15 Zeichen:9
+  $print. <<<< Location = $args[4]
    + CategoryInfo          : InvalidOperation: (Location:String) , RuntimeE 
   xception
    + FullyQualifiedErrorId : PropertyNotFound
 
Die Comment-Eigenschaft wurde in diesem Objekt nicht gefunden. Stellen Sie sich
er, dass sie vorhanden ist und festgelegt werden kann.
Bei C:\Users\heiko.wellendorf\Desktop\Drucker_erstellen.ps1:17 Zeichen:9
+  $print. <<<< Comment = $args[5]
    + CategoryInfo          : InvalidOperation: (Comment:String) , RuntimeEx 
   ception
    + FullyQualifiedErrorId : PropertyNotFound
 
Die DeviceID-Eigenschaft wurde in diesem Objekt nicht gefunden. Stellen Sie sic
her, dass sie vorhanden ist und festgelegt werden kann.
Bei C:\Users\heiko.wellendorf\Desktop\Drucker_erstellen.ps1:19 Zeichen:9
+  $print. <<<< DeviceID = $args[6]
    + CategoryInfo          : InvalidOperation: (DeviceID:String) , RuntimeE 
   xception
    + FullyQualifiedErrorId : PropertyNotFound
 
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen.
Bei C:\Users\heiko.wellendorf\Desktop\Drucker_erstellen.ps1:21 Zeichen:12
+  $print.Put <<<< ()
    + CategoryInfo          : InvalidOperation: (Put:String) , RuntimeExcept 
   ion
    + FullyQualifiedErrorId : InvokeMethodOnNull

Die CSV Datei hat folgende Zeile

Printserver,Driver,Portname,IPAddress,Sharename,Location,Comment,Printername
NB0327,CDC 1930_DCC 2930 KX,10.246.31.21_PR,10.246.31.21,TEST-EDV,Wedel_EDV,Testkommentar,CDC1930_DCC

Wie bekomme ich das zum laufen? Gibt s was einfacheres?
Hilfeeeeeeeeeeeeeeeeeee.

Gruß
Heiko

Content-ID: 234867

Url: https://administrator.de/forum/powershell-import-csv-zum-drucker-erstellen-mit-port-234867.html

Ausgedruckt am: 21.12.2024 um 09:12 Uhr

pixel0815
pixel0815 08.04.2014 um 12:23:20 Uhr
Goto Top
Lösung:

function CreatePrinter {
$server = $args
$print = ([WMICLASS]“\\.\ROOT\cimv2:Win32_Printer”).createInstance()
$print.drivername = $args[1]
$print.PortName = $args[2]
$print.Shared = $true
$print.Published = $true
$print.Sharename = $args[3]
$print.Location = $args[4]
$print.Comment = $args[5]
$print.DeviceID = $args[6]
$print.Put()
}

function CreatePrinterPort {
$server = $args
$port = ([WMICLASS]“\\.\ROOT\cimv2:Win32_TCPIPPrinterPort”).createInstance()
$port.Name= $args[1]
$port.SNMPEnabled=$false
$port.Protocol=1
$port.HostAddress= $args[2]
$port.Put()
}

$printers = Import-Csv “Drucker.csv”

foreach ($printer in $printers) {
CreatePrinterPort $printer.Printserver $printer.Portname $printer.IPAddress
CreatePrinter $printer.Printserver $printer.Driver $printer.Portname $printer.Sharename $printer.Location $printer.Comment $printer.Printername
}
winlux1979
winlux1979 05.09.2014 um 14:12:46 Uhr
Goto Top
hallo super script, eine frage habe ich noch kann man noch im csv reinschauen damit ich es besser nachvollziehen kann?? bitte face-smile ich 300 port erfassen mit ip,treiber,sharename,location kommentar, usw.. evtl kann ich das script anpassen ... habe bereits folgende frage ich verwende immer der universale treiber von ricoh 64 bit kann ich dieser befehl verwenden $print = ([WMICLASS]“\\.\ROOT\cimv2:Win32_Printer”).createInstance() oder muss hier Win64 anstatt 32 stehen?