在 PowerShell 5.0 及更新版本中使用設定識別碼來設定提取用戶端

適用於:Windows PowerShell 5.0

重要

提取伺服器 (Windows 功能「DSC 服務」) 是支援的 Windows Server 元件,但未計劃提供新特性或功能。 我們希望您知道現在已正式推出較新版本的 DSC,由名為 guest 設定 Azure 原則 功能管理。 來賓設定服務結合 DSC 延伸模組、Azure 自動化狀態設定,以及客戶意見反應最常要求的功能。 來賓設定也包含透過已啟用 Arc 的伺服器的混合式電腦支援。

在設定提取用戶端前,您應先設定提取伺服器。 雖然此順序非必要,但它有助於疑難排解,且可協助您確認註冊成功。 若要設定提取伺服器,您可以使用下列指南:

每個目標節點都設定為下載設定、資源,甚至是報告其狀態。 下列各節會示範如何使用 SMB 共用或 HTTP DSC 提取伺服器來設定提取用戶端。 當節點的 LCM 重新整理時,它會連到設定的位置來下載任何所指派設定。 若有任何必要資源不存在於節點上,則其會自動從設定的位置下載它們。 若節點已使用報表伺服器進行設定,它接著便會報告作業的狀態。

注意

本主題適用於 PowerShell 5.0。 如需設定 PowerShell 4.0 中提取用戶端的資訊,請參閱在 PowerShell 4.0 中使用設定識別碼設定提取用戶端

設定提取用戶端 LCM

執行以下任何一個範例,便會建立名為 PullClientConfigID 的新輸出資料夾,並在該處放入中繼設定 MOF 檔案。 在此情況下,中繼設定 MOF 檔案將名為 localhost.meta.mof

若要套用設定,請呼叫 Set-DscLocalConfigurationManager Cmdlet,其中 Path 設為中繼設定 MOF 檔案的位置。 例如:

Set-DSCLocalConfigurationManager –ComputerName localhost –Path .\PullClientConfigId –Verbose.

設定識別碼

下列範例會將 LCM 的 ConfigurationID 屬性設為先前針對這個用途建立的 GuidConfigurationID 供 LCM 用來在提取伺服器上尋找適當設定。 提取伺服器上的設定 MOF 檔案必須命名為 ConfigurationID.mof,其中 ConfigurationID 是目標節點 LCM 的 ConfigurationID 屬性值。 如需詳細資訊,請參閱將設定發佈到提取伺服器 (v4/v5)

您可以使用以下範例建立隨機 Guid,或是使用 New-Guid Cmdlet。

[System.Guid]::NewGuid()

如需在您環境中使用 Guid 的詳細資訊,請參閱為 GUID 規劃

設定提取用戶端來下載設定

每個用戶端都必須在提取模式中設定,並提供儲存其設定的提取伺服器 URL。 若要這樣做,您必須使用必要的資訊來設定本機設定管理員 (LCM)。 若要設定 LCM,必須先建立一種特殊設定,再加上 DSCLocalConfigurationManager 屬性裝飾。 如需設定 LCM 的詳細資訊,請參閱設定本機設定管理員

HTTP DSC 提取伺服器

下列指令碼會設定 LCM 從名為 "CONTOSO-PullSrv" 的伺服器提取設定。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'

        }
    }
}
PullClientConfigID

在此指令碼中,ConfigurationRepositoryWeb 區塊會定義提取伺服器。 ServerUrl 會指定 DSC 提取的 URL

SMB 共用

下列指令碼會設定 LCM,從 SMB 共用 \\SMBPullServer\Pull 提取設定。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryShare SMBPullServer
        {
            SourcePath = '\\SMBPullServer\Pull'
        }
    }
}
PullClientConfigID

在指令碼中,ConfigurationRepositoryShare 區塊會定義提取伺服器 (在此案例中只是一個 SMB 共用)。

設定提取用戶端以下載資源

若您在 LCM 設定中只指定 ConfigurationRepositoryWebConfigurationRepositoryShare 區塊 (如同先前範例),提取用戶端會從擷取其設定的相同位置提取資源。 您也可以為資源指定不同的位置。 若要將資源位置指定為不同的伺服器,請使用 ResourceRepositoryWeb 區塊。 若要將資源位置指定為 SMB 共用,請使用 ResourceRepositoryShare 區塊。

注意

您可以將 ConfigurationRepositoryWebResourceRepositoryShare 合併,或是將 ConfigurationRepositoryShareResourceRepositoryWeb 合併。 此範例不會在以下顯示。

HTTP DSC 提取伺服器

下列中繼設定會設定提取用戶端,以從 CONTOSO-PullSrv 取得其設定,並從 CONTOSO-ResourceSrv 取得其資源。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'

        }

        ResourceRepositoryWeb CONTOSO-ResourceSrv
        {
            ServerURL = 'https://CONTOSO-REsourceSrv:8080/PSDSCPullServer.svc'
        }
    }
}
PullClientConfigID

SMB 共用

下列範例會顯示中繼設定,其設定用戶端從 SMB 共用 \\SMBPullServer\Configurations 提取設定,並從 SMB 共用 \\SMBPullServer\Resources 提取資源。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryShare SMBPullServer
        {
            SourcePath = '\\SMBPullServer\Configurations'
        }

        ResourceRepositoryShare SMBResourceServer
        {
            SourcePath = '\\SMBPullServer\Resources'
        }
    }
}
PullClientConfigID

在推送模式中自動下載資源

從 PowerShell 5.0 開始,您的提取用戶端可從 SMB 共用下載模組,即使它們已針對 [推送] 模式設定也一樣。 這在您不想要設定提取伺服器的案例中特別有用。 ResourceRepositoryShare 區塊可在不指定 ConfigurationRepositoryShare 的情況下使用。 下列範例會顯示中繼設定,其設定用戶端從 SMB 共用 \\SMBPullServer\Resources 提取資源。 當節點獲得推送設定時,它便會從指定的共用自動下載任何必要資源。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Push'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
        }

        ResourceRepositoryShare SMBResourceServer
        {
            SourcePath = '\\SMBPullServer\Resources'
        }
    }
}
PullClientConfigID

設定提取用戶端以報告狀態

根據預設,節點不會將報告傳送到設定的提取伺服器。 您可以針對設定、資源和報告使用單一提取伺服器,但必須建立 ReportRepositoryWeb 區塊才可設定報告功能。

HTTP DSC 提取伺服器

下列範例示範中繼設定,該中繼設定會設定用戶端以提取設定和資源,並將報告資料傳送至單一提取伺服器。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
        }

        ReportServerWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
        }
    }
}
PullClientConfigID

若要指定報表伺服器,您可使用 ReportRepositoryWeb 區塊。 報表伺服器不得為 SMB 伺服器。 下列中繼設定會設定提取用戶端從 CONTOSO-PullSrv 取得其設定,並從 CONTOSO-ResourceSrv 取得其資源,然後傳送狀態報表給 CONTOSO-ReportSrv

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
        }

        ResourceRepositoryWeb CONTOSO-ResourceSrv
        {
            ServerURL = 'https://CONTOSO-REsourceSrv:8080/PSDSCPullServer.svc'
        }

        ReportServerWeb CONTOSO-ReportSrv
        {
            ServerURL = 'https://CONTOSO-REsourceSrv:8080/PSDSCPullServer.svc'
        }
    }
}
PullClientConfigID

SMB 共用

報表伺服器不可以是 SMB 共用。

後續步驟

設定提取用戶端之後,您可以使用下列指南來執行後續步驟:

另請參閱