Список каждого сетевого принтера с помощью ListBox Powershell - PullRequest
1 голос
/ 17 марта 2020

Я новичок в Powershell и хотел бы написать скрипт, чтобы конечным пользователям было проще добавить сетевой принтер в свою систему.

Я хочу перечислить все сетевые принтеры в списке , но вместо перечисления всех имен принтеров, я получаю это: System.Object

Вот мой код

#window
$window = New-Object System.Windows.Forms.Form
$window.Text = 'Select a Printer'
$window.Size = New-Object System.Drawing.Size(500, 400)
$window.StartPosition = 'CenterScreen'

#Button
$okButton = New-Object System.Windows.Forms.Button
$okButton.Location = New-Object System.Drawing.Point(340,130)
$okButton.Size = New-Object System.Drawing.Size(75,23)
$okButton.Text = 'OK'
$okButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
$window.AcceptButton = $okButton

 $cancelButton = New-Object System.Windows.Forms.Button
 $cancelButton.Location = New-Object System.Drawing.Point(340,240)
 $cancelButton.Size = New-Object System.Drawing.Size(75,23)
 $cancelButton.Text = 'Cancel'
 $cancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
 $window.CancelButton = $cancelButton

 $label = New-Object System.Windows.Forms.Label
 $label.Location = New-Object System.Drawing.Point(10,20)
 $label.Size = New-Object System.Drawing.Size(280,20)
 $label.Text = 'Please select a printer'

 $listBox = New-Object System.Windows.Forms.ListBox
 $listBox.Location = New-Object System.Drawing.Point(10,60)
 $listBox.Size = New-Object System.Drawing.Size(260,20)
 $listBox.Height= 280


 $listBox.Items.Add((Get-Printer -ComputerName srvpr01| select $_.Name))


 $window.Controls.Add($listBox)
 $window.controls.Add($label)
 $window.Controls.Add($cancelButton)
 $window.Controls.Add($okButton)
 $result = $window.ShowDialog()

 if ($result -eq [System.Windows.Forms.DialogResult]::OK)
  {
     $x = $listBox.SelectedItem
     $x
  }

Вы знаете, каким образом я могу перечислить имена принтеров вместо этого объекта? Я ценю все виды помощи и обратной связи!

1 Ответ

1 голос
/ 18 марта 2020

Вам необходимо использовать al oop, чтобы добавить элементы в список.

Изменить эту строку

$listBox.Items.Add((Get-Printer -ComputerName srvpr01| select $_.Name))

на эту:

Get-Printer -ComputerName srvpr01 | ForEach-Object { $listBox.Items.Add($_.Name) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...