如何使用 PowerShell DSC 安装 MSI 包?


要使用 DSC 安装 MSI 包,我们需要使用 DSC 资源“Package”。让我们看看此资源有哪些可用的属性。

PS C:\> Get-DscResource -Name Package | Select -ExpandProperty Properties

Name PropertyType IsMandatory Values
---- ------------ ----------- ------
Name [string] True {}
Path [string] True {}
ProductId [string] True {}
Arguments [string] False {}
Credential [PSCredential] False {}
DependsOn [string[]] False {}
Ensure [string] False {Absent, Present}
LogPath [string] False {}
PsDscRunAsCredential [PSCredential] False {}
ReturnCode [UInt32[]] False {}

名称、路径ProductID参数对于此 DSC 资源是必需的。

获取上述详细信息的最佳方法是在测试机器上安装示例包,然后获取详细信息。我们将在这里使用安装在一台计算机上的 7Zip MSI 包。

Get-Package 7-zip* | fl *

从以上输出,我们可以获取安装后包的名称,ProductID (即 ProductCode)

Configuration Install7zip{
   Node @("LabMachine2k16","AD"){
      Package 7zip{
         Name = '7-Zip 19.00 (x64 edition)'
         ProductId = '23170F69-40C1-2702-1900-000001000000'
         Path = '\ad\shared\7z1900-x64.msi'
         Ensure = 'Present'
      }
   }
}

在以上示例中,源包位于源位置,我们希望在两个节点上安装 7zip。

为了在特定位置生成 MOF 文件以便以后可以使用它们启动配置,

Install7zip -OutputPath C:\Temp\7zipInstall -Verbose

输出

生成 MOF 文件后,我们可以启动配置以应用 DSC,

Start-DscConfiguration -Path C:\Temp\7zipInstall -Wait -Force -Verbose

上述命令成功运行后,使用以下命令检查配置是否已应用,

Test-DscConfiguration -Path C:\Temp\7zipInstall

您应该会得到如下输出,显示两个服务器都处于所需状态,这意味着 MSI 包已安装。

如果InDesiredState属性为假,则表示服务器错过了配置。

更新于: 2021年4月28日

2K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.