DSC リソース マニフェストのプロパティ スキーマリファレンスの取得
概要
DSC リソース インスタンスを取得する方法を定義します。
メタデータ
SchemaDialect: https://json-schema.org/draft/2020-12/schema
SchemaID: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/resource/manifest.get.json
Type: object
説明
すべてのコマンド ベースの DSC リソースでは、マニフェストで プロパティを get
定義する必要があります。 このプロパティは、DSC がリソース インスタンスの現在の状態を取得する方法を定義します。
DSC は、次の 3 つの方法でコマンドにデータを送信します。
- が の場合
input
、DSC はstdin
、データを表す文字列としてデータを圧縮 JSON オブジェクトとして送信します。オブジェクト プロパティ間にスペースや改行はありません。 - が の
env
場合input
、DSC はデータを環境変数として送信します。 プロパティの名前と値を使用して、入力データ オブジェクト内の各プロパティの環境変数を作成します。 - 配列に
args
JSON 入力引数の定義が含まれている場合、DSC は、データを圧縮された JSON オブジェクトとして表す文字列として、指定された引数にデータを送信します。
プロパティを input
定義せず、JSON 入力引数を定義しない場合、DSC は入力 JSON をリソースに渡すことができません。 1 つのコマンドに対して定義できる JSON 入力引数は 1 つだけです。
プロパティ、プロパティ配列内の input
1 つの JSON 入力引数、またはその両方を定義する args
必要があります。
例
例 1 - 最小定義
この例は DSC リソースの Microsoft/OSInfo
例です。
"get": {
"executable": "osinfo"
}
プロパティのみを定義します executable
。 マニフェストで が定義 args
されていない場合、DSC はコマンドに引数を渡しません。 マニフェストで が定義 input
されていない場合の既定の動作は、 を介 stdin
してコマンドに JSON BLOB を送信することです。
この定義では、DSC は次を get
実行してこのリソースの メソッドを呼び出します。
{ ... } | osinfo
例 2 - stdin からの入力
この例は DSC リソースの Microsoft.Windows/Registry
例です。
"get": {
"executable": "registry",
"args": [
"config",
"get"
],
"input": "stdin"
}
は ではなく registry.exe
としてregistry
定義されますexecutable
。 オペレーティング システムがコマンドを実行可能ファイルとして認識する場合、拡張機能は必要ありません。 マニフェストでは、 config
と get
の 2 つの引数が定義されています。 プロパティは input
、コマンドがその入力を get
から stdin
JSON BLOB として受け取ることを示します。 の値 executable
と組み合わせて、DSC は次を実行してこのリソースの get メソッドを呼び出します。
{ ... } | registry config get
例 3 - JSON 入力引数
この例では、JSON 入力引数を使用して、コマンドにデータを送信します。
"get": {
"executable": "tstoy",
"args": [
"config",
"get",
{ "jsonInputArg": "--input", "mandatory": true }
],
}
実行可能ファイルを として tstoy
定義します。 2 つの 文字列引数 と 1 つの JSON 入力引数を定義します。 DSC は、このリソースの操作を get
呼び出すと、JSON データを圧縮された JSON 文字列として リソースに --input
引数に渡します。
この操作の組み合わせ呼び出しは次のとおりです。
tstoy config get --input "{ ... }"
は { ... }
、リソース インスタンスの圧縮された JSON を表します。
JSON 入力引数の mandatory
オプションは に設定されているため、コマンドに true
送信するデータがない場合、DSC は空の文字列を 引数に渡します。 プロパティが定義されていない場合、または として false
定義されている場合、DSC は送信するデータがない場合に引数を完全に省略します。
必須プロパティ
定義には、 get
次のプロパティを含める必要があります。
プロパティ
executable
プロパティは executable
、実行するコマンドの名前を定義します。 値は、システムの環境変数で検出可能なコマンドの PATH
名前、またはコマンドの完全パスである必要があります。 ファイル拡張子は、コマンドがオペレーティング システムで実行可能ファイルとして認識できない場合にのみ必要です。
Type: string
Required: true
args
プロパティは args
、コマンドに渡す引数の一覧を定義します。 引数には任意の数の文字列を指定できます。 リソースのプロパティ バッグを表す JSON オブジェクトを引数に渡す場合は、配列内の 1 つの項目を [JSON オブジェクト] として定義できます。これは、文字列プロパティを持つ引数の名前と、ブール値プロパティを持つjsonInputArg
mandatory
コマンドに引数が必須かどうかを示します。
Type: array
Required: false
Default: []
Type: [string, object(JSON Input Argument)]
文字列引数
引数配列内の任意の項目は、 や --format
のようにconfig
、コマンドに渡す静的引数を表す文字列にすることができます。
Type: string
JSON 入力引数
JSON 入力オブジェクトを文字列として受け入れるコマンドの引数を定義します。 DSC は、使用可能な場合に名前付き引数に JSON 入力を渡します。 JSON 入力引数は、次のプロパティを持つ JSON オブジェクトとして定義されます。
jsonInputArg
(必須) - コマンドに対して JSON データを渡す引数 (例:--input
)。mandatory
(省略可能) - コマンドの JSON 入力がない場合でも、DSC が常に引数をコマンドに渡す必要があるかどうかを示します。 その場合、DSC は空の文字列を JSON 入力引数に渡します。
引数配列ごとに定義できる JSON 入力引数は 1 つだけです。
JSON 入力引数とコマンドの種類を input
定義すると、DSC は両方の方法で JSON データを送信します。
- と を JSON 入力引数として
env
定義input
する場合、DSC は JSON 入力の各プロパティの環境変数を設定し、JSON 入力オブジェクトを文字列として定義された引数に渡します。 - と を JSON 入力引数として
stdin
定義input
した場合、DSC は stdin を介して JSON 入力を文字列として定義された引数に渡します。 - プロパティを定義せずに JSON 入力引数を定義した
input
場合、DSC は JSON 入力のみを文字列として定義された引数に渡します。
プロパティを input
定義せず、JSON 入力引数を定義しない場合、DSC は入力 JSON をリソースに渡すことができません。 これにより、マニフェストが無効になります。 プロパティ、 input
プロパティ配列内の JSON 入力引数、またはその両方を定義する args
必要があります。
Type: object
RequiredProperties: [jsonInputArg]
input
プロパティは input
、リソースに入力を渡す方法を定義します。 このプロパティが定義されておらず、定義で JSON 入力引数が定義されていない場合、DSC は操作の呼び出し時にリソースに入力を get
送信しません。
このプロパティの値は、次のいずれかの文字列である必要があります。
env
- リソースがインスタンスのプロパティを、名前と大文字と小文字が同じ環境変数として指定することを想定していることを示します。このオプションでは、インスタンス プロパティに対して次のデータ型のみがサポートされます。
boolean
integer
number
string
array
値のinteger
数array
値のnumber
数array
値のstring
数
配列以外の値の場合、DSC は環境変数を指定された値をそのままに設定します。 データ型が値の配列である場合、DSC は環境変数をコンマ区切りの文字列として設定します。 たとえば、 の値
[1, 2, 3]
を持つ プロパティfoo
は、 として"1,2,3"
環境変数にfoo
保存されます。リソースで値または複数型配列を持つ複合プロパティをサポートする
object
必要がある場合は、代わりに これを にstdin
設定します。stdin
- リソースが からstdin
インスタンスを表す JSON BLOB を想定していることを示します。 JSON は、リソースのインスタンス スキーマに準拠している必要があります。
Type: string
Required: false
ValidValues: [env, stdin]