Azure DSC -执行PS脚本

mitkmikd  于 2023-03-09  发布在  其他
关注(0)|答案(3)|浏览(162)

在目标节点上下载并解压缩powershell脚本后,我无法找到任何有关如何执行该脚本的示例。
我使用DSC xRemoteFile下载软件包,然后存档以解压缩我的msi和powershell脚本。
有一个DSC脚本资源,我可以用来调用我的powershell脚本,你们中的任何人可以提供任何例子,我开始了吗?我的PS脚本和MSI位于C:\Installations。
示例:

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

wydwbb8l1#

首先,你应该使用脚本扩展,它会下载文件并执行它。
在您的示例中,您只需编写powershell代码来执行脚本:

. .\script.ps1

你只需要走上正确的道路

uqxowvwt

uqxowvwt2#

遇到了类似的问题,我们的团队是这样解决这个问题的:

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会看到文件已经下载,并跳过脚本的运行,我想我最终会用一些检查来验证脚本先前是否成功运行的东西来代替它。

ubby3x7f

ubby3x7f3#

这对我很有效

Configuration Deploy
{
    Import-DscResource -ModuleName 'PSDesiredStateConfiguration'
    Import-Dscresource -ModuleName 'PowerShellModule' 
    Import-DscResource -ModuleName 'Az.Storage'

    Node 'localhost'
    {
       
    # SCRIPT RESOURCE TO DOWNLOAD FILE FROM STORAGE ACCOUNT
        Script DownloadFile{
         GetScript = {""}
         SetScript = {

            $staccname = "strdsctest234r"
            $dest = "C:\Temp"
            $SasToken= "sp=r3D"

            $Context = New-AzStorageContext -StorageAccountName $staccname -SasToken $SasToken
            $Context | Get-AzStorageBlob -Container "test"
            $blobs = Get-AzStorageBlob -Container "test"  -Context $Context

            # Download each blob from container into destination directory
            $blobs | Get-AzStorageBlobContent -Destination $dest -Force
         }
         TestScript = {$false}
      }}}
#Deploy -OutputPath C:\Temp\Deploy
#Start-DscConfiguration -path C:\Temp\Deploy -wait -Verbose -Force

相关问题