使用 ListBox Powershell 列出每台网络打印机
Posted
技术标签:
【中文标题】使用 ListBox Powershell 列出每台网络打印机【英文标题】:List Every Network Printer With ListBox Powershell 【发布时间】:2020-03-17 15:45:13 【问题描述】:我是 Powershell 新手,我想编写一个脚本,让最终用户更轻松地将网络打印机添加到他们的系统中。
我想在列表框中列出所有网络打印机,但我没有列出所有打印机名称,而是这样:
这是我的代码
#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】:您需要使用循环将项目添加到列表框。
改变这一行
$listBox.Items.Add((Get-Printer -ComputerName srvpr01| select $_.Name))
到这里:
Get-Printer -ComputerName srvpr01 | ForEach-Object $listBox.Items.Add($_.Name)
【讨论】:
以上是关于使用 ListBox Powershell 列出每台网络打印机的主要内容,如果未能解决你的问题,请参考以下文章
使用 Powershell 列出所有 Azure 存储帐户和网络规则
powershell 列出Active Directory中使用的所有SPN
如何使用 powershell/Azure CLI 列出有权访问 Azure DevOps 项目存储库的用户?