Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обзор
Ресурсы DSC предоставляют стандартизированный интерфейс для управления параметрами системы. Ресурс DSC определяет свойства, которые можно управлять и содержать код PowerShell, который Invoke-DscResource вызывает "сделать это так".
Ресурс DSC может моделировать что-то универсальное как файл или как определенный параметр сервера IIS. Группы связанных ресурсов DSC объединяются в модули PowerShell. Модули предоставляют переносимый, версияемый пакет для ресурсов DSC и включают метаданные и документацию по ним.
Каждый ресурс DSC имеет схему, которая определяет синтаксис, необходимый для использования ресурса DSC с Invoke-DscResource или в конфигурации. Схема ресурса DSC определяется следующими способами:
-
<Resource Name>.psm1файл: ресурсы DSC на основе классов определяют свою схему в определении класса. Элементы синтаксиса обозначаются как свойства класса. Дополнительные сведения см. в about_Classes. -
Schema.Mofфайл: ресурсы DSC на основе MOF определяют свою схему в файлеschema.mofс помощью формата управляемых объектов.
Чтобы получить синтаксис ресурса DSC, используйте командлет Get-DSCResource с параметром синтаксиса. Это похоже на использование Get-Command с параметром синтаксиса для получения синтаксиса командлета. В выходных данных показан шаблон, используемый для блока ресурсов DSC в конфигурации DSC.
Get-DscResource -Syntax Service
Service [String] #ResourceName
{
Name = [string]
[BuiltInAccount = [string]{ LocalService | LocalSystem | NetworkService }]
[Credential = [PSCredential]]
[Dependencies = [string[]]]
[DependsOn = [string[]]]
[Description = [string]]
[DesktopInteract = [bool]]
[DisplayName = [string]]
[Ensure = [string]{ Absent | Present }]
[Path = [string]]
[PsDscRunAsCredential = [PSCredential]]
[StartupTimeout = [UInt32]]
[StartupType = [string]{ Automatic | Disabled | Manual }]
[State = [string]{ Ignore | Running | Stopped }]
[TerminateTimeout = [UInt32]]
}
Как и синтаксис командлета, ключи в квадратных скобках являются необязательными. Типы указывают тип данных, который ожидает каждый ключ.
Чтобы убедиться, что служба Spooler запущена:
$SharedDscParameters = @{
Name = 'Service'
ModuleName = 'PSDscResources'
Property = @{
Name = 'Spooler'
State = 'Running'
}
}
$TestResult = Invoke-DscResource -Method Test @SharedDscParameters
if ($TestResult.InDesiredState) {
Write-Host -ForegroundColor Cyan -Object 'Already in desired state.'
} else {
Write-Host -ForegroundColor Magenta -Object 'Enforcing desired state.'
Invoke-DscResource -Method Set @SharedDscParameters
}
Переменная $SharedDscParameters — это хэш-таблица, содержащая параметры, используемые при вызове теста и Методы Set ресурса с Invoke-DscResource. Первый вызов Invoke-DscResource использует метод теста для проверки того, запущена ли служба Spooler и сохраняет результат в переменной $TestResult.
Следующий шаг зависит от того, находится ли служба в требуемом состоянии. Рекомендуется всегда проверять требуемое состояние перед применением и вызывать только метод Set при необходимости. В примере скрипт записывает сообщение в консоль о том, находится ли ресурс DSC в нужном состоянии. Затем, если служба не запущена, она вызывает Invoke-DscResource с методом set Set для принудительного применения требуемого состояния.