使用Powershell DSC包资源安装exe时,返回代码1619

使用Powershell DSC包资源安装exe时,返回代码1619,powershell,windows-installer,p4v,dsc,Powershell,Windows Installer,P4v,Dsc,我正在尝试使用Powershell DSC的软件包资源安装exe。。。Perforce的P4V需具体说明。这是我的密码: Configuration PerforceMachine { Node "SERVERNAME" { Package P4V { Ensure = "Present" Name = "Perforce Visual Components" Path = "

我正在尝试使用Powershell DSC的软件包资源安装exe。。。Perforce的P4V需具体说明。这是我的密码:

Configuration PerforceMachine
{
    Node "SERVERNAME"
    {
        Package P4V
        {
            Ensure = "Present"
            Name = "Perforce Visual Components"
            Path = "\\nas\share\p4vinst64.exe"
            ProductId = ''
            Arguments = "/S /V/qn" # args for silent mode
            LogPath = "$env:ProgramData\p4v_install.log"
        }
    }
}
运行此操作时,这是Powershell给我的错误:

PowerShell provider MSFT_PackageResource failed to execute Set-TargetResource functionality with error message: The return code 1619 was not expected. Configuration is likely not
correct
    + CategoryInfo          : InvalidOperation: (:) [], CimException
    + FullyQualifiedErrorId : ProviderOperationExecutionFailure
    + PSComputerName        : SERVERNAME
根据,返回代码1619表示无法打开MSI包。但是,当我手动登录到计算机并运行“\\nas\share\p4vinst64.exe/S/V/qn”时,安装工作正常

有人知道为什么会失败吗?或者,有人能告诉我如何解决这个问题吗?我粘贴了从终端获得的所有错误信息,我的日志文件(p4v_install.log)是一个0字节的文件,事件查看器中没有事件。我不知道如何进一步排除故障


编辑:我应该注意,我还尝试使用文件资源在本地复制文件,然后从那里安装。遗憾的是,这得到了相同的结果。

好吧,这里发生的是安装了包(尚未使用p4vinst64.exe进行测试!因此,不确定为什么它说包无法作为错误打开),但由于您没有指定
ProductID
值,安装结束时的验证失败。这就是你看到的错误。
资源不适合安装.exe包,甚至不使用ProductID表示为GUID的MSI

您可以使用
WindowsProcess
资源来代替。

论坛上的Daniel能够帮我解决这个问题

如果您作为LocalSystem执行,P4V InstallShield安装包装器会将MSI文件放入错误路径

我已经成功地开发了一个有效的配置,请参见下文。这里的关键是/b开关,它将MSI文件放入定义的位置。我添加了
ALLUSERS=1
以使所有用户都能看到快捷方式,并添加了
REBOOT=ReallySuppress
以避免突然重启(否则会发生)


不幸的是,我没有答案给你,但我想建议你也在论坛上写下你的问题。如果你在这里没有得到答案,也许那里的人可以帮助你,你可以在这里写下你自己问题的答案。我在那里贴了同样的问题。只要我找到答案,我就会更新这两个地方!
Configuration PerforceMachine
{
    Package P4V
    {
        Ensure = "Present"
        Name = "Perforce Visual Components"
        Path = "C:\My\p4vinst64.exe"
        ProductId = ''
        Arguments = '/b"C:\Windows\Temp\PerforceClient" /S /V"/qn ALLUSERS=1 REBOOT=ReallySuppress"' # args for silent mode
    }
}