从打印服务器中提取重复项

时间:2018-10-25 14:23:17

标签: powershell server combobox

我有一个包含两个组合框的脚本。第一个选择位置,第二个根据第一个组合框selecteditem填充,并显示该位置的可用打印机名称。

我经常看到的是,列表中所有项目都有重复。下面的代码;

$Hospital = Get-Printer -ComputerName \\PrintServer | where {$_.Name -like “*Name*”}

$ComboBox_Location.Add_SelectedIndexChanged{

switch ($ComboBox_Location.SelectedItem){

    "Hospital"{
        $ComboBox_Printer.Items.Clear();
        foreach($Name in $Hospital){
        $ComboBox_Printer.Items.Add("$($Name.name)");
        }
}

如果需要,我可以提供更多代码。我相信问题出在此特定代码中,但您可以另外告诉我。我还取出了(“ $($ Name.name)”)并替换为“ $ Name.name”,以下是测试结果;

MSFT_Printer(Name =“ PrinterName”) MSFT_3DPrinter(Name =“ PrinterName”)

他们是同一个名字。它是重复的。我的打印服务器是否需要更改?

谢谢!

1 个答案:

答案 0 :(得分:1)

我发现了问题所在。设备类型未定义。它应该是;

$Hospital = Get-Printer -ComputerName \\PrintServer | where {($_.Name -like “*Name*”) -and ($_.DeviceType -eq "Print")}

这将其他类型的设备(例如3DPrinter)排除在列表之外。