首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell GUI脚本:从文本框中读取变量

Powershell GUI脚本:从文本框中读取变量
EN

Stack Overflow用户
提问于 2020-07-10 19:50:36
回答 1查看 2.5K关注 0票数 0

我尝试将两个文本框的输入传递给底部脚本的逻辑部分。但这不会发生,我也搞不清楚问题所在……我试着从这里重写代码。

代码语言:javascript
复制
Add-Type -AssemblyName System.Drawing

$form = New-Object System.Windows.Forms.Form
$form.Text = 'CompareGroups'
$form.Size = New-Object System.Drawing.Size(300,250)
$form.StartPosition = 'CenterScreen'

$okButton = New-Object System.Windows.Forms.Button
$okButton.Location = New-Object System.Drawing.Point(75,170)
$okButton.Size = New-Object System.Drawing.Size(75,23)
$okButton.Text = 'OK'
$okButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
$form.AcceptButton = $okButton
$form.Controls.Add($okButton)

$cancelButton = New-Object System.Windows.Forms.Button
$cancelButton.Location = New-Object System.Drawing.Point(150,170)
$cancelButton.Size = New-Object System.Drawing.Size(75,23)
$cancelButton.Text = 'Cancel'
$cancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
$form.CancelButton = $cancelButton
$form.Controls.Add($cancelButton)

$label1 = New-Object System.Windows.Forms.Label
$label1.Location = New-Object System.Drawing.Point(10,20)
$label1.Size = New-Object System.Drawing.Size(280,20)
$label1.Text = 'Source-PC:'
$form.Controls.Add($label1)

$label2 = New-Object System.Windows.Forms.Label
$label2.Location = New-Object System.Drawing.Point(10,80)
$label2.Size = New-Object System.Drawing.Size(280,20)
$label2.Text = 'Target-PC:'
$form.Controls.Add($label2)

$textBox1 = New-Object System.Windows.Forms.TextBox
$textBox1.Location = New-Object System.Drawing.Point(10,40)
$textBox1.Size = New-Object System.Drawing.Size(260,20)
$form.Controls.Add($textBox1)

$textBox2 = New-Object System.Windows.Forms.TextBox
$textBox2.Location = New-Object System.Drawing.Point(10,100)
$textBox2.Size = New-Object System.Drawing.Size(260,20)
$form.Controls.Add($textBox2)

$form.Topmost = $true

$form.Add_Shown({$textBox1.Select()})
$result = $form.ShowDialog()


if (($result -eq [System.Windows.Forms.DialogResult]::OK)) {
    $sourcePc = $textBox.Text
    $targetPc = $textBox2.Text
    
    $CopyFromPC = Get-ADComputer $sourcePc -Properties MemberOf
    $CopyToPC = Get-ADComputer $targetPc -Properties MemberOf

    if (($CopyFromPC.MemberOf | out-string) -eq ($CopyTopc.MemberOf | out-string)) {
        Write-Host "Groups are the same."
    } else {
        $CopyFromPC.MemberOf | Where {$CopyTopc.MemberOf -notcontains $_} | Out-GridView -PassThru | Add-ADGroupMember -Members $CopyTopc -verbose 
        [System.Windows.Forms.MessageBox]::Show("Groups got copied successfully","CompareGroups",0)
    }
}


  [1]: https://docs.microsoft.com/en-us/powershell/scripting/samples/creating-a-custom-input-box?view=powershell-7
EN

回答 1

Stack Overflow用户

发布于 2020-07-10 20:30:04

您添加了一个名为textbox1的textbox,而不是textbox。将变量名从$sourcePc = $textBox.Text更改为$sourcePc = $textBox1.Text

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62833718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档