Neustart eines Knotens
Hinweis
In diesem Thema wird erläutert, wie ein Knoten neu gestartet wird. Damit der Neustart erfolgreich verläuft, müssen die LCM-Einstellungen ActionAfterReboot und RebootNodeIfNeeded ordnungsgemäß konfiguriert werden. Weitere Informationen zu Einstellungen des lokalen Konfigurations-Managers finden Sie unter Configure the Local Configuration Manager (Konfigurieren des lokalen Konfigurations-Managers) oder Configure the Local Configuration Manager (v4) (Konfigurieren des lokalen Konfigurations-Managers (Version 4)).
Knoten können mithilfe des $global:DSCMachineStatus
-Flags innerhalb einer Ressource neu gestartet werden. Wenn dieses Flag in der Funktion Set-TargetResource
auf 1
festgelegt wird, wird der LCM direkt nach der Set-Methode der aktuellen Ressource zum Neustart des Knotens gezwungen. Mithilfe dieses Flags erkennt die PendingReboot-Ressource im DSC-Ressourcenmodul ComputerManagementDsc, ob ein Neustart außerhalb von DSC aussteht.
Ihre Konfigurationen führen möglicherweise Schritte aus, die für den Neustart des Knotens erforderlich sind. Dazu kann Folgendes gehören:
- Windows-Updates
- Softwareinstallation
- Umbenennen von Dateien
- Umbenennen von Computern
Die Ressource PendingReboot überprüft bestimmte Computerstandorte, um zu bestimmen, ob ein Neustart aussteht. Wenn der Knoten einen Neustart außerhalb der DSC erfordert, legt die Ressource PendingReboot das $global:DSCMachineStatus
-Flag auf 1
fest, wodurch ein Neustart erzwungen und die ausstehende Bedingung aufgelöst wird.
Hinweis
Jede DSC-Ressource kann den LCM zum Neustart des Knotens anweisen, indem dieses Flag in der Funktion Set-TargetResource
festgelegt wird. Weitere Informationen finden Sie unter Writing a custom DSC resource with MOF (Schreiben einer benutzerdefinierten DSC-Ressource mit MOF).
Syntax
PendingReboot [String] #ResourceName
{
Name = [string]
[DependsOn = [string[]]]
[PsDscRunAsCredential = [PSCredential]]
[SkipCcmClientSDK = [bool]]
[SkipComponentBasedServicing = [bool]]
[SkipPendingComputerRename = [bool]]
[SkipPendingFileRename = [bool]]
[SkipWindowsUpdate = [bool]]
}
Eigenschaften
Eigenschaft | BESCHREIBUNG |
---|---|
Name | Erforderlicher Parameter, der innerhalb einer Konfiguration pro Ressourceninstanz eindeutig sein muss. |
SkipComponentBasedServicing | Überspringen von Neustarts, die von der komponentenbasierten Wartungskomponente ausgelöst wurden. |
SkipWindowsUpdate | Überspringen von Neustarts, die von einem Windows-Update ausgelöst wurden. |
SkipPendingFileRename | Überspringen von ausstehenden Neustarts aufgrund von Dateiumbenennungen. |
SkipCcmClientSDK | Überspringen von Neustarts, die vom ConfigMgr-Client ausgelöst wurden. |
SkipComputerRename | Überspringen von Neustarts, die von Umbenennungen eines Computers ausgelöst wurden. |
PsDscRunAsCredential | Unterstützt in Version 5. Führt die Ressource als angegebener Benutzer aus. |
DependsOn | Gibt an, dass die Konfiguration einer anderen Ressource ausgeführt werden muss, bevor diese Ressource konfiguriert wird. Wenn beispielsweise die ID des Skriptblocks mit der Ressourcenkonfiguration, den Sie zuerst ausführen möchten, ResourceName und dessen Typ ResourceType ist, lautet die Syntax für das Verwenden dieser Eigenschaft DependsOn = "[ResourceType]ResourceName" . Weitere Informationen finden Sie unter Using DependsOn (Verwenden von „DependsOn“). |
Beispiel
Das folgende Beispiel installiert Microsoft Exchange mithilfe der xExchange-Ressource. Während der kompletten Installation wird die PendingReboot-Ressource verwendet, um den Knoten neu zu starten.
Hinweis
Für dieses Beispiel sind die Anmeldeinformationen eines Kontos erforderlich, das berechtigt ist, der Gesamtstruktur einen Exchange-Server hinzuzufügen. Weitere Informationen zur Verwendung von Anmeldeinformationen in DSC finden Sie unter Handling Credentials in DSC (Verwendung von Anmeldeinformationen in 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'
}
}
}
Hinweis
In diesem Beispiel wird davon ausgegangen, dass Sie Ihren lokalen Konfigurations-Manager so konfiguriert haben, dass Neustarts erlaubt sind, und die Konfiguration nach einem Neustart fortgesetzt wird.
Speicherorte für Downloads
Sie können die in diesem Thema verwendeten Ressourcen an folgenden Speicherorten abspeichern, oder mithilfe des PowerShell-Katalogs.