Redémarrer un nœud

Note

Cette rubrique explique comment redémarrer un nœud. Pour que le redémarrage réussisse, les paramètres LCM ActionAfterReboot et RebootNodeIfNeeded doivent être configurés correctement. Pour en savoir plus sur les paramètres du Gestionnaire de configuration local, consultez Configurer le Gestionnaire de configuration localou Configurer le Gestionnaire de configuration local (v4).

Les nœuds peuvent être redémarrés à partir d’une ressource, à l’aide de l’indicateur $global:DSCMachineStatus . La définition de 1 cet indicateur dans la Set-TargetResource fonction force le LCM à redémarrer le nœud directement après la méthode Set de la ressource actuelle. À l’aide de cet indicateur, la ressource PendingReboot du module de ressource DSC ComputerManagementDsc détecte si un redémarrage est en attente en dehors de DSC.

Vos configurations peuvent effectuer des étapes qui nécessitent le redémarrage du nœud. Il peut s’agir de choses telles que :

  • Mises à jour de Windows
  • Installation du logiciel
  • Renommage de fichiers
  • Renommer l’ordinateur

La ressource PendingReboot vérifie des emplacements d’ordinateur spécifiques pour déterminer si un redémarrage est en attente. Si le nœud nécessite un redémarrage en dehors de DSC, la ressource PendingReboot définit l’indicateur $global:DSCMachineStatus pour 1 forcer un redémarrage et résoudre la condition en attente.

Note

N’importe quelle ressource DSC peut demander au LCM de redémarrer le nœud en définissant cet indicateur dans la Set-TargetResource fonction. Pour plus d’informations, consultez Écriture d’une ressource DSC personnalisée avec MOF.

Syntaxe

PendingReboot [String] #ResourceName
{
    Name = [string]
    [DependsOn = [string[]]]
    [PsDscRunAsCredential = [PSCredential]]
    [SkipCcmClientSDK = [bool]]
    [SkipComponentBasedServicing = [bool]]
    [SkipPendingComputerRename = [bool]]
    [SkipPendingFileRename = [bool]]
    [SkipWindowsUpdate = [bool]]
}

Propriétés

Propriété Descriptif
Nom Paramètre obligatoire qui doit être unique par instance de la ressource au sein d’une configuration.
SkipComponentBasedServicing Ignorez les redémarrages déclenchés par le composant de maintenance Component-Based.
SkipWindowsUpdate Ignorez les redémarrages déclenchés par Windows Update.
SkipPendingFileRename Ignorez les redémarrages de renommage de fichiers en attente.
SkipCcmClientSDK Ignorer les redémarrages déclenchés par le client ConfigMgr.
SkipComputerRename Sautez les redémarrages déclenchés par les renommages de l’ordinateur.
PSDSCRunAsCredential Pris en charge dans la v5. Exécute la ressource en tant qu’utilisateur spécifié.
Dépend de Indique que la configuration d’une autre ressource doit s’exécuter avant que cette ressource ne soit configurée. Par exemple, si l’ID du bloc de script de configuration de ressource que vous souhaitez exécuter en premier est ResourceName et que son type est ResourceType, la syntaxe d’utilisation de cette propriété est DependsOn = "[ResourceType]ResourceName". Pour plus d’informations, consultez Utilisation de DependsOn

Example

L’exemple suivant installe Microsoft Exchange à l’aide de la ressource xExchange . Tout au long de l’installation, la ressource PendingReboot est utilisée pour redémarrer le nœud.

Note

Cet exemple nécessite les informations d’identification d’un compte qui dispose des droits nécessaires pour ajouter un serveur Exchange à la forêt. Pour plus d’informations sur l’utilisation des informations d’identification dans DSC, consultez Gestion des informations d’identification dans 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'
        }
    }
}

Note

Cet exemple suppose que vous avez configuré votre gestionnaire de configuration local pour autoriser les redémarrages et poursuivre la configuration après un redémarrage.

Où télécharger

Vous pouvez télécharger les ressources utilisées dans cette rubrique aux emplacements suivants ou à l’aide de la galerie PowerShell.