Löschen mehrerer Drucker über WMI sehr langsam, weshalb?
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?
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?
function GenerateForm {
#region Import the Assemblies
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
#endregion
#region Generated Form Objects
$form1 = New-Object System.Windows.Forms.Form
$txtPrinterPort = New-Object System.Windows.Forms.NumericUpDown
$label7 = New-Object System.Windows.Forms.Label
$comboPrintServer = New-Object System.Windows.Forms.ComboBox
$btnCancel = New-Object System.Windows.Forms.Button
$btnOK = New-Object System.Windows.Forms.Button
$btnDel = New-Object System.Windows.Forms.Button
$btnList = New-Object System.Windows.Forms.Button
$btnExp = New-Object System.Windows.Forms.Button
$btnImp = New-Object System.Windows.Forms.Button
$btnDelCsv = New-Object System.Windows.Forms.Button
$label6 = New-Object System.Windows.Forms.Label
$txtPrinterComment = New-Object System.Windows.Forms.TextBox
$txtPrinterLocation = New-Object System.Windows.Forms.TextBox
$label4 = New-Object System.Windows.Forms.Label
$lbPrinterType = New-Object System.Windows.Forms.ListBox
$txtPrinterIP = New-Object System.Windows.Forms.TextBox
$txtPrintername = New-Object System.Windows.Forms.TextBox
$label3 = New-Object System.Windows.Forms.Label
$label2 = New-Object System.Windows.Forms.Label
$label1 = New-Object System.Windows.Forms.Label
$label5 = New-Object System.Windows.Forms.Label
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
#endregion Generated Form Objects
#----------------------------------------------
# Event Script Blocks
#----------------------------------------------
# Pfade, die evtl. verändert werden müssen. Log Pfade und Dateien müssen bereits existieren.
$logfile = "C:\Logs\AddPrinter\logfile.log"
$Importlogfile = "C:\Logs\AddPrinter\ImportLogfile.log"
$import = "C:\Logs\AddPrinter\import.txt"
$DelCSV = "C:\Logs\AddPrinter\delete.txt"
$path = "C:\Logs\AddPrinter"
$date = Get-Date -f yyyy-MM-dd_
$extension = ".csv"
$Dellogfile = "C:\Logs\AddPrinter\DeleteLogfile.log"
$deletePrinter = { #Drucker anhand des ausgefüllten Formulars löschen!!!___________________________________________________________________________________________________________Anfang
Try{
$printserver = $comboPrintServer.Text
# delete printer instance (Printerport bleibt weiter bestehen)
$sharename = $txtPrintername.Text
gwmi Win32_Printer -computer $printserver -Filter "Name = '$sharename'" | %{$_.Delete()}
# delete printer Port (eine Wartezeit von 15 Sekunden wurde eingebaut, damit der Port gelöscht werden kann)
sleep 15
$name = $txtPrinterIP.Text
gwmi Win32_TCPIPPrinterPort -computer $printserver -Filter "HostAddress = '$name'" | %{$_.Delete()}
return $true
}catch{
return $_.Exception.Message
}
} #Drucker anhand des ausgefüllten Formulars löschen!!!___________________________________________________________________________________________________________Ende
$handler_btnDel_Click = { #Aktion beim Klick auf Löschen inkl. Fehlermeldung
# Drucker löschen
$result = &$deletePrinter
# wenn erfolgreich gelöscht ...
$logtext = ""
if ($result -eq $true){
$logtext = @"
-------- $(get-date -Format "g") ---------- Drucker wurde auf dem Printserver '$($comboPrintServer.Text)' gelöscht: --------------
Druckername: $($txtPrintername.Text)
IP-Adresse: $($txtPrinterIP.Text)
Port: $($txtPrinterPort.Value)
Treiber: $($lbPrinterType.SelectedItem)
Standort: $($txtPrinterLocation.Text)
Kommentar: $($txtPrinterComment.Text)
Systemmeldung: $($result)
"@
[System.Windows.Forms.MessageBox]::Show("Der Drucker $txtPrintername wurde auf dem Printserver $($comboPrintServer.Text) gelöscht.")
}else{
# wenn Fehler beim löschen (Fehlermeldung wird mit Dokumentiert)...
$logtext = @"
-------- $(get-date -Format "g") ---------- !!! ACHTUNG FEHLER !! beim löschen des Druckers auf Printserver '$($comboPrintServer.Text)': --------------
Druckername: $($txtPrintername.Text)
IP-Adresse: $($txtPrinterIP.Text)
Port: $($txtPrinterPort.Value)
Treiber: $($lbPrinterType.SelectedItem)
Standort: $($txtPrinterLocation.Text)
Kommentar: $($txtPrinterComment.Text)
Systemmeldung: $($result)
$("-"*20)
"@
[System.Windows.Forms.MessageBox]::Show("Beim löschen des Druckers/Ports ist ein Fehler aufgetreten: $result")
}
# Add-Content "logfile.log" $logtext -Force
Add-Content "$logfile" $logtext -Force
}
$createPrinter = { #Drucker anhand des ausgefüllten Formulars erstellen!!!___________________________________________________________________________________________________________Anfang
Try{
$printserver = $comboPrintServer.Text
$portname = "IP_$($txtPrinterIP.Text)"
# create printer port
$wmi = ([WMICLASS]"\\$printserver\ROOT\cimv2:Win32_TCPIPPrinterPort")
$wmi.psbase.scope.options.enablePrivileges = $true
$port = $wmi.CreateInstance()
$port.Name = $portname
$port.Protocol = 1
$port.Portnumber = $txtPrinterPort.Text
$port.HostAddress = $txtPrinterIP.Text
$port.SNMPEnabled = $False
$port.put()
#create printer instance
$print = ([WMICLASS]"\\$printserver\ROOT\cimv2:Win32_Printer").createInstance()
$print.Drivername = $lbPrinterType.SelectedItem
$print.PortName = $portname
$print.Shared = $true
$print.Published = $true
$print.Sharename = $txtPrintername.Text
$print.Location = $txtPrinterLocation.Text
$print.Comment = $txtPrinterComment.Text
$print.DeviceID = $txtPrintername.Text
$print.put()
return $true
}catch{
return $_.Exception.Message
}
} #Drucker anhand des ausgefüllten Formulars erstellen!!!___________________________________________________________________________________________________________Ende
$handler_btnList_Click = {
$result = &$PrinterOnServer }
$PrinterOnServer = { # Auflisten der Drucker auf dem Server inkl. Port des ausgewählten Printserver_______________________________________________Anfang
$printserver = $comboPrintServer.Text
Get-WmiObject -Class Win32_Printer -computername $printserver | select drivername, portname, sharename, location, comment | Out-GridView
} # Auflisten der Drucker auf dem Server inkl. Port des ausgewählten Printserver_______________________________________________Ende
$handler_btnExp_Click = {
$printserver = $comboPrintServer.Text
$result = &$ExportPrinter
if ($result -eq $true){
[System.Windows.Forms.MessageBox]::Show("Die Datei ist unter folgendem Pfad zu finden: $path\$date$printserver$extension")
}else{
# wenn Fehler beim erstellen (Fehlermeldung wird mit Dokumentiert)...
[System.Windows.Forms.MessageBox]::Show("$result")
}
# Export der Drucker in eine CSV-Datei
}
$ExportPrinter = { # Export der Drucker auf dem Server inkl. Port des ausgewählten Printserver in eine CSV-Datei_______________________________________________Anfang
Try{
Get-WmiObject -Class Win32_Printer -computername $printserver | select drivername, portname, sharename, location, comment | export-csv $path\$date$printserver$extension -NoTypeInformation -Delimiter ";" -Encoding "ASCII" -noclobber
return $true #$path $date $printserver $extension
}catch{
return $_.Exception.Message
}
}
$handler_btnImp_Click = {
$printserver = $comboPrintServer.Text
# Drucker erstellen
$result = &$ImportPrinter
# wenn erfolgreich erstellt ...
$logtext = ""
if ($result -eq $true){
$logtext = @"
-------- $(get-date -Format "g") ---------- Die Drucker wurden auf dem Printserver '$($comboPrintServer.Text)' erstellt: --------------
Druckername: $($global:sharename)
IP-Adresse: $($global:RAWportname)
Port: $($global:portname)
Treiber: $($global:drivername)
Standort: $($global:location)
Kommentar: $($global:comment)
Systemmeldung: $($result)
"@
[System.Windows.Forms.MessageBox]::Show("Die Drucker wurden auf dem Printserver $($comboPrintServer.Text) erstellt. $result")
}else{
# wenn Fehler beim erstellen (Fehlermeldung wird mit Dokumentiert)...
$logtext = @"
-------- $(get-date -Format "g") ---------- !!! ACHTUNG FEHLER !! beim erstellen der Druckers auf Printserver '$($comboPrintServer.Text) ist ein Fehler aufgetreten': --------------
Druckername: $(global:$sharename)
IP-Adresse: $($global:RAWportname)
Port: $($global:portname)
Treiber: $($global:drivername)
Standort: $($global:location)
Kommentar: $($global:comment)
Systemmeldung: $($result)
$("-"*20)
"@
[System.Windows.Forms.MessageBox]::Show("Beim erstellen des Druckers/Ports ist ein Fehler aufgetreten: $result")
}
# Add-Content "logfile.log" $logtext -Force
Add-Content "$Importlogfile" $logtext -Force
}
$handler_btnDelCsv_Click = {
$printserver = $comboPrintServer.Text
# Drucker erstellen
$result = &$DeletePrinterCSV
$result = &$DeletePortCSV
# wenn erfolgreich erstellt ...
$logtext = ""
if ($result -eq $true){
$printers = Import-Csv $DelCSV –Delimiter ';'
$logtext = @"
-------- $(get-date -Format "g") ---------- Die Drucker wurden auf dem Printserver '$($comboPrintServer.Text)' gelöscht: --------------
Druckername: $($global:sharename)
IP-Adresse: $($global:RAWportname)
Port: $($global:portname)
Treiber: $($global:drivername)
Standort: $($global:location)
Kommentar: $($global:comment)
Systemmeldung: $($result)
"@
[System.Windows.Forms.MessageBox]::Show("Die Drucker wurden auf dem Printserver $($comboPrintServer.Text) gelöscht: $result")
}else{
# wenn Fehler beim erstellen (Fehlermeldung wird mit Dokumentiert)...
$logtext = @"
-------- $(get-date -Format "g") ---------- !!! ACHTUNG FEHLER !! beim löschen der Druckers auf Printserver '$($comboPrintServer.Text) ist ein Fehler aufgetreten': --------------
Druckername: $($global:sharename)
IP-Adresse: $($global:RAWportname)
Port: $($global:portname)
Treiber: $($global:drivername)
Standort: $($global:location)
Kommentar: $($global:comment)
Systemmeldung: $($result)
$("-"*20)
"@
[System.Windows.Forms.MessageBox]::Show("Beim löschen der Drucker/Ports ist ein Fehler aufgetreten. Bitte Prüfen Sie, welche Drucker fehlen!!!: $result")
}
# Add-Content "logfile.log" $logtext -Force
Add-Content "$Dellogfile" $logtext -Force
}
$DeletePrinterCSV = { #Drucker anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Anfang
$global:printers = Import-Csv $DelCSV –Delimiter ';'
foreach ($printer in $global:printers){
$global:sharename = $printer.sharename
Try{
$printserver = $comboPrintServer.Text
# delete printer instance (Printerport bleibt weiter bestehen)
$sharename = $global:sharename
gwmi Win32_Printer -computer $printserver -Filter "Name = '$sharename'" | %{$_.Delete()}
# delete printer Port (eine Wartezeit von 15 Sekunden wurde eingebaut, damit der Port gelöscht werden kann)
#sleep 15
#$name = $global:RAWportname
#gwmi Win32_TCPIPPrinterPort -computer $printserver -Filter "HostAddress = '$name'" | %{$_.Delete()}
}catch{
return $_.Exception.Message
}
}
# return true
} #Drucker anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Ende
$DeletePortCSV = { #DruckerPort anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Anfang
$global:printers = Import-Csv $DelCSV –Delimiter ';'
foreach ($printer in $global:printers){
$global:RAWportname = $printer.portname
Try{
$printserver = $comboPrintServer.Text
# delete printer instance (Printerport bleibt weiter bestehen)
#$sharename = $global:sharename
#gwmi Win32_Printer -computer $printserver -Filter "Name = '$sharename'" | %{$_.Delete()}
# delete printer Port (eine Wartezeit von 15 Sekunden wurde eingebaut, damit der Port gelöscht werden kann)
$name = $global:RAWportname
gwmi Win32_TCPIPPrinterPort -computer $printserver -Filter "HostAddress = '$name'" | %{$_.Delete()}
}catch{
return $_.Exception.Message
}
}
return $true
} #DruckerPort anhand der CSV-Datei löschen!!!___________________________________________________________________________________________________________Ende
$ImportPrinter = {
$global:printers = Import-Csv $import –Delimiter ';'
foreach ($printer in $global:printers){
$global:drivername = $printer.drivername
$global:RAWportname = $printer.portname
$global:sharename = $printer.sharename
$global:location = $printer.location
$global:comment = $printer.comment
Try{
$printserver = $comboPrintServer.Text
$global:portname = "IP_$($RAWportname)"
# create printer port
$wmi = ([WMICLASS]"\\$printserver\ROOT\cimv2:Win32_TCPIPPrinterPort")
$wmi.psbase.scope.options.enablePrivileges = $true
$port = $wmi.CreateInstance()
$port.Name = $portname
$port.Protocol = 1
$port.HostAddress = $RAWportname
$port.SNMPEnabled = $False
$port.put()
#create printer instance
$print = ([WMICLASS]"\\$printserver\ROOT\cimv2:Win32_Printer").createInstance()
$print.Drivername = $drivername
$print.PortName = $portname
$print.Shared = $true
$print.Published = $true
$print.Sharename = $sharename
$print.Location = $location
$print.Comment = $comment
$print.DeviceID = $sharename
$print.put()
# return $true
}catch{
return $_.Exception.Message
}
}
return $true
}
$handler_btnOK_Click = { #inkl. Fehlermeldung
# Drucker erstellen
$result = &$createPrinter
# wenn erfolgreich erstellt...
$logtext = ""
if ($result -eq $true){
$logtext = @"
-------- $(get-date -Format "g") ---------- Drucker auf Printserver '$($comboPrintServer.Text)' hinzugefügt: --------------
Druckername: $($txtPrintername.Text)
IP-Adresse: $($txtPrinterIP.Text)
Port: $($txtPrinterPort.Value)
Treiber: $($lbPrinterType.SelectedItem)
Standort: $($txtPrinterLocation.Text)
Kommentar: $($txtPrinterComment.Text)
Systemmeldung: $($result)
$("-"*20)
"@
[System.Windows.Forms.MessageBox]::Show("Der Drucker $txtPrintername wurde auf dem Printserver $($comboPrintServer.Text) angelegt.")
}else{
# wenn Fehler beim erstellen (Fehlermeldung wird mit Dokumentiert)...
$logtext = @"
-------- $(get-date -Format "g") ---------- !!! ACHTUNG FEHLER !! beim hinzufügen des Druckers auf Printserver '$($comboPrintServer.Text)': --------------
Druckername: $($txtPrintername.Text)
IP-Adresse: $($txtPrinterIP.Text)
Port: $($txtPrinterPort.Value)
Treiber: $($lbPrinterType.SelectedItem)
Standort: $($txtPrinterLocation.Text)
Kommentar: $($txtPrinterComment.Text)
Systemmeldung: $($result)
$("-"*20)
"@
[System.Windows.Forms.MessageBox]::Show("Beim Anlegen des Druckers/Ports ist ein Fehler aufgetreten: $result")
}
# Add-Content "logfile.log" $logtext -Force
Add-Content "$logfile" $logtext -Force
}
$handler_btnCancel_Click = {
$form1.Close()
}
$handler_form1_Load = {
# add printer drivers to List (must be exist on Printserver with this name)
# Drucker zum DropDownMenü hinzufügen (Treiber muss in exakter Schreibweise auf dem Printserver vorhanden sein)
$lbPrinterType.Items.AddRange(@(
"HP LaserJet 1320 PCL 6",
"HP Universal Printing PCL 6",
"Lexmark MS510 Series XL",
"Lexmark C734 XL",
"Lexmark E360dn XL",
"Lexmark E460dn XL",
"Lexmark T650",
"Lexmark X544 XL",
"Lexmark Universal v2 XL",
"NRG 2205/2238/2212 PCL 6",
"NRG 6002/6005/6008 PCL6",
"NRG MP 2550 PCL6",
"RICOH Aficio 3045 PCL 6",
"RICOH Aficio MP 4500 PCL 5e",
"Ricoh Aficio MP 5500 PCL",
"RICOH Aficio MP 7500 PCL 6"
))
# add printservers
# Hier können Druckserver mit aufgenommen oder gelöscht werden
$comboPrintServer.Items.AddRange(@(
"PRINT01",
"print02",
"print03",
"print04",
"print05"
))
$comboPrintServer.SelectedIndex = 0
}
$OnLoadForm_StateCorrection={#Correct the initial state of the form to prevent the .Net maximized form issue
$form1.WindowState = $InitialFormWindowState
}
#----------------------------------------------
#region Generated Form Code
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 472
$System_Drawing_Size.Width = 274
$form1.ClientSize = $System_Drawing_Size
$form1.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 560
$System_Drawing_Size.Width = 282
$form1.MinimumSize = $System_Drawing_Size
$form1.Name = "form1"
$form1.Text = "PrinterAdd"
$form1.add_Load($handler_form1_Load)
$txtPrinterPort.Anchor = 9
$txtPrinterPort.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 186
$System_Drawing_Point.Y = 75
$txtPrinterPort.Location = $System_Drawing_Point
$txtPrinterPort.Maximum = 65536
$txtPrinterPort.Minimum = 1
$txtPrinterPort.Name = "txtPrinterPort"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 20
$System_Drawing_Size.Width = 76
$txtPrinterPort.Size = $System_Drawing_Size
$txtPrinterPort.TabIndex = 2
$txtPrinterPort.TextAlign = 2
$txtPrinterPort.Value = 9100
$form1.Controls.Add($txtPrinterPort)
$label7.Anchor = 9
$label7.DataBindings.DefaultDataSourceUpdateMode = 0
$label7.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0)
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 186
$System_Drawing_Point.Y = 58
$label7.Location = $System_Drawing_Point
$label7.Name = "label7"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 59
$label7.Size = $System_Drawing_Size
$label7.TabIndex = 11
$label7.Text = "Port"
$form1.Controls.Add($label7)
$comboPrintServer.Anchor = 14
$comboPrintServer.DataBindings.DefaultDataSourceUpdateMode = 0
$comboPrintServer.FormattingEnabled = $True
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 12
$System_Drawing_Point.Y = 391
$comboPrintServer.Location = $System_Drawing_Point
$comboPrintServer.Name = "comboPrintServer"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 21
$System_Drawing_Size.Width = 249
$comboPrintServer.Size = $System_Drawing_Size
$comboPrintServer.TabIndex = 6
$form1.Controls.Add($comboPrintServer)
$btnCancel.Anchor = 10
$btnCancel.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 186
$System_Drawing_Point.Y = 493
$btnCancel.Location = $System_Drawing_Point
$btnCancel.Name = "btnCancel"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$btnCancel.Size = $System_Drawing_Size
$btnCancel.TabIndex = 11
$btnCancel.Text = "Abbrechen"
$btnCancel.UseVisualStyleBackColor = $True
$btnCancel.add_Click($handler_btnCancel_Click)
$form1.Controls.Add($btnCancel)
$btnDelCsv.Anchor = 10
$btnDelCsv.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 186
$System_Drawing_Point.Y = 465
$btnDelCsv.Location = $System_Drawing_Point
$btnDelCsv.Name = "$btnDelCsv"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$btnDelCsv.Size = $System_Drawing_Size
$btnDelCsv.TabIndex = 13
$btnDelCsv.Text = "DelFromCSV"
$btnDelCsv.UseVisualStyleBackColor = $True
$btnDelCsv.add_Click($handler_btnDelCsv_Click)
$form1.Controls.Add($btnDelCsv)
$btnOK.Anchor = 10
$btnOK.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 105
$System_Drawing_Point.Y = 437
$btnOK.Location = $System_Drawing_Point
$btnOK.Name = "btnOK"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$btnOK.Size = $System_Drawing_Size
$btnOK.TabIndex = 7
$btnOK.Text = "Erstellen"
$btnOK.UseVisualStyleBackColor = $True
$btnOK.add_Click($handler_btnOK_Click)
$form1.Controls.Add($btnOK)
$btnDel.Anchor = 10
$btnDel.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 25
$System_Drawing_Point.Y = 437
$btnDel.Location = $System_Drawing_Point
$btnDel.Name = "btnDel"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$btnDel.Size = $System_Drawing_Size
$btnDel.TabIndex = 8
$btnDel.Text = "Löschen"
$btnDel.UseVisualStyleBackColor = $True
$btnDel.add_Click($handler_btnDel_Click)
$form1.Controls.Add($btnDel)
$btnList.Anchor = 10
$btnList.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 186
$System_Drawing_Point.Y = 437
$btnList.Location = $System_Drawing_Point
$btnList.Name = "btnList"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$btnList.Size = $System_Drawing_Size
$btnList.TabIndex = 12
$btnList.Text = "Auflisten"
$btnList.UseVisualStyleBackColor = $True
$btnList.add_Click($handler_btnList_Click)
$form1.Controls.Add($btnList)
$btnExp.Anchor = 10
$btnExp.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 25
$System_Drawing_Point.Y = 465
$btnExp.Location = $System_Drawing_Point
$btnExp.Name = "btnExp"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$btnExp.Size = $System_Drawing_Size
$btnExp.TabIndex = 13
$btnExp.Text = "Export_CSV"
$btnExp.UseVisualStyleBackColor = $True
$btnExp.add_Click($handler_btnExp_Click)
$form1.Controls.Add($btnExp)
$btnImp.Anchor = 10
$btnImp.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 105
$System_Drawing_Point.Y = 465
$btnImp.Location = $System_Drawing_Point
$btnImp.Name = "btnCancel"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$btnImp.Size = $System_Drawing_Size
$btnImp.TabIndex = 13
$btnImp.Text = "Import_CSV"
$btnImp.UseVisualStyleBackColor = $True
$btnImp.add_Click($handler_btnImp_Click)
$form1.Controls.Add($btnImp)
$label6.Anchor = 6
$label6.DataBindings.DefaultDataSourceUpdateMode = 0
$label6.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0)
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 11
$System_Drawing_Point.Y = 368
$label6.Location = $System_Drawing_Point
$label6.Name = "label6"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 20
$System_Drawing_Size.Width = 250
$label6.Size = $System_Drawing_Size
$label6.TabIndex = 10
$label6.Text = "Erstellen auf folgendem PrintServer"
$form1.Controls.Add($label6)
$txtPrinterComment.Anchor = 14
$txtPrinterComment.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 11
$System_Drawing_Point.Y = 339
$txtPrinterComment.Location = $System_Drawing_Point
$txtPrinterComment.Name = "txtPrinterComment"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 20
$System_Drawing_Size.Width = 250
$txtPrinterComment.Size = $System_Drawing_Size
$txtPrinterComment.TabIndex = 5
$form1.Controls.Add($txtPrinterComment)
$txtPrinterLocation.Anchor = 14
$txtPrinterLocation.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 12
$System_Drawing_Point.Y = 294
$txtPrinterLocation.Location = $System_Drawing_Point
$txtPrinterLocation.Name = "txtPrinterLocation"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 20
$System_Drawing_Size.Width = 251
$txtPrinterLocation.Size = $System_Drawing_Size
$txtPrinterLocation.TabIndex = 4
$form1.Controls.Add($txtPrinterLocation)
$label4.Anchor = 6
$label4.DataBindings.DefaultDataSourceUpdateMode = 0
$label4.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0)
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 11
$System_Drawing_Point.Y = 275
$label4.Location = $System_Drawing_Point
$label4.Name = "label4"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 169
$label4.Size = $System_Drawing_Size
$label4.TabIndex = 6
$label4.Text = "Standort"
$form1.Controls.Add($label4)
$lbPrinterType.Anchor = 15
$lbPrinterType.DataBindings.DefaultDataSourceUpdateMode = 0
$lbPrinterType.FormattingEnabled = $True
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 12
$System_Drawing_Point.Y = 133
$lbPrinterType.Location = $System_Drawing_Point
$lbPrinterType.Name = "lbPrinterType"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 121
$System_Drawing_Size.Width = 250
$lbPrinterType.Size = $System_Drawing_Size
$lbPrinterType.TabIndex = 3
$form1.Controls.Add($lbPrinterType)
$txtPrinterIP.Anchor = 13
$txtPrinterIP.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 12
$System_Drawing_Point.Y = 75
$txtPrinterIP.Location = $System_Drawing_Point
$txtPrinterIP.Name = "txtPrinterIP"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 20
$System_Drawing_Size.Width = 168
$txtPrinterIP.Size = $System_Drawing_Size
$txtPrinterIP.TabIndex = 1
$form1.Controls.Add($txtPrinterIP)
$txtPrintername.Anchor = 13
$txtPrintername.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 12
$System_Drawing_Point.Y = 26
$txtPrintername.Location = $System_Drawing_Point
$txtPrintername.Name = "txtPrintername"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 20
$System_Drawing_Size.Width = 250
$txtPrintername.Size = $System_Drawing_Size
$txtPrintername.TabIndex = 0
$form1.Controls.Add($txtPrintername)
$label3.DataBindings.DefaultDataSourceUpdateMode = 0
$label3.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0)
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 11
$System_Drawing_Point.Y = 107
$label3.Location = $System_Drawing_Point
$label3.Name = "label3"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 100
$label3.Size = $System_Drawing_Size
$label3.TabIndex = 2
$label3.Text = "Druckertyp"
$form1.Controls.Add($label3)
$label2.DataBindings.DefaultDataSourceUpdateMode = 0
$label2.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0)
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 11
$System_Drawing_Point.Y = 58
$label2.Location = $System_Drawing_Point
$label2.Name = "label2"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 100
$label2.Size = $System_Drawing_Size
$label2.TabIndex = 1
$label2.Text = "IP-Adresse"
$form1.Controls.Add($label2)
$label1.DataBindings.DefaultDataSourceUpdateMode = 0
$label1.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0)
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 12
$System_Drawing_Point.Y = 9
$label1.Location = $System_Drawing_Point
$label1.Name = "label1"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 100
$label1.Size = $System_Drawing_Size
$label1.TabIndex = 0
$label1.Text = "Druckername"
$form1.Controls.Add($label1)
$label5.Anchor = 6
$label5.DataBindings.DefaultDataSourceUpdateMode = 0
$label5.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,1,3,0)
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 11
$System_Drawing_Point.Y = 321
$label5.Location = $System_Drawing_Point
$label5.Name = "label5"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 169
$label5.Size = $System_Drawing_Size
$label5.TabIndex = 9
$label5.Text = "Kommentar"
$form1.Controls.Add($label5)
#endregion Generated Form Code
#Save the initial state of the form
$InitialFormWindowState = $form1.WindowState
#Init the OnLoad event to correct the initial state of the form
$form1.add_Load($OnLoadForm_StateCorrection)
#Show the Form
$form1.ShowDialog()| Out-Null
} #End Function
#Call the Function
GenerateForm
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 257741
Url: https://administrator.de/contentid/257741
Ausgedruckt am: 24.11.2024 um 15:11 Uhr
6 Kommentare
Neuester Kommentar
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
naja du verplemperst ja auch schon für alle 130 Drucker insgesamt 32 Minuten nur für Sleep's
130*15/60
dann check euer Netzwerk und die Prozesse : Wireshark und Processmonitor sind dein Freund ...