次の方法で共有


DSC リソース マニフェスト のエクスポート プロパティ スキーマ リファレンス

概要

DSC リソースのすべてのインスタンスの現在の状態を取得する方法を定義します。

メタデータ

SchemaDialect: https://json-schema.org/draft/2020-12/schema
SchemaID:      https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/resource/manifest.export.json
Type:          object

説明

1 つのコマンドでそれ自体のすべてのインスタンスを列挙できるコマンド ベースの DSC リソースでは、マニフェストで プロパティを定義する export 必要があります。 このプロパティは、DSC がすべてのリソース インスタンスの現在の状態を取得する方法を定義します。 このプロパティを定義すると、ユーザーは次のことができます。

  • dsc config export コマンドの入力構成でリソースのインスタンスを指定して、使用可能な構成ドキュメントを生成します。
  • dsc resource export コマンドを使用してリソースを指定して、リソースのすべてのインスタンスを定義する構成ドキュメントを生成します。
  • dsc resource get コマンドと --all オプションを使用してリソースを指定して、リソースのすべてのインスタンスの現在の状態を返します。

DSC がこのプロパティで定義されているコマンドを呼び出す場合、リソースはすべてのインスタンスの現在の状態を JSON 行として返す必要があります。 各 JSON Line は、インスタンスを表すオブジェクトであり、 定義されたリソース インスタンス スキーマに対して検証する必要があります。

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 定義する必要があります。

必須プロパティ

定義には、 export 次のプロパティを含める必要があります。

プロパティ

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 は JSON 入力を stdin に渡し、文字列として定義された引数に渡します。
  • プロパティを定義せずに JSON 入力引数を定義した input 場合、DSC は JSON 入力を文字列として定義された引数にのみ渡します。

プロパティを input 定義せず、JSON 入力引数を定義しない場合、DSC は入力 JSON をリソースに渡すことができません。 これにより、マニフェストが無効になります。 プロパティ、プロパティ配列の input JSON 入力引数、またはその両方を定義する args 必要があります。

Type:                object
RequiredProperties: [jsonInputArg]

input

プロパティは input 、リソースに入力を渡す方法を定義します。 このプロパティが定義されておらず、定義で JSON 入力引数が定義されていない場合、DSC は操作の呼び出し時にリソースに入力を export 送信しません。

このプロパティの値は、次のいずれかの文字列である必要があります。

  • 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]