Перезагрузка узла
Примечание
В этом разделе рассказывается о том, как перезагрузить узел. Для успешной перезагрузки необходимо правильно настроить параметры ActionAfterReboot и RebootNodeIfNeeded локального диспетчера конфигураций. Описание параметров локального диспетчера конфигураций см. в разделе Настройка локального диспетчера конфигураций или Настройка локального диспетчера конфигураций (версия 4).
Узлы можно перезагрузить из ресурса с помощью флага $global:DSCMachineStatus
. Установка этого флага как 1
в функции Set-TargetResource
принуждает LCM перезапускать узел непосредственно после метода Set текущего ресурса. При указании этого флага ресурс PendingReboot в модуле ресурсов DSC ComputerManagementDsc обнаруживает, что ожидается перезагрузка за пределами DSC.
Ваши конфигурации могут выполнять действия, требующие перезагрузки узла. Сюда могут входить такие вещи, как:
- Обновления Windows
- установка ПО;
- переименование файлов;
- переименование компьютеров.
Ресурс PendingReboot проверяет конкретные места на компьютере, чтобы определить, ожидается ли перезагрузка. Если узлу требуется перезагрузка за пределами DSC, ресурс PendingReboot задает флаг $global:DSCMachineStatus
как 1
, вызывая принудительную перезагрузку и устраняя состояние ожидания.
Примечание
Любой ресурс DSC может заставить LCM перезапустить узел, установив этот флаг в функции Set-TargetResource
. Дополнительные сведения см. в разделе Написание пользовательских ресурсов DSC с использованием MOF.
Синтаксис
PendingReboot [String] #ResourceName
{
Name = [string]
[DependsOn = [string[]]]
[PsDscRunAsCredential = [PSCredential]]
[SkipCcmClientSDK = [bool]]
[SkipComponentBasedServicing = [bool]]
[SkipPendingComputerRename = [bool]]
[SkipPendingFileRename = [bool]]
[SkipWindowsUpdate = [bool]]
}
Свойства
Свойство | Описание |
---|---|
Имя | Обязательный параметр, который должен быть уникальным для каждого экземпляра ресурса в конфигурации. |
SkipComponentBasedServicing | Пропускать перезагрузки, активируемые компонентом Component-Based Servicing. |
SkipWindowsUpdate | Пропускать перезагрузки, активируемые обновлениями Windows. |
SkipPendingFileRename | Пропускать перезагрузки, активируемые переименованием файлов. |
SkipCcmClientSDK | Пропускать перезагрузки, активируемые клиентами Configuration Manager. |
SkipComputerRename | Пропускать перезагрузки, активируемые переименованием компьютера. |
PSDSCRunAsCredential | Поддерживается в версии 5. Ресурс выполняется в контексте указанного пользователя. |
DependsOn | Указывает, что перед настройкой этого ресурса необходимо запустить настройку другого ресурса. Например, если идентификатор первого запускаемого блока сценария для конфигурации ресурса — ResourceName, а его тип — ResourceType, то синтаксис использования этого свойства таков: DependsOn = "[ResourceType]ResourceName" . Дополнительные сведения см. в разделе Использование DependsOn. |
Пример
В следующем примере Microsoft Exchange устанавливается с помощью ресурса xExchange. На протяжении установки ресурс PendingReboot используется для перезагрузки узла.
Примечание
В этом примере требуются учетные данные учетной записи, имеющей права на добавление сервера Exchange в лесе. Дополнительные сведения об использовании учетных данных в DSC см. в разделе Обработка учетных данных в DSC.
$ConfigurationData = @{
AllNodes = @(
@{
NodeName = '*'
PSDSCAllowPlainTextPassword = $true
},
@{
NodeName = 'DSCPULL-1'
}
)
}
Configuration Example
{
param
(
[Parameter(Mandatory = $true)]
[System.Management.Automation.PSCredential]
$ExchangeAdminCredential
)
Import-DSCResource -ModuleName xExchange
Import-DSCResource -ModuleName ComputerManagementDsc
Node $AllNodes.NodeName
{
# Copy the Exchange setup files locally
File ExchangeBinaries
{
Ensure = 'Present'
Type = 'Directory'
Recurse = $true
SourcePath = '\\rras-1\Binaries\E15CU6'
DestinationPath = 'C:\Binaries\E15CU6'
}
# Check if a reboot is needed before installing Exchange
PendingReboot BeforeExchangeInstall
{
Name = 'BeforeExchangeInstall'
DependsOn = '[File]ExchangeBinaries'
}
# Do the Exchange install
xExchInstall InstallExchange
{
Path = 'C:\Binaries\E15CU6\Setup.exe'
Arguments = '/mode:Install /role:Mailbox /Iacceptexchangeserverlicenseterms'
Credential = $ExchangeAdminCredential
DependsOn = '[PendingReboot]BeforeExchangeInstall'
}
# See if a reboot is required after installing Exchange
PendingReboot AfterExchangeInstall
{
Name = 'AfterExchangeInstall'
DependsOn = '[xExchInstall]InstallExchange'
}
}
}
Примечание
В этом примере предполагается, что вы настроили локальный диспетчер конфигураций, разрешив перезагрузки, и продолжили настройку после перезагрузки.
Где скачать
Вы можете скачать ресурсы, используемые в этом разделе, в следующих расположениях или с помощью коллекции PowerShell.