Azure DSC 扩展。如何使用存档中的其他项目

标签 azure powershell dsc

我正在尝试对 Azure VM 使用 DSC 扩展。我已经使用主 PS 文件创建了 zip 存档,并在主存档中包含了附加存档,以及几个附加文件 enter image description here 应用 DSC 扩展后,我在 DSC 目录中看到我的附加存档 enter image description here

我的问题是,如何获取该路径 C:\Packages\Plugins\Microsoft.Powershell.DSC\2.83.5\DSCWork\IISInstall.0 以便将来在我的 DSC 脚本中使用?我试图找到任何包含该路径的环境变量?但徒劳。 也许你们知道如何管理它?我很感激任何帮助。谢谢大家

最佳答案

我已经在 PowerShell 中创建了 DSC 扩展 .ps1 文件,并将 iis Install.ps1 脚本放置在指定的虚拟机上,它成功执行,如下所示:

$resourceGroup = 'dscVmDemo'
$vmName = 'myVM'
$storageName = 'demostorage'
#Publish the configuration script to user storage
Publish-AzVMDscConfiguration -ConfigurationPath .\iisInstall.ps1 -ResourceGroupName $resourceGroup -StorageAccountName $storageName -force
#Set the VM to run the DSC configuration
Set-AzVMDscExtension -Version '2.80' -ResourceGroupName $resourceGroup -VMName $vmName -ArchiveStorageAccountName $storageName -ArchiveBlobName 'iisInstall.ps1.zip' -AutoUpdate -ConfigurationName 'IISInstall'

enter image description here

存储帐户中自动上传的文件:

enter image description here

在您的场景中,要在 DSC 脚本中获取该路径,请使用 $env:TEMP 环境变量。名称以“DSC”开头的临时文件夹由 DSC 扩展在 $env:TEMP 目录中创建。您可以在此文件夹中保存 DSC 脚本所需的文件。

$DSCWorkPath = Join-Path $env:TEMP "DSC" -ChildPath "Microsoft.Powershell.DSC\2.83.5\DSCWork\IISInstall.0"

如果您对 DSC 脚本中的特定版本号或子目录进行硬编码,则值将来可能会发生变化。

您可以使用以下脚本动态解析 DSC 工作目录路径:

$extensionPath = $env:ProgramData + '\Packages\Plugins\Microsoft.Powershell.DSC\'
$versionFolders = Get-ChildItem -Path $extensionPath | Sort-Object -Property Name -Descending
$latestVersionFolder = $versionFolders[0].Name
$workingDirectory = Join-Path -Path $extensionPath -ChildPath ($latestVersionFolder + '\DSCWork\IISInstall.0')

这样,即使版本号发生变化,您的脚本也会自动使用可用的最新版本。

引用:

Desired State Configuration for Azure overview - Azure Virtual Machines | Microsoft Learn

关于Azure DSC 扩展。如何使用存档中的其他项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76867248/

相关文章:

azure - 为什么 Azure DocumentDB 有两个键(主键和辅助键)?

powershell - 从一个 Azure 自动化 Runbook 调用另一个 Azure 自动化 Runbook 时出错

PowerShell DSC 拉和推模式一起

azure - Azure Automation DSC 是否尊重 Service Fabric 更新域?

powershell - Windows Server 2012R2 Core - 无法运行 powershell DSC

c# - 在 Azure 计算 UI 中,为什么 Trace.WriteLine 不转到辅助角色的控制台窗口? 2.2 软件开发工具包

.net - 如何将 Azure 联合与 WWF 持久性表 ( SqlWorkflowInstanceStore ) 结合使用?

windows - 在 Windows Server 2016 上使用 native tar PowerShell cmdlet

html - 从输出中过滤掉某些事件日志的问题

azure - 使用 powershell 重置 Azure 服务主体的客户端 key