次の方法で共有


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 つの方法でコマンドにデータを送信します。

  1. が の場合 input 、DSC は stdin、データを表す文字列としてデータを圧縮 JSON オブジェクトとして送信します。オブジェクト プロパティ間にスペースや改行はありません。
  2. が のenv場合input、DSC はデータを環境変数として送信します。 プロパティの名前と値を使用して、入力データ オブジェクト内の各プロパティの環境変数を作成します。
  3. 配列に 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。 オペレーティング システムがコマンドを実行可能ファイルとして認識する場合、拡張機能は必要ありません。 マニフェストでは、 configgetの 2 つの引数が定義されています。 プロパティは input 、コマンドがその入力を get から stdinJSON 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 オブジェクト] として定義できます。これは、文字列プロパティを持つ引数の名前と、ブール値プロパティを持つjsonInputArgmandatoryコマンドに引数が必須かどうかを示します。

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]