4

アプリケーションを仮想マシンで実行したいのですが、基礎となる仮想化レイヤーの Hyper-V 、VPC (Windows/Microsoft Virtual PC)、または VMware について知りたいです。VPC の場合、アプリケーションを実行したくありません。私はここを見回そうとしましたが、WIn32_BIOS/MotherBoard で WMI を使用して提示されたソリューションは、Hyper-V と VPC を区別しません。コードプロジェクトにも記載されているインストラクションセットメソッドを見てみました。2 つ (Hyper-V/VPC) を識別する方法はありますか? テストする Hyper-V セットアップはありませんが、Virtual PC 2007 は持っています。

4

1 に答える 1

2

これは、この機能を検出するために私が開発したスクリプトです

 Function Get-VMVirtualizationLayer{

    $Manufacturer = (Get-WmiObject win32_computersystem).manufacturer
    $model= (Get-WmiObject win32_computersystem).model
    $biosversion = (Get-WmiObject win32_bios).version

    if ($model -match "Virtual Machine")

    {

    Write-Output " Virtual Machine Running on Microsoft Virtualization Platform"


            if ($biosversion -match "VRTUAL")

            {

            Write-Output " Virtual Machine Running on Hyper-V "

            }


            elseif ($biosversion -match "A M I")

            {

            Write-Output "Virtual Machine Running on Windows Virtual PC"

            }

    }


    elseif ($model -match "VMware Virtual Platform")

    {

    Write-Output "Virtual Machine is Running on VMware Virtual Platform"

    }

    elseif ($model -match "VirtualBox")

    {

    Write-Output "Virtual Machine is Running on VirtualBox"

    }

    }


    Get-VMVirtualizationLayer

コピーこのコード全体を仮想マシンのPowerShellプロンプトに貼り付けると、仮想化プラットフォームが通知されます

または、コード全体をコピーしてメモ帳に貼り付け、Get-VMVirtualizationLayer.ps1として保存することもできます。

スクリプトを実行すると、必要な出力が得られます。Hyper-Vでホストされている仮想マシンでスクリプトを実行したときのスクリプト出力は次のとおりです:)

PS C:\INSTALL> .\Get-VMVirtualizationLayer.ps1
 Virtual Machine Running on Microsoft Virtualization Platform
 Virtual Machine Running on Hyper-V
PS C:\INSTALL>
于 2012-10-31T14:08:14.140 に答える