2017-05-10 14 views
1

現在実行中でない場合は、VMを起動するスクリプトを作成しています。私はそれを行うコマンドを知っていますが、私は構文に問題があります。PowerShell ifおよびelseスクリプト

このスクリプトでは、私は、仮想マシンを選択すると、それがオフになっている場合は、私のスクリプトはそれを開始するが、VMが上にある場合、スクリプトは「VMが実行されている」というメッセージが表示されます。

この時点で私は、スクリプトを記述しますが、構文が正しくありません:

if (Get-VM | Format-Table name, state -eq running) { 
    Write-Host -ForegroundColor red "VM running 
} 
else(start-vm -name "name") 

答えて

5

あなたが実行されているVMをフィルタリングするFormat-Tableコマンドレットの代わりにWhere-Objectコマンドレットを使用する必要があります。また、あなたは中括弧を使用してelse文をラップする必要があります。

if (Get-VM -name 'yourVmName' | Where-Object state -eq running) 
{ 
    write-host -foregroundcolor red "VM running" 
} 
else 
{ 
    start-vm -name 'yourVmName' 
} 
関連する問題