userspace:msi_to_opsi
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| userspace:msi_to_opsi [2013/07/30 08:53] – created qx23 | userspace:msi_to_opsi [2021/08/23 10:37] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 9: | Line 9: | ||
| Dieses Powershellscript extrahiert informationen aus MSI Paketen und erstellt automatisiert anhand eines Templates fertige Opsiskripte inkl. control-Datei und der passenden Verzeichnisstruktur um die fertigen Daten auf den Opsiserver kopieren zu können. | Dieses Powershellscript extrahiert informationen aus MSI Paketen und erstellt automatisiert anhand eines Templates fertige Opsiskripte inkl. control-Datei und der passenden Verzeichnisstruktur um die fertigen Daten auf den Opsiserver kopieren zu können. | ||
| - | '' | + | Verzeichnisstruktur |
| + | < | ||
| + | Basefolder | ||
| + | └── | ||
| + | ├── Pool | ||
| + | └── Templates | ||
| + | ├── CLIENT_DATA | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | └── OPSI | ||
| + | └── control | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== msi_to_opsi.ps1 ===== | ||
| < | < | ||
| # Version: 0.1 | # Version: 0.1 | ||
| Line 199: | Line 217: | ||
| } | } | ||
| + | </ | ||
| + | |||
| + | ===== setup.ins ===== | ||
| + | |||
| + | <code winst> | ||
| + | [Actions] | ||
| + | requiredWinstVersion >= " | ||
| + | |||
| + | DefVar $MsiId$ | ||
| + | DefVar $UninstallProgram$ | ||
| + | DefVar $LogDir$ | ||
| + | DefVar $ProductId$ | ||
| + | DefVar $MinimumSpace$ | ||
| + | DefVar $InstallDir$ | ||
| + | DefVar $InstallProg$ | ||
| + | DefVar $ExitCode$ | ||
| + | DefVar $UninstCMD$ | ||
| + | DefVar $InstCMD$ | ||
| + | DefVar $DisplayName$ | ||
| + | DefVar $ProductName$ | ||
| + | |||
| + | Set $LogDir$ = " | ||
| + | |||
| + | ; ---------------------------------------------------------------- | ||
| + | ; - Please edit the following values | ||
| + | ; ---------------------------------------------------------------- | ||
| + | ; | ||
| + | ; therefore please: only lower letters, no umlauts, | ||
| + | ; no white space use ' | ||
| + | Set $ProductId$ | ||
| + | Set $ProductName$ | ||
| + | Set $MinimumSpace$ | ||
| + | |||
| + | Set $InstallDir$ | ||
| + | Set $InstallProg$ | ||
| + | Set $UninstallProgram$ = " | ||
| + | Set $UninstCMD$ = " PSVAR_UNINSTALLPARAMETER" | ||
| + | Set $InstCMD$ = " PSVAR_INSTALLPARAMETER" | ||
| + | Set $MsiId$ = " | ||
| + | |||
| + | ; ---------------------------------------------------------------- | ||
| + | |||
| + | if not(HasMinimumSpace (" | ||
| + | LogError "Not enough space on %SystemDrive%, | ||
| + | isFatalError | ||
| + | ; Stop process and set installation status to failed | ||
| + | else | ||
| + | |||
| + | if FileExists(" | ||
| + | comment "Start uninstall sub section" | ||
| + | Sub " | ||
| + | endif | ||
| + | |||
| + | Message " | ||
| + | Winbatch_install | ||
| + | sub %scriptpath%\check_exitcode\check_msi-exitcode.ins | ||
| + | endif | ||
| + | |||
| + | [Winbatch_install] | ||
| + | msiexec /i $InstallProg$ $InstCMD$ | ||
| + | </ | ||
| + | |||
| + | === uninstall.ins === | ||
| + | |||
| + | <code winst> | ||
| + | [Actions] | ||
| + | requiredWinstVersion >= " | ||
| + | |||
| + | DefVar $MsiId$ | ||
| + | DefVar $UninstallProgram$ | ||
| + | DefVar $LogDir$ | ||
| + | DefVar $ProductId$ | ||
| + | DefVar $MinimumSpace$ | ||
| + | DefVar $InstallDir$ | ||
| + | DefVar $InstallProg$ | ||
| + | DefVar $ExitCode$ | ||
| + | DefVar $UninstCMD$ | ||
| + | DefVar $InstCMD$ | ||
| + | DefVar $DisplayName$ | ||
| + | DefVar $ProductName$ | ||
| + | |||
| + | Set $LogDir$ = " | ||
| + | |||
| + | ; ---------------------------------------------------------------- | ||
| + | ; - Please edit the following values | ||
| + | ; ---------------------------------------------------------------- | ||
| + | ; | ||
| + | ; therefore please: only lower letters, no umlauts, | ||
| + | ; no white space use ' | ||
| + | Set $ProductId$ | ||
| + | Set $ProductName$ | ||
| + | Set $MinimumSpace$ | ||
| + | |||
| + | Set $InstallDir$ | ||
| + | Set $InstallProg$ | ||
| + | Set $UninstallProgram$ = " | ||
| + | Set $UninstCMD$ = " PSVAR_UNINSTALLPARAMETER" | ||
| + | Set $InstCMD$ = " PSVAR_INSTALLPARAMETER" | ||
| + | Set $MsiId$ = " | ||
| + | |||
| + | |||
| + | ; ---------------------------------------------------------------- | ||
| + | |||
| + | Message " | ||
| + | |||
| + | if FileExists(" | ||
| + | comment "Start uninstall sub section" | ||
| + | Sub " | ||
| + | else | ||
| + | Log " | ||
| + | Message " | ||
| + | endif | ||
| + | </ | ||
| + | |||
| + | ===== delsub.ins ===== | ||
| + | |||
| + | <code winst> | ||
| + | Set $DisplayName$ = GetRegistrystringvalue32(" | ||
| + | if not ($DisplayName$ = "" | ||
| + | comment "MSI ID found in Registry, starting uninstall" | ||
| + | Message " | ||
| + | set $UninstallProgram$ = " | ||
| + | Winbatch_Uninstall | ||
| + | sub %scriptpath%\check_exitcode\check_msi-exitcode.ins | ||
| + | else | ||
| + | comment " | ||
| + | endif | ||
| + | |||
| + | Set $DisplayName$ = GetRegistrystringvalue64(" | ||
| + | if not ($DisplayName$ = "" | ||
| + | comment "MSI ID found in Registry, starting uninstall" | ||
| + | Message " | ||
| + | set $UninstallProgram$ = " | ||
| + | Winbatch_Uninstall | ||
| + | sub %scriptpath%\check_exitcode\check_msi-exitcode.ins | ||
| + | else | ||
| + | comment " | ||
| + | endif | ||
| + | |||
| + | [Winbatch_uninstall] | ||
| + | " | ||
| + | </ | ||
| + | |||
| + | ===== control ===== | ||
| + | |||
| + | <code winst> | ||
| + | [Package] | ||
| + | version: PSVAR_PACKAGEVERSION | ||
| + | depends: | ||
| + | incremental: | ||
| + | |||
| + | [Product] | ||
| + | type: localboot | ||
| + | id: PSVAR_PACKAGENAME | ||
| + | name: PSVAR_NAME | ||
| + | description: | ||
| + | advice: | ||
| + | version: PSVAR_PROGRAMMVERSION | ||
| + | priority: PSVAR_PRIORITY | ||
| + | licenseRequired: | ||
| + | productClasses: | ||
| + | setupScript: | ||
| + | uninstallScript: | ||
| + | updateScript: | ||
| + | alwaysScript: | ||
| + | onceScript: | ||
| + | customScript: | ||
| + | userLoginScript: | ||
| + | </ | ||
| + | |||
| + | ===== check_msi-exitcode.ins ===== | ||
| + | <code winst> | ||
| + | ;Den ExitCode des Installers abfragen | ||
| + | set $ExitCode$ = getLastExitCode | ||
| + | |||
| + | ;Loglevel anpassen | ||
| + | setLogLevel = 4 | ||
| + | | ||
| + | ;Den ExitCode auswerten | ||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | | ||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | comment " | ||
| + | setLogLevel = 4 | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | comment " | ||
| + | setLogLevel = 4 | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | comment " | ||
| + | setLogLevel = 4 | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | else | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | |||
| + | if ($ExitCode$ = " | ||
| + | setLogLevel = 5 | ||
| + | logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | endif | ||
| + | |||
| + | ;Loglevel anpassen | ||
| + | setLogLevel = 6 | ||
| </ | </ | ||
userspace/msi_to_opsi.1375167185.txt.gz · Last modified: (external edit)
