次の方法で共有


DSC リソース

概要

DSC リソースは、システムの設定を管理するための標準化されたインターフェイスを提供します。 DSC リソースは、管理できるプロパティを定義し、"作成" を呼び出す Invoke-DscResource PowerShell コードを含みます。

DSC リソースは、ファイルとして、または IIS サーバー設定と同じくらい汎用的なものをモデル化できます。 関連する DSC リソースのグループは、PowerShell モジュールに組み合わされます。 モジュールは、DSC リソース用の移植可能なバージョン管理されたパッケージを提供し、それらに関するメタデータとドキュメントを含みます。

すべての DSC リソースには、構成でまたは 構成で DSC リソースInvoke-DscResourceを使用するために必要な構文を決定するスキーマがあります。 DSC リソースのスキーマは、次の方法で定義されます。

  • <Resource Name>.psm1 file: クラス ベースの DSC リソースは、クラス定義でスキーマを定義します。 構文項目はクラス プロパティとして表されます。 詳細については、「about_Remote」を参照してください。
  • Schema.Moffile: MOF ベースの DSC リソースは、マネージド オブジェクト形式schema.mof使用して、ファイル内のスキーマを定義します。

DSC リソースの構文を取得するには、Syntax パラメーターを指定して Get-DSCResource コマンドレットを使用します。 これは、 コマンドレットの構文を取得するために、Syntaxパラメーターと 共に Get-Command を使用する場合に似ています。 出力には、DSC 構成の DSC リソース ブロックに使用されるテンプレートが表示されます。

Get-DscResource -Syntax Service
Service [String] #ResourceName
{
    Name = [string]
    [BuiltInAccount = [string]{ LocalService | LocalSystem | NetworkService }]
    [Credential = [PSCredential]]
    [Dependencies = [string[]]]
    [DependsOn = [string[]]]
    [Description = [string]]
    [DesktopInteract = [bool]]
    [DisplayName = [string]]
    [Ensure = [string]{ Absent | Present }]
    [Path = [string]]
    [PsDscRunAsCredential = [PSCredential]]
    [StartupTimeout = [UInt32]]
    [StartupType = [string]{ Automatic | Disabled | Manual }]
    [State = [string]{ Ignore | Running | Stopped }]
    [TerminateTimeout = [UInt32]]
}

コマンドレットの構文と同様に、角かっこ内の キー は省略可能です。 型は、各キーで想定されるデータ型を指定します。

サービスが実行されていることを確認するには、次の手順を Spooler 実行します。

$SharedDscParameters = @{
    Name = 'Service'
    ModuleName = 'PSDscResources'
    Property = @{
        Name  = 'Spooler'
        State = 'Running'
    }
}
$TestResult = Invoke-DscResource -Method Test @SharedDscParameters
if ($TestResult.InDesiredState) {
    Write-Host -ForegroundColor Cyan -Object 'Already in desired state.'
} else {
    Write-Host -ForegroundColor Magenta -Object 'Enforcing desired state.'
    Invoke-DscResource -Method Set @SharedDscParameters
}

変数は$SharedDscParameters、 を使用してリソースInvoke-DscResourceTest メソッドと Set メソッドを呼び出すときに使用されるパラメーターを含むハッシュ テーブルです。 の Invoke-DscResource 最初の呼び出しでは 、Test メソッドを使用して、サービスが Spooler 実行されているかどうかを確認し、結果を 変数に $TestResult 格納します。

次の手順は、サービスが既に目的の状態にあるかどうかによって異なります。 適用する前に常に目的の状態を確認し、必要な場合にのみ Set メソッドを呼び出すのがベスト プラクティスです。 この例では、DSC リソースが目的の状態であるかどうかを示すメッセージがスクリプトによってコンソールに書き込まれます。 次に、サービスが実行されていない場合は、 Set メソッドを使用して を呼び出Invoke-DscResourceして、目的の状態を強制します。