SW-Paketierung: VLC Media Player

By | 3. Dezember 2019

Den bekannten Mediaplayer VLC bekommt man als msi direkt von der Quelle: https://download.videolan.org/pub/videolan/vlc/last/win64/

Zur Sicherheit entferne ich bestehende VLC Installationen, auch wenn dies warscheinlich nicht mehr nötig ist (ich hatte in der Vergangenheit schlechte Erfahrungen gemacht):

 

Danach wird die MSI ganz normal installiert (ich entferne hier noch den Desktop-Link):

 

Nun kommt der interessante Teil: VLC fragt beim Start nach Privatsphären- und Netzwerkzugriff-Regeln, die der Benutzer bestätigen oder ablehnen kann:

 

Um dies zu umgehen (und dem Benutzer auch weitere Einstellungen mitzugeben), geht man über die Konfigurationsdatei, die von VLC in jedem Profil abgelegt wird. Diese befindet sich in „C:\Users\<Benutzername>\AppData\Roaming\vlc“ und heisst „vlcrc“ (ohne Dateiendung). Man kann unter einem bestehenden Benutzer den VLC vorkonfigurieren und die Datei bei der Verteilung einfach in die jeweiligen Benutzerprofile kopieren.

Wenn man die Datei im Editor öffnet und ein bisschen sucht, findet man auch die oben angesprochenen Einstellungen:

Ask for network policy at start (boolesch)
qt-privacy-ask=0

Activate the updates availability notification (boolesch)
qt-updates-notif=0

Ich kopiere eine von mir vorgefertigte Datei bei der Verteilung ins Profil (Achtung: Muss mit Benutzerrechten ausgeführt werden):

 

Mit Prüfung der Neustarts und Fehlerauswertung sieht das Ganze dann so aus:

 

Und in Scriptform:

!Variablen initialisieren
Set(‚Returncode‘,’0′)
!
!
!Prüfen ob Reboot nötig
If RegKeyExistsEx(‚HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending‘,reUseX64Hive) or RegKeyExistsEx(‚HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired‘,reUseX64Hive) or RegValueExistsEx(‚HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager‘,’PendingFileRenameOperations‘,reUseX64Hive)
System_Reset/?
ExitProcEx(Undone,’Installation kann erst nach einem Neustart erfolgen‘)
!
If Exist(‚%ProgramFilesDir%\VideoLAN\VLC\uninstall.exe‘)
RunAsEx(‚%ProgramFilesDir%\VideoLAN\VLC\uninstall.exe‘,’/S‘,“,“,’5′,“,raUseLocalSystem+WaitForExecution+raHideWindow+UndoneContinueParentScript)/TW
!
!Installation
MSIInstallProduct(‚.\extern$\vlc-3.0.8-win64.msi‘,’DEBUG‘,MsiInstMach)
params:
EndProc/TS
RemoveLink(‚VLC media player‘,“,’Desktop\‘,cgAsCommon)/TS
Copy(‚.\extern$\config*.‚,’%USERPROFILE%\AppData\Roaming\vlc*.‚)/S/TU
If not %returncode%=’0′
If %returncode%=’3010′
System_Reset/?/TS
ExitProcEx(Done,’Installation of %CurrentPackage.Object.Name% sucessfully but reboot required‘)
ExitProcEx(Undone,’The execution of %CurrentPackage.Object.Name% with Error Code %returncode%‘)
!
!Deinstallation
: $BeginUninstallScript
!Deinstallation der Anwendung
RunAsEx(‚%ProgramFilesDir%\VideoLAN\VLC\uninstall.exe‘,’/S‘,“,“,’15‘,’returncode‘,raUseLocalSystem+WaitForExecution+raHideWindow+UndoneContinueParentScript)/TW
If not %returncode%=’0′
If %returncode%=’3010′
System_Reset/?/TS
ExitProcEx(Done,’Installation of %CurrentPackage.Object.Name% sucessfully but reboot required‘)
ExitProcEx(Failed,’The execution of %CurrentPackage.Object.Name% with Error Code %returncode%‘)

Schreibe einen Kommentar