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-Key: 234867

Url: https://administrator.de/contentid/234867

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

Member: pixel0815
pixel0815 Apr 08, 2014 at 10:23:20 (UTC)
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
}
Member: winlux1979
winlux1979 Sep 05, 2014 at 12:12:46 (UTC)
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?