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.