Installazione di un exe con PowerShell DSC Package Resource ottiene il codice di ritorno 1619
-
20-12-2019 - |
Domanda
Sto cercando di utilizzare la risorsa del pacchetto di PowerShell DSC per installare un exe ... La P4V di Perforce è specifica. Ecco il mio codice:
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"
}
}
}
.
Quando si esegue questo, questo è l'errore che PowerShell mi dà:
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
.
Secondo Documentazione , ritorno codice 1619 Significa che il pacchetto MSI non può essere aperto. Tuttavia, quando accedo manualmente la macchina e eseguo "
Qualcuno sa perché questo è fallito? In alternativa, qualcuno può dirmi come risolvere questo problema? Ho incollato tutte le informazioni sull'errore che ho ottenuto dal terminale, il mio file di registro (p4v_install.log) è un file 0 byte e non ci sono eventi nel visualizzatore di eventi. Non so come risolverlo ulteriormente!
Modifica : Devo notare che ho anche provato a utilizzare la risorsa file per copiare il file localmente, quindi installarlo da lì. Purtroppo, questo ha incontrato lo stesso risultato.
Soluzione
Daniel oltre a PowerShell.org Forums è stato in grado di capirlo per me.
L'involucro di configurazione P4V InstallShield mette il file MSI nel percorso errato se si esegue come localsystem .
Sono riuscito a sviluppare una configurazione che funziona, vedi sotto.La chiave è l'interruttore / B qui che mette il file MSI in una posizione definita.Ho aggiunto ALLUSERS=1
per ottenere le scorciatoie visibili a tutti gli utenti e REBOOT=ReallySuppress
per evitare un riavvio improvviso (che accadrà altrimenti).
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
}
}
. Altri suggerimenti
Bene, cosa succede qui è che il pacchetto viene installato (non testato con P4VinSt64.exe ancora! Quindi, non è sicuro del motivo per cui dice che il pacchetto non può essere aperto come errore) ma dal momento che non hai specificato un valore ProductID
, la verificaAlla fine dell'installazione fallisce.Questo è l'errore che stai vedendo.La risorsa Package
non è utile per l'installazione di pacchetti .exe o addirittura MSIS senza productID rappresentato come GUID.
È possibile utilizzare invece la risorsa WindowsProcess
.