Reinicio de un nodo
Nota
En este tema se trata sobre cómo reiniciar un nodo. Para que el reinicio se realice correctamente, las opciones de LCM ActionAfterReboot y RebootNodeIfNeeded deben configurarse correctamente. Para obtener información acerca de las opciones del administrador de configuración local, consulte Configuración del administrador de configuración local o Configuración del administrador de configuración local (v4).
Se pueden reiniciar los nodos desde dentro de un recurso, mediante el uso de la marca $global:DSCMachineStatus
. Al establecer esta marca como 1
en la función Set-TargetResource
, se obliga al LCM a reiniciar el nodo directamente después del método Set del recurso actual. Con esta marca, el recurso PendingReboot del módulo de recursos DSC ComputerManagementDsc detecta si está pendiente un reinicio fuera de DSC.
Sus configuraciones pueden realizar pasos que requieren que el nodo se reinicie. Esto puede incluir, por ejemplo:
- Actualizaciones de Windows
- Instalación de software
- Cambios de nombre de archivo
- Cambios de nombre de equipo
El recurso PendingReboot comprueba las ubicaciones de equipos específicos para determinar si está pendiente un reinicio. Si el nodo requiere un reinicio fuera de DSC, el recurso PendingReboot establece la marca $global:DSCMachineStatus
en 1
y obliga a realizar un reinicio y a resolver la condición pendiente.
Nota
Cualquier recurso de DSC puede indicar al LCM que reinicie el nodo estableciendo esta marca en la función Set-TargetResource
. Para obtener más información, consulte Escribir un recurso de DSC personalizado con MOF.
Sintaxis
PendingReboot [String] #ResourceName
{
Name = [string]
[DependsOn = [string[]]]
[PsDscRunAsCredential = [PSCredential]]
[SkipCcmClientSDK = [bool]]
[SkipComponentBasedServicing = [bool]]
[SkipPendingComputerRename = [bool]]
[SkipPendingFileRename = [bool]]
[SkipWindowsUpdate = [bool]]
}
Propiedades
Propiedad | Descripción |
---|---|
Nombre | Parámetro obligatorio que debe ser único para cada instancia del recurso dentro de una configuración. |
SkipComponentBasedServicing | Omite los reinicios desencadenados por el componente de servicio basado en componentes. |
SkipWindowsUpdate | Omite los reinicios desencadenados por Windows Update. |
SkipPendingFileRename | Omite los reinicios de cambio de nombre de archivo pendientes. |
SkipCcmClientSDK | Omite los reinicios desencadenados por el cliente de Configuration Manager. |
SkipComputerRename | Omite los reinicios desencadenados por cambios de nombre de equipo. |
PSDSCRunAsCredential | Admitido en la versión 5. Ejecuta el recurso como el usuario especificado. |
DependsOn | Indica que la configuración de otro recurso debe ejecutarse antes de que se configure este recurso. Por ejemplo, si el elemento ID del bloque del script de configuración del recurso que quiere ejecutar primero es ResourceName y su tipo es ResourceType, la sintaxis para usar esta propiedad es DependsOn = "[ResourceType]ResourceName" . Para obtener más información, vea Uso de DependsOn |
Ejemplo
El ejemplo siguiente instala Microsoft Exchange con el recurso xExchange. A lo largo de la instalación, el recurso PendingReboot se usa para reiniciar el nodo.
Nota
Este ejemplo requiere la credencial de una cuenta que tenga derechos para agregar un servidor de Exchange al bosque. Para obtener más información sobre el uso de credenciales en DSC, vea Control de credenciales en 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'
}
}
}
Nota
En este ejemplo se asume que se ha configurado el administrador de configuración local para permitir reinicios y continuar la configuración tras un reinicio.
Dónde puede realizarse la descarga
Puede descargar los recursos usados en este tema en las siguientes ubicaciones, o mediante el uso de la Galería de PowerShell.