【发布时间】:2017-08-28 01:23:53
【问题描述】:
我对 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
}
}
}
执行此资源时,详细输出显示“正在测试”,并且由于 Path 参数为空,对 Test-Path 的调用失败。
我尝试在配置之外声明 $path 变量并使用 $global 无济于事。
我错过了什么?
【问题讨论】: