Поделиться через


Настройка LCM в PowerShell 4.0

Область применения: Windows PowerShell 4.0

Сведения о Windows PowerShell 5.0 и более поздних версиях см. в разделе Настройка локального диспетчера конфигураций.

Local Configuration Manager — это подсистема настройки требуемого состояния (DSC) Windows PowerShell. Он выполняется на всех целевых узлах и отвечает за вызов конфигурационных ресурсов, включенных в сценарий конфигурации DSC. В этом разделе перечислены свойства Local Configuration Manager и описывается, как можно изменить параметры Local Configuration Manager на целевом узле.

Свойства локального диспетчера конфигураций

Ниже перечислены свойства локального диспетчера конфигураций, которые можно задать или получить.

  • AllowModuleOverwrite: Определяет, разрешено ли новым конфигурациям, загруженным из службы конфигурации, перезаписывать старые конфигурации на целевом узле. Возможные значения: True и False.
  • CertificateID: отпечаток сертификата, используемый для защиты учетных данных, передаваемых в конфигурации. Дополнительные сведения см. в статье Хотите защитить учетные данные в конфигурации требуемого состояния Windows PowerShell?.
  • ConfigurationID: указывает идентификатор GUID, который используется для получения определенного файла конфигурации из службы pull. GUID обеспечивает доступ к правильному файлу конфигурации.
  • ConfigurationMode: указывает, как локальный диспетчер конфигураций фактически применяет конфигурацию к целевым узлам. Он может принимать следующие значения:
    • ApplyOnly: При использовании этого параметра DSC применяет конфигурацию и больше ничего не предпринимает до тех пор, пока не будет обнаружена новая конфигурация, либо путем отправки новой конфигурации непосредственно на целевой узел, либо если вы подключаетесь к службе извлечения, и DSC обнаруживает новую конфигурацию при проверке с помощью службы извлечения. Если конфигурация целевого узла отклоняется, никаких действий не предпринимается.
    • ApplyAndMonitor: При использовании этого параметра (который используется по умолчанию) DSC применяет любые новые конфигурации, отправленные вами непосредственно на целевой узел или обнаруженные в службе извлечения. Впоследствии, если конфигурация целевого узла отклоняется от файла конфигурации, DSC сообщает о несоответствии в журналах. Дополнительные сведения о ведении журнала DSC см. в разделе Использование журналов событий для диагностики ошибок в конфигурации требуемого состояния.
    • ApplyAndAutoCorrect: При использовании этого параметра DSC применяет любые новые конфигурации, независимо от того, отправлены ли они непосредственно на целевой узел или обнаружены в службе извлечения. Впоследствии, если конфигурация целевого узла отклоняется от файла конфигурации, DSC сообщает о несоответствии в журналах, а затем пытается скорректировать конфигурацию целевого узла для приведения ее в соответствие с файлом конфигурации.
  • ConfigurationModeFrequencyMins: представляет частоту (в минутах), с которой фоновое приложение DSC пытается реализовать текущую конфигурацию на целевом узле. Значение по умолчанию — 15. Это значение может быть установлено совместно с RefreshMode. Если для параметра RefreshMode задано значение PULL, целевой узел связывается со службой конфигурации с интервалом, заданным с помощью RefreshFrequencyMins, и загружает текущую конфигурацию. Независимо от значения RefreshMode с интервалом, заданным ConfigurationModeFrequencyMins, модуль согласованности применяет последнюю конфигурацию, загруженную на целевой узел. RefreshFrequencyMins должен быть установлен в целое число, кратное ConfigurationModeFrequencyMins.
  • Учетные данные: Указывает учетные данные (как и Get-Credential), необходимые для доступа к удаленным ресурсам, например для связи со службой конфигурации.
  • DownloadManagerCustomData: представляет массив, содержащий пользовательские данные, относящиеся к менеджеру загрузок.
  • DownloadManagerName: Указывает имя менеджера конфигурации и загрузки модулей.
  • RebootNodeIfNeeded: установите это значение $true , чтобы разрешить ресурсам перезагружать узел с помощью флага $global:DSCMachineStatus . В противном случае необходимо вручную перезагрузить узел для любой конфигурации, требующей ее. Значение по умолчанию — $false. Чтобы использовать этот параметр, когда условие перезагрузки вводится в действие чем-то, отличным от DSC (например, установщиком Windows), объедините этот параметр с модулем xPendingReboot .
  • RefreshFrequencyMins: используется, когда вы настроили службу извлечения. Представляет частоту (в минутах), с которой локальный диспетчер конфигураций обращается к опрашивающей службе для скачивания текущей конфигурации. Это значение можно задать в сочетании с ConfigurationModeFrequencyMins. Если для параметра RefreshMode задано значение PULL, целевой узел связывается со службой pull с интервалом, заданным с помощью RefreshFrequencyMins, и загружает текущую конфигурацию. Через интервал, заданный с помощью ConfigurationModeFrequencyMins, модуль согласованности применяет последнюю конфигурацию, загруженную на целевой узел. Если для параметра RefreshFrequencyMins не задано целое число, кратное ConfigurationModeFrequencyMins, система округлит его в большую сторону. Значение по умолчанию — 30.
  • RefreshMode: возможные значения: Push (по умолчанию) и Pull. В конфигурации "push" вы должны разместить файл конфигурации на каждом целевом узле, используя любой клиентский компьютер. В режиме "pull" необходимо настроить службу pull, чтобы Local Configuration Manager мог связаться с файлами конфигурации и получить к ним доступ.

Замечание

LCM запускает цикл ConfigurationModeFrequencyMins на основе:

  • Новый метаконфигур применяется с помощью Set-DscLocalConfigurationManager
  • Перезапуск машины

Для любого условия, при котором происходит сбой процесса таймера, это будет обнаружено в течение 30 секунд, и цикл будет запущен заново. Параллельная операция может привести к задержке запуска цикла, если продолжительность этой операции превысит настроенную частоту цикла, следующий таймер не запустится.

Например, метаконфигурация настроена на 15-минутную частоту вытягивания, а вытягивание происходит в точке T1. Узел не заканчивает работу в течение 16 минут. Первый 15-минутный цикл игнорируется, а следующий пулл произойдет в T1+15+15.

Пример обновления настроек Local Configuration Manager

Можно обновить параметры Local Configuration Manager целевого узла, включив блок LocalConfigurationManager в блок узла в сценарий конфигурации, как показано в следующем примере.

Configuration ExampleConfig
{
    Node "Server001"
    {
        LocalConfigurationManager
        {
            ConfigurationID = "646e48cb-3082-4a12-9fd9-f71b9a562d4e"
            ConfigurationModeFrequencyMins = 45
            ConfigurationMode = "ApplyAndAutocorrect"
            RefreshMode = "Pull"
            RefreshFrequencyMins = 90
            DownloadManagerName = "WebDownloadManager"
            DownloadManagerCustomData = (@{ServerUrl="https://$PullService/psdscpullserver.svc"})
            CertificateID = "71AA68562316FE3F73536F1096B85D66289ED60E"
            Credential = $cred
            RebootNodeIfNeeded = $true
            AllowModuleOverwrite = $false
        }
# One or more resource blocks can be added here
    }
}

# The following line invokes the configuration and creates a file called
# Server001.meta.mof at the specified path
ExampleConfig -OutputPath "c:\users\public\dsc"

При запуске скрипта в предыдущем примере создается MOF-файл, в котором указываются и сохраняются требуемые параметры. Чтобы применить параметры, можно использовать командлет Set-DscLocalConfigurationManager , как показано в следующем примере.

Set-DscLocalConfigurationManager -Path "c:\users\public\dsc"

Замечание

Для параметра Path необходимо указать тот же путь, который был указан для параметра OutputPath при вызове конфигурации в предыдущем примере.

Чтобы просмотреть текущие параметры Local Configuration Manager, можно использовать командлет Get-DscLocalConfigurationManager . Если вы вызовете этот командлет без параметров, по умолчанию он получит параметры локального диспетчера конфигурации для узла, на котором вы его запускаете. Чтобы указать еще один узел, используйте параметр CimSession с этим командлетом.