2014-11-25 39 views
0

我試圖從$domain = Get-MsolDomain中返回的值返回填充複選框,這會返回可用的域,然後根據返回值生成複選框,並排除@mail中的值。謝謝使用powershell以編程方式構建複選框列表

這裏是我到目前爲止的代碼:

$snapin = Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.Powershell'} 
if ($snapin -eq $null) 
{ 
    Write-Host -foregroundcolor Green "Loading SharePoint PowerShell Snapin" 
    Add-PSSnapin "Microsoft.SharePoint.Powershell" 
} 
Import-Module MSOnline 
$credentials = Get-Credential 
Connect-MsolService -Credential $credentials 

$unlicensedUsersBatch500 = Get-MsolUser -UnlicensedUsersOnly -MaxResults 500 



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

$Form = New-Object System.Windows.Forms.Form  
$Form.Size = New-Object System.Drawing.Size(600,700) 
$Form.text ="Office 365 Licence Activation" 

############################################## Start group boxes 

$groupBox = New-Object System.Windows.Forms.GroupBox 
$groupBox.Location = New-Object System.Drawing.Size(240,20) 
$groupBox.size = New-Object System.Drawing.Size(200,100) 
$groupBox.text = "Availabe Office 365 Domains:" 
$Form.Controls.Add($groupBox) 


$Checkboxes += New-Object System.Windows.Forms.CheckBox 
$Checkboxes.Location = New-Object System.Drawing.Size(10,20) 


$domain = Get-MsolDomain 



foreach ($a in $domain) 
{  

    for ($i=1;$i -lt 6; $i++) 
    { 
    $Checkboxes.Text = $a.Name 
    } 
} 
$groupBox.Controls.Add($Checkboxes) 

回答

1

如下我會做到這一點。請注意,爲了測試的目的,我創建並填充了$ domain,因此您需要將您的電話替換爲Get-MsolDomain。 Small plus,groupbox的大小將根據$ domain中元素的數量自動增加。

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

$Form = New-Object System.Windows.Forms.Form  
$Form.Size = New-Object System.Drawing.Size(600,700) 
$Form.text ="Office 365 Licence Activation" 

############################################## Start group boxes 

$groupBox = New-Object System.Windows.Forms.GroupBox 
$groupBox.Location = New-Object System.Drawing.Size(240,20) 
$groupBox.text = "Availabe Office 365 Domains:" 
$Form.Controls.Add($groupBox) 


$Checkboxes += New-Object System.Windows.Forms.CheckBox 
$Checkboxes.Location = New-Object System.Drawing.Size(10,20) 

#$domain = Get-MsolDomain 
$domain = @() 
$domain += @{"Name"="domain1"} 
$domain += @{"Name"="domain2"} 
$domain += @{"Name"="domain3"} 

$Checkboxes = @() 
$y = 20 
foreach ($a in $domain) 
{  
    $Checkbox = New-Object System.Windows.Forms.CheckBox 
    $Checkbox.Text = $a.Name 
    $Checkbox.Location = New-Object System.Drawing.Size(10,$y) 
    $y += 30 
    $groupBox.Controls.Add($Checkbox) 
    $Checkboxes += $Checkbox 
} 
$groupBox.size = New-Object System.Drawing.Size(200,(40*$checkboxes.Count)) 
$form.ShowDialog()| Out-Null 
相關問題