2013-12-19 12 views
6

Я пытаюсь установить Visual Studio 2013 с помощью PowerShell DSC, но у меня есть несколько проблем и надеюсь, что вы, ребята, сможете это очистить для меня. Способна ли DSC перезагрузить узел, а затем возобновить установку VS? Кто-нибудь знает, что означает эта ошибка? «vs_ultimate.exe был установлен, но указанный ProductId и/или имя не соответствуют данным пакета»Установка исполняемых файлов с помощью Powershell DSC

Есть ли у кого-нибудь более конкретные примеры попыток установить .exe с помощью этого метода?

Как кто-то узнает ProductID?

Кто-нибудь знает точный синтаксис ReturnCode?

Любая помощь будет замечательной!

+0

Меня интересуют все ваши вопросы, но они должны быть отдельными сообщениями. Каждый пост идеально должен сосредоточиться на одном объективном вопросе. – julealgon

ответ

2

Цитирование Heath Stewart's comment:

PRODUCTID является ProductCode от MSI, который вы можете получить, открывающего MSI в Orca (часть Windows SDK), или вы можете установить мой модуль из http://psmsi.codeplex.com и получить его так:

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

'Install-Module MSI' - это путь в эти дни – stijn

7

Если у вас есть система, где программное обеспечение уже установлено, вы можете найти ProductID с помощью:

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, вы должны использовать в пакете ресурсов. Пример для указанного выше программного обеспечения Dell:

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

... и если у меня нет системы с рабочей установкой? –

+0

Вы также можете использовать 'ft' вместо' fl', чтобы получить таблицу типа output – david

0

ошибка означает, что у вас есть несоответствие имени или ProductId вашего ресурса пакета от содержания Msi.

Самый простой способ в моем опыте найти оба значения - использовать модуль powershell Carbon.

Install-Module Carbon 

Затем просто запустите из Powershell консоли:

msi "[path to your msi]" 

Примечание: MSI является псевдонимом для Get-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 

Скопируйте и вставьте ProductName и ProductCode к вашей конфигурации пакета DSC, и все готово.