Hi zusammen,
anbei möchte ich euch eine kleine Anleitung geben/zeigen wie ihr den Emby-Server auf einer Windows Umgebung als Dienst laufen lassen könnt und dennoch "automatische" Updates erhaltet. Warum ich automatische in Anführungszeichen gesetzt habe werdet ihr weiter unten lesen können.
Voraussetzungen
- Der Emby Server muss bei euch auf dem System installiert sein (welche Version installiert ist ist egal) Download Emby Server
- Es muss mindestens WIndows 7 SP1/Windows Server 2008 R2 SP1 auf dem System installiert sein
- Auf dem System muss PowerShell 5 oder höher installiert sein. Entweder wisst ihr es selbst oder könnt es mit meiner bat-Datei (PowerShell Versionschek.zip) überprüfen lassen. Solltet ihr kleiner Version 5 sein, müsst ihr dies aktualisieren, da ansonsten das Skript nicht funktioniert. Download Windows Management Framework 5.0
Installation
[warnbox]
Grundsätzliches:
Die bat-Dateien sind so geschrieben, dass im Verzeichnis der bat-Datei immer das Skript mit liegen muss welches ausgeführt werden soll, aber niemals mehr als eines.
Denn die bat-Datei schaut nur in das aktuell Verzeichnis (dort von wo aus sie gestartet wurde) und sucht dort nach einer Datei mit der .ps1-Engung und startet diese dann.
[/warnbox]
Die Installation selber ist denkbar einfach, wobei es zwei unterschiedliche Möglichkeiten gibt:
- Ausführung der "EmbyServerUpdate.bat".
- Bei dieser wird in dem Moment nach einem Versionsupdate geschaut und wenn eines gefunden wird auch installiert.
- Ausführung der "EmbyServerUpdate - Install Aufgabenplanung.bat".
- Bei dieser wird das gleiche wie bei 1. gemacht und zusätzliche wird eine Aufgabenplanung erstellt. In dieser steht Standardmäßig nur drin, dass täglich um 04:00 Uhr das Script ausgeführt wird und somit automatisch nach einem Update geschaut und installiert wird, wenn vorhanden. Um dies wieder rückgängig zu machen kann man den Task entweder manuell löschen oder man führt die "EmbyServerUpdate - Uninstall Aufgabenplanung.bat" aus.
[infobox]Leider ist es bei Windows 7 nicht möglich, dass eine Aufgabenplanung über das Skript automatisch erstellt wird. Hier hat Microsoft vergessen (oder mit Absicht) den Befehl hierfür mit hinunter zu portieren. Dies ist erst ab Windows 8 möglich[/infobox]
Vorgehen:
Sobald ihr die Voraussetzungen erfüllt, entscheidet ihr euch einfach ob ihr Emby mit einem Final-Release oder einem Beta-Release updaten wollt und ladet euch dafür die entsprechenden Dateien runter.
Diese packt ihr dann am besten in ein eigenes Verzeichnis:
[infobox]
Ich habe gerade gemerkt, dass die bat-Datei immer so heißen muss wie die ps1-Datei.
Also wenn ihr eine der bat-Dateien ausführen möchtet, mit deren entsprechenden Parametern, dann müsst ihr diese immer dem Namen der Skript-Datei anpassen.
[/infobox]
Nun könnt ihr einfach die bat-Datei eures Wunsches starten und die Frage nach den administrativen Rechten bestätigen. Es wird nun ein Abgleich der Versionen (lokal und Github) gestartet. Wird eine neure Version gefunden, wird diese automatisch installiert.
Der Emby-Dienst wird hierbei automatisch gestoppt und wieder gestartet.
Ich habe dieses Vorgehen heute mal auf meinem Laptop unter Windows 7 und einem Upgrade vom aktuellen Final Release auf den aktuell Beta Release gemacht und der gesamte Prozess (bat-Datei starten - Emby Server wieder einsatzbereit) hat ca. 2 Minuten gedauert.
Schlusswort
Das Skript habe ich nicht selber geschrieben, sondern dies wurde im Emby Forum vom User hatharry dort veröffentlicht.
Ich habe bei meinem Versuch es zu nutzen nur gemerkt, dass ich an der ein oder anderen Stelle etwas hängen geblieben bin und habe mir daher gedacht, dass es anderen bestimmt auch so gehen wird.
Solltet ihr hierzu Fragen oder Verbesserungsvorschläge für das HowTo haben, so lasst es mich wissen und ich werde versuchen dies alles nach und nach mit einfließen zu lassen.
Was wird so alles während dieser Schritte ausgeführt?
Spoiler anzeigen
- Ausführen von "PowerShell Versionschek.bat"
- Hier wird in der bat-Datei nur der Befehl "$PSVersionTable" ausgeführt und ausgegeben
- Ausführen von "EmbyServerUpdate.bat"
- Es wird eine PowerShell Konsole mit administrativen Rechten gestartet
- Das Skript "EmbyServerUpdate.ps1" oder "EmbyServerUpdate_Beta.ps1" (je nach Anwendung) wird gestartet
- Es wird die installierte Emby Version über die Registrieungsdatei in "HKLM:\SYSTEM\CurrentControlSet\Services\Emby" ermittelt
- Es wird die verfügbare Version auf "https://api.github.com/repos/mediabrowser/emby/releases" ermittelt
- Bei der "_Beta.ps1" ist der "$_.prerelease -eq $false" Wert in Zeile 22 auf true gesetzt
- Die Versionen werden verglichen
- Bei einem verfügbaren Update werden die nötigen Dateien automatisch im Verzeichnis "%appdata%\Emby-Server\" unter dem Ordner "updates" gespeichert
- Der Emby Dienst wird gestoppt
- Die neue Version wird installiert
- Der Emby Dienst wird wieder gestartet
- Ausführen von "EmbyServerUpdate - Install Aufgabenplanung.bat"
- Schritte 1 - 9 wie bei 2. sind identisch
- Zudem wird ein Scheduled Task (Aufgabenplanung) erstellt
- Die Datei "EmbyServerUpdate.ps1" wird in das Verzeichnis "%appdata%\Emby-Server\" unter dem Ordner "updater" gespeichert
- Von dort aus wird das Skript dann über den Scheduled Task täglich um 04:00 Uhr ausgeführt.