我对 PowerShell DSC 相当陌生,对此的答案可能非常明显,但我在任何地方都找不到类似的问题。
我有一个 PowerShell DSC 复合资源,可以下载一些 MSI 并运行它们。文件下载到的目录在多个地方被引用,所以我试图将它存储在一个变量中。但是,当我开始应用使用此资源的配置时,使用Start-DscConfiguration
的值总是显示为空。
以下是资源示例:
Configuration xExample {
Import-Module -ModuleName 'PSDesiredStateConfiguration'
$path = 'C:\Temp\Installer.msi'
Script Download {
SetScript = {
Invoke-WebRequest -Uri "..." -OutFile $path
}
GetScript = {
@{
Result = $(Test-Path $path)
}
}
TestScript = {
Write-Verbose "Testing $($path)"
Test-Path $path
}
}
}
执行此资源时,详细输出显示“Testing”,并且Test-Path
由于Path
参数为空,调用失败。
我尝试$path
在配置之外声明变量并使用$global
无济于事。
我错过了什么?