2013-12-19 145 views
6

我想使用PowerShell DSC安裝Visual Studio 2013,但我遇到了一些問題,希望你們能爲我解決這個問題。 DSC是否能夠重新啓動節點,然後恢復VS的安裝?有誰知道這個錯誤是什麼意思? 「vs_ultimate.exe已安裝,但指定的ProductId和/或名稱與軟件包詳細信息不匹配」安裝可執行文件與Powershell DSC

有沒有人有更具體的例子試圖用這種方法安裝.exe?

某人如何找出ProductID?

有誰知道ReturnCode的確切語法?

任何幫助將是偉大的!

+0

我對你的所有問題都感興趣,但他們應該是每一個單獨的職位。理想情況下,每個職位應集中在一個客觀問題上。 – julealgon

回答

2

報價Heath Stewart's comment

ProductID等於微星,您可以通過 Orca中打開該MSI(在Windows SDK的一部分)得到,也可以從http://psmsi.codeplex.com安裝 我模塊的產品代碼和得到它,像這樣:

get-msitable <yourmsi.msi> -table Property | where { $_.Property -eq "ProductCode" } 
+0

'安裝模塊MSI'是最近去的方法 – stijn

7

如果您有該軟件已經安裝,你可以使用找到產品ID的系統:

Get-WmiObject -Class Win32_Product | fl Name,Version,InstallDate,InstallSource,PackageName,IdentifyingNumber 

輸出示例:

Name    : Dell OpenManage Systems Management Software (64-Bit) 
Version   : 7.3.0 
InstallDate  : 20131009 
InstallSource  : c:\Installs\OMSA\ 
PackageName  : SysMgmtx64.msi 
IdentifyingNumber : {7CB08DC5-EA02-4076-BA7D-AD7736A3DE71} 

Name    : Microsoft ASP.NET MVC 4 Runtime 
Version   : 4.0.40804.0 
InstallDate  : 20141111 
InstallSource  : C:\windows\TEMP\IXP000.TMP\ 
PackageName  : AspNetMVC4.msi 
IdentifyingNumber : {3FE312D5-B862-40CE-8E4E-A6D8ABF62736} 

哪裏IdentifyingNumber是GUID應該在包裝資源使用。上述戴爾軟件示例:

package OMSA 
{ 
     Name = 'Dell OpenManage Systems Management Software (64-Bit)' 
     ... 
     ProductId = '7CB08DC5-EA02-4076-BA7D-AD7736A3DE71' 
     Arguments = ... 
} 
+1

...並且如果我沒有安裝工作的系統? –

+0

你也可以使用'ft'而不是'fl',這樣你就得到了一個類似輸出的表 – david

0

該錯誤表示您的Package資源的Name或ProductId與msi內容不匹配。

在我的經驗中找到兩個值的最簡單方法是使用PowerShell模塊Carbon

Install-Module Carbon 

然後簡單地從PowerShell控制檯運行:

msi "[path to your msi]" 

注:微星是一個別名獲取微星

例子:

PS C:\Users\gigi\Downloads> msi .\node-v6.10.0-x64.msi 

ProductName ProductVersion Manufacturer  ProductCode       
----------- -------------- ------------  -----------       
Node.js  6.10.0   Node.js Foundation 84f68739-3b44-4d36-abdb-2151a23c9c3d 

複製並粘貼產品名稱和產品代碼到你的DSC包配置,你就完成了。

相關問題