1
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[void][Reflection.Assembly]::LoadWithPartialName("System.Drawing")
$form = New-Object System.Windows.Forms.Form
$form.Size = New-Object System.Drawing.Size(900,600)
$ColName = @{Expression={$_.CSNAME};Label="SERVER NAME"},
@{Expression={$_.Caption};Label="OS NAME"; width =25},
@{Expression={$_.OSArchitecture};Label="OS TYPE"}
$out = Get-WmiObject Win32_OperatingSystem -ComputerName "suman-pc" |
Format-Table -HideTableHeaders $ColName
list = New-Object System.Collections.ArrayList
$list.Insert($out)
$dataGridView = New-Object System.Windows.Forms.DataGridView -Property @{
Size=New-Object System.Drawing.Size(800,400)
ColumnHeadersVisible = $true
DataSource = $list
}
$form.Controls.Add($dataGridView)
$form.ShowDialog()
上記のコードは以下のエラーを生成しています。私の目的は、複数のシステムのOS名を収集し、それをデータグリッド形式で表示することです。このコードで何が問題なのか教えてください。
New-List : Cannot bind parameter 'MarkerOffset'. Cannot convert value "System.Collections.ArrayList" to type "System.Double". Error: "Input string was not in a correct format." At C:\Users\Suman\AppData\Local\Temp\4abe9ca5-3580-4c58-918b-9f1f721c1f32.ps1:10 char:19 + list = New-Object System.Collections.ArrayList + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [New-List], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,AutoGenerateCmdlets669798327.NewListCommand Cannot find an overload for "Insert" and the argument count: "1". At :\Users\Suman\AppData\Local\Temp\4abe9ca5-3580-4c58-918b-9f1f721c1f32.ps1:11 char:1 + $list.Insert($out) + ~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodException + FullyQualifiedErrorId : MethodCountCouldNotFindBest
ない正確に答え、あなたは 'Out-GridView'を考えましたか? – Joey
変数名の前に '$'がありません。 – PetSerAl
list = New-Object System.Collections.ArrayListは$ list = ...でなければなりません。また、insertはインデックスを指定する必要があります。 –