ノードを再起動する
Note
このトピックでは、ノードの再起動方法について説明します。 再起動を成功させるために、ActionAfterReboot と RebootNodeIfNeeded の LCM 設定は適切に構成される必要があります。 ローカル構成マネージャーの設定については、「ローカル構成マネージャーの構成」またはローカル構成マネージャー (v4) の構成に関するページを参照してください。
ノードは、$global:DSCMachineStatus
フラグを使用することで、リソース内から再起動できます。 Set-TargetResource
関数でこのフラグを 1
に設定すると、現在のリソースの Set メソッドの直後に、LCM によってノードが再起動されます。 このフラグを使用して、ComputerManagementDsc DSC リソース モジュールの PendingReboot リソースで、DSC の外部で再起動が保留されているかどうかを検出します。
ご利用の構成では、ノードの再起動を必要とするステップを実行できます。 これには次のような内容を含めることができます。
- Windows の更新プログラム
- ソフトウェアのインストール
- ファイル名の変更
- コンピューター名の変更
PendingReboot リソースでは、特定のコンピューターの場所を確認して、再起動が保留中かどうかが判断されます。 ノードで DSC の外部で再起動が必要な場合、PendingReboot リソースでは $global:DSCMachineStatus
フラグに 1
を設定して、再起動が強制され、保留中の状態が解決されます。
Note
任意の DSC リソースにより、Set-TargetResource
関数にこのフラグを設定することで、LCM にノードを再起動するように指示できます。 詳細については、「MOF を使用したカスタム DSC リソースの記述」を参照してください。
構文
PendingReboot [String] #ResourceName
{
Name = [string]
[DependsOn = [string[]]]
[PsDscRunAsCredential = [PSCredential]]
[SkipCcmClientSDK = [bool]]
[SkipComponentBasedServicing = [bool]]
[SkipPendingComputerRename = [bool]]
[SkipPendingFileRename = [bool]]
[SkipWindowsUpdate = [bool]]
}
Properties
プロパティ | 説明 |
---|---|
名前 | 構成内のリソースのインスタンスごとに一意である必要がある必須のパラメーターです。 |
SkipComponentBasedServicing | コンポーネント ベース サービシング コンポーネントによってトリガーされた再起動がスキップされます。 |
SkipWindowsUpdate | Windows の更新プログラムによってトリガーされた再起動がスキップされます。 |
SkipPendingFileRename | 保留中のファイル名の変更による再起動がスキップされます。 |
SkipCcmClientSDK | ConfigMgr クライアントによってトリガーされた再起動がスキップされます。 |
SkipComputerRename | コンピューター名の変更によってトリガーされた再起動がスキップされます。 |
PSDSCRunAsCredential | v5 でサポートされています。 特定のユーザーとしてリソースを実行します。 |
DependsOn | このリソースを構成する前に、他のリソースの構成を実行する必要があることを示します。 たとえば、最初に実行するリソース構成スクリプト ブロックの ID が ResourceName で、そのタイプが ResourceType である場合、このプロパティを使用する構文は DependsOn = "[ResourceType]ResourceName" になります。 詳細については、DependsOn の使用に関するページを参照してください。 |
例
次の例では、xExchange リソースを使用して Microsoft Exchange をインストールします。 インストールの間中、PendingReboot リソースはノードの再起動に使用されます。
Note
この例には、Exchange サーバーをフォレストに追加する権限を持つ、アカウントの資格情報が必要です。 DSC での資格情報の使用に関する詳細については、「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
この例では、再起動と、再起動後に構成を継続できるように、ローカル構成マネージャーを構成しているとします。
ダウンロードする場所
次の場所でこのトピックで使用したリソースをダウンロードできます。PowerShell ギャラリーを使用してダウンロードすることもできます。