在当前版本的 WMF5 上,我尝试使用 Invoke-DSCResource 调用 DSC 资源,如下所示:
$destinationPath="$env:SystemDrive\DirectAccess.txt"
$fileContents="This file is create by Invoke-DscResource"
$result = Invoke-DscResource -Name File -Method Test -Property @{
DestinationPath=$destinationPath
Contents=$fileContents } -Verbose
$result | fl *
但是,我被要求提供“文件”资源的模块名称。
执行 Get-DscResource File 会列出 dsc 资源,但“module”属性为空。如何确定要传递 Invoke-DscResource 的模块?“File”资源实际上位于何处(在哪个模块中)?
答案1
PSDesiredStateConfiguration 是正确的模块(使用文件资源时可以在编译的 mof 中看到)。显然,“文件”是一种奇怪的 DSC 资源。
答案2
DSC 中的文件资源作为 WMI 提供程序实现(唯一的资源)而其余资源则作为 PowerShell 资源实现。Invoke-DscResource 仅适用于 PowerShell 资源,因此您无法在文件上调用它。