首页 > 解决方案 > ListBox.SelectedItems 用于多个变量

问题描述

我正在尝试将多个许可证分配给具有列表框的交换用户,以便可以选择 1-3。如何将结果分成多个变量以正确分配它们,或者我可以将它们作为一个传递?我缩短了代码并剪掉了表格。


#Abfrage ob eine oder mehrere freie Lizenzen zugewiesen werden sollen

$listBox = New-Object System.Windows.Forms.Listbox
$listBox.Location = New-Object System.Drawing.Point(10,40)
$listBox.Size = New-Object System.Drawing.Size(260,20)

$listBox.SelectionMode = 'MultiExtended'

[void] $listBox.Items.Add('ATP_Enterprise')
[void] $listBox.Items.Add('O365_Business_Essentials')
[void] $listBox.Items.Add('O365_Business_Premium')

$listBox.Height = 70
$form.Controls.Add($listBox)
$form.Topmost = $true

$result = $form.ShowDialog()

if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
    $planName = $listBox.SelectedItems
    $planName -join ','
}

#Zuweisung einer Lizenz zum User

$userUPN="$EMail"
$License = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
$License.SkuId = (Get-AzureADSubscribedSku | Where-Object -Property SkuPartNumber -Value $planName -EQ).SkuID
$LicensesToAssign = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses
$LicensesToAssign.AddLicenses = $License
Set-AzureADUserLicense -ObjectId $userUPN -AssignedLicenses $LicensesToAssign

标签: azurepowershellazure-active-directoryazure-powershell

解决方案


这对我来说似乎不正确......

$License.SkuId = (Get-AzureADSubscribedSku | Where-Object -Property SkuPartNumber -Value $planName -EQ).SkuID

当然应该是:

$License.SkuId = (Get-AzureADSubscribedSku | Where-Object { $_.SkuPartNumber -EQ $planName.Text} ).SkuID

推荐阅读