Я хочу сделать список выбора, чтобы выбрать установленный принтер. Но принтер по умолчанию должен быть в верхней части этого списка. Как я могу переключиться, скажем, индекс 5 массива с индексом 0?
Я знаю, что могу сделать это многими способами, но хочу знать только, можно ли изменить порядковые номера массива.
Это уже рабочий код:
$Printers = Get-Printer
$DefaultPrinter = Get-WmiObject -Query " SELECT * FROM Win32_Printer WHERE Default=$true" | Select -Expand Name
$PrinterSelection = $Printers.Name
$PrinterSelection
вывод: (принтер Brother используется по умолчанию)
Verzenden naar OneNote 16
OneNote
Microsoft XPS Document Writer
Microsoft Печать в PDF
Факс
Принтер Brother DCP-J4120DW
Adobe PDF
$FirstPrinter = $PrinterSelection[0]
$DefaultPrinterNumber = [array]::indexof($PrinterSelection,$DefaultPrinter)
$PrinterSelection[0] = $DefaultPrinter
$PrinterSelection[$DefaultPrinterNumber] = $FirstPrinter
$PrinterSelection
вывод:
Brother DCP-J4120DW Принтер
OneNote
Microsoft XPS Document Writer
Microsoft Печать в PDF
Факс
Verzenden naar OneNote 16
Adobe PDF
Проблема решена, но есть ли более чистый путь?
Обычными шагами:
Вырезать $PrinterSelection[$DefaultPrinterNumber]
Вставить $PrinterSelection[0]
(не перезаписать)