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

Löschen mehrerer Drucker über WMI sehr langsam, weshalb?

Frage Entwicklung Batch & Shell

Mitglied: Pago159

Pago159 (Level 2) - Jetzt verbinden

16.12.2014 um 15:41 Uhr, 1205 Aufrufe, 6 Kommentare

Hallo noch mal,
ich bin derzeit noch dabei das Script für die Drucker Erstellung und Bereinigung zu Optimieren.
Die Funktionen an für sich funktionieren alle, nur dass das Löschen mehrerer Drucker (ca. 130 stk.) mit unter ca. 3 Std. dauert.
Das Anlegen selbiger hingegen dauert gerade mal 15 Minuten auf ein und dem selben Server (W2k8r2).
Die CSV-Datei zum erstellen und löschen ist derzeit identisch, da es bei den Tests immer die selben Drucker betrifft, die erst erstellt und anschließend gelöscht werden.
Betroffene Funktion: " $handler_btnDelCsv_Click"
Was läuft hier schief, dass die verarbeitung so lange dauert?

01.
 
02.
function GenerateForm { 
03.
 
04.
#region Import the Assemblies 
05.
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null 
06.
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null 
07.
#endregion 
08.
 
09.
#region Generated Form Objects 
10.
$form1 = New-Object System.Windows.Forms.Form 
11.
$txtPrinterPort = New-Object System.Windows.Forms.NumericUpDown 
12.
$label7 = New-Object System.Windows.Forms.Label 
13.
$comboPrintServer = New-Object System.Windows.Forms.ComboBox 
14.
$btnCancel = New-Object System.Windows.Forms.Button 
15.
$btnOK = New-Object System.Windows.Forms.Button 
16.
$btnDel = New-Object System.Windows.Forms.Button 
17.
$btnList = New-Object System.Windows.Forms.Button 
18.
$btnExp = New-Object System.Windows.Forms.Button 
19.
$btnImp = New-Object System.Windows.Forms.Button 
20.
$btnDelCsv = New-Object System.Windows.Forms.Button 
21.
$label6 = New-Object System.Windows.Forms.Label 
22.
$txtPrinterComment = New-Object System.Windows.Forms.TextBox 
23.
$txtPrinterLocation = New-Object System.Windows.Forms.TextBox 
24.
$label4 = New-Object System.Windows.Forms.Label 
25.
$lbPrinterType = New-Object System.Windows.Forms.ListBox 
26.
$txtPrinterIP = New-Object System.Windows.Forms.TextBox 
27.
$txtPrintername = New-Object System.Windows.Forms.TextBox 
28.
$label3 = New-Object System.Windows.Forms.Label 
29.
$label2 = New-Object System.Windows.Forms.Label 
30.
$label1 = New-Object System.Windows.Forms.Label 
31.
$label5 = New-Object System.Windows.Forms.Label 
32.
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState 
33.
#endregion Generated Form Objects 
34.
 
35.
#---------------------------------------------- 
36.
# Event Script Blocks 
37.
#---------------------------------------------- 
38.
 
39.
# Pfade, die evtl. verändert werden müssen. Log Pfade und Dateien müssen bereits existieren. 
40.
$logfile = "C:\Logs\AddPrinter\logfile.log" 
41.
$Importlogfile = "C:\Logs\AddPrinter\ImportLogfile.log" 
42.
$import = "C:\Logs\AddPrinter\import.txt" 
43.
$DelCSV = "C:\Logs\AddPrinter\delete.txt" 
44.
$path = "C:\Logs\AddPrinter" 
45.
$date = Get-Date -f yyyy-MM-dd_ 
46.
$extension = ".csv" 
47.
$Dellogfile = "C:\Logs\AddPrinter\DeleteLogfile.log" 
48.
 
49.
$deletePrinter = { #Drucker anhand des ausgefüllten Formulars löschen!!!___________________________________________________________________________________________________________Anfang 
50.
	Try{ 
51.
		$printserver = $comboPrintServer.Text		 
52.
		 
53.
		# delete printer instance (Printerport bleibt weiter bestehen) 
54.
		$sharename = $txtPrintername.Text 
55.
        gwmi Win32_Printer -computer $printserver -Filter "Name = '$sharename'" | %{$_.Delete()} 
56.
		 
57.
		# delete printer Port (eine Wartezeit von 15 Sekunden wurde eingebaut, damit der Port gelöscht werden kann) 
58.
		sleep 15 
59.
		$name = $txtPrinterIP.Text 
60.
		gwmi Win32_TCPIPPrinterPort -computer $printserver -Filter "HostAddress = '$name'" | %{$_.Delete()}		 
61.
		 
62.
        return $true 
63.
		}catch{ 
64.
        return $_.Exception.Message 
65.
66.
 
67.
				} #Drucker anhand des ausgefüllten Formulars löschen!!!___________________________________________________________________________________________________________Ende 
68.
 
69.
$handler_btnDel_Click = { #Aktion beim Klick auf Löschen inkl. Fehlermeldung 
70.
     
71.
    # Drucker löschen 
72.
    $result = &$deletePrinter 
73.
     
74.
    # wenn erfolgreich gelöscht ... 
75.
    $logtext = "" 
76.
    if ($result -eq $true){ 
77.
        $logtext = @" 
78.
-------- $(get-date -Format "g") ---------- Drucker wurde auf dem Printserver '$($comboPrintServer.Text)' gelöscht: -------------- 
79.
Druckername: $($txtPrintername.Text) 
80.
IP-Adresse: $($txtPrinterIP.Text) 
81.
Port: $($txtPrinterPort.Value) 
82.
Treiber: $($lbPrinterType.SelectedItem) 
83.
Standort: $($txtPrinterLocation.Text) 
84.
Kommentar: $($txtPrinterComment.Text) 
85.
Systemmeldung: $($result) 
86.
"@ 
87.
        [System.Windows.Forms.MessageBox]::Show("Der Drucker $txtPrintername wurde auf dem Printserver $($comboPrintServer.Text) gelöscht.") 
88.
    }else{ 
89.
    # wenn Fehler beim löschen (Fehlermeldung wird mit Dokumentiert)... 
90.
        $logtext = @" 
91.
-------- $(get-date -Format "g") ---------- !!! ACHTUNG FEHLER !! beim löschen des Druckers auf Printserver '$($comboPrintServer.Text)': -------------- 
92.
Druckername: $($txtPrintername.Text) 
93.
IP-Adresse: $($txtPrinterIP.Text) 
94.
Port: $($txtPrinterPort.Value) 
95.
Treiber: $($lbPrinterType.SelectedItem) 
96.
Standort: $($txtPrinterLocation.Text) 
97.
Kommentar: $($txtPrinterComment.Text) 
98.
Systemmeldung: $($result) 
99.
$("-"*20) 
100.
"@ 
101.
        [System.Windows.Forms.MessageBox]::Show("Beim löschen des Druckers/Ports ist ein Fehler aufgetreten: $result") 
102.
103.
    # Add-Content "logfile.log" $logtext -Force 
104.
    Add-Content "$logfile" $logtext -Force 
105.
106.
 
107.
$createPrinter = { #Drucker anhand des ausgefüllten Formulars erstellen!!!___________________________________________________________________________________________________________Anfang 
108.
 
109.
    Try{ 
110.
        $printserver = $comboPrintServer.Text 
111.
        $portname = "IP_$($txtPrinterIP.Text)" 
112.
     
113.
        # create printer port 
114.
        $wmi = ([WMICLASS]"\\$printserver\ROOT\cimv2:Win32_TCPIPPrinterPort") 
115.
        $wmi.psbase.scope.options.enablePrivileges = $true 
116.
        $port = $wmi.CreateInstance() 
117.
        $port.Name = $portname 
118.
        $port.Protocol = 1  
119.
        $port.Portnumber = $txtPrinterPort.Text  
120.
        $port.HostAddress = $txtPrinterIP.Text 
121.
        $port.SNMPEnabled = $False 
122.
        $port.put() 
123.
 
124.
        #create printer instance 
125.
        $print = ([WMICLASS]"\\$printserver\ROOT\cimv2:Win32_Printer").createInstance()  
126.
        $print.Drivername = $lbPrinterType.SelectedItem 
127.
        $print.PortName = $portname 
128.
        $print.Shared = $true 
129.
        $print.Published = $true 
130.
        $print.Sharename = $txtPrintername.Text 
131.
        $print.Location = $txtPrinterLocation.Text 
132.
        $print.Comment = $txtPrinterComment.Text 
133.
        $print.DeviceID = $txtPrintername.Text 
134.
        $print.put() 
135.
        return $true 
136.
     }catch{ 
137.
        return $_.Exception.Message 
138.
139.
 
140.
} #Drucker anhand des ausgefüllten Formulars erstellen!!!___________________________________________________________________________________________________________Ende 
141.
 
142.
$handler_btnList_Click = { 
143.
	$result = &$PrinterOnServer } 
144.
 
145.
$PrinterOnServer = { # Auflisten der Drucker auf dem Server inkl. Port des ausgewählten Printserver_______________________________________________Anfang 
146.
 
147.
$printserver = $comboPrintServer.Text 
148.
 
149.
Get-WmiObject -Class Win32_Printer -computername $printserver | select drivername, portname, sharename, location, comment | Out-GridView 
150.
 
151.
} # Auflisten der Drucker auf dem Server inkl. Port des ausgewählten Printserver_______________________________________________Ende 
152.
 
153.
$handler_btnExp_Click = {  
154.
$printserver = $comboPrintServer.Text 
155.
    $result = &$ExportPrinter  
156.
 if ($result -eq $true){ 
157.
        
158.
        [System.Windows.Forms.MessageBox]::Show("Die Datei ist unter folgendem Pfad zu finden: $path\$date$printserver$extension") 
159.
    }else{ 
160.
    # wenn Fehler beim erstellen (Fehlermeldung wird mit Dokumentiert)... 
161.
         
162.
        [System.Windows.Forms.MessageBox]::Show("$result") 
163.
164.
   # Export der Drucker in eine CSV-Datei 
165.
166.
 
167.
$ExportPrinter = { # Export der Drucker auf dem Server inkl. Port des ausgewählten Printserver in eine CSV-Datei_______________________________________________Anfang 
168.
Try{ 
169.
 
170.
 
171.
Get-WmiObject -Class Win32_Printer -computername $printserver | select drivername, portname, sharename, location, comment | export-csv $path\$date$printserver$extension -NoTypeInformation -Delimiter ";" -Encoding "ASCII" -noclobber 
172.
 
173.
 return $true #$path $date $printserver $extension 
174.
     }catch{ 
175.
        return $_.Exception.Message 
176.
177.
   }  
178.
 
179.
$handler_btnImp_Click = {  
180.
	$printserver = $comboPrintServer.Text 
181.
     # Drucker erstellen 
182.
     $result = &$ImportPrinter 
183.
     
184.
    # wenn erfolgreich erstellt ... 
185.
    $logtext = "" 
186.
    if ($result -eq $true){ 
187.
        $logtext = @" 
188.
-------- $(get-date -Format "g") ---------- Die Drucker wurden auf dem Printserver '$($comboPrintServer.Text)' erstellt: -------------- 
189.
Druckername: $($global:sharename) 
190.
IP-Adresse: $($global:RAWportname) 
191.
Port: $($global:portname) 
192.
Treiber: $($global:drivername) 
193.
Standort: $($global:location) 
194.
Kommentar: $($global:comment) 
195.
Systemmeldung: $($result) 
196.
"@ 
197.
        [System.Windows.Forms.MessageBox]::Show("Die Drucker wurden auf dem Printserver $($comboPrintServer.Text) erstellt. $result") 
198.
    }else{ 
199.
    # wenn Fehler beim erstellen (Fehlermeldung wird mit Dokumentiert)... 
200.
        $logtext = @" 
201.
-------- $(get-date -Format "g") ---------- !!! ACHTUNG FEHLER !! beim erstellen der Druckers auf Printserver '$($comboPrintServer.Text) ist ein Fehler aufgetreten': -------------- 
202.
Druckername: $(global:$sharename) 
203.
IP-Adresse: $($global:RAWportname) 
204.
Port: $($global:portname) 
205.
Treiber: $($global:drivername) 
206.
Standort: $($global:location) 
207.
Kommentar: $($global:comment) 
208.
Systemmeldung: $($result) 
209.
$("-"*20) 
210.
"@ 
211.
        [System.Windows.Forms.MessageBox]::Show("Beim erstellen des Druckers/Ports ist ein Fehler aufgetreten: $result") 
212.
213.
    # Add-Content "logfile.log" $logtext -Force 
214.
    Add-Content "$Importlogfile" $logtext -Force 
215.
216.
  
217.
$handler_btnDelCsv_Click = {  
218.
    
219.
	$printserver = $comboPrintServer.Text 
220.
     # Drucker erstellen 
221.
     $result = &$DeletePrinterCSV 
222.
	 $result = &$DeletePortCSV 
223.
     
224.
    # wenn erfolgreich erstellt ... 
225.
    $logtext = "" 
226.
    if ($result -eq $true){ 
227.
	$printers = Import-Csv $DelCSV –Delimiter ';' 
228.
        $logtext = @" 
229.
-------- $(get-date -Format "g") ---------- Die Drucker wurden auf dem Printserver '$($comboPrintServer.Text)' gelöscht: -------------- 
230.
Druckername: $($global:sharename) 
231.
IP-Adresse: $($global:RAWportname) 
232.
Port: $($global:portname) 
233.
Treiber: $($global:drivername) 
234.
Standort: $($global:location) 
235.
Kommentar: $($global:comment) 
236.
Systemmeldung: $($result) 
237.
"@ 
238.
        [System.Windows.Forms.MessageBox]::Show("Die Drucker wurden auf dem Printserver $($comboPrintServer.Text) gelöscht: $result") 
239.
		 }else{ 
240.
    # wenn Fehler beim erstellen (Fehlermeldung wird mit Dokumentiert)... 
241.
        $logtext = @" 
242.
-------- $(get-date -Format "g") ---------- !!! ACHTUNG FEHLER !! beim löschen der Druckers auf Printserver '$($comboPrintServer.Text) ist ein Fehler aufgetreten': -------------- 
243.
Druckername: $($global:sharename) 
244.
IP-Adresse: $($global:RAWportname) 
245.
Port: $($global:portname) 
246.
Treiber: $($global:drivername) 
247.
Standort: $($global:location) 
248.
Kommentar: $($global:comment) 
249.
Systemmeldung: $($result) 
250.
$("-"*20) 
251.
"@ 
252.
        [System.Windows.Forms.MessageBox]::Show("Beim löschen der Drucker/Ports ist ein Fehler aufgetreten. Bitte Prüfen Sie, welche Drucker fehlen!!!: $result") 
253.
254.
    # Add-Content "logfile.log" $logtext -Force 
255.
    Add-Content "$Dellogfile" $logtext -Force 
256.
}  
257.
  
258.
$DeletePrinterCSV = { #Drucker anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Anfang 
259.
     $global:printers = Import-Csv $DelCSV –Delimiter ';'  
260.
 
261.
    foreach ($printer in $global:printers){ 
262.
 
263.
        $global:sharename = $printer.sharename 
264.
 
265.
		 Try{ 
266.
		$printserver = $comboPrintServer.Text		 
267.
		 
268.
		# delete printer instance (Printerport bleibt weiter bestehen) 
269.
		$sharename = $global:sharename 
270.
        gwmi Win32_Printer -computer $printserver -Filter "Name = '$sharename'" | %{$_.Delete()} 
271.
		 
272.
		# delete printer Port (eine Wartezeit von 15 Sekunden wurde eingebaut, damit der Port gelöscht werden kann) 
273.
		#sleep 15 
274.
		#$name = $global:RAWportname 
275.
		#gwmi Win32_TCPIPPrinterPort -computer $printserver -Filter "HostAddress = '$name'" | %{$_.Delete()}		 
276.
		 
277.
         
278.
		}catch{ 
279.
			return $_.Exception.Message 
280.
281.
282.
			# return true  
283.
 
284.
				} #Drucker anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Ende 
285.
 
286.
$DeletePortCSV = { #DruckerPort anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Anfang 
287.
     $global:printers = Import-Csv $DelCSV –Delimiter ';'  
288.
 
289.
    foreach ($printer in $global:printers){ 
290.
 
291.
        $global:RAWportname = $printer.portname 
292.
 
293.
		 Try{ 
294.
		$printserver = $comboPrintServer.Text		 
295.
		 
296.
		# delete printer instance (Printerport bleibt weiter bestehen) 
297.
		#$sharename = $global:sharename 
298.
        #gwmi Win32_Printer -computer $printserver -Filter "Name = '$sharename'" | %{$_.Delete()} 
299.
		 
300.
		# delete printer Port (eine Wartezeit von 15 Sekunden wurde eingebaut, damit der Port gelöscht werden kann) 
301.
		 
302.
		$name = $global:RAWportname 
303.
		gwmi Win32_TCPIPPrinterPort -computer $printserver -Filter "HostAddress = '$name'" | %{$_.Delete()}		 
304.
		 
305.
         
306.
		}catch{ 
307.
			return $_.Exception.Message 
308.
309.
310.
return $true 
311.
				} #DruckerPort anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Ende	 
312.
				 
313.
$ImportPrinter = { 
314.
    $global:printers = Import-Csv $import –Delimiter ';'  
315.
 
316.
    foreach ($printer in $global:printers){ 
317.
 
318.
        $global:drivername = $printer.drivername 
319.
        $global:RAWportname = $printer.portname 
320.
        $global:sharename = $printer.sharename 
321.
        $global:location = $printer.location 
322.
        $global:comment = $printer.comment 
323.
 
324.
        Try{ 
325.
            $printserver = $comboPrintServer.Text 
326.
            $global:portname = "IP_$($RAWportname)" 
327.
     
328.
            # create printer port 
329.
            $wmi = ([WMICLASS]"\\$printserver\ROOT\cimv2:Win32_TCPIPPrinterPort") 
330.
            $wmi.psbase.scope.options.enablePrivileges = $true 
331.
            $port = $wmi.CreateInstance() 
332.
            $port.Name = $portname 
333.
            $port.Protocol = 1   
334.
            $port.HostAddress = $RAWportname 
335.
            $port.SNMPEnabled = $False 
336.
            $port.put() 
337.
 
338.
            #create printer instance 
339.
            $print = ([WMICLASS]"\\$printserver\ROOT\cimv2:Win32_Printer").createInstance()  
340.
            $print.Drivername = $drivername 
341.
            $print.PortName = $portname 
342.
            $print.Shared = $true 
343.
            $print.Published = $true 
344.
            $print.Sharename = $sharename 
345.
            $print.Location = $location 
346.
            $print.Comment = $comment 
347.
            $print.DeviceID = $sharename 
348.
            $print.put() 
349.
           # return $true 
350.
         }catch{ 
351.
            return $_.Exception.Message 
352.
353.
354.
    return $true 
355.
356.
   
357.
$handler_btnOK_Click = { #inkl. Fehlermeldung 
358.
     
359.
    # Drucker erstellen 
360.
    $result = &$createPrinter 
361.
     
362.
    # wenn erfolgreich erstellt... 
363.
    $logtext = "" 
364.
    if ($result -eq $true){ 
365.
        $logtext = @" 
366.
-------- $(get-date -Format "g") ---------- Drucker auf Printserver '$($comboPrintServer.Text)' hinzugefügt: -------------- 
367.
Druckername: $($txtPrintername.Text) 
368.
IP-Adresse: $($txtPrinterIP.Text) 
369.
Port: $($txtPrinterPort.Value) 
370.
Treiber: $($lbPrinterType.SelectedItem) 
371.
Standort: $($txtPrinterLocation.Text) 
372.
Kommentar: $($txtPrinterComment.Text) 
373.
Systemmeldung: $($result) 
374.
$("-"*20) 
375.
"@ 
376.
        [System.Windows.Forms.MessageBox]::Show("Der Drucker $txtPrintername wurde auf dem Printserver $($comboPrintServer.Text) angelegt.") 
377.
    }else{ 
378.
    # wenn Fehler beim erstellen (Fehlermeldung wird mit Dokumentiert)... 
379.
        $logtext = @" 
380.
-------- $(get-date -Format "g") ---------- !!! ACHTUNG FEHLER !! beim hinzufügen des Druckers auf Printserver '$($comboPrintServer.Text)': -------------- 
381.
Druckername: $($txtPrintername.Text) 
382.
IP-Adresse: $($txtPrinterIP.Text) 
383.
Port: $($txtPrinterPort.Value) 
384.
Treiber: $($lbPrinterType.SelectedItem) 
385.
Standort: $($txtPrinterLocation.Text) 
386.
Kommentar: $($txtPrinterComment.Text) 
387.
Systemmeldung: $($result) 
388.
$("-"*20) 
389.
"@ 
390.
        [System.Windows.Forms.MessageBox]::Show("Beim Anlegen des Druckers/Ports ist ein Fehler aufgetreten: $result") 
391.
392.
    # Add-Content "logfile.log" $logtext -Force 
393.
    Add-Content "$logfile" $logtext -Force 
394.
395.
 
396.
$handler_btnCancel_Click = { 
397.
    $form1.Close() 
398.
399.
 
400.
$handler_form1_Load = { 
401.
 
402.
    # add printer drivers to List (must be exist on Printserver with this name) 
403.
	# Drucker zum DropDownMenü hinzufügen (Treiber muss in exakter Schreibweise auf dem Printserver vorhanden sein) 
404.
	 
405.
    $lbPrinterType.Items.AddRange(@( 
406.
           "HP LaserJet 1320 PCL 6",  
407.
		"HP Universal Printing PCL 6",  
408.
        "Lexmark MS510 Series XL", 
409.
        "Lexmark C734 XL",  
410.
        "Lexmark E360dn XL",  
411.
        "Lexmark E460dn XL",  
412.
        "Lexmark T650",  
413.
        "Lexmark X544 XL",  
414.
		"Lexmark Universal v2 XL",  
415.
        "NRG 2205/2238/2212 PCL 6",  
416.
        "NRG 6002/6005/6008 PCL6",  
417.
        "NRG MP 2550 PCL6",  
418.
        "RICOH Aficio 3045 PCL 6", 
419.
		"RICOH Aficio MP 4500 PCL 5e",  
420.
        "Ricoh Aficio MP 5500 PCL",  
421.
        "RICOH Aficio MP 7500 PCL 6"  
422.
    )) 
423.
 
424.
    # add printservers 
425.
	# Hier können Druckserver mit aufgenommen oder gelöscht werden 
426.
    $comboPrintServer.Items.AddRange(@( 
427.
        "PRINT01", 
428.
        "print02", 
429.
        "print03", 
430.
        "print04", 
431.
		"print05" 
432.
		 
433.
    )) 
434.
    $comboPrintServer.SelectedIndex = 0 
435.
436.
 
437.
$OnLoadForm_StateCorrection={#Correct the initial state of the form to prevent the .Net maximized form issue 
438.
	$form1.WindowState = $InitialFormWindowState 
439.
440.
 
441.
#---------------------------------------------- 
442.
#region Generated Form Code 
443.
$System_Drawing_Size = New-Object System.Drawing.Size 
444.
$System_Drawing_Size.Height = 472 
445.
$System_Drawing_Size.Width = 274 
446.
$form1.ClientSize = $System_Drawing_Size 
447.
$form1.DataBindings.DefaultDataSourceUpdateMode = 0 
448.
$System_Drawing_Size = New-Object System.Drawing.Size 
449.
$System_Drawing_Size.Height = 560 
450.
$System_Drawing_Size.Width = 282 
451.
$form1.MinimumSize = $System_Drawing_Size 
452.
$form1.Name = "form1" 
453.
$form1.Text = "PrinterAdd" 
454.
$form1.add_Load($handler_form1_Load) 
455.
 
456.
$txtPrinterPort.Anchor = 9 
457.
$txtPrinterPort.DataBindings.DefaultDataSourceUpdateMode = 0 
458.
$System_Drawing_Point = New-Object System.Drawing.Point 
459.
$System_Drawing_Point.X = 186 
460.
$System_Drawing_Point.Y = 75 
461.
$txtPrinterPort.Location = $System_Drawing_Point 
462.
$txtPrinterPort.Maximum = 65536 
463.
$txtPrinterPort.Minimum = 1 
464.
$txtPrinterPort.Name = "txtPrinterPort" 
465.
$System_Drawing_Size = New-Object System.Drawing.Size 
466.
$System_Drawing_Size.Height = 20 
467.
$System_Drawing_Size.Width = 76 
468.
$txtPrinterPort.Size = $System_Drawing_Size 
469.
$txtPrinterPort.TabIndex = 2 
470.
$txtPrinterPort.TextAlign = 2 
471.
$txtPrinterPort.Value = 9100 
472.
 
473.
$form1.Controls.Add($txtPrinterPort) 
474.
 
475.
$label7.Anchor = 9 
476.
$label7.DataBindings.DefaultDataSourceUpdateMode = 0 
477.
$label7.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0) 
478.
 
479.
$System_Drawing_Point = New-Object System.Drawing.Point 
480.
$System_Drawing_Point.X = 186 
481.
$System_Drawing_Point.Y = 58 
482.
$label7.Location = $System_Drawing_Point 
483.
$label7.Name = "label7" 
484.
$System_Drawing_Size = New-Object System.Drawing.Size 
485.
$System_Drawing_Size.Height = 23 
486.
$System_Drawing_Size.Width = 59 
487.
$label7.Size = $System_Drawing_Size 
488.
$label7.TabIndex = 11 
489.
$label7.Text = "Port" 
490.
 
491.
$form1.Controls.Add($label7) 
492.
 
493.
$comboPrintServer.Anchor = 14 
494.
$comboPrintServer.DataBindings.DefaultDataSourceUpdateMode = 0 
495.
$comboPrintServer.FormattingEnabled = $True 
496.
$System_Drawing_Point = New-Object System.Drawing.Point 
497.
$System_Drawing_Point.X = 12 
498.
$System_Drawing_Point.Y = 391 
499.
$comboPrintServer.Location = $System_Drawing_Point 
500.
$comboPrintServer.Name = "comboPrintServer" 
501.
$System_Drawing_Size = New-Object System.Drawing.Size 
502.
$System_Drawing_Size.Height = 21 
503.
$System_Drawing_Size.Width = 249 
504.
$comboPrintServer.Size = $System_Drawing_Size 
505.
$comboPrintServer.TabIndex = 6 
506.
 
507.
$form1.Controls.Add($comboPrintServer) 
508.
 
509.
$btnCancel.Anchor = 10 
510.
 
511.
$btnCancel.DataBindings.DefaultDataSourceUpdateMode = 0 
512.
 
513.
$System_Drawing_Point = New-Object System.Drawing.Point 
514.
$System_Drawing_Point.X = 186 
515.
$System_Drawing_Point.Y = 493 
516.
$btnCancel.Location = $System_Drawing_Point 
517.
$btnCancel.Name = "btnCancel" 
518.
$System_Drawing_Size = New-Object System.Drawing.Size 
519.
$System_Drawing_Size.Height = 23 
520.
$System_Drawing_Size.Width = 75 
521.
$btnCancel.Size = $System_Drawing_Size 
522.
$btnCancel.TabIndex = 11 
523.
$btnCancel.Text = "Abbrechen" 
524.
$btnCancel.UseVisualStyleBackColor = $True 
525.
$btnCancel.add_Click($handler_btnCancel_Click) 
526.
 
527.
$form1.Controls.Add($btnCancel) 
528.
 
529.
$btnDelCsv.Anchor = 10 
530.
 
531.
$btnDelCsv.DataBindings.DefaultDataSourceUpdateMode = 0 
532.
 
533.
$System_Drawing_Point = New-Object System.Drawing.Point 
534.
$System_Drawing_Point.X = 186 
535.
$System_Drawing_Point.Y = 465 
536.
$btnDelCsv.Location = $System_Drawing_Point 
537.
$btnDelCsv.Name = "$btnDelCsv" 
538.
$System_Drawing_Size = New-Object System.Drawing.Size 
539.
$System_Drawing_Size.Height = 23 
540.
$System_Drawing_Size.Width = 75 
541.
$btnDelCsv.Size = $System_Drawing_Size 
542.
$btnDelCsv.TabIndex = 13 
543.
$btnDelCsv.Text = "DelFromCSV" 
544.
$btnDelCsv.UseVisualStyleBackColor = $True 
545.
$btnDelCsv.add_Click($handler_btnDelCsv_Click) 
546.
 
547.
$form1.Controls.Add($btnDelCsv) 
548.
 
549.
 
550.
$btnOK.Anchor = 10 
551.
 
552.
$btnOK.DataBindings.DefaultDataSourceUpdateMode = 0 
553.
 
554.
$System_Drawing_Point = New-Object System.Drawing.Point 
555.
$System_Drawing_Point.X = 105 
556.
$System_Drawing_Point.Y = 437 
557.
$btnOK.Location = $System_Drawing_Point 
558.
$btnOK.Name = "btnOK" 
559.
$System_Drawing_Size = New-Object System.Drawing.Size 
560.
$System_Drawing_Size.Height = 23 
561.
$System_Drawing_Size.Width = 75 
562.
$btnOK.Size = $System_Drawing_Size 
563.
$btnOK.TabIndex = 7 
564.
$btnOK.Text = "Erstellen" 
565.
$btnOK.UseVisualStyleBackColor = $True 
566.
$btnOK.add_Click($handler_btnOK_Click) 
567.
 
568.
$form1.Controls.Add($btnOK) 
569.
 
570.
 
571.
$btnDel.Anchor = 10 
572.
 
573.
 
574.
$btnDel.DataBindings.DefaultDataSourceUpdateMode = 0 
575.
 
576.
$System_Drawing_Point = New-Object System.Drawing.Point 
577.
$System_Drawing_Point.X = 25 
578.
$System_Drawing_Point.Y = 437 
579.
$btnDel.Location = $System_Drawing_Point 
580.
$btnDel.Name = "btnDel" 
581.
$System_Drawing_Size = New-Object System.Drawing.Size 
582.
$System_Drawing_Size.Height = 23 
583.
$System_Drawing_Size.Width = 75 
584.
$btnDel.Size = $System_Drawing_Size 
585.
$btnDel.TabIndex = 8 
586.
$btnDel.Text = "Löschen" 
587.
$btnDel.UseVisualStyleBackColor = $True 
588.
$btnDel.add_Click($handler_btnDel_Click) 
589.
 
590.
$form1.Controls.Add($btnDel) 
591.
 
592.
$btnList.Anchor = 10 
593.
 
594.
$btnList.DataBindings.DefaultDataSourceUpdateMode = 0 
595.
 
596.
$System_Drawing_Point = New-Object System.Drawing.Point 
597.
$System_Drawing_Point.X = 186 
598.
$System_Drawing_Point.Y = 437 
599.
$btnList.Location = $System_Drawing_Point 
600.
$btnList.Name = "btnList" 
601.
$System_Drawing_Size = New-Object System.Drawing.Size 
602.
$System_Drawing_Size.Height = 23 
603.
$System_Drawing_Size.Width = 75 
604.
$btnList.Size = $System_Drawing_Size 
605.
$btnList.TabIndex = 12 
606.
$btnList.Text = "Auflisten" 
607.
$btnList.UseVisualStyleBackColor = $True 
608.
$btnList.add_Click($handler_btnList_Click) 
609.
 
610.
$form1.Controls.Add($btnList) 
611.
 
612.
$btnExp.Anchor = 10 
613.
 
614.
$btnExp.DataBindings.DefaultDataSourceUpdateMode = 0 
615.
 
616.
$System_Drawing_Point = New-Object System.Drawing.Point 
617.
$System_Drawing_Point.X = 25 
618.
$System_Drawing_Point.Y = 465 
619.
$btnExp.Location = $System_Drawing_Point 
620.
$btnExp.Name = "btnExp" 
621.
$System_Drawing_Size = New-Object System.Drawing.Size 
622.
$System_Drawing_Size.Height = 23 
623.
$System_Drawing_Size.Width = 75 
624.
$btnExp.Size = $System_Drawing_Size 
625.
$btnExp.TabIndex = 13 
626.
$btnExp.Text = "Export_CSV" 
627.
$btnExp.UseVisualStyleBackColor = $True 
628.
$btnExp.add_Click($handler_btnExp_Click) 
629.
 
630.
$form1.Controls.Add($btnExp) 
631.
 
632.
$btnImp.Anchor = 10 
633.
 
634.
$btnImp.DataBindings.DefaultDataSourceUpdateMode = 0 
635.
 
636.
$System_Drawing_Point = New-Object System.Drawing.Point 
637.
$System_Drawing_Point.X = 105 
638.
$System_Drawing_Point.Y = 465 
639.
$btnImp.Location = $System_Drawing_Point 
640.
$btnImp.Name = "btnCancel" 
641.
$System_Drawing_Size = New-Object System.Drawing.Size 
642.
$System_Drawing_Size.Height = 23 
643.
$System_Drawing_Size.Width = 75 
644.
$btnImp.Size = $System_Drawing_Size 
645.
$btnImp.TabIndex = 13 
646.
$btnImp.Text = "Import_CSV" 
647.
$btnImp.UseVisualStyleBackColor = $True 
648.
$btnImp.add_Click($handler_btnImp_Click) 
649.
 
650.
$form1.Controls.Add($btnImp) 
651.
 
652.
$label6.Anchor = 6 
653.
$label6.DataBindings.DefaultDataSourceUpdateMode = 0 
654.
$label6.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0) 
655.
 
656.
$System_Drawing_Point = New-Object System.Drawing.Point 
657.
$System_Drawing_Point.X = 11 
658.
$System_Drawing_Point.Y = 368 
659.
$label6.Location = $System_Drawing_Point 
660.
$label6.Name = "label6" 
661.
$System_Drawing_Size = New-Object System.Drawing.Size 
662.
$System_Drawing_Size.Height = 20 
663.
$System_Drawing_Size.Width = 250 
664.
$label6.Size = $System_Drawing_Size 
665.
$label6.TabIndex = 10 
666.
$label6.Text = "Erstellen auf folgendem PrintServer" 
667.
 
668.
$form1.Controls.Add($label6) 
669.
 
670.
 
671.
$txtPrinterComment.Anchor = 14 
672.
$txtPrinterComment.DataBindings.DefaultDataSourceUpdateMode = 0 
673.
$System_Drawing_Point = New-Object System.Drawing.Point 
674.
$System_Drawing_Point.X = 11 
675.
$System_Drawing_Point.Y = 339 
676.
$txtPrinterComment.Location = $System_Drawing_Point 
677.
$txtPrinterComment.Name = "txtPrinterComment" 
678.
$System_Drawing_Size = New-Object System.Drawing.Size 
679.
$System_Drawing_Size.Height = 20 
680.
$System_Drawing_Size.Width = 250 
681.
$txtPrinterComment.Size = $System_Drawing_Size 
682.
$txtPrinterComment.TabIndex = 5 
683.
 
684.
$form1.Controls.Add($txtPrinterComment) 
685.
 
686.
 
687.
$txtPrinterLocation.Anchor = 14 
688.
$txtPrinterLocation.DataBindings.DefaultDataSourceUpdateMode = 0 
689.
$System_Drawing_Point = New-Object System.Drawing.Point 
690.
$System_Drawing_Point.X = 12 
691.
$System_Drawing_Point.Y = 294 
692.
$txtPrinterLocation.Location = $System_Drawing_Point 
693.
$txtPrinterLocation.Name = "txtPrinterLocation" 
694.
$System_Drawing_Size = New-Object System.Drawing.Size 
695.
$System_Drawing_Size.Height = 20 
696.
$System_Drawing_Size.Width = 251 
697.
$txtPrinterLocation.Size = $System_Drawing_Size 
698.
$txtPrinterLocation.TabIndex = 4 
699.
 
700.
$form1.Controls.Add($txtPrinterLocation) 
701.
 
702.
 
703.
$label4.Anchor = 6 
704.
$label4.DataBindings.DefaultDataSourceUpdateMode = 0 
705.
$label4.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0) 
706.
 
707.
$System_Drawing_Point = New-Object System.Drawing.Point 
708.
$System_Drawing_Point.X = 11 
709.
$System_Drawing_Point.Y = 275 
710.
$label4.Location = $System_Drawing_Point 
711.
$label4.Name = "label4" 
712.
$System_Drawing_Size = New-Object System.Drawing.Size 
713.
$System_Drawing_Size.Height = 23 
714.
$System_Drawing_Size.Width = 169 
715.
$label4.Size = $System_Drawing_Size 
716.
$label4.TabIndex = 6 
717.
$label4.Text = "Standort" 
718.
 
719.
$form1.Controls.Add($label4) 
720.
 
721.
 
722.
$lbPrinterType.Anchor = 15 
723.
$lbPrinterType.DataBindings.DefaultDataSourceUpdateMode = 0 
724.
$lbPrinterType.FormattingEnabled = $True 
725.
$System_Drawing_Point = New-Object System.Drawing.Point 
726.
$System_Drawing_Point.X = 12 
727.
$System_Drawing_Point.Y = 133 
728.
$lbPrinterType.Location = $System_Drawing_Point 
729.
$lbPrinterType.Name = "lbPrinterType" 
730.
$System_Drawing_Size = New-Object System.Drawing.Size 
731.
$System_Drawing_Size.Height = 121 
732.
$System_Drawing_Size.Width = 250 
733.
$lbPrinterType.Size = $System_Drawing_Size 
734.
$lbPrinterType.TabIndex = 3 
735.
 
736.
$form1.Controls.Add($lbPrinterType) 
737.
 
738.
 
739.
$txtPrinterIP.Anchor = 13 
740.
$txtPrinterIP.DataBindings.DefaultDataSourceUpdateMode = 0 
741.
$System_Drawing_Point = New-Object System.Drawing.Point 
742.
$System_Drawing_Point.X = 12 
743.
$System_Drawing_Point.Y = 75 
744.
$txtPrinterIP.Location = $System_Drawing_Point 
745.
$txtPrinterIP.Name = "txtPrinterIP" 
746.
$System_Drawing_Size = New-Object System.Drawing.Size 
747.
$System_Drawing_Size.Height = 20 
748.
$System_Drawing_Size.Width = 168 
749.
$txtPrinterIP.Size = $System_Drawing_Size 
750.
$txtPrinterIP.TabIndex = 1 
751.
 
752.
$form1.Controls.Add($txtPrinterIP) 
753.
 
754.
 
755.
$txtPrintername.Anchor = 13 
756.
$txtPrintername.DataBindings.DefaultDataSourceUpdateMode = 0 
757.
$System_Drawing_Point = New-Object System.Drawing.Point 
758.
$System_Drawing_Point.X = 12 
759.
$System_Drawing_Point.Y = 26 
760.
$txtPrintername.Location = $System_Drawing_Point 
761.
$txtPrintername.Name = "txtPrintername" 
762.
$System_Drawing_Size = New-Object System.Drawing.Size 
763.
$System_Drawing_Size.Height = 20 
764.
$System_Drawing_Size.Width = 250 
765.
$txtPrintername.Size = $System_Drawing_Size 
766.
$txtPrintername.TabIndex = 0 
767.
 
768.
$form1.Controls.Add($txtPrintername) 
769.
 
770.
 
771.
$label3.DataBindings.DefaultDataSourceUpdateMode = 0 
772.
$label3.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0) 
773.
 
774.
$System_Drawing_Point = New-Object System.Drawing.Point 
775.
$System_Drawing_Point.X = 11 
776.
$System_Drawing_Point.Y = 107 
777.
$label3.Location = $System_Drawing_Point 
778.
$label3.Name = "label3" 
779.
$System_Drawing_Size = New-Object System.Drawing.Size 
780.
$System_Drawing_Size.Height = 23 
781.
$System_Drawing_Size.Width = 100 
782.
$label3.Size = $System_Drawing_Size 
783.
$label3.TabIndex = 2 
784.
$label3.Text = "Druckertyp" 
785.
 
786.
$form1.Controls.Add($label3) 
787.
 
788.
 
789.
$label2.DataBindings.DefaultDataSourceUpdateMode = 0 
790.
$label2.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0) 
791.
 
792.
$System_Drawing_Point = New-Object System.Drawing.Point 
793.
$System_Drawing_Point.X = 11 
794.
$System_Drawing_Point.Y = 58 
795.
$label2.Location = $System_Drawing_Point 
796.
$label2.Name = "label2" 
797.
$System_Drawing_Size = New-Object System.Drawing.Size 
798.
$System_Drawing_Size.Height = 23 
799.
$System_Drawing_Size.Width = 100 
800.
$label2.Size = $System_Drawing_Size 
801.
$label2.TabIndex = 1 
802.
$label2.Text = "IP-Adresse" 
803.
 
804.
$form1.Controls.Add($label2) 
805.
 
806.
 
807.
$label1.DataBindings.DefaultDataSourceUpdateMode = 0 
808.
$label1.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0) 
809.
 
810.
$System_Drawing_Point = New-Object System.Drawing.Point 
811.
$System_Drawing_Point.X = 12 
812.
$System_Drawing_Point.Y = 9 
813.
$label1.Location = $System_Drawing_Point 
814.
$label1.Name = "label1" 
815.
$System_Drawing_Size = New-Object System.Drawing.Size 
816.
$System_Drawing_Size.Height = 23 
817.
$System_Drawing_Size.Width = 100 
818.
$label1.Size = $System_Drawing_Size 
819.
$label1.TabIndex = 0 
820.
$label1.Text = "Druckername" 
821.
 
822.
$form1.Controls.Add($label1) 
823.
 
824.
 
825.
$label5.Anchor = 6 
826.
$label5.DataBindings.DefaultDataSourceUpdateMode = 0 
827.
$label5.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0) 
828.
 
829.
$System_Drawing_Point = New-Object System.Drawing.Point 
830.
$System_Drawing_Point.X = 11 
831.
$System_Drawing_Point.Y = 321 
832.
$label5.Location = $System_Drawing_Point 
833.
$label5.Name = "label5" 
834.
$System_Drawing_Size = New-Object System.Drawing.Size 
835.
$System_Drawing_Size.Height = 23 
836.
$System_Drawing_Size.Width = 169 
837.
$label5.Size = $System_Drawing_Size 
838.
$label5.TabIndex = 9 
839.
$label5.Text = "Kommentar" 
840.
 
841.
$form1.Controls.Add($label5) 
842.
 
843.
#endregion Generated Form Code 
844.
 
845.
#Save the initial state of the form 
846.
$InitialFormWindowState = $form1.WindowState 
847.
#Init the OnLoad event to correct the initial state of the form 
848.
$form1.add_Load($OnLoadForm_StateCorrection) 
849.
#Show the Form 
850.
$form1.ShowDialog()| Out-Null 
851.
 
852.
} #End Function 
853.
 
854.
#Call the Function 
855.
GenerateForm 
856.
 
Mitglied: 114757
16.12.2014, aktualisiert um 16:18 Uhr
Was läuft hier schief, dass die verarbeitung so lange dauert?
na bei über 800 Zeilen Code, kein Wunder

Benutze WMI Forward-Only-Queries dann läuft's vermutlich schneller ...Google ist dein Freund
http://technet.microsoft.com/en-us/library/ee198934.aspx

Gruß jodel32
Bitte warten ..
Mitglied: Pago159
17.12.2014 um 12:24 Uhr
Hallo Jodel32,

es kann gut sein, dass die WMI Forward-Only-Queries den Scriptablauf beschleunigen,
allerdings erklärt das nicht den unterschied vom Erstellen zum Löschen von Drucker Elementen.

Erstellen ist innerhalb 15 Minuten durch und
Löschen benötigt ca 180 Minuten

Die Anzahl der Drucker ist ja die selbe und es werden weniger Daten beim löschen abgefragt.
Für mich stellt sich halt die Frage, weshalb das Löschen so viel länger braucht.
Bitte warten ..
Mitglied: 114757
17.12.2014, aktualisiert um 12:39 Uhr
naja du verplemperst ja auch schon für alle 130 Drucker insgesamt 32 Minuten nur für Sleep's
130*15/60
Bitte warten ..
Mitglied: Pago159
17.12.2014 um 12:52 Uhr
Die 15 Sekunden Sleep sind schon längst auskommentiert, da ich dort auch mein Problem gesehen habe
Dies brachte aber keine wirkliche besserung.
Ich hatte auch schon die Variante getestet, erst die Drucker und anschließend die Ports löschen zu lassen.

01.
$handler_btnDelCsv_Click = {  
02.
   $btnCancel.Text = "Abbrechen" 
03.
	$printserver = $comboPrintServer.Text 
04.
     # Drucker erstellen 
05.
     $result = &$DeletePrinterCSV 
06.
	 $result = &$DeletePortCSV 
07.
     
08.
    # wenn erfolgreich erstellt ... 
09.
    $logtext = "" 
10.
    if ($result -eq $true){ 
11.
	$printers = Import-Csv $DelCSV –Delimiter ';' 
12.
        $logtext = @" 
13.
-------- $(get-date -Format "g") ---------- Die Drucker wurden auf dem Printserver '$($comboPrintServer.Text)' gelöscht: -------------- 
14.
Druckername: $($global:sharename) 
15.
IP-Adresse: $($global:RAWportname) 
16.
Port: $($global:portname) 
17.
Treiber: $($global:drivername) 
18.
Standort: $($global:location) 
19.
Kommentar: $($global:comment) 
20.
Systemmeldung: $($result) 
21.
"@ 
22.
        [System.Windows.Forms.MessageBox]::Show("Die Drucker wurden auf dem Printserver $($comboPrintServer.Text) gelöscht: $result") 
23.
		 }else{ 
24.
    # wenn Fehler beim erstellen (Fehlermeldung wird mit Dokumentiert)... 
25.
        $logtext = @" 
26.
-------- $(get-date -Format "g") ---------- !!! ACHTUNG FEHLER !! beim löschen der Druckers auf Printserver '$($comboPrintServer.Text) ist ein Fehler aufgetreten': -------------- 
27.
Druckername: $($global:sharename) 
28.
IP-Adresse: $($global:RAWportname) 
29.
Port: $($global:portname) 
30.
Treiber: $($global:drivername) 
31.
Standort: $($global:location) 
32.
Kommentar: $($global:comment) 
33.
Systemmeldung: $($result) 
34.
$("-"*20) 
35.
"@ 
36.
        [System.Windows.Forms.MessageBox]::Show("Beim löschen der Drucker/Ports ist ein Fehler aufgetreten. Bitte Prüfen Sie, welche Drucker fehlen!!!: $result") 
37.
38.
    # Add-Content "logfile.log" $logtext -Force 
39.
    Add-Content "$Dellogfile" $logtext -Force 
40.
	$btnCancel.Text = "Close" 
41.
} 

01.
$DeletePrinterCSV = { #Drucker anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Anfang 
02.
     $global:printers = Import-Csv $DelCSV –Delimiter ';'  
03.
 
04.
    foreach ($printer in $global:printers){ 
05.
 
06.
        $global:sharename = $printer.sharename 
07.
 
08.
		 Try{ 
09.
		$printserver = $comboPrintServer.Text		 
10.
		 
11.
		# delete printer instance (Printerport bleibt weiter bestehen) 
12.
		$sharename = $global:sharename 
13.
        gwmi Win32_Printer -computer $printserver -Filter "Name = '$sharename'" | %{$_.Delete()} 
14.
		 
15.
		# delete printer Port (eine Wartezeit von 15 Sekunden wurde eingebaut, damit der Port gelöscht werden kann) 
16.
		#sleep 15 
17.
		#$name = $global:RAWportname 
18.
		#gwmi Win32_TCPIPPrinterPort -computer $printserver -Filter "HostAddress = '$name'" | %{$_.Delete()}		 
19.
		 
20.
         
21.
		}catch{ 
22.
			return $_.Exception.Message 
23.
24.
25.
			# return true  
26.
 
27.
				} #Drucker anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Ende 
28.
 
29.
$DeletePortCSV = { #DruckerPort anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Anfang 
30.
     $global:printers = Import-Csv $DelCSV –Delimiter ';'  
31.
 
32.
    foreach ($printer in $global:printers){ 
33.
 
34.
        $global:RAWportname = $printer.portname 
35.
 
36.
		 Try{ 
37.
		$printserver = $comboPrintServer.Text		 
38.
		 
39.
		# delete printer instance (Printerport bleibt weiter bestehen) 
40.
		#$sharename = $global:sharename 
41.
        #gwmi Win32_Printer -computer $printserver -Filter "Name = '$sharename'" | %{$_.Delete()} 
42.
		 
43.
		# delete printer Port (eine Wartezeit von 15 Sekunden wurde eingebaut, damit der Port gelöscht werden kann) 
44.
		 
45.
		$name = $global:RAWportname 
46.
		gwmi Win32_TCPIPPrinterPort -computer $printserver -Filter "HostAddress = '$name'" | %{$_.Delete()}		 
47.
		 
48.
         
49.
		}catch{ 
50.
			return $_.Exception.Message 
51.
52.
53.
return $true 
54.
				} #DruckerPort anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Ende	
Bitte warten ..
Mitglied: 114757
17.12.2014 um 12:55 Uhr
dann check euer Netzwerk und die Prozesse : Wireshark und Processmonitor sind dein Freund ...
Bitte warten ..
Mitglied: Pago159
15.01.2015 um 10:05 Uhr
Nach dem eine Routine geändert wurde, laufen das Skript in folgender Form auch schnelle:

01.
function GenerateForm { 
02.
 
03.
#region Import the Assemblies 
04.
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null 
05.
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null 
06.
#endregion 
07.
 
08.
#region Generated Form Objects 
09.
$form1 = New-Object System.Windows.Forms.Form 
10.
$txtPrinterPort = New-Object System.Windows.Forms.NumericUpDown 
11.
$label7 = New-Object System.Windows.Forms.Label 
12.
$comboPrintServer = New-Object System.Windows.Forms.ComboBox 
13.
$btnCancel = New-Object System.Windows.Forms.Button 
14.
$btnOK = New-Object System.Windows.Forms.Button 
15.
$btnDel = New-Object System.Windows.Forms.Button 
16.
$btnList = New-Object System.Windows.Forms.Button 
17.
$btnExp = New-Object System.Windows.Forms.Button 
18.
$btnImp = New-Object System.Windows.Forms.Button 
19.
$btnDelCsv = New-Object System.Windows.Forms.Button 
20.
$btnSpool = New-Object System.Windows.Forms.Button 
21.
$label6 = New-Object System.Windows.Forms.Label 
22.
$txtPrinterComment = New-Object System.Windows.Forms.TextBox 
23.
$txtPrinterLocation = New-Object System.Windows.Forms.TextBox 
24.
$label4 = New-Object System.Windows.Forms.Label 
25.
$lbPrinterType = New-Object System.Windows.Forms.ListBox 
26.
$txtPrinterIP = New-Object System.Windows.Forms.TextBox 
27.
$txtPrintername = New-Object System.Windows.Forms.TextBox 
28.
$label3 = New-Object System.Windows.Forms.Label 
29.
$label2 = New-Object System.Windows.Forms.Label 
30.
$label1 = New-Object System.Windows.Forms.Label 
31.
$label5 = New-Object System.Windows.Forms.Label 
32.
$progressBar = New-Object System.Windows.Forms.ProgressBar 
33.
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState 
34.
#endregion Generated Form Objects 
35.
 
36.
#Create synchronized Hashtable-Object for communication between sub-thread and form 
37.
$syncHash = [hashtable]::Synchronized(@{}) 
38.
#set the controls in the hashtable we wish to manipulate 
39.
$syncHash.progress = $progressBar 
40.
# initialize second Powershell runspace 
41.
$psCmd = [powershell]::Create() 
42.
 
43.
#---------------------------------------------- 
44.
# Event Script Blocks 
45.
#---------------------------------------------- 
46.
 
47.
# Pfade, die evtl. verändert werden müssen. Log Pfade und Dateien müssen bereits existieren. (Bitte daran denken, die Server und Treibernamen weiter unten zu ändern!! 
48.
$logfile = "C:\Logs\AddPrinter\logfile.log" 
49.
$Importlogfile = "C:\Logs\AddPrinter\ImportLogfile.log" 
50.
$import = "C:\Logs\AddPrinter\import.txt" 
51.
$DelCSV = "C:\Logs\AddPrinter\delete.txt" 
52.
$path = "C:\Logs\AddPrinter" 
53.
$date = Get-Date -f yyyy-MM-dd_ 
54.
$extension = ".csv" 
55.
$Dellogfile = "C:\Logs\AddPrinter\DeleteLogfile.log" 
56.
 
57.
$handler_form1_Load = { 
58.
    # add printer drivers to List (must be exist on Printserver with this name) 
59.
	# Drucker zum DropDownMenü hinzufügen (Treiber muss in exakter Schreibweise auf dem Printserver vorhanden sein)	 
60.
    $lbPrinterType.Items.AddRange(@( 
61.
         
62.
		"HP Universal Printing PCL 6", 
63.
        "", 
64.
		"Lexmark Universal v2 XL" 
65.
        
66.
    )) 
67.
 
68.
    # add printservers 
69.
	# Hier können Druckserver mit aufgenommen oder gelöscht werden 
70.
    $comboPrintServer.Items.AddRange(@( 
71.
        "Printserver1", 
72.
        "Printserver2" 
73.
       	 
74.
    )) 
75.
    $comboPrintServer.SelectedIndex = 0 
76.
77.
 
78.
 
79.
 
80.
 
81.
 
82.
 
83.
 
84.
 
85.
$deletePrinter = { #Drucker anhand des ausgefüllten Formulars löschen!!!___________________________________________________________________________________________________________Anfang 
86.
	Try{ 
87.
		$printserver = $comboPrintServer.Text	 
88.
		$sharename = $txtPrintername.Text 
89.
		$name = $txtPrinterIP.Text		 
90.
		# delete printer instance 
91.
        gwmi Win32_Printer -computer $printserver -Filter "Name = '$sharename'" | %{$_.Delete()} 
92.
		# delete printer Port (eine Wartezeit von 15 Sekunden wurde eingebaut, damit der Port gelöscht werden kann) 
93.
		sleep 15 
94.
		gwmi Win32_TCPIPPrinterPort -computer $printserver -Filter "HostAddress = '$name'" | %{$_.Delete()}		 
95.
        return $true 
96.
		}catch{ 
97.
        return $_.Exception.Message 
98.
99.
 
100.
				} #Drucker anhand des ausgefüllten Formulars löschen!!!___________________________________________________________________________________________________________Ende 
101.
 
102.
$handler_btnDel_Click = { #Aktion beim Klick auf Löschen inkl. Fehlermeldung 
103.
    
104.
    # Drucker löschen 
105.
    $result = &$deletePrinter 
106.
     
107.
    # wenn erfolgreich gelöscht ... 
108.
    $logtext = "" 
109.
    if ($result -eq $true){ 
110.
        $logtext = @" 
111.
-------- $(get-date -Format "g") ---------- Drucker wurde auf dem Printserver '$($comboPrintServer.Text)' gelöscht: -------------- 
112.
Druckername: $($txtPrintername.Text) 
113.
IP-Adresse: $($txtPrinterIP.Text) 
114.
Port: $($txtPrinterPort.Value) 
115.
Treiber: $($lbPrinterType.SelectedItem) 
116.
Standort: $($txtPrinterLocation.Text) 
117.
Kommentar: $($txtPrinterComment.Text) 
118.
Systemmeldung: $($result) 
119.
"@ 
120.
        [System.Windows.Forms.MessageBox]::Show("Der Drucker $txtPrintername wurde auf dem Printserver $($comboPrintServer.Text) gelöscht.") 
121.
    }else{ 
122.
    # wenn Fehler beim löschen (Fehlermeldung wird mit Dokumentiert)... 
123.
        $logtext = @" 
124.
-------- $(get-date -Format "g") ---------- !!! ACHTUNG FEHLER !! beim löschen des Druckers auf Printserver '$($comboPrintServer.Text)': -------------- 
125.
Druckername: $($txtPrintername.Text) 
126.
IP-Adresse: $($txtPrinterIP.Text) 
127.
Port: $($txtPrinterPort.Value) 
128.
Treiber: $($lbPrinterType.SelectedItem) 
129.
Standort: $($txtPrinterLocation.Text) 
130.
Kommentar: $($txtPrinterComment.Text) 
131.
Systemmeldung: $($result) 
132.
$("-"*20) 
133.
"@ 
134.
        [System.Windows.Forms.MessageBox]::Show("Beim löschen des Druckers/Ports ist ein Fehler aufgetreten: $result") 
135.
136.
    # Add-Content "logfile.log" $logtext -Force 
137.
    Add-Content "$logfile" $logtext -Force 
138.
	 
139.
140.
 
141.
$createPrinter = { #Drucker anhand des ausgefüllten Formulars erstellen!!!___________________________________________________________________________________________________________Anfang 
142.
    Try{ 
143.
        $printserver = $comboPrintServer.Text 
144.
        $portname = "IP_$($txtPrinterIP.Text)" 
145.
     
146.
        # create printer port 
147.
        $wmi = ([WMICLASS]"\\$printserver\ROOT\cimv2:Win32_TCPIPPrinterPort") 
148.
        $wmi.psbase.scope.options.enablePrivileges = $true 
149.
        $port = $wmi.CreateInstance() 
150.
        $port.Name = $portname 
151.
        $port.Protocol = 1  
152.
        $port.Portnumber = $txtPrinterPort.Text  
153.
        $port.HostAddress = $txtPrinterIP.Text 
154.
        $port.SNMPEnabled = $False 
155.
        $port.put() 
156.
 
157.
        #create printer instance 
158.
        $print = ([WMICLASS]"\\$printserver\ROOT\cimv2:Win32_Printer").createInstance()  
159.
        $print.Drivername = $lbPrinterType.SelectedItem 
160.
        $print.PortName = $portname 
161.
        $print.Shared = $true 
162.
        $print.Published = $true 
163.
        $print.Sharename = $txtPrintername.Text 
164.
        $print.Location = $txtPrinterLocation.Text 
165.
        $print.Comment = $txtPrinterComment.Text 
166.
        $print.DeviceID = $txtPrintername.Text 
167.
        $print.put() 
168.
        return $true 
169.
     }catch{ 
170.
        return $_.Exception.Message 
171.
172.
 
173.
} #Drucker anhand des ausgefüllten Formulars erstellen!!!___________________________________________________________________________________________________________Ende 
174.
 
175.
$handler_btnList_Click = { 
176.
$btnCancel.Text = "Abbrechen" 
177.
	$result = &$PrinterOnServer  
178.
	$btnCancel.Text = "Close"} 
179.
 
180.
$PrinterOnServer = { # Auflisten der Drucker auf dem Server inkl. Port des ausgewählten Printserver_______________________________________________Anfang 
181.
$printserver = $comboPrintServer.Text 
182.
Get-WmiObject -Class Win32_Printer -computername $printserver | select drivername, portname, sharename, location, comment | Out-GridView 
183.
} # Auflisten der Drucker auf dem Server inkl. Port des ausgewählten Printserver_______________________________________________Ende 
184.
 
185.
$handler_btnExp_Click = {  
186.
 
187.
$printserver = $comboPrintServer.Text 
188.
    $result = &$ExportPrinter  
189.
 if ($result -eq $true){ 
190.
        [System.Windows.Forms.MessageBox]::Show("Die Datei ist unter folgendem Pfad zu finden: $path\$date$printserver$extension") 
191.
    }else{ 
192.
    # wenn Fehler beim erstellen (Fehlermeldung wird mit Dokumentiert)...  
193.
        [System.Windows.Forms.MessageBox]::Show("$result") 
194.
195.
   # Export der Drucker in eine CSV-Datei 
196.
   
197.
198.
 
199.
$ExportPrinter = { # Export der Drucker auf dem Server inkl. Port des ausgewählten Printserver in eine CSV-Datei_______________________________________________Anfang 
200.
Try{ 
201.
Get-WmiObject -Class Win32_Printer -computername $printserver | select drivername, portname, sharename, location, comment | export-csv $path\$date$printserver$extension -NoTypeInformation -Delimiter ";" -Encoding "ASCII" -noclobber 
202.
 return $true #$path $date $printserver $extension 
203.
     }catch{ 
204.
        return $_.Exception.Message 
205.
206.
   }  
207.
 
208.
$handler_btnImp_Click = {  
209.
 
210.
	$printserver = $comboPrintServer.Text 
211.
     # Drucker erstellen 
212.
     $result = &$ImportPrinter 
213.
     
214.
    # wenn erfolgreich erstellt ... 
215.
    $logtext = "" 
216.
    if ($result -eq $true){ 
217.
        $logtext = @" 
218.
-------- $(get-date -Format "g") ---------- Die Drucker wurden auf dem Printserver '$($comboPrintServer.Text)' erstellt: -------------- 
219.
Druckername: $($global:sharename) 
220.
IP-Adresse: $($global:RAWportname) 
221.
Port: $($global:portname) 
222.
Treiber: $($global:drivername) 
223.
Standort: $($global:location) 
224.
Kommentar: $($global:comment) 
225.
Systemmeldung: $($result) 
226.
"@ 
227.
        [System.Windows.Forms.MessageBox]::Show("Die Drucker wurden auf dem Printserver $($comboPrintServer.Text) erstellt. $result") 
228.
    }else{ 
229.
    # wenn Fehler beim erstellen (Fehlermeldung wird mit Dokumentiert)... 
230.
        $logtext = @" 
231.
-------- $(get-date -Format "g") ---------- !!! ACHTUNG FEHLER !! beim erstellen der Druckers auf Printserver '$($comboPrintServer.Text) ist ein Fehler aufgetreten': -------------- 
232.
Druckername: $(global:$sharename) 
233.
IP-Adresse: $($global:RAWportname) 
234.
Port: $($global:portname) 
235.
Treiber: $($global:drivername) 
236.
Standort: $($global:location) 
237.
Kommentar: $($global:comment) 
238.
Systemmeldung: $($result) 
239.
$("-"*20) 
240.
"@ 
241.
        [System.Windows.Forms.MessageBox]::Show("Beim erstellen des Druckers/Ports ist ein Fehler aufgetreten: $result") 
242.
243.
    # Add-Content "logfile.log" $logtext -Force 
244.
    Add-Content "$Importlogfile" $logtext -Force 
245.
	 
246.
247.
  
248.
$handler_btnDelCsv_Click = {  
249.
    
250.
        
251.
		 # Drucker gelöschen 
252.
     $result = &$DeletePrinterCSV 
253.
	 sleep 15 
254.
	 $result = "" 
255.
	 $result = &$DeletePortCSV  	 
256.
 # wenn erfolgreich gelöscht ... 
257.
    $logtext = "" 
258.
    if ($result -eq $OK){ 
259.
	$printers = Import-Csv $DelCSV –Delimiter ';' 
260.
        $logtext = @" 
261.
-------- $(get-date -Format "g") ---------- Die Drucker wurden auf dem Printserver '$($comboPrintServer.Text)' gelöscht: -------------- 
262.
Druckername: $($global:sharename) 
263.
IP-Adresse: $($global:RAWportname) 
264.
Port: $($global:portname) 
265.
Treiber: $($global:drivername) 
266.
Standort: $($global:location) 
267.
Kommentar: $($global:comment) 
268.
Systemmeldung: $($result) 
269.
"@ 
270.
 
271.
        [System.Windows.Forms.MessageBox]::Show("Die Drucker wurden auf dem Printserver $($comboPrintServer.Text) gelöscht: $result") 
272.
		 }else{ 
273.
    # wenn Fehler beim erstellen (Fehlermeldung wird mit Dokumentiert)... 
274.
        $logtext = @" 
275.
-------- $(get-date -Format "g") ---------- !!! ACHTUNG FEHLER !! beim löschen der Druckers auf Printserver '$($comboPrintServer.Text) ist ein Fehler aufgetreten': -------------- 
276.
Druckername: $($global:sharename) 
277.
IP-Adresse: $($global:RAWportname) 
278.
Port: $($global:portname) 
279.
Treiber: $($global:drivername) 
280.
Standort: $($global:location) 
281.
Kommentar: $($global:comment) 
282.
Systemmeldung: $($result) 
283.
$("-"*20) 
284.
"@ 
285.
 
286.
        [System.Windows.Forms.MessageBox]::Show("Beim löschen der Drucker/Ports ist ein Fehler aufgetreten. Bitte Prüfen Sie, welche Drucker fehlen!!!: $result") 
287.
288.
    # Add-Content "logfile.log" $logtext -Force 
289.
    Add-Content "$Dellogfile" $logtext -Force 
290.
	 
291.
}  
292.
 
293.
	 
294.
     
295.
  
296.
$DeletePrinterCSV = { #Drucker anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Anfang 
297.
 
298.
	 $global:printers = Import-Csv $DelCSV –Delimiter ';'  
299.
 
300.
    foreach ($printer in $global:printers){ 
301.
 
302.
	 
303.
 
304.
if ($DeletePrintserverCSV -eq "$DeletePrintserverCSV"){ 
305.
    # create new runspace to run our sub-thread in 
306.
        $newRunspace =[runspacefactory]::CreateRunspace() 
307.
        $newRunspace.ApartmentState = "STA" 
308.
        $newRunspace.ThreadOptions = "ReuseThread"           
309.
        $newRunspace.Open() 
310.
        $newRunspace.SessionStateProxy.SetVariable("printer",$printer) 
311.
        $newRunspace.SessionStateProxy.SetVariable("global:printers",$plobal:printers) 
312.
        $newRunspace.SessionStateProxy.SetVariable("printserver",$printserver) 
313.
        $newRunspace.SessionStateProxy.SetVariable("comboPrintServer.Text",$comboPrintServer.Text) 
314.
		$newRunspace.SessionStateProxy.SetVariable("global:sharename",$global:sharename) 
315.
$newRunspace.SessionStateProxy.SetVariable("printer.sharename",$printer.sharename) 
316.
$newRunspace.SessionStateProxy.SetVariable("sharename",$sharename) 
317.
$newRunspace.SessionStateProxy.SetVariable("_.Exception.Message",$_.Exception.Message) 
318.
 
319.
        $psCmd.AddScript({ 
320.
		 
321.
		 
322.
 
323.
		$global:count = for ($i=1; -lt 100; $i++){ 
324.
	    $syncHash.progress.Value = $i 
325.
326.
		 
327.
		 
328.
                              # in this expample we set the progress-bar value every 20s 
329.
                             # for ($i = 1;$i -le 10;$i++){ 
330.
                              #    sleep 1 
331.
                               #   $syncHash.progress.Value = $i * 10 
332.
							   #} 
333.
							    
334.
                               
335.
                         }) 
336.
        $psCmd.Runspace = $newRunspace 
337.
        #start the runspace 
338.
        $data = $psCmd.BeginInvoke() 
339.
 
340.
                 
341.
$printserver = $comboPrintServer.Text 
342.
        $global:sharename = $printer.sharename 
343.
 
344.
$sharename = $global:sharename 
345.
 
346.
		 Try{ 
347.
		# delete printer instance (Printerport bleibt weiter bestehen) 
348.
        gwmi Win32_Printer -computer $printserver -Filter "Name = '$sharename'" | %{$_.Delete()} 
349.
		}catch{ 
350.
			return $_.Exception.Message 
351.
352.
353.
			# return true  
354.
			return $_.Exception.Message 
355.
sleep 120 
356.
return true 
357.
  }else{ 
358.
        return false 
359.
360.
				} #Drucker anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Ende 
361.
 
362.
$DeletePortCSV = { #DruckerPort anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Anfang 
363.
     $global:printers = Import-Csv $DelCSV –Delimiter ';'  
364.
	 $printserver = $comboPrintServer.Text 
365.
 
366.
    foreach ($printer in $global:printers){ 
367.
		 Try{	 
368.
		 $global:RAWportname = $printer.portname 
369.
		$name = $global:RAWportname 
370.
		gwmi Win32_TCPIPPrinterPort -computer $printserver -Filter "HostAddress = '$name'" | %{$_.Delete()}	 
371.
		}catch{ 
372.
			return $_.Exception.Message 
373.
374.
375.
			  return $_.Exception.Message 
376.
			   
377.
return $OK 
378.
				} #DruckerPort anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Ende	 
379.
				 
380.
$ImportPrinter = { 
381.
$SharedData = [HashTable]::Synchronized(@{}) 
382.
$SharedData.Form = $Null 
383.
 
384.
 $newRunspace = [RunSpaceFactory]::CreateRunspace() 
385.
   $newRunspace.ApartmentState = "STA" 
386.
   $newRunspace.ThreadOptions = "ReuseThread" 
387.
   $newRunspace.Open() 
388.
   $newRunspace.SessionStateProxy.setVariable("sharedData", $sharedData) 
389.
    $PS = [PowerShell]::Create() 
390.
   $PS.Runspace = $newRunspace 
391.
   $PS.AddScript($Function:EndlesProgressForm) 
392.
    
393.
    
394.
    $global:printers = Import-Csv $import –Delimiter ';'  
395.
    foreach ($printer in $global:printers){ 
396.
        $global:drivername = $printer.drivername 
397.
        $global:RAWportname = $printer.portname 
398.
        $global:sharename = $printer.sharename 
399.
        $global:location = $printer.location 
400.
        $global:comment = $printer.comment 
401.
        Try{ 
402.
            $printserver = $comboPrintServer.Text 
403.
            $global:portname = "IP_$($RAWportname)" 
404.
            # create printer port 
405.
            $wmi = ([WMICLASS]"\\$printserver\ROOT\cimv2:Win32_TCPIPPrinterPort") 
406.
            $wmi.psbase.scope.options.enablePrivileges = $true 
407.
            $port = $wmi.CreateInstance() 
408.
            $port.Name = $portname 
409.
            $port.Protocol = 1   
410.
            $port.HostAddress = $RAWportname 
411.
            $port.SNMPEnabled = $False 
412.
            $port.put() 
413.
 
414.
            #create printer instance 
415.
            $print = ([WMICLASS]"\\$printserver\ROOT\cimv2:Win32_Printer").createInstance()  
416.
            $print.Drivername = $drivername 
417.
            $print.PortName = $portname 
418.
            $print.Shared = $true 
419.
            $print.Published = $true 
420.
            $print.Sharename = $sharename 
421.
            $print.Location = $location 
422.
            $print.Comment = $comment 
423.
            $print.DeviceID = $sharename 
424.
            $print.put() 
425.
           # return $true 
426.
         }catch{ 
427.
            return $_.Exception.Message 
428.
429.
430.
    return $true 
431.
432.
   
433.
$handler_btnOK_Click = { #inkl. Fehlermeldung 
434.
    # Drucker erstellen 
435.
    $result = &$createPrinter 
436.
     
437.
    # wenn erfolgreich erstellt... 
438.
    $logtext = "" 
439.
    if ($result -eq $true){ 
440.
        $logtext = @" 
441.
-------- $(get-date -Format "g") ---------- Drucker auf Printserver '$($comboPrintServer.Text)' hinzugefügt: -------------- 
442.
Druckername: $($txtPrintername.Text) 
443.
IP-Adresse: $($txtPrinterIP.Text) 
444.
Port: $($txtPrinterPort.Value) 
445.
Treiber: $($lbPrinterType.SelectedItem) 
446.
Standort: $($txtPrinterLocation.Text) 
447.
Kommentar: $($txtPrinterComment.Text) 
448.
Systemmeldung: $($result) 
449.
$("-"*20) 
450.
"@ 
451.
        [System.Windows.Forms.MessageBox]::Show("Der Drucker $txtPrintername wurde auf dem Printserver $($comboPrintServer.Text) angelegt.") 
452.
    }else{ 
453.
    # wenn Fehler beim erstellen (Fehlermeldung wird mit Dokumentiert)... 
454.
        $logtext = @" 
455.
-------- $(get-date -Format "g") ---------- !!! ACHTUNG FEHLER !! beim hinzufügen des Druckers auf Printserver '$($comboPrintServer.Text)': -------------- 
456.
Druckername: $($txtPrintername.Text) 
457.
IP-Adresse: $($txtPrinterIP.Text) 
458.
Port: $($txtPrinterPort.Value) 
459.
Treiber: $($lbPrinterType.SelectedItem) 
460.
Standort: $($txtPrinterLocation.Text) 
461.
Kommentar: $($txtPrinterComment.Text) 
462.
Systemmeldung: $($result) 
463.
$("-"*20) 
464.
"@ 
465.
        [System.Windows.Forms.MessageBox]::Show("Beim Anlegen des Druckers/Ports ist ein Fehler aufgetreten: $result") 
466.
467.
    # Add-Content "logfile.log" $logtext -Force 
468.
    Add-Content "$logfile" $logtext -Force 
469.
	 
470.
471.
 
472.
$handler_btnSpool_Click = { 
473.
 
474.
$result = & $RestartSpooler 
475.
if ($result -eq $true){ 
476.
        
477.
        [System.Windows.Forms.MessageBox]::Show("Der Spooler-Dienst wurde auf dem Server $($comboPrintServer.Text) neugestartet.") 
478.
    }else{ 
479.
    # wenn Fehler beim erstellen (Fehlermeldung wird mit Dokumentiert)... 
480.
        [System.Windows.Forms.MessageBox]::Show("Der Spooler-Dienst konnte auf dem Server $($comboPrintServer.Text) NICHT neugestartet werden.") 
481.
482.
		 
483.
484.
 
485.
$RestartSpooler = { 
486.
 
487.
$printserver = $comboPrintServer.Text 
488.
 
489.
$service1 = Get-WmiObject -ComputerName $printserver -Class Win32_Service -Filter "Name = 'LPDSVC'" 
490.
$service = Get-WmiObject -ComputerName $printserver -Class Win32_Service -Filter "Name = 'Spooler'" 
491.
 
492.
$service1.stopservice() 
493.
$service.stopservice() 
494.
 
495.
sleep 3 
496.
$service.startservice() 
497.
$service1.startservice() 
498.
 
499.
return $true 
500.
 
501.
502.
 
503.
 
504.
$handler_btnCancel_Click = { 
505.
    $form1.Close() 
506.
507.
 
508.
 
509.
$OnLoadForm_StateCorrection={#Correct the initial state of the form to prevent the .Net maximized form issue 
510.
	$form1.WindowState = $InitialFormWindowState 
511.
512.
 
513.
#---------------------------------------------- 
514.
#region Generated Form Code 
515.
 
516.
 
517.
 
518.
 
519.
 
520.
 
521.
$System_Drawing_Size = New-Object System.Drawing.Size 
522.
$System_Drawing_Size.Height = 472 
523.
$System_Drawing_Size.Width = 274 
524.
$form1.ClientSize = $System_Drawing_Size 
525.
$form1.DataBindings.DefaultDataSourceUpdateMode = 0 
526.
$System_Drawing_Size = New-Object System.Drawing.Size 
527.
$System_Drawing_Size.Height = 560 
528.
$System_Drawing_Size.Width = 282 
529.
$form1.MinimumSize = $System_Drawing_Size 
530.
$form1.Name = "form1" 
531.
$form1.Text = "PrinterAdd-Script" 
532.
$form1.add_Load($handler_form1_Load) 
533.
 
534.
$txtPrinterPort.Anchor = 9 
535.
$txtPrinterPort.DataBindings.DefaultDataSourceUpdateMode = 0 
536.
$System_Drawing_Point = New-Object System.Drawing.Point 
537.
$System_Drawing_Point.X = 186 
538.
$System_Drawing_Point.Y = 75 
539.
$txtPrinterPort.Location = $System_Drawing_Point 
540.
$txtPrinterPort.Maximum = 65536 
541.
$txtPrinterPort.Minimum = 1 
542.
$txtPrinterPort.Name = "txtPrinterPort" 
543.
$System_Drawing_Size = New-Object System.Drawing.Size 
544.
$System_Drawing_Size.Height = 20 
545.
$System_Drawing_Size.Width = 76 
546.
$txtPrinterPort.Size = $System_Drawing_Size 
547.
$txtPrinterPort.TabIndex = 2 
548.
$txtPrinterPort.TextAlign = 2 
549.
$txtPrinterPort.Value = 9100 
550.
 
551.
$form1.Controls.Add($txtPrinterPort) 
552.
 
553.
$label7.Anchor = 9 
554.
$label7.DataBindings.DefaultDataSourceUpdateMode = 0 
555.
$label7.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0) 
556.
 
557.
$System_Drawing_Point = New-Object System.Drawing.Point 
558.
$System_Drawing_Point.X = 186 
559.
$System_Drawing_Point.Y = 58 
560.
$label7.Location = $System_Drawing_Point 
561.
$label7.Name = "label7" 
562.
$System_Drawing_Size = New-Object System.Drawing.Size 
563.
$System_Drawing_Size.Height = 23 
564.
$System_Drawing_Size.Width = 59 
565.
$label7.Size = $System_Drawing_Size 
566.
$label7.TabIndex = 11 
567.
$label7.Text = "Port" 
568.
 
569.
$form1.Controls.Add($label7) 
570.
 
571.
$comboPrintServer.Anchor = 14 
572.
$comboPrintServer.DataBindings.DefaultDataSourceUpdateMode = 0 
573.
$comboPrintServer.FormattingEnabled = $True 
574.
$System_Drawing_Point = New-Object System.Drawing.Point 
575.
$System_Drawing_Point.X = 12 
576.
$System_Drawing_Point.Y = 391 
577.
$comboPrintServer.Location = $System_Drawing_Point 
578.
$comboPrintServer.Name = "comboPrintServer" 
579.
$System_Drawing_Size = New-Object System.Drawing.Size 
580.
$System_Drawing_Size.Height = 21 
581.
$System_Drawing_Size.Width = 249 
582.
$comboPrintServer.Size = $System_Drawing_Size 
583.
$comboPrintServer.TabIndex = 6 
584.
 
585.
$form1.Controls.Add($comboPrintServer) 
586.
 
587.
$btnCancel.Anchor = 10 
588.
 
589.
$btnCancel.DataBindings.DefaultDataSourceUpdateMode = 0 
590.
 
591.
$System_Drawing_Point = New-Object System.Drawing.Point 
592.
$System_Drawing_Point.X = 186 
593.
$System_Drawing_Point.Y = 493 
594.
$btnCancel.Location = $System_Drawing_Point 
595.
$btnCancel.Name = "btnCancel" 
596.
$System_Drawing_Size = New-Object System.Drawing.Size 
597.
$System_Drawing_Size.Height = 23 
598.
$System_Drawing_Size.Width = 75 
599.
$btnCancel.Size = $System_Drawing_Size 
600.
$btnCancel.TabIndex = 12 
601.
$btnCancel.Text = "Close" 
602.
$btnCancel.UseVisualStyleBackColor = $True 
603.
$btnCancel.add_Click($handler_btnCancel_Click) 
604.
 
605.
$form1.Controls.Add($btnCancel) 
606.
 
607.
$btnSpool.Anchor = 10 
608.
$btnSpool.DataBindings.DefaultDataSourceUpdateMode = 0 
609.
 
610.
$System_Drawing_Point = New-Object System.Drawing.Point 
611.
$System_Drawing_Point.X = 105 
612.
$System_Drawing_Point.Y = 493 
613.
$btnSpool.Location = $System_Drawing_Point 
614.
$btnSpool.Name = "$btnSpool" 
615.
$System_Drawing_Size = New-Object System.Drawing.Size 
616.
$System_Drawing_Size.Height = 23 
617.
$System_Drawing_Size.Width = 75 
618.
$btnSpool.Size = $System_Drawing_Size 
619.
$btnSpool.TabIndex = 11 
620.
$btnSpool.Text = "ResetSpool" 
621.
$btnSpool.UseVisualStyleBackColor = $True 
622.
$btnSpool.add_Click($handler_btnSpool_Click) 
623.
 
624.
$form1.Controls.Add($btnSpool) 
625.
 
626.
 
627.
 
628.
$btnDelCsv.Anchor = 10 
629.
 
630.
$btnDelCsv.DataBindings.DefaultDataSourceUpdateMode = 0 
631.
 
632.
$System_Drawing_Point = New-Object System.Drawing.Point 
633.
$System_Drawing_Point.X = 186 
634.
$System_Drawing_Point.Y = 465 
635.
$btnDelCsv.Location = $System_Drawing_Point 
636.
$btnDelCsv.Name = "$btnDelCsv" 
637.
$System_Drawing_Size = New-Object System.Drawing.Size 
638.
$System_Drawing_Size.Height = 23 
639.
$System_Drawing_Size.Width = 75 
640.
$btnDelCsv.Size = $System_Drawing_Size 
641.
$btnDelCsv.TabIndex = 12 
642.
$btnDelCsv.Text = "DelFromCSV" 
643.
$btnDelCsv.UseVisualStyleBackColor = $True 
644.
$btnDelCsv.add_Click($handler_btnDelCsv_Click) 
645.
 
646.
$form1.Controls.Add($btnDelCsv) 
647.
 
648.
 
649.
$btnOK.Anchor = 10 
650.
 
651.
$btnOK.DataBindings.DefaultDataSourceUpdateMode = 0 
652.
 
653.
$System_Drawing_Point = New-Object System.Drawing.Point 
654.
$System_Drawing_Point.X = 105 
655.
$System_Drawing_Point.Y = 437 
656.
$btnOK.Location = $System_Drawing_Point 
657.
$btnOK.Name = "btnOK" 
658.
$System_Drawing_Size = New-Object System.Drawing.Size 
659.
$System_Drawing_Size.Height = 23 
660.
$System_Drawing_Size.Width = 75 
661.
$btnOK.Size = $System_Drawing_Size 
662.
$btnOK.TabIndex = 7 
663.
$btnOK.Text = "Erstellen" 
664.
$btnOK.UseVisualStyleBackColor = $True 
665.
$btnOK.add_Click($handler_btnOK_Click) 
666.
 
667.
$form1.Controls.Add($btnOK) 
668.
 
669.
 
670.
$btnDel.Anchor = 10 
671.
 
672.
 
673.
$btnDel.DataBindings.DefaultDataSourceUpdateMode = 0 
674.
 
675.
$System_Drawing_Point = New-Object System.Drawing.Point 
676.
$System_Drawing_Point.X = 25 
677.
$System_Drawing_Point.Y = 437 
678.
$btnDel.Location = $System_Drawing_Point 
679.
$btnDel.Name = "btnDel" 
680.
$System_Drawing_Size = New-Object System.Drawing.Size 
681.
$System_Drawing_Size.Height = 23 
682.
$System_Drawing_Size.Width = 75 
683.
$btnDel.Size = $System_Drawing_Size 
684.
$btnDel.TabIndex = 6 
685.
$btnDel.Text = "Löschen" 
686.
$btnDel.UseVisualStyleBackColor = $True 
687.
$btnDel.add_Click($handler_btnDel_Click) 
688.
 
689.
$form1.Controls.Add($btnDel) 
690.
 
691.
$btnList.Anchor = 10 
692.
 
693.
$btnList.DataBindings.DefaultDataSourceUpdateMode = 0 
694.
 
695.
$System_Drawing_Point = New-Object System.Drawing.Point 
696.
$System_Drawing_Point.X = 186 
697.
$System_Drawing_Point.Y = 437 
698.
$btnList.Location = $System_Drawing_Point 
699.
$btnList.Name = "btnList" 
700.
$System_Drawing_Size = New-Object System.Drawing.Size 
701.
$System_Drawing_Size.Height = 23 
702.
$System_Drawing_Size.Width = 75 
703.
$btnList.Size = $System_Drawing_Size 
704.
$btnList.TabIndex = 8 
705.
$btnList.Text = "Auflisten" 
706.
$btnList.UseVisualStyleBackColor = $True 
707.
$btnList.add_Click($handler_btnList_Click) 
708.
 
709.
$form1.Controls.Add($btnList) 
710.
 
711.
 
712.
$btnExp.Anchor = 10 
713.
 
714.
$btnExp.DataBindings.DefaultDataSourceUpdateMode = 0 
715.
 
716.
$System_Drawing_Point = New-Object System.Drawing.Point 
717.
$System_Drawing_Point.X = 25 
718.
$System_Drawing_Point.Y = 465 
719.
$btnExp.Location = $System_Drawing_Point 
720.
$btnExp.Name = "btnExp" 
721.
$System_Drawing_Size = New-Object System.Drawing.Size 
722.
$System_Drawing_Size.Height = 23 
723.
$System_Drawing_Size.Width = 75 
724.
$btnExp.Size = $System_Drawing_Size 
725.
$btnExp.TabIndex = 9 
726.
$btnExp.Text = "Export_CSV" 
727.
$btnExp.UseVisualStyleBackColor = $True 
728.
$btnExp.add_Click($handler_btnExp_Click) 
729.
 
730.
$form1.Controls.Add($btnExp) 
731.
 
732.
$btnImp.Anchor = 10 
733.
 
734.
$btnImp.DataBindings.DefaultDataSourceUpdateMode = 0 
735.
 
736.
$System_Drawing_Point = New-Object System.Drawing.Point 
737.
$System_Drawing_Point.X = 105 
738.
$System_Drawing_Point.Y = 465 
739.
$btnImp.Location = $System_Drawing_Point 
740.
$btnImp.Name = "btnImp" 
741.
$System_Drawing_Size = New-Object System.Drawing.Size 
742.
$System_Drawing_Size.Height = 23 
743.
$System_Drawing_Size.Width = 75 
744.
$btnImp.Size = $System_Drawing_Size 
745.
$btnImp.TabIndex = 10 
746.
$btnImp.Text = "Import_CSV" 
747.
$btnImp.UseVisualStyleBackColor = $True 
748.
$btnImp.add_Click($handler_btnImp_Click) 
749.
 
750.
$form1.Controls.Add($btnImp) 
751.
 
752.
$label6.Anchor = 6 
753.
$label6.DataBindings.DefaultDataSourceUpdateMode = 0 
754.
$label6.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0) 
755.
 
756.
$System_Drawing_Point = New-Object System.Drawing.Point 
757.
$System_Drawing_Point.X = 11 
758.
$System_Drawing_Point.Y = 368 
759.
$label6.Location = $System_Drawing_Point 
760.
$label6.Name = "label6" 
761.
$System_Drawing_Size = New-Object System.Drawing.Size 
762.
$System_Drawing_Size.Height = 20 
763.
$System_Drawing_Size.Width = 250 
764.
$label6.Size = $System_Drawing_Size 
765.
$label6.TabIndex = 10 
766.
$label6.Text = "Erstellen auf folgendem PrintServer" 
767.
 
768.
$form1.Controls.Add($label6) 
769.
 
770.
 
771.
$txtPrinterComment.Anchor = 14 
772.
$txtPrinterComment.DataBindings.DefaultDataSourceUpdateMode = 0 
773.
$System_Drawing_Point = New-Object System.Drawing.Point 
774.
$System_Drawing_Point.X = 11 
775.
$System_Drawing_Point.Y = 339 
776.
$txtPrinterComment.Location = $System_Drawing_Point 
777.
$txtPrinterComment.Name = "txtPrinterComment" 
778.
$System_Drawing_Size = New-Object System.Drawing.Size 
779.
$System_Drawing_Size.Height = 20 
780.
$System_Drawing_Size.Width = 250 
781.
$txtPrinterComment.Size = $System_Drawing_Size 
782.
$txtPrinterComment.TabIndex = 5 
783.
 
784.
$form1.Controls.Add($txtPrinterComment) 
785.
 
786.
 
787.
$txtPrinterLocation.Anchor = 14 
788.
$txtPrinterLocation.DataBindings.DefaultDataSourceUpdateMode = 0 
789.
$System_Drawing_Point = New-Object System.Drawing.Point 
790.
$System_Drawing_Point.X = 12 
791.
$System_Drawing_Point.Y = 294 
792.
$txtPrinterLocation.Location = $System_Drawing_Point 
793.
$txtPrinterLocation.Name = "txtPrinterLocation" 
794.
$System_Drawing_Size = New-Object System.Drawing.Size 
795.
$System_Drawing_Size.Height = 20 
796.
$System_Drawing_Size.Width = 251 
797.
$txtPrinterLocation.Size = $System_Drawing_Size 
798.
$txtPrinterLocation.TabIndex = 4 
799.
 
800.
$form1.Controls.Add($txtPrinterLocation) 
801.
 
802.
 
803.
$label4.Anchor = 6 
804.
$label4.DataBindings.DefaultDataSourceUpdateMode = 0 
805.
$label4.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0) 
806.
 
807.
$System_Drawing_Point = New-Object System.Drawing.Point 
808.
$System_Drawing_Point.X = 11 
809.
$System_Drawing_Point.Y = 275 
810.
$label4.Location = $System_Drawing_Point 
811.
$label4.Name = "label4" 
812.
$System_Drawing_Size = New-Object System.Drawing.Size 
813.
$System_Drawing_Size.Height = 23 
814.
$System_Drawing_Size.Width = 169 
815.
$label4.Size = $System_Drawing_Size 
816.
$label4.TabIndex = 6 
817.
$label4.Text = "Standort" 
818.
 
819.
$form1.Controls.Add($label4) 
820.
 
821.
 
822.
$lbPrinterType.Anchor = 15 
823.
$lbPrinterType.DataBindings.DefaultDataSourceUpdateMode = 0 
824.
$lbPrinterType.FormattingEnabled = $True 
825.
$System_Drawing_Point = New-Object System.Drawing.Point 
826.
$System_Drawing_Point.X = 12 
827.
$System_Drawing_Point.Y = 133 
828.
$lbPrinterType.Location = $System_Drawing_Point 
829.
$lbPrinterType.Name = "lbPrinterType" 
830.
$System_Drawing_Size = New-Object System.Drawing.Size 
831.
$System_Drawing_Size.Height = 121 
832.
$System_Drawing_Size.Width = 250 
833.
$lbPrinterType.Size = $System_Drawing_Size 
834.
$lbPrinterType.TabIndex = 3 
835.
 
836.
$form1.Controls.Add($lbPrinterType) 
837.
 
838.
 
839.
$txtPrinterIP.Anchor = 13 
840.
$txtPrinterIP.DataBindings.DefaultDataSourceUpdateMode = 0 
841.
$System_Drawing_Point = New-Object System.Drawing.Point 
842.
$System_Drawing_Point.X = 12 
843.
$System_Drawing_Point.Y = 75 
844.
$txtPrinterIP.Location = $System_Drawing_Point 
845.
$txtPrinterIP.Name = "txtPrinterIP" 
846.
$System_Drawing_Size = New-Object System.Drawing.Size 
847.
$System_Drawing_Size.Height = 20 
848.
$System_Drawing_Size.Width = 168 
849.
$txtPrinterIP.Size = $System_Drawing_Size 
850.
$txtPrinterIP.TabIndex = 1 
851.
 
852.
$form1.Controls.Add($txtPrinterIP) 
853.
 
854.
 
855.
$txtPrintername.Anchor = 13 
856.
$txtPrintername.DataBindings.DefaultDataSourceUpdateMode = 0 
857.
$System_Drawing_Point = New-Object System.Drawing.Point 
858.
$System_Drawing_Point.X = 12 
859.
$System_Drawing_Point.Y = 26 
860.
$txtPrintername.Location = $System_Drawing_Point 
861.
$txtPrintername.Name = "txtPrintername" 
862.
$System_Drawing_Size = New-Object System.Drawing.Size 
863.
$System_Drawing_Size.Height = 20 
864.
$System_Drawing_Size.Width = 250 
865.
$txtPrintername.Size = $System_Drawing_Size 
866.
$txtPrintername.TabIndex = 0 
867.
 
868.
$form1.Controls.Add($txtPrintername) 
869.
 
870.
 
871.
$label3.DataBindings.DefaultDataSourceUpdateMode = 0 
872.
$label3.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0) 
873.
 
874.
$System_Drawing_Point = New-Object System.Drawing.Point 
875.
$System_Drawing_Point.X = 11 
876.
$System_Drawing_Point.Y = 107 
877.
$label3.Location = $System_Drawing_Point 
878.
$label3.Name = "label3" 
879.
$System_Drawing_Size = New-Object System.Drawing.Size 
880.
$System_Drawing_Size.Height = 23 
881.
$System_Drawing_Size.Width = 100 
882.
$label3.Size = $System_Drawing_Size 
883.
$label3.TabIndex = 2 
884.
$label3.Text = "Druckertyp" 
885.
 
886.
$form1.Controls.Add($label3) 
887.
 
888.
 
889.
$label2.DataBindings.DefaultDataSourceUpdateMode = 0 
890.
$label2.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0) 
891.
 
892.
$System_Drawing_Point = New-Object System.Drawing.Point 
893.
$System_Drawing_Point.X = 11 
894.
$System_Drawing_Point.Y = 58 
895.
$label2.Location = $System_Drawing_Point 
896.
$label2.Name = "label2" 
897.
$System_Drawing_Size = New-Object System.Drawing.Size 
898.
$System_Drawing_Size.Height = 23 
899.
$System_Drawing_Size.Width = 100 
900.
$label2.Size = $System_Drawing_Size 
901.
$label2.TabIndex = 1 
902.
$label2.Text = "IP-Adresse" 
903.
 
904.
$form1.Controls.Add($label2) 
905.
 
906.
 
907.
$label1.DataBindings.DefaultDataSourceUpdateMode = 0 
908.
$label1.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0) 
909.
 
910.
$System_Drawing_Point = New-Object System.Drawing.Point 
911.
$System_Drawing_Point.X = 12 
912.
$System_Drawing_Point.Y = 9 
913.
$label1.Location = $System_Drawing_Point 
914.
$label1.Name = "label1" 
915.
$System_Drawing_Size = New-Object System.Drawing.Size 
916.
$System_Drawing_Size.Height = 23 
917.
$System_Drawing_Size.Width = 100 
918.
$label1.Size = $System_Drawing_Size 
919.
$label1.TabIndex = 0 
920.
$label1.Text = "Druckername" 
921.
 
922.
$form1.Controls.Add($label1) 
923.
 
924.
 
925.
$label5.Anchor = 6 
926.
$label5.DataBindings.DefaultDataSourceUpdateMode = 0 
927.
$label5.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0) 
928.
 
929.
$System_Drawing_Point = New-Object System.Drawing.Point 
930.
$System_Drawing_Point.X = 11 
931.
$System_Drawing_Point.Y = 321 
932.
$label5.Location = $System_Drawing_Point 
933.
$label5.Name = "label5" 
934.
$System_Drawing_Size = New-Object System.Drawing.Size 
935.
$System_Drawing_Size.Height = 23 
936.
$System_Drawing_Size.Width = 169 
937.
$label5.Size = $System_Drawing_Size 
938.
$label5.TabIndex = 9 
939.
$label5.Text = "Kommentar" 
940.
 
941.
$form1.Controls.Add($label5) 
942.
 
943.
$ProgressBar.Anchor = 14 
944.
$ProgressBar.DataBindings.DefaultDataSourceUpdateMode = 0 
945.
$System_Drawing_Point = New-Object System.Drawing.Point 
946.
$System_Drawing_Point.X = 12 
947.
$System_Drawing_Point.Y = 415 
948.
$ProgressBar.Location = $System_Drawing_Point 
949.
$ProgressBar.Name = 'ProgressBar' 
950.
$System_Drawing_Size = New-Object System.Drawing.Size 
951.
$System_Drawing_Size.Height = 15 
952.
$System_Drawing_Size.Width = 251 
953.
$ProgressBar.Size = $System_Drawing_Size 
954.
$ProgressBar.Style = "Marquee" 
955.
$ProgressBar.MarqueeAnimationSpeed = 20 
956.
 
957.
$form1.Controls.Add($ProgressBar) 
958.
 
959.
#endregion Generated Form Code 
960.
 
961.
#Save the initial state of the form 
962.
$InitialFormWindowState = $form1.WindowState 
963.
#Init the OnLoad event to correct the initial state of the form 
964.
$form1.add_Load($OnLoadForm_StateCorrection) 
965.
#Show the Form 
966.
$form1.ShowDialog()| Out-Null 
967.
 
968.
} #End Function 
969.
 
970.
#Call the Function 
971.
GenerateForm
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Mehrere lokale Drucker löschen (4)

Frage von Tealk144 zum Thema Batch & Shell ...

Windows 10
"geräte und drucker" unter w8 bzw. w10 zu starten dauert ewig (3)

Frage von tobias3355 zum Thema Windows 10 ...

Exchange Server
Exchange 2010 Akzeptierte Domäne löschen (4)

Frage von Rob1982 zum Thema Exchange Server ...

Exchange Server
gelöst SBS2011 - im Exchange mobile Geräte löschen (4)

Frage von MiSt zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...