概要
检索资源实例的实际状态。
语法
无实例属性
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 对命令返回的数据使用的格式。 可用格式包括:
-
json以 JSON 行的形式发出数据。 当您使用 --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 选项。