Операторы сравнения Powershell не работают при попытке сравнить с выводом команды

Я новичок в написании сценариев PowerShell, поэтому извините, если я делаю что-то явно не так.

Вот кусок скрипта, который не работает:

$PrinterList= Get-WMIObject -ClassName Win32_Printer |Select-Object Name
$SelectedPrinter = "Microsoft Print to PDF"

if( $Printerlist -NotContains $SelectedPrinter ){[void][System.Windows.MessageBox]::Show("Failure!")}
Else{[void][System.Windows.MessageBox]::Show("success")}

Вот вывод $PrinterList на моем компьютере:

OneNote
Microsoft XPS Document Writer
Microsoft Print to PDF
Факс

Как видите, $SelectedPrinter должен содержаться в $PrinterList, но когда я запускаю скрипт, он возвращается, как будто это не так. Что я делаю неправильно?


person Fatal Ignorance    schedule 27.01.2020    source источник


Ответы (1)


Попробуйте if($Printerlist.Name -NotContains $SelectedPrinter){}

Или оставить if($Printerlist -NotContains $SelectedPrinter){}

и изменить на $PrinterList = (Get-WMIObject -ClassName Win32_Printer |Select-Object Name).Name

person PSgold    schedule 27.01.2020