Invoke-DscResource

运行指定的 PowerShell Desired State Configuration (DSC) 资源的方法。

语法

Invoke-DscResource
      [-Name] <String>
      [[-ModuleName] <ModuleSpecification>]
      [-Method] <String>
      [-Property] <Hashtable>
      [<CommonParameters>]

说明

Invoke-DscResource cmdlet 运行指定的 PowerShell Desired State Configuration (DSC) 资源的方法。

此 cmdlet 直接调用 DSC 资源,而无需创建配置文档。 使用此 cmdlet,配置管理产品可以使用 DSC 资源管理 Windows 或 Linux。

此 cmdlet 不适用于复合资源。 复合资源是参数化配置。 使用复合资源需要 LCM。

示例

示例 1:通过指定资源的必需属性调用 Set 方法

此示例调用名为 WindowsProcess 的资源的 Set 方法,并提供必需的 路径参数 属性来启动指定的 Windows 进程。

Invoke-DscResource -Name WindowsProcess -Method Set -ModuleName PSDesiredStateConfiguration -Property @{
    Path      = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
    Arguments = ''
}

示例 2:为指定的模块调用资源的 Test 方法

此示例调用名为 WindowsProcess的资源的 Test 方法,该方法位于名为 PSDesiredStateConfiguration的模块中。

$SplatParam = @{
    Name       = 'WindowsProcess'
    ModuleName = 'PSDesiredStateConfiguration'
    Method     = 'Test'
    Property   = @{
        Path      = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
        Arguments = ''
    }
}

Invoke-DscResource @SplatParam

参数

-Method

指定此 cmdlet 调用的资源的方法。 此参数的可接受值为:GetSetTest

类型:String
接受的值:Get, Set, Test
Position:2
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-ModuleName

指定要调用的指定 DSC 资源模块的名称。

类型:ModuleSpecification
Position:1
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Name

指定要调用的 DSC 资源的名称。

类型:String
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Property

将哈希表中的资源属性名称和值分别指定为键和值。

类型:Hashtable
Position:3
默认值:None
必需:True
接受管道输入:False
接受通配符:False

输入

String

ModuleSpecification

输出

Object

备注

  • 在 Windows PowerShell 5.1 资源中,除非使用密钥 PsDscRunAsCredential使用用户上下文指定,否则在系统上下文下运行。 在 PowerShell 7.0 中,资源在用户的上下文中运行,并且不再支持 PsDscRunAsCredential。 使用此密钥会导致 cmdlet 引发异常。

  • 从 PowerShell 7 起,Invoke-DscResource 不再支持调用 WMI DSC 资源。 这包括 PSDesiredStateConfiguration中的 文件日志 资源。