Установка exe с помощью ресурса пакета Powershell DSC получает код возврата 1619

Я пытаюсь использовать ресурс пакета Powershell DSC для установки exe... P4v Perforce, чтобы быть конкретным. Вот мой код:

Configuration PerforceMachine
{
    Node "SERVERNAME"
    {
        Package P4V
        {
            Ensure = "Present"
            Name = "Perforce Visual Components"
            Path = "nassharep4vinst64.exe"
            ProductId = ''
            Arguments = "/S /V/qn" # args for silent mode
            LogPath = "$env:ProgramDatap4v_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 не может быть открыт. Однако, когда я вручную вхожу в систему на машине и запускаю " nassharep4vinst64.exe /S/V / qn", установка работает безупречно.

кто-нибудь знает, почему это провал? В качестве альтернативы, может ли кто-нибудь сказать мне, как устранить это? Я вставил всю информацию об ошибке, которую я получил от терминала, мой файл журнала (p4v_install.log) - это 0-байтовый файл, и в средстве просмотра событий нет событий. Я не знаю, как устранить это дальше!

редактировать: я должен отметить, что я также попытался использовать файловый ресурс для копирования файла локально, а затем установить его оттуда. К сожалению, что встретились с тем же результатом.

2 ответов


Даниэль в Powershell.org форумы смогли понять это для меня.

оболочка установки P4v InstallShield помещает MSI-файл в неправильный путь, если вы выполняете как LocalSystem.

мне удалось разработать конфигурацию, которая работает, см. ниже. Ключ-это переключатель /b, который помещает файл MSI в определенное место. Я добавил ALLUSERS=1, чтобы получить ярлыки, видимые всем пользователям, и перезагрузить=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
    }
} 

Ну, что происходит здесь, так это то, что пакет устанавливается (не тестируется с p4vinst64.ехе еще! Итак, не уверен, почему он говорит, что пакет не может быть открыт как ошибка), но так как вы не указали ProductID значение, проверка в конце установки не выполняется. Это ошибка, которую вы видите. The Package ресурс не подходит для установки .exe-пакеты или даже MSIs без ProductID, представленного как GUID.

можно использовать WindowsProcess ресурс вместо этого.