У меня есть сценарий powershell, который я собрал, чтобы предоставить графический интерфейс для установки принтера. Кажется, у меня проблема с передачей переменных из текстовых полей на экране в функции «Добавить принтер» и привязкой их к кнопке.
Я попробовал несколько комбинаций функций Set и = функции, чтобы попытаться соединить различные переменные, но безуспешно. Я также не вижу ошибок, поскольку при загрузке графического интерфейса не отображаются сообщения об ошибках.
Add-Type -assembly System.Windows.Forms
$main_form = New-Object System.Windows.Forms.Form
$main_form.Text ='Printer Installation'
$main_form.Width = 600
$main_form.Height = 400
$main_form.AutoSize = $true
$Label = New-Object System.Windows.Forms.Label
$Label.Text = "What is the Printer IP Address?"
$Label.Location = New-Object System.Drawing.Point(0,10)
$Label.AutoSize = $true
$PrinterIPGUI = New-Object System.Windows.Forms.TextBox
$PrinterIPGUI.Location = New-Object System.Drawing.Point(200,10)
$PrinterIPGUI.AutoSize = $true
$Label2 = New-Object System.Windows.Forms.Label
$Label2.Text = "What do you want to name the printer?"
$Label2.Location = New-Object System.Drawing.Point(0,40)
$Label2.AutoSize = $true
$PrinterNameGUI = New-Object System.Windows.Forms.TextBox
$PrinterNameGUI.Location = New-Object System.Drawing.Point(200,40)
$PrinterNameGUI.AutoSize = $true
$Button = New-Object System.Windows.Forms.Button
$Button.Location = New-Object System.Drawing.Size(0,60)
$Button.Size = New-Object System.Drawing.Size(120,23)
$Button.Text = "Run"
$main_form.Controls.Add($Label2)
$main_form.Controls.Add($PrinterNameGUI)
$main_form.Controls.Add($PrinterIPGUI)
$main_form.Controls.Add($Button)
$main_form.Controls.Add($Label)
$main_form.ShowDialog()
function Set-ActionOnClick{
add-printerport -name $PrinterIPGUI -printerhostaddress $PrinterIPGUI
add-printer -name $PrinterNameGUI -drivername "HP Universal Printing PCL
6 (v6.7.0)" -port $PrinterIPGUI
}
$Button.Add_Click(
{
Set-ActionOnClick
}
)
Я ожидаю, что проблема связана с 2 вещами:
Объекты, созданные для ввода текста, не могут соотноситься со значениями, введенными в текстовые поля.
Из-за этого функция не может интерпретировать значения, введенные в графическом интерфейсе
Очевидно, что нет никаких ошибок, которые возникают из-за GUI, существующего вне powershell, после его запуска.