2016-04-03 44 views
0

如果我給一個系統,它正在工作。如果我給多個系統它顯示RPC錯誤。如果我給我的系統兩次,那麼它也不起作用。任何想法?下面是我試圖獲得多個系統的操作系統名稱的代碼

Function Get_Systeminfo() { 
    $TxtBox.Visible = $false 
    $ColName = @{Expression={$_.CSNAME};Label="SERVER NAME"}, 
       @{Expression={$_.Caption};Label="OS NAME"; width =25}, 
       @{Expression={$_.OSArchitecture};Label="OS TYPE"} 

    $ResBox = New-Object System.Windows.Forms.RichTextBox 
    $ResBox.Location = New-Object System.Drawing.Size(50,50) 
    $ResBox.Size = New-Object System.Drawing.Size(480, 280) 
    $ResBox.Font = "lucida console" 
    $objForm.Controls.Add($ResBox) 

    $ResBox.Text = foreach ($list in $TxtBox.Text) { 
     Get-WmiObject Win32_OperatingSystem -ComputerName $list | 
      Format-Table $ColName -Auto | Out-String 
    } 
} 

$objForm = New-Object System.Windows.Forms.Form 
$objForm.Text = "SystemInfo" 
$objForm.Size = New-Object System.Drawing.Size(600,400) 
$objForm.StartPosition = "CenterScreen" 

$TxtBox = New-Object System.Windows.Forms.TextBox 
$TxtBox.Location = New-Object System.Drawing.Size(20, 20) 
$TxtBox.Size = New-Object System.Drawing.Size(300,100) 
$TxtBox.Multiline = $true 
$objForm.Controls.Add($TxtBox) 

$OKButton = New-Object System.Windows.Forms.Button 
$OKButton.Location = New-Object System.Drawing.Size(20,340) 
$OKButton.Size = New-Object System.Drawing.Size(75,23) 
$OKButton.Text = "OK" 
$objForm.Controls.Add($OKButton) 

$OKButton.Add_Click({Get_Systeminfo}) 

$objForm.ShowDialog() 

回答

2

變化

$ResBox.Text = foreach ($list in $TxtBox.Text){ 

$ResBox.Text = foreach ($list in $TxtBox.Lines){ 

,它會genereate輸出,如果你是給每行一個名稱。

+0

謝謝。有效。 –