Udostępnij przez


Ponowne uruchamianie węzła

Uwaga / Notatka

W tym temacie omówiono sposób ponownego uruchamiania węzła. Aby ponowne uruchomienie zakończyło się pomyślnie, ustawienia LCM ActionAfterReboot i RebootNodeIfNeeded muszą być poprawnie skonfigurowane. Aby dowiedzieć się więcej o ustawieniach Lokalnego Configuration Manager, zobacz Konfigurowanie lokalnego Configuration Managerlub Konfigurowanie lokalnego Configuration Manager (wersja 4).

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

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

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

Zasób PendingReboot sprawdza określone lokalizacje komputerów, aby określić, czy oczekuje na ponowne uruchomienie. Jeśli węzeł wymaga ponownego uruchomienia poza DSC, zasób PendingReboot ustawia flagę $global:DSCMachineStatus na 1 wymuszenie ponownego uruchomienia i rozwiązanie oczekującego warunku.

Uwaga / Notatka

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ą 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

Majątek Description
Name Wymagany parametr, który musi być unikatowy dla każdego wystąpienia zasobu w konfiguracji.
SkipComponentBasedServicing Pomiń ponowne uruchomienia wyzwalane przez składnik Component-Based Servicing (obsługa ).
PomińWindowsUpdate Pomiń ponowne uruchamianie wyzwalane przez usługę Windows Update.
PomińPendingFileZmień nazwę Pomiń oczekujące ponowne uruchomienie nazwy pliku.
SkipCcmClientSDK Pomiń ponowne uruchamianie wyzwalane przez klienta programu ConfigMgr.
SkipComputerZmień nazwę Pomiń ponowne uruchamianie wyzwalane przez zmianę nazw komputera.
PSDSCRunAsCredential Obsługiwane w wersji 5. Uruchamia zasób jako określony użytkownik.
ZależyOn Wskazuje, że konfiguracja innego zasobu musi zostać uruchomiona przed skonfigurowaniem tego zasobu. Jeśli na przykład identyfikator bloku skryptu konfiguracji zasobu, który ma zostać uruchomiony jako pierwszy, to ResourceName , a jego typ to ResourceType, składnia używana przez tę właściwość to DependsOn = "[ResourceType]ResourceName". Aby uzyskać więcej informacji, zobacz Using DependsOn

Example

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

Uwaga / Notatka

W tym przykładzie wymagane jest poświadczenie konta, które ma prawa do dodawania serwera Exchange do lasu. Aby uzyskać więcej informacji na temat korzystania z poświadczeń w DSC, zobacz Obsługa poświadczeń w 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 / Notatka

W tym przykładzie założono, że skonfigurowano lokalnego Configuration Managera tak, aby zezwalał na ponowne uruchamianie i kontynuował konfigurację po ponownym uruchomieniu.

Skąd pobrać

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