La instalación de un archivo ejecutable con el recurso del paquete Powershell DSC obtiene el código de retorno 1619
-
20-12-2019 - |
Pregunta
Estoy intentando utilizar el recurso Paquete de Powershell DSC para instalar un archivo ejecutable...El P4V de Perforce para ser específico.Aquí está mi código:
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"
}
}
}
Al ejecutar esto, este es el error que me da 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
De acuerdo a documentación, el código de retorno 1619 significa que no se pudo abrir el paquete MSI.Sin embargo, cuando inicio sesión manualmente en la máquina y ejecuto "\ as\share\p4vinst64.exe /S /V/qn", la instalación funciona perfectamente.
¿Alguien sabe por qué esto está fallando?Alternativamente, ¿alguien puede decirme cómo solucionar este problema?Pegué toda la información de error que obtuve del terminal, mi archivo de registro (p4v_install.log) es un archivo de 0 bytes y no hay eventos en el visor de eventos.¡Ya no sé cómo solucionarlo!
EDITAR:Debo tener en cuenta que también intenté usar el recurso Archivo para copiar el archivo localmente y luego instalarlo desde allí.Lamentablemente, eso tuvo el mismo resultado.
Solución
Daniel sobre el PowerShell.org Forums pudo resolver esto para mí.
La envoltura de configuración de P4V InstallShield coloca el archivo MSI en la ruta incorrecta si se ejecuta como Localsistema .
He logrado desarrollar una configuración que funcione, vea a continuación.La clave es el interruptor de / b aquí que pone el archivo MSI en una ubicación definida.He agregado ALLUSERS=1
para obtener los accesos directos visibles para todos los usuarios y REBOOT=ReallySuppress
para evitar un reinicio repentino (que sucederá de otra manera).
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
}
}
Otros consejos
Bueno, lo que sucede aquí es que el paquete se instala (¡aún no se ha probado con p4vinst64.exe!Entonces, no estoy seguro de por qué dice que el paquete no se puede abrir como error), pero como no especificó un ProductID
valor, la verificación al final de la instalación falla.Ese es el error que estás viendo.El Package
El recurso no es bueno para instalar paquetes .exe o incluso MSI sin ProductID representado como GUID.
Puedes usar el WindowsProcess
recurso en su lugar.