使用Powershell DSC安装可执行文件

use*_*136 7 powershell powershell-4.0 dsc

我正在尝试使用PowerShell DSC安装Visual Studio 2013,但我遇到了一些问题,并希望你们能为我清理它.DSC是否能够重新启动节点然后恢复VS的安装?有谁知道这个错误意味着什么?"已安装vs_ultimate.exe,但指定的ProductId和/或名称与包详细信息不匹配"

有没有人有任何更具体的例子尝试使用此方法安装.exe?

有人如何找出ProductID?

有谁知道ReturnCode的确切语法?

任何帮助都会很棒!

Gre*_*ray 9

如果您的系统已安装该软件,则可以使用以下命令查找ProductID:

Get-WmiObject -Class Win32_Product | fl Name,Version,InstallDate,InstallSource,PackageName,IdentifyingNumber
Run Code Online (Sandbox Code Playgroud)

示例输出:

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}
Run Code Online (Sandbox Code Playgroud)

其中IdentifyingNumber是您应该在包资源中使用的GUID.上述Dell软件示例:

package OMSA
{
        Name = 'Dell OpenManage Systems Management Software (64-Bit)'
        ...
        ProductId = '7CB08DC5-EA02-4076-BA7D-AD7736A3DE71'
        Arguments = ...
}
Run Code Online (Sandbox Code Playgroud)


Dav*_*ner 2

引用希思·斯图尔特的评论

ProductId 是 MSI 的 ProductCode,您可以通过在 Orca(Windows SDK 的一部分)中打开 MSI 来获取它,或者您可以从http://psmsi.codeplex.com安装我的模块并获取它,如下所示:

get-msitable <yourmsi.msi> -table Property | where { $_.Property -eq "ProductCode" }
Run Code Online (Sandbox Code Playgroud)