2017-08-25 6 views
3

OVMとKVMドライバの種類とバージョンを取得するためのpowershellスクリプトを作成しました.OVMとKVMマシンの両方で動作するように、両方のスクリプトを1つのスクリプトから取得する必要があります。スクリプトが、私は出力が正しいようにトリミングで助けが必要です。powershellスクリプトの修正

$Driver = Get-CimInstance -ClassName Win32_PnPSignedDriver | 
    Where-Object {$_.DeviceName -like '*VirtIO*' -or $_.DeviceName -like '*Oracle VM Virtual PCI Bus*'} | 
     Select-Object -Property DeviceName,DriverVersion 

if ($Driver -contains '*Red Hat VirtIO*') 

{ 

Add-Content $report "<tr>" 
    Add-Content $report "<td bgcolor= 'White' height='30' align=center><B>14</B></td>" 
    Add-Content $report "<td bgcolor= 'White' height='30' align=left><B>KVM Driver Type & Version</B></td>" 
    Add-Content $report "<td bgcolor= 'red' height='30' align=left><B>$Driver</B></td>" 
Add-Content $report "</tr>" 

} 

else 

{ 
Add-Content $report "<tr>" 
    Add-Content $report "<td bgcolor= 'White' height='30' align=center><B>14</B></td>" 
    Add-Content $report "<td bgcolor= 'White' height='30' align=left><B>PV Driver Type & Version</B></td>" 
    Add-Content $report "<td bgcolor= 'Aquamarine' height='30' align=left><B>$Driver</B></td>" 
Add-Content $report "</tr>" 

} 

それはOVM上で実行すると、スクリプトの現在のアウトプットは、以下のように示しては ** PVドライバタイプ&バージョン@ {DeviceNameの=のOracle VMの仮想PCIバスとしてショーを置きます。 DriverVersion = 3.4.2.1757}

出力は&バージョンのOracle VMの仮想PCIバス3.4.2.1757} KVMについては

が、私はPowerShellのプロンプトに出力の下に取得しています PVドライバタイプでなければなりません。しかし電子メールには出力が得られません。「Red Hat VirtIO Ethernet Adapter 100.74.104.13200」

DeviceName DriverVersion ---------- --------- ---- Red Hat VirtIO SCSIコントローラ100.74.104.13200 Red Hat VirtIO Ethernetアダプタ100.74.104.13200

何か助けてください。

+2

'$ Driver' - >' $($ Driver.DeviceName、$ Driver.DriverVersion -join '「) ' –

答えて

1

あなたの例では、here-stringsを使用して読みやすくすることをお勧めします。 (文字列の部分式のコメントの調整を含む)

[email protected]{ClassName='Win32_PnPSignedDriver' 
    Filter='DeviceName LIKE "%VirtIO%" OR DeviceName LIKE "%Oracle VM Virtual PCI%"'} 
$Drivers = Get-CimInstance @P | Select-Object -Property DeviceName,DriverVersion 

ForEach ($Driver in $Drivers) 
{ 
    $Label='PV Driver Type & Version' 
    If ($Driver.DeviceName -like '*Red Hat VirtIO*') 
    {$Label='KVM Driver Type & Version'} 

    Add-Content -Path $report -Value @" 
<tr> 
    <td bgcolor='White' height='30' align=center><B>14</B></td> 
    <td bgcolor='White' height='30' align=left><B>$Label</B></td> 
    <td bgcolor='Aquamarine' height='30' align=left><B>$($Driver.DeviceName,$Driver.DriverVersion -join ' ')</B></td> 
</tr> 
"@ 
} 
+0

私はOVMで出力を取得していますスクリプトを実行します私がKVMマシンから実行したとき、KVMドライバタイプとバージョンの代わりにPVドライバタイプとバージョンと呼ばれる値が得られました。値は表示されません。 – Sandeep

+0

あなたのロジックにエラーがあります@Sandeep投稿を編集しましたこれを修正してください。 – TheIncorrigible1

関連する問題