dsc resource get

摘要

调用资源的获取操作。

语法

没有实例属性

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

来自 stdin 的实例属性

<instance-properties> | dsc resource get [Options] --resource <RESOURCE>

输入选项中的实例属性

dsc resource get --input '<instance-properties>' --resource <RESOURCE>

文件中的实例属性

dsc resource get --path <instance-properties-filepath> --resource <RESOURCE>

说明

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

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

资源检索实例状态所需的任何属性都必须作为 JSON 或 YAML 对象传递给此命令。 可以通过 stdin 或 选项 --input 将 对象传递给此命令。 还可以使用 --path 选项从 JSON 或 YAML 文件中读取对象。

示例

示例 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 - 使用输入选项获取资源实例

如果资源需要一个或多个属性值才能返回实例的实际状态,则可以使用 输入 选项以 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 通过 stdin 传递。

'{
    "keyPath": "HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion",
    "valueName": "SystemRoot"
}' | dsc resource get --resource Microsoft.Windows/Registry
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 文件中检索实例属性。

cat ./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 是定义输入配置中的导出节的可 导出 资源时,此选项才有效。 如果资源类型不可导出,DSC 将引发错误。

指定此选项后,DSC 将 --input 忽略 和 --path 选项以及从 stdin 发送到命令的任何 JSON 或 YAML。

Type:      Boolean
Mandatory: false

-r、 --resource

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

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

  • owner 资源的维护作者或组织。
  • grouparea 是可选名称组件,用于为资源启用命名空间。
  • 标识 name 资源管理的组件。
Type:      String
Mandatory: true

-i、 --input

指定具有检索 DSC 资源实例所需的属性的 JSON 或 YAML 对象。 DSC 根据资源的实例架构验证对象。 如果验证失败,DSC 将引发错误。

此选项不能与 stdin 或 --path 选项上的实例属性一起使用。 选择是将实例属性通过 stdin、从具有 --path 选项的 文件中传递,还是使用 --input 选项将实例属性传递给命令。

指定选项时, --all DSC 将忽略此选项。

Type:      String
Mandatory: false

-p、 --path

定义要读取为命令输入的文本文件的路径,而不是从 stdin 传递输入或使用 选项将其作为字符串 --input 传递。 指定的文件必须包含表示资源的有效属性的 JSON 或 YAML。 DSC 根据资源的实例架构验证对象。 如果验证失败,或者指定的文件不存在,DSC 将引发错误。

此选项与 --input 选项互斥。 使用此选项时,DSC 会忽略来自 stdin 的任何输入。

指定选项时, --all DSC 将忽略此选项。

Type:      String
Mandatory: false

-f, --format

选项 --format 控制命令的控制台输出格式。 如果将命令输出重定向或捕获为变量,则输出始终为 JSON。

Type:         String
Mandatory:    false
DefaultValue: yaml
ValidValues:  [json, pretty-json, yaml]

-h、--help

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

Type:      Boolean
Mandatory: false

输出

默认情况下,此命令返回包含实例实际状态的 JSON 输出。 --all指定 选项后,该命令以 JSON 行的形式返回每个实例的 JSON 输出。

有关输出 JSON 的结构的详细信息,请参阅 dsc 资源获取结果架构