Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Netzwerkdrucker und Anschlüsse per Powershell aus CSV Datei

Frage Microsoft Windows Server

Mitglied: MavRaven

MavRaven (Level 1) - Jetzt verbinden

17.06.2011 um 11:14 Uhr, 12409 Aufrufe, 3 Kommentare

Ich möchte mehrere Netzwerkdrucker per Powershell Script erstellen anstatt immer wieder den manuellen Weg über die GUI zu gehen.

Ich bin momentan dabei einen 2003 Printserver nach 2008 R2 überzuführen, migrieren wollten wir allerdings nicht, sondern das ganze von Grund auf neu gestalten.

Die Idee war nun die Druckeranschlüsse bzw die Drucker selbst per Powershell zu erstellen und freizugeben, ich hab dann auch schon etwas recherschiert und ein kleines Script zusammengebastelt. Dieses gibt mir auch keine Fehlermeldung an, jedoch wird der Testdrucker den ich in die CSV Datei die ausgelesen wird eingetragen habe dennoch nicht erstellt, ich vermute mal ich habe ein Problem mit den Variablen die ich den Datensätzen aus der CSV Datei zuordne ?

Würde mich freuen wenn mir jemand einen kleinen Tritt geben bzw Hilfe leisten könnte

Hier also mein Script:

01.
 
02.
$dataSource=import-csv "Drucker.csv" 
03.
foreach($dataRecord in $dataSource) { 
04.
        $auftrag=$dataRecord.auftrag 
05.
         
06.
        switch ($auftrag) { 
07.
         
08.
                Drucker_installieren { 
09.
                 #map variables to data source 
10.
                 $Druckername=$dataRecord.Hostname 
11.
                 $Druckertreiber=$dataRecord.Treiber 
12.
                 $Druckeranschluss=$dataRecord.Anschluss 
13.
                 $Freigabename=$dataRecord.Freigabe 
14.
                  
15.
                  
16.
                    Write-Output "Drucker erstellen" 
17.
                    $printer=([WMICLASS]"\\.\ROOT\cimv2:Win32_Printer").createInstance() 
18.
                    $printer.Name="$Druckername" 
19.
                    $printer.DriverName="$Druckertreiber" 
20.
                    $printer.DeviceID="$Druckername" 
21.
                    $printer.Portname="$Druckeranschluss" 
22.
                    $printer.Shared=$true 
23.
                    $printer.Sharename="$Freigabename" 
24.
                    $printer.Put() 
25.
                     
26.
27.
                     
28.
                     
29.
                 Druckeranschluss_anlegen { 
30.
                   #map variables to data source 
31.
                   $Anschlussbezeichnung=$dataRecord.Anschlussname 
32.
                   $IP_Adresse=$dataRecord.IPAdresse 
33.
                    
34.
                     Write-Output "Erstelle Druckeranschluss "$Anschlussbezeichnung"" 
35.
                     $port=([WMICLASS]"\\.\ROOT\cimv2:Win32_TCPIPPrinterPort").createInstance() 
36.
                     $port.Name=$Anschlussbezeichnung 
37.
                     $port.SNMPEnabled=$false 
38.
                     $port.Protocol=1 
39.
                     $port.Hostaddress=$IP_Adresse 
40.
                     $port.Put() 
41.
42.
                      
43.
44.
            
45.
    }
danke

Gruß Markus
Mitglied: MavRaven
23.08.2011 um 11:25 Uhr
Falls es jemanden interessiert habe das Problem selbst lösen können und das Script nochmal anders aufgezogen hier für alle Interessierten das Endprodukt:

01.
Import-Csv "printers.csv" -Delimiter ";" | foreach { 
02.
Write-Output "Write-Output `"Creating printer ```"$($_.PrinterName)```"`"" 
03.
$printer =([WMICLASS]"\\.\ROOT\cimv2:Win32_Printer").createInstance() 
04.
$printer.Name="$($_.PrinterName)" 
05.
$printer.DriverName="$($_.Driver)" 
06.
$printer.DeviceID="$($_.PrinterName)" 
07.
$printer.PortName="$($_.PrinterPort)" 
08.
$printer.Shared=$true 
09.
$printer.ShareName="$($_.PrinterName)" 
10.
$printer.Put() 
11.
"" 
12.
} 
Bitte warten ..
Mitglied: ottl05
30.11.2011 um 10:18 Uhr
und mit diesem Script wird der TCP/IP-Port auch gleich erstellt?

Die CSV sollte also folgendermaßen aussehen?:
PrinterName;PrinterPort;Driver
Bitte warten ..
Mitglied: MavRaven
30.11.2011 um 12:13 Uhr
Hi,

der Printerport wird nicht mit erstellt diese habe ich in meinem Fall vom alten Printserver nur importiert.

dafür brauchst du ein zweites Script da der Printerport bzw Anschluss über eine andere WMI Klasse erstellt wird als der Drucker selbst.

Ich hab das ganze noch irgendwo liegen ich werd mal schauen das ich es finde und gleich posten.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Mehrere AD Benutzer aus CSV Datei mit PowerShell erstellen (1)

Frage von windelterrorist zum Thema Batch & Shell ...

Batch & Shell
gelöst AD-Felder für User mittels Powershell befüllen aus CSV-Datei (2)

Frage von Alex94G zum Thema Batch & Shell ...

Batch & Shell
gelöst PowerShell: Spalten tauschen und neue Spalten in CSV datei erzeugen (17)

Frage von Rippchen zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (13)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...