Compartir a través de


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.