共用方式為


Invoke-DscResource

執行指定之 PowerShell Desired State Configuration (DSC) 資源的方法。

Syntax

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

Description

Invoke-DscResource Cmdlet 會執行指定之 PowerShell Desired State Configuration (DSC) 資源的方法。

此 Cmdlet 會直接叫用 DSC 資源,而不需建立設定文件。 使用此 Cmdlet,組態管理產品可以使用 DSC 資源來管理 Windows 或 Linux。

此 Cmdlet 不適用於複合資源。 複合資源是參數化的組態。 使用複合資源需要 LCM。

注意

在 PSDesiredStateConfiguration 2.0.6 之前,在 PowerShell 7 中使用 Invoke-DscResource 需要啟用 PowerShell 實驗性功能。 若要在 2.0.0 到 2.0.5 版中使用 Cmdlet,您必須使用下列命令加以啟用。

Enable-ExperimentalFeature PSDesiredStateConfiguration.InvokeDscResource

範例

範例 1:藉由指定資源的強制屬性叫用 Set 方法

這個範例會叫用名為 WindowsProcess 的資源 Set 方法,並提供必要的 PathArguments 屬性來啟動指定的 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

Type:String
Accepted values:Get, Set, Test
Position:2
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ModuleName

指定要叫用之指定 DSC 資源的模組名稱。

Type:ModuleSpecification
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

指定要叫用的 DSC 資源名稱。

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Property

在雜湊表中指定資源的屬性名稱與其值,分別作為索引鍵和值。

Type:Hashtable
Position:3
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

輸入

String

ModuleSpecification

輸出

Object

備註

  • 在 Windows PowerShell 5.1 資源是在系統內容下執行,除非使用索引鍵 PsDscRunAsCredential 來指定用戶內容。 在 PowerShell 7.0 中,資源會在使用者的內容中執行,且不再支援 PsDscRunAsCredential 。 使用此金鑰會導致 Cmdlet 擲回例外狀況。

  • 自 PowerShell 7 起, Invoke-DscResource 不再支援叫用 WMI DSC 資源。 這包括 PSDesiredStateConfiguration 中的檔案記錄資源。