共用方式為


DSC 組態

適用於:PowerShell 7、Azure 機器設定

DSC 組態是定義特殊命令類型的 PowerShell 腳本。 若要定義組態,請使用 PowerShell 關鍵詞 configuration

Configuration MyDscConfiguration {
    Environment FirstEnvironmentVariable {
        Ensure = 'Present'
        Name   = 'Foo'
        Value  = 'Example'
    }

    Environment SecondEnvironmentVariable {
        Ensure = 'Present'
        Name   = 'Bar'
        Value  = 'Another'
    }
}

MyDscConfiguration

將腳本儲存為 .ps1 檔案。

組態語法

DSC 組態文本包含下列部分:

  • Configuration 區塊。 這是最外層的腳本區塊。 您可以使用 Configuration 關鍵詞來定義它,並提供名稱。 在這裡情況下,DSC 組態的名稱會 MyDscConfiguration
  • 一或多個 DSC 資源區塊。 這是 DSC 組態定義其設定之元件的設定的位置。 在此情況下,有兩個 DSC 資源區塊。 兩者都使用 Environment DSC 資源。

編譯組態

您必須先將 DSC 設定編譯為 MOF 檔,才能使用 DSC 組態。 您可以呼叫 DSC 組態,就像呼叫 PowerShell 函式一樣。 範例的最後一行,只包含 DSC 組態的名稱,會執行 DSC 組態。

注意

若要呼叫 DSC 組態,它必須載入目前的範圍(如同任何其他 PowerShell 函式一樣)。 您可以藉由腳本「點來源」或透過 F5 執行腳本,或在 VS Code 中按兩下 [執行腳本] 按鈕來執行此動作。 若要以點來源撰寫腳本,請執行命令 . .\myConfig.ps1 其中 myConfig.ps1 是包含 DSC 組態的腳本檔名稱。

當您呼叫 DSC 組態時,它會:

  • 使用與 DSC 組態相同的名稱,在當前目錄中建立資料夾。
  • 在新目錄中建立名為 localhost.mof 的檔案。

注意

MOF 檔案包含系統的所有組態資訊。 因此,請務必保持安全。

在 DSC 設定中使用新的 DSC 資源

如果您執行了先前的範例,您可能已注意到您警告您使用的資源,而不需明確匯入資源。

您可以使用 Get-DscResource Cmdlet 來判斷系統上已安裝哪些資源,並可供使用。 即使模組已置於 $env:PSModulePath 中,而且由 Get-DscResource辨識,它們仍然需要在您的 DSC 組態中載入。

Import-DscResource 是動態關鍵詞,只能在 Configuration 區塊內辨識。 這不是 Cmdlet。 Import-DscResource 支援兩個參數:

  • ModuleName 是使用 Import-DscResource的建議方式。 它接受包含要匯入之資源的模組名稱(以及模組名稱的字串陣列)。
  • 名稱 是要匯入的資源名稱。 這不是傳回為 Get-DscResource傳回物件的 Name 屬性的易記名稱,而是定義資源架構時所使用的類別名稱(Get-DscResource所傳回物件的 ResourceType 属性)。

如需使用 Import-DSCResource的詳細資訊,請參閱使用 Import-DSCResource

重要

計算機設定有一項限制,可防止 DSC 資源使用 PowerShell 本身或 PowerShell 資源庫中模組未包含的任何 PowerShell Cmdlet。 使用來自一或多個 Windows 模組之 Cmdlet 的 DSC 資源, 無法在計算機設定中運作。

另請參閱