dsc 资源获取

概要

检索资源实例的实际状态。

语法

无实例属性

dsc resource get [Options] --resource <RESOURCE>

input 选项中的实例属性

dsc resource get --input <INPUT> --resource <RESOURCE>

文件中的实例属性

dsc resource get --file <FILE> --resource <RESOURCE>

stdin 中的实例属性

cat <FILE> | dsc resource get [Options] --resource <RESOURCE> --file -

DESCRIPTION

get 子命令返回资源实例的当前状态。

默认情况下,此子命令从特定 DSC 资源返回一个实例。 要返回多个资源,请使用参数 --all 、资源组或 dsc config get 命令。

资源检索实例状态所需的任何属性都必须作为 JSON 或 YAML 对象传递给此命令, --input 并使用 or --file 选项。

例子

示例 1 - 在没有任何输入的情况下获取资源实例

对于不需要任何属性值来返回资源实例的实际状态的单实例资源,实例属性不是必需的。

dsc resource get --resource Microsoft/OSInfo
actualState:
  $id: https://developer.microsoft.com/json-schemas/dsc/os_info/20230303/Microsoft.Dsc.OS_Info.schema.json
  family: Windows
  version: 10.0.22621
  edition: Windows 11 Enterprise
  bitness: '64'

示例 2 - 使用输入选项获取资源实例

如果资源需要一个或多个属性值来返回实例的实际状态,则可以将实例属性与选项一起 --input 作为 JSON 或 YAML 传递。

dsc resource get --resource Microsoft.Windows/Registry --input '{
    "keyPath": "HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion",
    "valueName": "SystemRoot"
}'
actualState:
  $id: https://developer.microsoft.com/json-schemas/windows/registry/20230303/Microsoft.Windows.Registry.schema.json
  keyPath: HKLM\Software\Microsoft\Windows NT\CurrentVersion
  valueName: SystemRoot
  valueData:
    String: C:\WINDOWS

示例 3 - 使用来自 stdin 的输入获取资源实例

如果资源需要一个或多个属性值来返回实例的实际状态,则可以使用选项将实例属性作为 JSON 或 YAML --file 通过 stdin 传递。

'{
    "keyPath": "HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion",
    "valueName": "SystemRoot"
}' | dsc resource get --resource Microsoft.Windows/Registry --file -
actualState:
  $id: https://developer.microsoft.com/json-schemas/windows/registry/20230303/Microsoft.Windows.Registry.schema.json
  keyPath: HKLM\Software\Microsoft\Windows NT\CurrentVersion
  valueName: SystemRoot
  valueData:
    String: C:\WINDOWS

示例 4 - 使用 YAML 文件中的输入获取资源实例

如果资源需要一个或多个属性值来返回实例的实际状态,则可以从保存的 JSON 或 YAML 文件中检索实例属性。

# ./example.yaml
keyPath:   HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion
valueName: SystemRoot
dsc resource get --resource Microsoft.Windows/Registry --path ./example.yaml
actualState:
  $id: https://developer.microsoft.com/json-schemas/windows/registry/20230303/Microsoft.Windows.Registry.schema.json
  keyPath: HKLM\Software\Microsoft\Windows NT\CurrentVersion
  valueName: SystemRoot
  valueData:
    String: C:\WINDOWS

选项

-a, --all

指定命令应返回指定 DSC 资源的每个实例,而不是特定实例。

仅当 Resource 是在输入配置中定义 export 部分的可导出资源时,此选项才有效。 如果资源类型不可导出,DSC 会引发错误。

指定此选项后,DSC 将 --input 忽略 and --path 选项。

Type:      Boolean
Mandatory: false

-r, --resource

指定要使用的 DSC 资源的完全限定类型名称,如 Microsoft.Windows/Registry.

完全限定的类型名称语法为: <owner>[.<group>][.<area>]/<name>,其中:

  • owner 资源的维护作者或组织。
  • grouparea 是为资源启用命名空间的可选名称组件。
  • 用于 name 标识资源管理的组件。
Type        : string
Mandatory   : true
LongSyntax  : --resource <RESOURCE>
ShortSyntax : -r <RESOURCE>

-i, --输入

指定要检索的资源实例。

该实例必须是包含 JSON 或 YAML 对象的字符串。 DSC 根据资源的实例架构验证对象。 如果验证失败,DSC 将引发错误。

此选项与 --file 选项互斥。

Type        : string
Mandatory   : false
LongSyntax  : --input <INPUT>
ShortSyntax : -i <INPUT>

-f, --file

定义定义要检索的资源实例的文件的路径。

指定的文件必须包含表示资源有效属性的 JSON 或 YAML 对象。 DSC 根据资源的实例架构验证对象。 如果验证失败,或者指定的文件不存在,DSC 将引发错误。

您还可以使用此选项从 stdin 传递实例,如 示例 3 所示。

此选项与 --input 选项互斥。

Type        : string
Mandatory   : false
LongSyntax  : --file <FILE>
ShortSyntax : -f <FILE>

-o, --output-format

--output-format 选项控制 DSC 对命令返回的数据使用的格式。 可用格式包括:

  • jsonJSON 行的形式发出数据。 当您使用 --all 选项时,每个实例都作为 JSON 行返回。
  • pretty-json 将数据作为 JSON 发出,并带有换行符、缩进和空格以提高可读性。
  • yaml 以 YAML 格式发送数据。 当您使用该 --all 选项时,每个实例都作为 YAML 文档返回,每个返回的实例之间带有 --- 文档分隔符。
  • json-array 将数据发出为包含每个对象的单个 milti-line JSON 数组。 此选项仅对 --all 选项有效。
  • pass-through 直接从资源返回数据,而不将其包装在 DSC 结果中。 使用此输出选项时,发出的 JSON 行将遵循资源的实例架构,而不是 DSC 获取结果架构。

默认输出格式取决于 DSC 是否检测到输出正在重定向或作为变量捕获:

  • 如果命令未重定向或捕获,DSC 会在控制台中将输出显示为 yaml 格式。
  • 如果命令输出被重定向或捕获,DSC 会将数据作为 json 格式发送到 stdout。

使用此选项时,DSC 将使用指定的格式,而不管命令是重定向还是捕获。

当命令未重定向或捕获时,控制台中的输出将被格式化以提高可读性。 当命令未重定向或捕获时,输出包括用于格式化的终端序列。

Type        : string
Mandatory   : false
ValidValues : [json, pretty-json, yaml, json-array, pass-through]
LongSyntax  : --output-format <OUTPUT_FORMAT>
ShortSyntax : -o <OUTPUT_FORMAT>

-h、--help

显示当前命令或子命令的帮助。 指定此选项时,应用程序将忽略所有其他选项和参数。

Type        : boolean
Mandatory   : false
LongSyntax  : --help
ShortSyntax : -h

输出

默认情况下,此命令返回一个格式化的数据对象,其中包括实例的实际状态。 指定该 --all 选项后,该命令将返回每个实例的格式化数据。 当您指定 pass-through output format 选项时,发出的数据是资源的未修改输出,而不是 DSC 资源获取结果。

有关输出 JSON 结构的更多信息,请参阅 dsc resource get result schema

有关输出数据格式的更多信息,请参阅 --output-format 选项