1. 程式人生 > >[32] Window PowerShell DSC 學習系列----使用DSC Package安裝時,如何獲取Product ID?

[32] Window PowerShell DSC 學習系列----使用DSC Package安裝時,如何獲取Product ID?

DSC的自身提供Package的DSC資源去安裝msi格式的檔案。 剛好筆者需要自動安裝Chef的客戶端,其就是一個msi格式的檔案。但是有點複雜和煩人的是其需要使用這提供一個Product ID,其具體格式參考如下:
Package [string] #ResourceName
{
Name = [string]
Path = [string]
ProductId = [string]
[ Arguments = [string] ]
[ Credential = [PSCredential] ]
[ Ensure = [string] { Absent | Present } ]
[ LogPath = [string] ]
[ DependsOn = [string[]] ]
[ ReturnCode = [UInt32[]] ]
}
如果要安裝Chef的客戶端,其DSC的Configuration檔案應該如下:

這裡寫圖片描述

從上面看我們需要一個ProductID,但是目前沒有直接的方法可以獲取這個Product ID,一個的變通的方法是先安裝上,然後通過Get-WmiObject Win32_Product 命令進行檢視。
比如,

PS C:\Users\chancein007> Get-WmiObject Win32_Product -Filter “name like ‘%Chef%’”| Format-Table IdentifyingNumber, Name, Version

IdentifyingNumber Name Version
—————– —- ——-
{1EF1B367-A04C-4091-841C-8BCE15378EC0} Chef Client v13.1.31 13.1.31.1
{D4D32DC9-9CAF-46B6-AC52-376049930910} Chef Development Kit v0.17.17 0.17.17.1

而且這個Product ID是不會變化的,就是說這個安裝包,裝在任何一臺機器上,其Product ID都是一樣的,只要安裝包一樣。