使用 PowerShell DSC 安装 VS 2019

Posted

技术标签:

【中文标题】使用 PowerShell DSC 安装 VS 2019【英文标题】:Installing VS 2019 with PowerShell DSC 【发布时间】:2020-09-29 05:27:34 【问题描述】:

我正在创建一个 DSC 配置来创建一个模板,以帮助配置和设置我们构建过程中使用的机器。我在安装 Visual Studio 2019 时遇到了问题,其中 DSC 认为安装在实际安装之前已经完成,并且只去检查包以发现它没有安装。这似乎是因为安装程序在下载软件包后退出并使用另一个进程来实际安装所有东西。如果我等到机器上的所有安装程序进程结束,然后重新运行配置,一切都会顺利。

我想知道是否有人有解决此问题的建议。我的一个想法是编写一个与包相同的自定义资源,但它会等待检查 Set 是否成功,直到所有安装程序过程完成。有没有办法在我的定义中调用现有的 Package Get/Set/Test 命令,这样我就不必全部重写它们?

我看过 Chocolatey 包,但无法在这些机器上安装它。

当前包资源:

        Package VS2019Install
        
            DependsOn = '[File]VS2019Copy'
            Name = 'Visual Studio Enterprise 2019'
            Path = 'D:\Install\vs_enterprise__path_name.exe'
            Arguments = '-q --norestart --add Microsoft.VisualStudio.Workload.ManagedDesktop --includeRecommended'
            ProductId = ''
            Ensure = 'Present'
         

谢谢大家。

【问题讨论】:

使用 sysinternals 进程监视器查看启动了哪些程序以及何时退出。在其中一个菜单上查看进程树。 【参考方案1】:

我犯了一个愚蠢的错误,无需编写新资源,只需在安装时使用--wait 标志,直到完成才会退出。一旦你这样做了,它的行为就像任何其他安装一样。

【讨论】:

以上是关于使用 PowerShell DSC 安装 VS 2019的主要内容,如果未能解决你的问题,请参考以下文章

11.PowerShell DSC之安装PowerShell Module

如何使用 Powershell DSC 为 Windows 服务设置自动启动配置

带有 PowerShell 7 的 Azure DSC

关于 Powershell DSC 和节点的新手问题

powershell DSC复制并使用模块运行本地

将 PowerShell DSC 与 ITSM/变更管理集成