次の方法で共有


DSC 構成

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

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

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

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

MyDscConfiguration

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

構成構文

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

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

構成のコンパイル

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

Note

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

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

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

Note

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

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

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

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

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

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

Import-DSCResource の使用について詳しくは、「Import-DSCResource の使用」をご覧ください

重要

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

参照