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-DscResource
Name プロパティとして返されるフレンドリ名ではなく、リソース スキーマを定義するときに使用されるクラス名 (によってGet-DscResource
返されるオブジェクトの ResourceType プロパティ) です。
Import-DSCResource
の使用について詳しくは、「Import-DSCResource の使用」をご覧ください
重要
コンピューターの構成には制限があり、DSC リソースが PowerShell 自体またはPowerShell ギャラリーのモジュールに含まれていない PowerShell コマンドレットを使用できないようにします。 1 つ以上の Windows モジュール のコマンドレットを使用する DSC リソースは、コンピューターの構成では機能しません。