2017-06-22 36 views
1

私は技術者にユーザー名とグループ名を入力させたいが、入力ボックスのに入力する。誰でもこの方法を私に教えてくれる?同じ入力ボックスに複数の入力フィールドを入れる方法

Function add-togroup{ 

    #Adds members to group in AD 

    #$users = Read-Host "Enter a username" 
    Add-Type -AssemblyName Microsoft.VisualBasic; 
    $value = [Microsoft.VisualBasic.Interaction]::InputBox('Enter username', 
    'Username') 
    $value2 = [Microsoft.VisualBasic.Interaction]::InputBox('Enter group 
    name', 'XA Group','') 
    $group_membership = Get-ADPrincipalGroupMembership $users | select name | 
    format-table -auto 
    foreach($u in $value) 
    { 
     Add-ADGroupMember $value2 -Members $u 
    } 

    Write-Host $group_membership 
} 

だから私は、シーケンス内の複数のダイアログを使用することですが、私は1つの箱/フォームにこれをロールバックすることができれば、それはより良いユーザー体験のためになるだろう。

+0

文字列を分割する方法を尋ねていますか?私はあなたが欲しいものを正確に理解していないか、それを変える試みを見ていません。また、 'Format-Table'を削除すると便利なことはありません。 – Matt

+0

2つの入力ポップアップを用意する代わりに、2つの入力ポップアップを使用して情報を入力することができます。 1つはユーザー名、もう1つはグループに入る – user770022

+0

ああ。あなたは[このときのような]必要があります(https://technet.microsoft.com/en-us/library/ff730941.aspx)。この場合、独自のダイアログをロールバックする必要があります。 – Matt

答えて

0

利用可能な基本的なフォームに満足できない場合は、.Netフォームを使用してPowerShellで自分自身をロールすることができます。ただ、重くそれは、この優れたのに、あなたを歩くと、あなたが読むべきgreat primer on the subject on TechNetから借りあなたから構築することができますたとえば...

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 

$objForm = New-Object System.Windows.Forms.Form 
$objForm.Text = "Data Entry Form" 
$objForm.Size = New-Object System.Drawing.Size(300,200) 
$objForm.StartPosition = "CenterScreen" 

$objForm.KeyPreview = $True 
$objForm.Add_KeyDown({ 
    if ($_.KeyCode -eq "Enter" -or $_.KeyCode -eq "Escape"){ 
     $objForm.Close() 
    } 
}) 

$OKButton = New-Object System.Windows.Forms.Button 
$OKButton.Location = New-Object System.Drawing.Size(75,120) 
$OKButton.Size = New-Object System.Drawing.Size(75,23) 
$OKButton.Text = "OK" 
$OKButton.Add_Click({$objForm.Close()}) 
$objForm.Controls.Add($OKButton) 

$CancelButton = New-Object System.Windows.Forms.Button 
$CancelButton.Location = New-Object System.Drawing.Size(150,120) 
$CancelButton.Size = New-Object System.Drawing.Size(75,23) 
$CancelButton.Text = "Cancel" 
$CancelButton.Add_Click({$objForm.Close()}) 
$objForm.Controls.Add($CancelButton) 

$objLabel = New-Object System.Windows.Forms.Label 
$objLabel.Location = New-Object System.Drawing.Size(10,20) 
$objLabel.Size = New-Object System.Drawing.Size(280,20) 
$objLabel.Text = "Please enter the information in the space below:" 
$objForm.Controls.Add($objLabel) 

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

$objTextBox2 = New-Object System.Windows.Forms.TextBox 
$objTextBox2.Location = New-Object System.Drawing.Size(10,70) 
$objTextBox2.Size = New-Object System.Drawing.Size(260,20) 
$objForm.Controls.Add($objTextBox2) 

$objForm.Topmost = $True 

$objForm.Add_Shown({$objForm.Activate()}) 
[void]$objForm.ShowDialog() 

$objTextBox.Text 
$objTextBox2.Text 

を表示します。可変個体群ロジックの一部を削除し、別のテキストボックスを追加しました。最後の2行は "user"によって入力された値を返します。テキストボックスの追加を除いて、私はあなたがここに関わるもののより良い理解を得るのを助けるために、他のほとんどの美容上の変更を残しました。

新しく追加されたオブジェクトの位置とサイズを覚えておいて、実際にフォームに追加してください。

フォームの構築にGUIがないので、難しいように見えるかもしれませんが、それほど難しいことではありません。実験するだけです。あなたがそう思っているなら、それを助ける第三者ツールがあります。

関連する問題