以下のコードは、利用可能なデータセンター名を取得し、それらをコンボボックスに追加します。
function fill_dclist
{
$comboBox1.Items.Clear()
$dclist = Get-Datacenter
foreach ($dc in $dclist)
{
$comboBox1.Items.add($dc.name.toString())
}
以下のコードは、上記のコンボボックスで選択された項目を読み取り、これを使用してそのデータセンター名を検索し、そのデータセンターのすべてのVMを表示する必要があります。
function fill_updatevmlist
{
$selecteddc = ($comboBox1.SelectedItem)
$dcvms = Get-datacenter -Name $selecteddc | get-VM
foreach ($dcvm in $dcvms)
{
[void]$listBox1.Items.Add($vm.name)
}
}
コンボボックスコード:
###DROPDOWN DC SELECT LIST###
$comboBox1.DataBindings.DefaultDataSourceUpdateMode = 0
$comboBox1.FormattingEnabled = $True
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 7
$System_Drawing_Point.Y = 7
$comboBox1.Location = $System_Drawing_Point
$comboBox1.Name = "comboBox1"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 21
$System_Drawing_Size.Width = 121
$comboBox1.Size = $System_Drawing_Size
$comboBox1.TabIndex = 0
$comboBox1.add_Click({
fill_dclist
fill_updatevmlist
})
現在、次のエラーが発生しています
Get-Datacenter : Cannot validate argument on parameter 'Name'. The argument is null or empty. Supply an argument th
at is not null or empty and then try the command again.
At C:\Users\Olly\Documents\Dropbox\_PROJECT\First Stage\Code\draft.ps1:251 char:30
+ $dcvms = Get-datacenter -Name <<<< $selecteddc | get-VM
+ CategoryInfo : InvalidData: (:) [Get-Datacenter], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetDat
acenter
Exception calling "Add" with "1" argument(s): "Value cannot be null.
Parameter name: item"
At C:\Users\Olly\Documents\Dropbox\_PROJECT\First Stage\Code\draft.ps1:254 char:26
+ [void]$listBox1.Items.Add <<<< ($vm.name)
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
そこに教祖はいますか?