Vor längerer Zeit hatte ich hier kurz gezeigt wie man den VLC auf alle Rechner in einem Netzwerk bekommen kann ohne das die Benutzer gestört werden.
In der Zwischenzeit gibt es die Version 2.0.0 des VLC und es ist an der Zeit umzustellen und den neuen VLC im Netzwerk zu verteilen.
Die Voraussetzungen sind geblieben:
- Benutzer haben keine administrativen Rechte.
- Der VLC media player soll “silent” auf die Rechner im Domänen-Netzwerk installiert werden. Die Benutzer sollen nicht in die Installation eingreifen können/müssen/dürfen.
- Beim ersten Programmstart des VLC erscheint überlicherweise ein Dialog der den Benutzer auffordert Einstellungen zu Update-Benachrichtigungen und Privacy-Einstellungen zu machen. Da Updates immer durch einen Mitarbeiter der IT-Abteilung installiert werden und die Benutzer sowieso keine administrativen Rechte haben, soll dieser Dialog komplett verschwinden.
- Es soll kein Desktop-Symbol in %PUBLIC&\Desktop oder %ALLUSERSPROFILE%\Desktop angelegt werden
- Nicht alle Dateitypen sollen mit VLC verknüpft werden da DRM geschützte Mediendateien nicht von VLC behandelt werden können.
- Das Mozilla-Plugin für VLC soll aktiviert werden.
- Als Sprache soll immer deutsch verwendet werden.
- Updates sollen ohne Benutzernachfrage wie vom Administrator definiert installiert werden.
- Boardmittel von Windows 7 und Windows XP sowie Windows Server 2008 R2 müssen für die Verteilung der Software ausreichen.
Man benötigt:
- Das Nullsoft Scriptable Installer System (NSIS)
- 7-Zip oder ein anderes Packprogramm welches mit .7z Archiven umgehen kann.
- Einen Texteditor. Ich bevorzuge Notepad++, aber jeder andere Editor wie z.B. das Notepad reicht vollkommen aus.
- VLC media player für Windows als .7z Archiv.
Ich gehe davon aus das NSIS, 7-Zip und ein Editor installiert sind. Alle nachfolgenden Arbeiten nehme ich unter C:\TEMP vor.
Schritt 1: Vorarbeit
Das .7z Archiv des VLC entpackt man nach C:\TEMP\vlc-2.0.0.-win32. In dem Verzeichnis befindet sich die Datei vlc.win32.nsi die man mit seinem Lieblingseditor öffnet (in meinem Fall notepad++).
Schritt 2: kein Desktop-Symbol
Zunächst soll dem Setup unterbunden werden ein Desktop-Symbol in %ALLUSERSPROFILE%\Desktop oder %PUBLIC%\Desktop anzulegen. In Zeile 603 der VLC 2.0.0 .nsi Datei, kommentiert man mit einem Semikolon einfach die folgende Zeile aus:
;CreateShortCut “$DESKTOP\VLC media player.lnk” \
“$INSTDIR\vlc.exe” “”
Schritt 3: Benachrichtigungen zu Privacy-Einstellungen und Updates unterbinden & Sprache immer deutsch
In den Zeilen 589 bis 592 der VLC 2.0.0 .nsi Datei, ergänzt man die Einträge:
CreateShortCut “$SMPROGRAMS\VideoLAN\VLC media player.lnk” \
“$INSTDIR\vlc.exe” “–no-qt-privacy-ask –no-qt-updates-notif –language=de”
CreateShortCut “$SMPROGRAMS\VideoLAN\VLC media player skinned.lnk” \
“$INSTDIR\vlc.exe” “-Iskins – -no-qt-privacy-ask – -no-qt-updates-notif –language=de”
Vor no-qt-updates no-qt-privacy und language sind ZWEI Bindestriche!
In der Sektion Language ab Zeile 104 Files setzt man die Sprache German an erste Stelle. Die Sprache an der ersten Stelle wird immer die Standardsprache sein.
!insertmacro MUI_LANGUAGE “German”
!insertmacro MUI_LANGUAGE “English” # first language is the default language
!insertmacro MUI_LANGUAGE “French”
!insertmacro MUI_LANGUAGE “Spanish”
!insertmacro MUI_LANGUAGE “SimpChinese”
!insertmacro MUI_LANGUAGE “TradChinese”
…
…
…
Schritt 4: Verknüpfungen mit bestimmten Dateitypen verhindern
Ich möchte nicht das .wma, .wmv, .asf, .asx mit VLC media player verknüpft werden. Dazu werden die Zeilen 298, 310, 254 und 258 auskommentiert:
;!insertmacro ${_action} “.wma”
;!insertmacro ${_action} “.asf”
;!insertmacro ${_action} “.wmv”
;!insertmacro ${_action} “.asx”
Schritt 5: Mozilla-Plugin aktivieren
In den vergangenen Versionen des VLC musste man noch manuell das Mozilla-Plugin einschalten. Erfreulicherweise ist das ab Version 2.0.0 bereits als Standard-Aktion
im .nsi in Zeile 608 definiert.
Schritt 6: Update ohne Nachfrage installieren
Der NSIS Installer bietet mit der Option /S die möglichkeit Silent-Installationen durchzuführen. Ist aber der VLC media player bereits auf dem Rechner installiert
erscheint trotz der Option /S ein Dialog der auffordert die alte Version zuerst zu deinstallieren.
Wenn man auf diese Art und Weise den VLC dann an viele Rechner in einem Netzwerk verteilt und die Installation im Kontext des Systems vor dem Login durchgeführt
wird, dann rennt der Installer in ein Timeout bevor es weitergehen kann.
Deswegen installiere ich “ohne Rücksicht” auf die bereits installierte Version des VLC und ersetze die alte. Damit das funktioniert müssen im .nsi File
Standard-Antworten der Dialoge definiert werden. In Zeile 919 findet man den entsprechenden Dialog der wie folgt geändert wird:
MessageBox MB_YESNO|MB_ICONEXCLAMATION $Message_AlreadyInstalled /SD IDNO IDNO done
Schritt 7: NSIS Installer kompilieren
Das hört sich schlimmer an als es ist. Wir werfen den Compiler an
Als erstes wird das NSIS Skript mit unseren Änderungen gespeichert. Dadurch das NSIS installiert wurde, gibt es nun einen Eintrag im Kontextmenü des Windows-Explorers.
Im entpackten VLC Verzeichnis klickt mit der rechten Maustaste auf die soeben geänderte und hoffentlich gespeicherte Datei vlc.win32.nsi und klickt auf Compile NSIS Script. Der Rest erledigt sich automatisch.
Ein Verzeichnis oberhalb des Speicherortes der Datei vlc.win32.nsi wird ein Installationspaket des VLC erstellt welches sich nun ganz einfach über ein Login-Script und den NSIS Parametern /S /NCRC ohne weitere Dialoge oder Nachfragen verteilen lässt.
Fazit
Die vorgestellte Lösung betrifft meine Bedürfnisse und hat keinen Anspruch auf Vollständigkeit. Aber wie man sieht, sind Erweiterungen mit NSIS durchausmöglich und der VLC kann getuned installiert werden.
Die Zeilennummern beziehen sich auf die Version 2.0.0 des VLC. In anderen Versionen können diese Zeilennummern abweichen.


Hatte noch jamnd den “Unable to elevate, error 1814″ Fehler? Soll laut googlei an fehlenden Adminberechtigungen liegen, ich führe das Dingen aber als Script per GPO zum Systemstart durch… und auch ein Test auf einem System mit Adminrechten berchte den gleichen Fehler…?
Das Problem wird sich vermutlich schon erledigt haben…
Meiner Meinung weisst die Meldung auf unzureichende Rechte hin. Wenn ein Installscript mit Adminrechten per GPO ausgeführt dann muss das Script in der GPO unterhalb von “Computer” eingehängt werden. Damit werden die Berechtigungen vom Konto SYSTEM verwendet. DIeses Konto hat administrative Berechtigungen.
Vielleicht noch wichtig zu erwähnen habe lange versucht die .nsi zu kompilieren habe immer folgende Meldung erhalten:
Error in macro INSTALLOPTIONS_INITDIALOG on macroline 2
Error in macro MUI_FUNCTION_WELCOMEPAGE on macroline 48
Error in macro MUI_PAGE_WELCOME on macroline 23
Error in script “C:\temp\vlc-2.0.3\vlc.win32.nsi” on line 69 — aborting creation proces
Habe dannach auf ein Windows 7 x86 System gewechselt nun geht es
Besten Dank, Marcus, für diesen Artikel; hat mir wirklich weitergeholfen!
Allerdings stehe ich mit NSIS auf Kriegsfuß, warum ist dieser Sch@#*~Installer so unflexibel verglichen mit Inno Setup? Ich möchte, verdammt noch eins, VLC 2.1.0 (akt. Nightly) nicht nach %ProgramFiles%\VideoLAN\VLC installieren (reichlich bescheuerter Pfad im Übrigen…), sondern beispielsweise nach %ProgramFiles%\Multimedia\VLC, der angebl. Unattended-Setup-Parameter /D funktioniert aber nicht.
Es existiert aber eine Variable $INSTDIR in vlc.win32.nsi, lässt sich diese nicht auch anpassen — irgendwie? Das muss doch machbar sein!1einself!!
Hallo Kar,
ja, ich finde den Nullsoft Installer auch nicht gerade prickelnd. Oder sagen wir es mal so… wenn man nur hini und wieder mit dem Ding arbeiten muss, dann ist der nicht gerade “intuitiv”
In der Zwischenzeit habe ich wegen diesem Blogeintrag hier eine ganze Menge an Mails erhalten die ich leider nicht beantworten kann. Das NSIS Script fehlt, funktioniert es auch mit 64Bit, kann man den Installationspfad ändern (warum eigentlich?) etc.
Die von mir gebaute Lösung war für die Umgebung die ich betreue bisher passend. Bisher hatte ich auch noch nicht den Bedarf mich mit einer neueren Version zu beschäftigen oder den Installationspfad zu ändern.
Leider hat es mir die Zeit bisher nicht erlaubt mich näher damit zu beschäftigen. Da ich aber selbst in meinem Netzwerk bisher nur die Version 2.0.0 vom VLC einsetze, werde ich mich garantiert demnächst mit einer aktuellen Version beschäftigen müssen.
Ob ich dann 64 Bit behandel weiß ich nicht… ich glaube nicht daran, denn ein 64 Bit Plugin z.B. in einem 32 Bit Browser geht nicht (ich weiß es jedenfalls nicht). Deshalb würde ich immer 32 Bit bevorzugen, auch auf einem 64 Bit OS solange das nicht durchgägngig vereinheitlicht ist.
Den Installationspfad habe ich bisher auch noch nicht geändert. Warum auch? Man macht sich damit das Leben doch nur schwer und bei Updates oder anderen Skripten muss man immer daran denken das man sich außerhalb des “Standards” bewegt. Ich würde eher die Programmverknüpfung anders setzen und einen anderen Startmenüeintrag wählen als den Installationspfad des VLC zu ändern.
Danke an die Mitdenker hier und Mitstreiter
Wie gesagt, sobald es die Zeit hergibt werde ich selber einmal versuchen mich mit einer neuen Version des VLC zu beschäftigen.
Viele Grüße,
Marcus
Do somebody get it to work with VLC 2.0.2?
This method was working with VLC 2.0 but does not work anymore with VLC 2.0.2. I really test it in different ways, but did not get it to work, the windos for the privacy settings at first startup is still coming. What I could realize is that after installing it and then running the vlc.exe manually with “–no-qt-privacy-ask –no-qt-updates-notif” avoided that the settings window appear (I really wrote it right in the vlc.win32.nsi file, if you are thinking I did not).
Hallo,
ich habe nun schon mehreremale die 7z datei heruntergeladen und überall gesucht, aber ich finde keine *.nsi datei?!
so hat alles geklappt.
Jedoch habe ich jetzt noch das Problem mit der “früheren Version”. Gibt es eine möglichkeit diese direkt zu deinstallieren? Ohne der Aufforderung und silent?
Hallo beisammen,
ich bin zur Zeit auch dabei eine automasierte Lösung zur Installation vom VLC Player 2.0.1 zu entwickeln.
Eine komplette Silent Installation habe ich auch schon hinbekommen. Mein Ziel ist es dennoch eine interaktive Installation hinzubekommen.
Sprich der User bekommt einen Statusbalken und sieht wie weit die Installation fortgeschritten ist. Trotzallem muss dieser aber keine Eingaben etc. machen.
Ich Habe schon verschiedene Parameter ausprobiert, jedoch ohne Erfolg.
Kann mir da jemand helfen?
Gruß Naix
Interessanter Artikel.
Für alle, die sich am updatefenster nicht so stören und einfach nur eine stille Installation ohne nerviges first-run-Fenster wollen gibt es noch eine einfachere Methode:
installieren mit vlc-2.x.x-win32.exe /S (–> Achtung, case sensitive!)
kopieren von (möglicherweise angepasster) vlcrc und vlc-qt-interface.ini nach %UserProfileDir%\AppData\Roaming\vlc\
Fertig!
P.S. am einfachsten kriegt man die passende vlcrc wenn man VLC einmal installiert, alle Optionen anpasst und dann die Datei aus dem o.g. Pfad rauskopiert.
Vielen Dank für den Hinweis
Mahlzeit!
Danke für die Anleitung – habe damals schon den 1.1.11er damit angepasst.
Jetzt habe ich mir grad den 2.0.1er angepasst.
Folgendermaßen bin ich vorgegangen:
- 2.0.1 7zip entpackt
- 2.0.0 7zip entpackt
- vom 2.0.1 Tarball das nsi-Script und den languages-Ordner geholt
- vom 2.0.0 7Zip den NSIS-Ordner geholt
- Anpassungen gemacht (im Grunde die selben wie Du, zusätzlich noch die Plugins für Mozilla und ActiveX auskommentiert)
Fehlermeldung:
Invalid command: @HAVE_WIN64_FALSE@
Error in script “E:\Temp\vlc201\vlc-2.0.1\vlc.win32.nsi” on line 23 — aborting creation process
@HAVE_WIN64_FALSE@ –> aus Zeile 23 gelöscht, da ich eh die Plugins nicht installiere –> geht
komischerweise benennt er den Installer als 2.0.0
im Script selbst steht bei der Version @VERSION@. Habs mal auf 2.0.1 festgesetzt, jetzt meckert der Compiler auf einmal noch mehr @HAVE_WIN64_FALSE@ an.
Werde mal weiter testen, evtl. mit der NSI vom 2.0.0 und dann nochmal Bescheid geben
Hm… Ich habe diese Fehlermeldung noch nicht gehabt. Kann es sein das du versuchst die experimentelle 64 Bit Version mit dem nsi File der 32 Bit Version zu bearbeiten?
Das mit der Versionsnummer ist korrekt… die muss man im nsi File anpassen (es sind glaube ich 2 Stellen).
Meine Tests habe ich übrigens immer mit der 32 Bit Version gemacht. Einmal auf einem 32 Bit Host mit Windows XP und einmal auf einem Windows 7 Host mit 64 Bit.
So, jetzt hats geklappt:
- nsi von Version 2.0.0 (Version geändert auf 2.0.1)
- Languages von Tarball 2.0.1 und 7zip 2.0.0 (im Tarball fehlen einige)
- Kompilieren geht
Installieren muss ich noch testen…
Wie ist das mit Schritt 6 in deiner Anleitung? mit /S /NCRC wird auch die Meldung unterdrückt, dass ein alter VLC installiert sei? Oder geht das nicht (mehr)?
Danke und Gruß
Ne, war nicht die experimentelle 64bit.
Mein Sys ist ein 7 Prof x64. Aber jetzt hats geklappt. Installation probier ich gleich nachher aus.
mfg
Doch, die Parameter /S und /NCRC funktionieren noch. Allerdings ist die Änderung an der Dialogbox nicht mehr notwendig (MessageBox MB_YESNO…….. etc) da das bereits in dem letzten nsi-File schon eingebaut ist.
alles klar, danke!
Also mit den Schritten von meinen Post am 9. May 2012 um 10:58 hats dann hingehauen. Neuinstallation und Update funktionieren
Hi Marcus,
Ich hab das jetzt mal extra mit der Version 2.0.0 probiert, allerdings bekomme ich immer den Fehler das mir die MUI.nsh fehlt. Die ist aber weder in der .zip, noch in der .7z Version enthalten. Als Fehler wird Zeile 57 angegeben. Selbiges Problem hatte ich auch bei der 2.0.1 nachdem ich das Language Verzeichnis, sowie das NSIS Verzeichnis, rüberkopiert habe.
Hast du eine Idee wie ich dieses Problem beheben kann?
Danke,
LG,
Alex
Hallo Alex,
Ich habe gerade versucht dein Problem nachzustellen. Ich muss mich hier sowieso gerade um Updates im Netzwerk kümmern und da kam mir das gerade recht
vielen Dank für dein Interesse
Vor der Erklärung: ich kann deinen Fehler weder bei der Version 2.0.0 noch bei 2.0.1 nachvollziehen.
Beim Probieren habe ich jedoch festgestellt das Schritt 6 scheinbar nicht mehr nötig ist.
Als Voraussetzung habe ich Version 1.1.9 des VLC installiert um das Update-Feature zu testen.
Begonnen habe ich dann mit dem VLC 2.0.0 im 7z Paket. Dort ist die Datei vlc.win32.nsi im Paket dabei. In der Datei habe ich meine Änderungen durchgeführt und dann das .nsi File mit “Compile NSIS Script” bearbeitet. Heraus kam ein Installer der alles das machte was er sollte (nach den Änderungen).
Ich habe mir dann die Version 2.0.1 als 7z Paket besorgt und das .nsi File der Version 2.0.0 kopiert. Achtung: hier ist die Versionsnummer ganz am Anfang zu ändern. Zusätzlich habe ich die Verzeichnisse languages und NSIS der Version 2.0.0 kopiert und dann wieder “Compile NSIS Script” durchgeführt.
Auch hier kam ein Install bei heraus der genau das macht was er soll.
An deiner Stelle würde ich mal mit ganz frischen Downloads der 7z Pakete beginnen. So habe ich das jetzt auch auf einer “jungfräulichen” virtuellen Installation von Windows 7 ausprobiert.
Viele Grüße,
Marcus
Hallo,
Hab ich jetzt nochmal probiert, hab nur das Desktop Symbol entfernt, sonst nichts geändert und kam wieder zur gleichen Fehlermeldung:
!include: could not find: “MUI.nsh”
Error in script “C:\Users\xxx\Downloads\vlc-2.0.0-win32\vlc-2.0.0\vlc.win32.nsi” on line 57 — aborting creation process
Wie gesagt, bei mir funktioniert es “out of the box” ganz ohne Probleme. Hat du das 7z Archiv noch einmal neu geladen und frisch entpackt? Schicke vlc.win32.nsi zu pastebin.de und post hier mal den Link. Ich probiere das dann mal mit deiner Datei aus.
Ein Unterschie der mir hier aber noch aufgefallen ist:
Ich verwendet als Pfad einen viel kürzeren als du zum kompilieren… nämlich c:\temp\vlc-2.0.0-win32 oder d:\temp\vlc-2.0.0-win32
Ich habe es schon erlebt das manche Anwendungen mit den etwas tieferen Pfaden nicht klar kommen… ist nur der Blick in die Glaskugel; könnte aber eine Möglichkeit sein.
Hallo,
erstmal: Super ausführliche Anleitung. Vielen Dank dafür.
Ich habe nur ein “kleines” Problem: In der Version 2.0.1 existiert im 7-Zip-Archiv die Datei vlc.win32.nsi nicht. Ich habe auch nach .nsi-Dateien mit anderem Namen gesucht. Leider bin ich nicht fündig geworden.
Funktioniert das trotzdem noch irgendwie?
mfg
Markus
Das File wurde wohl entfernt…
Hier http://forum.videolan.org/viewtopic.php?f=14&t=99300&p=333381&hilit=.nsi#p333381 heisst es das es ein Fehler sei.
Ein Ticket dazu wurde ebenfalls eröffnet aber auch gleich wieder durch eien Maintainer geschlossen: http://trac.videolan.org/vlc/ticket/6491
Demnach soll das passende .nsi im Source-Tarball stecken. Ich habe mir den Tarball kurz runtergeladen und dort unterhalb von extras\package\win32 das File vlc.win32.nsi.in gefunden.
Ungeprüft und mal in die Glaskugel geschaut, würde ich das File einfach mal entsprechend umbennen und für die vorgeschlagene Vorgehensweise verwenden. Aber nicht vergessen die Languages mit zu kopieren…. ich glaube die werden gebraucht.
Hallo beisammen,
ich bin zur Zeit auch dabei eine automasierte Lösung zur Installation vom VLC Player 2.0.1 zu entwickeln.
Eine komplette Silent Installation habe ich auch schon hinbekommen. Mein Ziel ist es dennoch eine interaktive Installation hinzubekommen.
Sprich der User bekommt einen Statusbalken und sieht wie weit die Installation fortgeschritten ist. Trotzallem muss dieser aber keine Eingaben etc. machen.
Ich Habe schon verschiedene Parameter ausprobiert, jedoch ohne Erfolg.
Kann mir da jemand helfen?
Gruß Naix
Habe die nsi aus dem Source-Tarball ausprobiert, es geht aber nicht, da der NSIS beim Erstellen bei der Zeile 31 den folgenden Fehler meldet: Invalid command: @HAVE_WIN64_FALSE@. Gibt es mitlerweile eine andere Möglichkeit wie man die Benachrichtigungen zu den Privacy-Einstellungen und Updates nach dem ersten Start unterbindet?