次の方法で共有


DSC 構成

適用対象: PowerShell 7、Azure マシンの構成

DSC 構成は、特殊な種類のコマンドを定義する PowerShell スクリプトです。 構成を定義するには、PowerShell キーワード configurationを使用します。

Configuration MyDscConfiguration {
    Environment FirstEnvironmentVariable {
        Ensure = 'Present'
        Name   = 'Foo'
        Value  = 'Example'
    }

    Environment SecondEnvironmentVariable {
        Ensure = 'Present'
        Name   = 'Bar'
        Value  = 'Another'
    }
}

MyDscConfiguration

スクリプトを .ps1 ファイルとして保存します。

構成構文

DSC 構成スクリプトは、次の部分で構成されます。

  • Configuration ブロック。 これは最も外側のスクリプト ブロックです。 Configuration キーワードを使用して定義し、名前を指定します。 この場合、DSC 構成の名前は MyDscConfiguration
  • 1 つ以上の DSC リソース ブロック。 ここで DSC 構成では、構成するコンポーネントの設定が定義されます。 この場合、2 つの DSC リソース ブロックがあります。 どちらも Environment DSC リソースを使用します。

構成のコンパイル

DSC 構成を使用する前に、それを MOF ドキュメントにコンパイルする必要があります。 これを行うには、PowerShell 関数を呼び出すのと同様に DSC 構成を呼び出します。 DSC 構成の名前のみを含む例の最後の行は、DSC 構成を実行します。

手記

DSC 構成を呼び出すには、(他の PowerShell 関数と同様に) 現在のスコープに読み込む必要があります。 これを行うには、スクリプトを "ドット ソーシング" するか、F5 を使用してスクリプトを実行するか、VS Code の [スクリプトの実行] ボタンをクリックします。 スクリプトをドット ソースにするには、myConfig.ps1 が DSC 構成を含むスクリプト ファイルの名前である . .\myConfig.ps1 コマンドを実行します。

DSC 構成を呼び出すと、次のようになります。

  • DSC 構成と同じ名前のフォルダーを現在のディレクトリに作成します。
  • 新しいディレクトリに localhost.mof という名前のファイルを作成します。

手記

MOF ファイルには、システムのすべての構成情報が含まれています。 このため、セキュリティ保護を維持することが重要です。

DSC 構成での新しい DSC リソースの使用

前の例を実行した場合は、リソースを明示的にインポートせずに使用していることを警告された可能性があります。

Get-DscResource コマンドレットを使用して、システムにインストールされ、使用できるリソースを決定できます。 モジュールが $env:PSModulePath に配置され、Get-DscResourceによって認識された場合でも、DSC 構成内に読み込む必要があります。

Import-DscResource は、Configuration ブロック内でのみ認識できる動的キーワードです。 コマンドレットではありません。 Import-DscResource では、次の 2 つのパラメーターがサポートされています。

  • ModuleName は、Import-DscResourceを使用する場合に推奨される方法です。 インポートするリソースを含むモジュールの名前 (およびモジュール名の文字列配列) を受け取ります。
  • 名前 は、インポートするリソースの名前です。 これは、Get-DscResourceの戻りオブジェクトの Name プロパティとして返されるフレンドリ名ではなく、リソース スキーマを定義するときに使用されるクラス名 (Get-DscResourceによって返されるオブジェクトの ResourceType プロパティ) です。

Import-DSCResourceの使用の詳細については、「Import-DSCResource の使用」を参照してください。

大事な

コンピューターの構成には制限があり、DSC リソースが PowerShell 自体または PowerShell ギャラリーのモジュールに含まれていない PowerShell コマンドレットを使用できなくなります。 1 つ以上の Windows モジュールのコマンドレットを使用 DSC リソースは、コンピューターの構成では機能しません。

関連項目