web-dev-qa-db-ja.com

必要な状態の構成-スクリプトリソース

DSCスクリプトリソース、特にテストフェーズと取得フェーズを理解するのに問題があります。デフォルトのHyper-VVHDとVMパスを変更しようとしていますが、DSCスクリプトを介してそれらを検証する方法がわからないようです。

私は通常、この目標を達成するために以下のコマンドを使用します。

Set-VMHost -ComputerName NAME -VirtualHardDiskPath D:\HV\VHD -VirtualMachinePath D:\HV\VM

ありがとう!

1
Garrett Dumas

DSCスクリプトリソース には3つのブロックが必要です。

SetScript
-これは、必要な構成を適用するために実行されます
TestScript
-これは、目的の構成を再適用する必要があるかどうかを確認するために実行されます
GetScript
-このスクリプトは、現在の構成に関する情報を含むハッシュテーブルを返す必要があります

あなたの状況では、それは次のようなものに変換されます:

Script SetHypVPaths {
    SetScript = { 
        Set-VMHost -VirtualHardDiskPath D:\HV\VHD -VirtualMachinePath D:\HV\VM 
    }
    TestScript = {
        $VMHost = Get-VMHost
        return ($VMHost.VirtualHardDiskPath -eq "D:\HV\VHD" -and $VMHost.VirtualMachinePath -eq "D:\HV\VM")
    }
    GetScript = {
        $VMHost = Get-VMHost
        return @{
            VirtualHardDiskPath = $VMHost.VirtualHardDiskPath
            VirtualMachinePath = $VMHost.VirtualMachinePath
        }
    }
}
3