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


Конфигурации DSC

Область применения: PowerShell 7, функция конфигурации компьютера автоматического управления Azure

Конфигурации DSC — это скрипты PowerShell, определяющие особый тип команд. Чтобы определить конфигурацию, используйте ключевое слово configurationPowerShell .

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, как и функцию PowerShell. Последняя строка примера, содержащая только имя конфигурации DSC, выполняет конфигурацию DSC.

Примечание

Чтобы вызвать конфигурацию DSC, она должна быть загружена в текущую область (как и в случае с любой другой функцией PowerShell). Это можно сделать, запустив скрипт с помощью команды "точками", или запустив его с помощью клавиши F5 или нажав кнопку Выполнить скрипт в VS Code. Чтобы создать скрипт точками, выполните команду . .\myConfig.ps1 , где myConfig.ps1 — это имя файла скрипта, содержащего конфигурацию DSC.

При вызове конфигурации DSC:

  • Создает папку в текущем каталоге с тем же именем, что и конфигурация DSC.
  • Создает файл с именем localhost.mof в новом каталоге.

Примечание

MOF-файл содержит все сведения о конфигурации системы. Поэтому его необходимо хранить в безопасном месте.

Использование новых ресурсов DSC в конфигурации DSC

Выполняя предыдущие примеры, вы могли заметить предупреждение о том, что используемый ресурс не импортирован.

С помощью командлета Get-DscResource можно определить, какие ресурсы установлены в системе и доступны для использования. Даже если их модули были помещены в $env:PSModulePath и распознаются Get-DscResource, они по-прежнему должны быть загружены в конфигурацию DSC.

Import-DscResource— это динамический ключевое слово, который можно распознать только внутри Configuration блока. Это не командлет. Import-DscResource поддерживает два параметра:

  • ModuleName является рекомендуемым способом использования Import-DscResource. Он принимает имя модуля, содержащего ресурсы для импорта (а также массив строк с именами модулей).
  • Параметр Name — имя импортируемого ресурса. Это не понятное имя, возвращаемое в качестве свойства Name возвращаемого Get-DscResourceобъекта , а имя класса, используемое при определении схемы ресурса (свойство ResourceType объекта, возвращаемого ).Get-DscResource

Дополнительные сведения об использовании Import-DSCResource см. в статье об использовании Import-DSCResource.

Важно!

Существует ограничение в конфигурации компьютера, которое не позволяет ресурсу DSC использовать командлеты PowerShell, не включенные в сам PowerShell или модуль на коллекция PowerShell. Ресурсы DSC, использующие командлеты из одного или нескольких модулей Windows , не будут работать в конфигурации компьютера.

См. также: