Установите сетевой принтер как принтер по умолчанию в powershell - PullRequest
0 голосов
/ 18 марта 2020

Я пишу скрипт, который облегчает пользователям добавление сетевого принтера. С «listBox», он показывает все настроенные принтеры на моем принт-сервере и, нажав кнопку «Добавить принтер» - Кнопка, он будет автоматически добавлен.

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

Я знаю только команду SetDefaultPrinter, но не думаю, что она правильная.

Вот мой код:

#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'

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

#favoriteButton
$favoriteButton = New-Object System.Windows.Forms.Button
$favoriteButton.Location = New-Object System.Drawing.Point(340,240)
$favoriteButton.Size = New-Object System.Drawing.Size(96,48)
$favoriteButton.Text = 'Als Standarddrucker festlegen'
$favoriteButton_Click{

}

#Label
$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
$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

Get-Printer -ComputerName srvpr01 | Sort-Object | ForEach-Object { $listBox.Items.Add($_.Name) }

$window.TopMost = $true

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

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

Я ценю любую помощь и обратную связь!

1 Ответ

0 голосов
/ 18 марта 2020

Здесь описаны два способа, с использованием wmi или com-объекта. Это должно быть запущено как каждый пользователь. https://docs.microsoft.com/en-us/powershell/scripting/samples/working-with-printers?view=powershell-7#setting -a-умолчанию-принтер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...