Azure DSC - 执行PS脚本

时间:2017-07-12 05:58:38

标签: powershell azure dsc

在下载并解压缩目标节点后,我无法找到有关如何执行我的PowerShell脚本的任何示例。

我使用DSC xRemoteFile下载软件包然后存档以解压缩我的msi和powershell脚本。

我可以使用一个DSC脚本资源来调用我的powershell脚本,你们中的任何人都可以为我提供任何示例吗?我的PS脚本和MSI位于C:\ Installations。

示例:

Script install
{
    GetScript = {
    }
    SetScript = {
    }
    TestScript = {
    }
}

2 个答案:

答案 0 :(得分:2)

首先,你应该使用脚本扩展,它将下载文件并执行它。

在您的情况下,您只需编写powershell代码来执行脚本:

. .\script.ps1

你只需要放入适当的路径

答案 1 :(得分:1)

发生了类似的问题,这就是我们团队解决该问题的方式:

xRemoteFile DownloadHelloWorldScript
{
    DestinationPath = "c:\Temp\Hello-World.ps1"
    Uri = "https://<account>.blob.core.windows.net/public/Temp/Hello-World.ps1"
    MatchSource = $false
}

Script RunHelloWorldScript
{
    SetScript = { . "c:\Temp\Hello-World.ps1" }
    TestScript = { $false } 
    GetScript = { @{ Result = (Get-Content "c:\Temp\Hello-World.ps1") } }
    DependsOn = "[xRemoteFile]DownloadHelloWorldScript"
}

当我使用TestScript = { Test-Path "c:\Temp\Hello-World.ps1" }而不是{ $false }时,DSC会看到文件已下载,并跳过了运行脚本的过程。我想我最终将用一些东西代替它来进行检查,以验证以前的脚本是否成功运行。