Установка 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
ресурс вместо этого.