Udostępnij za pośrednictwem


Ponowny rozruch węzła

Uwaga

W tym temacie omówiono sposób ponownego uruchamiania węzła. Aby ponowne uruchomienie zakończyło się pomyślnie, należy prawidłowo skonfigurować ustawienia ActionAfterReboot i RebootNodeIfNeeded LCM. Aby dowiedzieć się więcej o ustawieniach Configuration Manager lokalnych, zobacz Konfigurowanie Configuration Manager lokalnego lub Konfigurowanie Configuration Manager lokalnego (wersja 4).

Węzły można ponownie uruchomić z poziomu zasobu przy użyciu flagi $global:DSCMachineStatus . Ustawienie tej flagi na 1 wartość w Set-TargetResource funkcji zmusza LCM do ponownego uruchomienia węzła bezpośrednio po metodzie Set bieżącego zasobu. Korzystając z tej flagi, zasób PendingReboot w module ComputerManagementDsc DSC Resource wykrywa, czy ponowne uruchomienie oczekuje poza DSC.

Konfiguracje mogą wykonywać kroki, które wymagają ponownego uruchomienia węzła. Może to obejmować takie elementy jak:

  • Aktualizacje systemu Windows
  • Instalacja oprogramowania
  • Zmiany nazw plików
  • Zmiana nazwy komputera

Zasób PendingReboot sprawdza określone lokalizacje komputera, aby określić, czy ponowny rozruch jest oczekujący. Jeśli węzeł wymaga ponownego uruchomienia poza usługą DSC, zasób PendingReboot ustawia $global:DSCMachineStatus flagę na 1 wymuszanie ponownego uruchomienia i rozpoznawanie oczekującego warunku.

Uwaga

Każdy zasób DSC może poinstruować LCM, aby ponownie uruchomić węzeł, ustawiając tę flagę Set-TargetResource w funkcji. Aby uzyskać więcej informacji, zobacz Pisanie niestandardowego zasobu DSC za pomocą narzędzia MOF.

Składnia

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

Właściwości

Właściwość Opis
Nazwa Wymagany parametr, który musi być unikatowy na wystąpienie zasobu w ramach konfiguracji.
SkipComponentBasedServicing Pomiń ponowne rozruchy wyzwalane przez składnik obsługi Component-Based.
SkipWindowsUpdate Pomiń ponowne rozruchy wyzwalane przez Windows Update.
SkipPendingFileRename Pomiń oczekujące ponowne uruchomienie zmiany nazwy pliku.
SkipCcmClientSDK Pomiń ponowne rozruchy wyzwalane przez klienta programu ConfigMgr.
SkipComputerRename Pomiń ponowne rozruchy wyzwalane przez zmiany nazw komputerów.
PSDSCRunAsCredential Obsługiwane w wersji 5. Wykonuje zasób jako określony użytkownik.
Dependson Wskazuje, że konfiguracja innego zasobu musi zostać uruchomiona przed skonfigurowaniem tego zasobu. Jeśli na przykład identyfikator bloku skryptu konfiguracji zasobu, który chcesz uruchomić jako pierwszy, to ResourceName , a jego typ to ResourceType, składnia użycia tej właściwości to DependsOn = "[ResourceType]ResourceName". Aby uzyskać więcej informacji, zobacz Using DependsOn (Korzystanie z funkcji DependsOn)

Przykład

Poniższy przykład instaluje program Microsoft Exchange przy użyciu zasobu xExchange . W trakcie instalacji zasób PendingReboot jest używany do ponownego uruchomienia węzła.

Uwaga

W tym przykładzie wymagane jest poświadczenie konta, które ma prawa do dodania serwera Exchange do lasu. Aby uzyskać więcej informacji na temat używania poświadczeń w usłudze DSC, zobacz Obsługa poświadczeń w usłudze 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'
        }
    }
}

Uwaga

W tym przykładzie założono, że skonfigurowano Configuration Manager lokalne, aby umożliwić ponowne uruchomienie i kontynuować konfigurację po ponownym uruchomieniu.

Gdzie pobrać

Zasoby używane w tym temacie można pobrać w następujących lokalizacjach lub przy użyciu galerii programu PowerShell.