Dockercontainer über subdomains erreichen

Über Docker lassen sich Webservices komfortabel auf einem NAS von zu Hause aus hosten. Wenn man zusätzlich ein VPN
einrichtet, kann man auf alle selbstgehosteten Webservices komfortabel und sicher von überall auf der
Welt darauf zugreifen. Wenn man nun aber – wie ich – damit begonnen hat, intensiv auf solche selbstgehosteten
Webservices zu setzen (nur als Beispiel, gitlab, nextcloud, bitwarden, teamspeak) muss man sich mit der Zeit
einige Ports merken, um auf die Webservices zuzugreifen. Schließlich läuft jeder Webservice in einem eigenen Dockercontainer
und besitzt einen eigenen Port. Hier die Übersicht zu behalten, ist mit der Zeit unmöglich. Vielleicht weiß man beim Einrichten
noch, welchen Port man einem Webservice gegeben hat, aber nach spätestens nach 1-2 Monaten hat man den Port vergessen. Bookmarks helfen
hier zwar, aber deutlich eleganter ist es Subdomains für die Webservices einzurichten.

Um Subdomains im lokalen Netzwerk einzurichten, kann man im Prinzip jeden Webserver verwenden und konfigurieren (z.B. nginx oder apache), aber ich bin nun – besonders in der
Kombination mit Docker – auf einen komfortableren Weg gestoßen einen reverse proxy einzurichten: Traefik ist ein sogenannter Edge
Router, der genau für Services wie Docker, Docker Swarm, Kubernetes (etc.) entwickelt worden ist. Einmal eingerichtet, erkennt
Traefik automatisch alle Dockercontainer, die gerade laufen. Die Dockercontainer kann man über Labels bei der Erstellung so
einstellen, dass Traefik automatisch Subdomains dafür einrichtet. Außerdem sieht man über ein Webinterface sofort den Status der so
verfügbaren Container.

Hier eine kurze Anleitung dazu, wie man Traefik installiert, konfiguriert und anschließend einen Dockercontainer über eine
Subdomain erreichen kann. Die Anleitung setzt die vorige Installation von Docker und Kenntnis darüber voraus.
Zunächst muss das offizielle Traefik Dockerimage gepulled werden und ein Container damit angelegt werden.

docker pull traefik:latest
docker create -p 443:443 
              -p 80:80 
              -p 8080:8080
              -v /volume1/docker/traefik-config/traefik.yml:/etc/traefik/traefik.yml
              -v /var/run/docker.sock:/var/run/docker.sock
              --name traefik1 traefik:latest

Der Container ist eingerichtet, dass https und http einfach weitergeleitet werden. Falls man auf seinem Heimserver schon einen
apache oder Ähnliches laufen hat, oder man einfach nicht die Standardports verwenden will, kann man natürlich auch andere Ports verwenden.
Im yml File auf das verwiesen wird, steht die Konfiguration von Traefik. Im einfachsten Fall kann diese wie folgt lauten:

# /volume1/docker/traefik-config/traefik.yml

providers:
  docker:
    exposedByDefault: false
api:
  insecure: true

Der Pfad in den “docker create” Parametern muss natürlich angepasst werden. Diese Konfiguration stellt sicher, dass nicht alle,
sondern nur speziell angegebene Dockercontainer über Subdomains erreichbar sind – Mir ist es lieber hier die Kontrolle zu haben,
außerdem muss man bei der Erstellung ohnehin Labels für Traefik anlegen.
Das wars auch schon mit der Konfiguration von Traefik. Natürlich kann man noch SSL Zertifikate usw. angeben, aber das wäre dann ein
Thema für einen anderen Eintrag. Traefik muss nun nur noch gestartet werden.

docker container start traefik1

Über localhost:8080 kommt man auf das Webinterface. Jetzt, wo noch keine Dockercontainer für Traefik freigegeben sind, ist dieses zwar hübsch
anzusehen, aber noch relativ leer. Um einen Container für Traefik verfügbar zu machen, muss die Erstellung eines Containers um Labels erweitert
werden.

docker create [...] \
              -l "traefik.enable=true" \
              -l "traefik.http.routers.<CONTAINER_NAME>.rule=Host(\"container.example.com\")" \
              -l "traefik.http.services.<CONTAINER_NAME>-service.loadbalancer.server.port=80" \
              [...] 

Diese 3 Labels reichen im Normalfall aus, um einen Container über eine Subdomain im lokalen Netzwerk verfügbar zu machen. Durch die angegebenen
Labels, leitet Traefik über reverse-proxy auf den Container um. Die Angabe des Port ist nicht unbedingt nötig, sollte ein Container nur
einen Port verwenden, erkennt Traefik diesen automatisch. Einige Webservices verwenden aber mehrere Ports und hier muss der Port dann explizit
angegeben werden.

Let’s encrypt Zertifikate für Hosted Websites

Bei Hosteurope gibt es die Möglichkeit Let’s encrypt Zertifikate zu verwenden, allerdings müssen diese manuell angelegt und auch (alle 3 Monate) erneuert werden. Der Vorteil bei diesen Zertifikaten ist, sie sind gratis, der Nachteil man muss die Schritte bis zum eingetragenen Zertifikat für Hosteurope manuell durchführen. Andere Hosting Provider sind hier schon weiter, ich habe leider keine Ahnung warum sich Hosteurope weigert Let’s encrypt direkt aufzunehmen, es wird wohl ums Geld gehen, da das automatisierte Anlegen und Erneuern ebenso angeboten wird, allerdings gegen Bares.

Nichts destotrotz, die Möglichkeit gibt es, manuell halt. Hosteurope hat hierzu auch eine Anleitung veröffentlicht die es Schritt für Schritt zeigt (zu finden hier). Leider ist der ZeroSSL Service ab nun für Wildcard Domains kostenpflichtig und somit für manche auch keine Alternative mehr. Also nützt es nichts, man muss sich doch mit dem Certbot auseinandersetzen.

Certbot ist ein Tool welches für Zertifikaterstellung/erneuerung der Let’s encrypt Zertifikate zuständig ist. Das Tool ist in Python geschrieben und einfach zu handhaben. Die größere Arbeit ist es, sich in die vielen Möglichkeiten und die für einem selber notwendigen Schalter dieses Python-Kommandozeilentools einzulesen.

Meine Voraussetzungen:

  • Webspace bei Hosteurope (Webhosting Basic oder Premium, somit kein Zugriff auf Webserver Konfigs o.ä.)
  • Die Domain ist entweder direkt bei Hosteurope gehostet/gekauft oder bei einem externen Anbieter (domaindiscount24)

Um für diese Anfordungen ein Zertifikat zu bekommen, muss man Zugriff auf die DNS-Konfig haben, um eben TXT Einträge erledigen zu können und man muss vom Hosting-Provider die Möglichkeit haben manuell Zertifikate hochladen zu können.

In diesem Beispiel wird ein Let’s encrypt Zertifikat für seesle.at und *.seesle.at erstellt. Die Domain und die Website liegt bei Hosteurope.

Der Aufruf bei certbot sieht wie folgt aus:

sudo certbot -d "seesle.at,*.seesle.at" --manual-public-ip-logging-ok --manual --preferred-challenges dns certonly

Dabei bedeuten die Schalter folgendes:

  • -d: Domainnamen als Liste mit , getrennt; Durch den *. in der Wildcard Domain muss man für den Befehl diesen Parameter unter “” setzen
  • –manual-public-ip-logging-ok: Let’s encrypt verlangt, dass die IP des Rechners auf dem der Certbot ausgeführt wird mitgeloggt wird und auch öffentlich einsehbar ist, das Ganze kommt als Abfrage und bei Nein bekommt man kein Zertifikat; Mit diesem Schalter stimmt man dem explizit zu
  • –manual: bedeutet, dass die Ausführung von Certbot interaktiv (mit Abfragen und Text) in der Kommandozeile durchgeführt wird.
  • certonly: Das Zertifikat wird erstellt und lokal gespeichert aber nicht installiert; Der Grund hier ist, normalerweiße wird certbot auf dem Server auf dem der Webservice läuft ausgeführt und kann somit gleich automatisiert die Zertifikate installieren

Nach bestätigen des Befehls wird (sofern das Zertifikat noch nie erstellt wurde) eine E-Mail Adresse als Admin Adresse abgefragt. Wenn es sich um eine Erneuerung des Zertifikats handelt, dann bekommt man sofort den ersten Schlüssel den man im DNS-Eintrag ablegen muss.

Der Schlüssel besteht aus einer gewissen Anzahl an Zeichen/Sonderzeichen und muss nun direkt aus der Kommandozeile rauskopiert werden.

Nun geht man zu Hosteurope ins KIS und geht auf Domainservices -> Domain Administration -> Nameserver – / DNS-Einträge bearbeiten. In der Liste unten wählt man nun die Domain aus und klickt auf editieren.

Sollte der TXT Eintrag im Falle einer Zertifikatserneuerung bereits gemacht worden sein, dann einfach den Eintrag _acme-challenge.seesle.at raussuchen und dort den Schlüssel hinterlegen. Falls dieser noch nicht gemacht wurde, kann er ganz unten angelegt werden.

Wichtig hier: Falls man die normale Domain und alle Subdomains (mittels Wildcard Zertifikat) beim Certbot angegeben hat, muss man zwei TXT Einträge mit _acme-challenge.seesle.at anlegen

Wenn die Keys eingegeben sind, müssen sie mit jeweils nacheinander einem Klick auf zunächst Update und anschließend Speichern bestätigt werden.

Nun muss man ein paar Minuten warten bis die Einträge im DNS-System verfügbar werden. Zur Prüfung kann hierzu eine DNS TXT-Abfrage durchgeführt werden. Bei mir lokal, hat mein Router diese Einträge gecached und somit teils sehr lange nicht erneuert deshalb hab ich dann auf folgendes Tool zurückgegriffen.

Wenn hier die zwei Schlüssel korrekt angezeigt werden, kann man wieder zurück zum Certbot in die Kommandozeile und mit Enter die Zertifikatserstellung abschließen.

Certbot prüft nun ob die Keys an den korrekten Stellen eingetragen wurden (und ob man dadurch auch der Eigentümer der Domains ist) und erstellt bei Erfolg die Zertifikate ins Verzeichnis:

/etc/letsencrypt/username/live/seesle.at

Für Hosteurope sind die Zertifikate fullchain.pem und privkey.pem wichtig. Die beiden kopiert man sich am besten irgendwohin, wo man auch über den Browser zukommt (ACHTUNG: die müssen im Anschluss wieder lokal gelöscht werden).

Nun geht man bei Hosteurope unter WebHosting -> beim jeweiligen Vertrag auf Konfigurieren -> Sicherheit/SSL -> SSL administrieren

Unten in der Liste sucht man sich die Domain raus, für die das Zertifikat werstellt wurde und klickt auf Ersetzen bzw. Anlegen.

Im folgenden Fenster gibt es drei Felder die mit einer Datei gefüllt werden und ein Passwort Feld:

  • Im Feld Zertifikat lädt ihr das fullchain.pem File rein
  • Im Feld Key lädt ihr das privkey.pem File rein
  • Unser von Let’s encrypt angelegtes Zertifikat benötigt kein Passwort, somit kann dieses leer bleiben.
  • Das Feld CA* wird ebenfalls einfach leer gelassen

Anschließend ein Klick auf Absenden und das Zertifikat sollte hochgeladen sein. Nach ein paar Minuten ist bei korrekter Konfiguration des DNS auch über https erreichbar.

Zwei zusätzliche Dinge sind bei Hosteurope noch zu beachten:

  • Wechselt ihr von http auf https muss meist auch der A-Eintrag im DNS auf eine andere IP gewechselt werden (mehr dazu findet ihr in den FAQs von Hosteurope
  • Diesen Vorgang müsst ihr nun alle 3 Monate durchführen, ihr werdet aber per E-Mail auf die am Anfang eingegebene Adresse 20 Tage vor Ablauf benachrichtigt

Ich hoffe mit diesem Artikel ein geeignete Anleitung für diese Nische verfasst zu haben und würde mich auf Feedback freuen.

Stromverbrauch bei einer Million zusätzlicher E-Autos

Ich bin in der Automatisierungstechnik tätig und arbeite im Bereich Motion Control. Dementsprechend begeistert bin ich von Elektromotoren und verteidige auch den derzeitigen Trend hin zur Elektromobilität.
Mir ist klar:

  • dass E-Autos noch nicht die gewünschte Reichweite haben
  • noch nicht so verfügbar sind wie der Verbrenner-Kollege
  • einige Probleme mit den Akkus noch nicht gelöst sind (Recycling, Ladestationen,…)

Jedoch wenn man sich das Klima weltweit ansieht, kommen wir auf so einen radikalen Umbruch in der Automobilen-Branche nicht drum rum und ganz ehrlich, 95% Wirkungsgrad des E-Antriebs sind hier ein starkes Argument.

Nichts desto trotz kommt es des Öfteren vor, dass ich mit Kollegen oder Bekannten über dieses Thema diskutieren darf und oft fällt folgender Satz: Wenn alle ein E-Auto fahren geht uns der Strom aus.

So, ich hab mal ein wenig nachgerechnet:

Angenommen von heut auf morgen steigen 1.000.000 (eine Million) Österreicher auf ein E-Auto um. Das würde bedeuten, dass bei einem durchschnittlichen Verbrauch von 20kWh/100km (Quelle), was einem mittleren Verbrauch bei eher kalten Temperaturen eines BMW i3 entspricht und bei 34 gefahrenen km/Tag/Österreicher (Quelle), pro Jahr ca. 2482kWh Strom zusätzlich pro Staatsbürger benötigt werden würde. Wenn man dies in € ausdrückt, dann ergibt das jährliche Kosten von 496,4€ bei einem Strompreis von 0,2€/kWh (Quelle) pro Österreicher. Ganz einfach weitergerechnet ergibt das 2482GWh Stromverbrauch in Österreich für eine Million E-Auto Fahrer.

Klingt erst mal viel, aber wenn man das nun auf den jährlichen Gesamtstromverbrauch in Österreich von 63390GWh (Quelle) bezieht, dann wäre das eine Steigerung von 3,915% was wiederum nicht so viel ist.

Also falls ihr auch mal in solch eine Diskussion kommt, hier habt ihr die nackten Zahlen.

PS: Müsste man diese 34km/Tag aufs Jahr gerechnet Diesel tanken kommt man bei einem Dieselpreis von 1,3€/Liter auf Gesamtkosten von 1024€…

iPhone DCIM Übertragung (Photos und Videos) bricht ab

Das Thema nervt mich schon länger und dürfte ab ca. iOS 10 aktuell sein. Wenn man am Windows PC seine Bilder von Hand auf den lokalen PC kopiert, also als DCIM Übertragung im Explorer, dann ist es mir oft (fast immer) passiert, dass er während der Übertragung abgebrochen hat mit einem Fehler: “Ein an das System angeschlossenes Gerät funktioniert nicht.”

Ich konnte diesen Fehler soweit eingrenzen, dass die Übertragung immer bei einem Video abgebrochen hat und hab bisher dann nur noch die Fotos übertragen.

Heute hat es mich so genervt, also mal ein wenig gegoogelt und dann bin ich auf folgenden Eintrag gestoßen: https://communities.apple.com/de/thread/200028951

Anscheinend konvertiert das iPhone beim Übertragen der Dateien die Files in ein anderes Format und dies scheint sich irgendwie nicht ganz mit dem Windows Übertragungsdienst zu vertragen.

Diese Option kann am iPhone in den Einstellungen unter Fotos, ganz unten bei Übertragung auf PC oder MAC mit der Auswahl “Originale behalten” abgestellt werden.

Anschließend muss das iPhone einmal neu mit dem PC verbunden werden und nun sollte alles funktionieren.

Tastaturkürzel unter Plasma

Für einen Windows Nutzer ist der Wechsel auf Linux gar nicht so einfach, wenn man viel mit Tastaturkürzel (zb. Win+E oder Win+D) und den Windows Boardmitteln (zb. Explorer) arbeitet. Gerade die Tastaturkürzel habe ich sehr häufig verwendet und diese vermisst man standardmäßig unter Linux komplett.

Was nicht heißen muss, dass man sie nicht nachrüsten kann:

  • Win (Meta)+D: Unter Windows löst dieses Kürzel ein minimieren aller Fenster aus. Um dies unter Plasma aktivieren zu können muss man zunächst für KWin das Skript zum Minimieren aller Fenster aktivieren. Dazu zuerst KWin-Skripte starten und dort muss das erste Skript “Alle minimieren” aktiviert werden. Mit einem Klick auf Anwenden und OK ist dieser Schritt erledigt. Als nächstes muss das Tastaturkürzel in den Globalen Kurzbefehlen hinzugefügt werden. Dazu diesen Einstellungsdialog öffnen und dort unter KWin oben mit der Suche MinimizeAll suchen. Den Eintrag markieren und dann bei Benutzerdefiniert auf den Button rechts daneben klicken. Nun kann man ein Tastaturkürzel seiner Wahl drücken und das sollte dann dort stehen (in meinem Fall Win+D oder im englischen Meta+D).
  • Win (Meta)+E: Unter Windows löst dieses Kürzel den Start des Windows Explorers aus. Bei Linux soll an dieser Stelle der Dateiexplorer Dolphin geöffnet werden. Dazu muss ein eigenes Shortcut erstellt werden. Zunächst den Einstellungs-Dialog Eigene Kurzbefehle starten. In diesem Fenster die oberste Gruppe markieren und unten auf Bearbeiten => Globaler Kurzbefehl => Anwendungsstarter-Eintrag klicken. Im neuen Fenster dann Dolphin als Name für den Kurzbefehl eingeben und rechts im Reiter Auslöser auf den Button neben Kurzbefehl klicken. Nun kann man ein Tastaturkürzel seiner Wahl definieren, in meinem Fall wird dies Win+D (Meta+D) sein. Zu guter Letzt noch auf den Reiter Aktion wechseln und dort auf Anwendung auswählen klicken. Im folgenden Dialog muss man nun Dolphin als Anwendung auswählen und mit OK bestätigen.

Diese Einstellungen werden nur selten getätigt und dadurch suche ich diese Dialoge immer wieder aufs neue. Durch die Macht der Gewohnheit, sind diese Kürzel unter Linux allerdings sehr praktisch, da sie nun die selben Aktionen ausführen wie unter Windows und einem so den gewohnten Workflow fortsetzen lassen.

Spotify Notification bei Songwechsel

Seit kurzer Zeit spielt Spotify in der Standardeinstellung eine kurze Notification bei einem Songwechsel ab. Den Sinn dahinter verstehe ich nicht ganz, wenn ich mir überlege wieviele MP3-Spieler ich bereits hatte, diese Idee kam noch keinem Hersteller in den Sinn.

Wie auch immer, das Geräusch muss weg. Nach kurzer Suche im Internet wird man gleich im wundervollen ArchWiki fündig. Diese Einstellung lässt sich im prefs File im Home Ordner des eingeloggten Users anpassen.

Dazu zuerst im Home Verzeichnis unter

cd ~/.config/spotify/Users/<myUser>-user/prefs

und dort dann die Zeile

ui.track_notifications_enabled=false

am Ende (oder am Platz deiner Wahl) hinzufügen. Achtung Spotify darf während diesem Vorgang nicht gestartet sein, da es beim Beenden die Einstellungen neu ins prefs-File rausschreibt und somit eure Änderung wieder dahin ist.

Twincat Web-Visualisierung

Nach langer Zeit gibt es mal wieder einen Blogeintrag, diesmal zu einem Thema aus einer ganz anderen Ecke. Meine Haupttätigkeit liegt eigentlich in der Automatisierungstechnik/SPS-Programmierung/Motion Control und genau diesem Thema widme ich diesen Eintrag.
In den letzten Jahren sind Web-Applikationen so ein bischen der Inbegriff für moderne, Industrie-4.0-fähige Steuerungen geworden. Diesen Trend haben auch die Hersteller wie Beckhoff usw. für sich entdeckt und arbeiten mit Hochdruck an HMI Lösungen basierend auf Web-Technologie (JavaScript, HTML5 uvm).
Gerade für Beckhoff gibt es allerdings eine einfache Möglichkeit solch eine Web-HMI selbst zu erstellen und das möchte ich hier in einem kurzen Tutorial zeigen.
Um auf Variablen in einer Twincat-SPS zugreifen zu können kommt man am ADS Protokoll nicht vorbei. Hierbei handelt es sich um eine Art Verbindung zwischen der in einer Echtzeit Umgebung laufenden Steuerung und der Außenwelt. Im Grunde läuft es so: Man verbindet sich auf eine Variable und bekommt deren Wert per Event oder man liest diese einmalig aus. Als HMI Backend dient in diesem Beispiel ein Python Webserver und das Frontend kann mit jedem beliebigen Framework (Bootstrap, JQueryUI) geschrieben werden.

  • Zuerst muss Python mit Version 3.x installiert werden.
  • Anschließend muss über den Python-internen Paketverwalter PIP das PyADS Paket nachinstalliert werden
    • Öffnet hierzu die Command Shell (Windows + R) und dann einfach cmd (ACHTUNG: Falls der normale User keine Adminrechte hat, dann muss die Command Shell als Admin ausgeführt werden)
    • Mit folgendem Befehl “python -m pip install pyads” installiert ihr das Paket
    • Python lädt dieses Paket automatisch runter und gleichzeitig wird auch sichergestellt ob die Pfad Variable zum Python Paket richtig geladen wurde, andernfalls würde der Befehl python nicht zur Verfügung stehen
  • Nun muss ein Webserver Verzeichnis eingerichtet werden
    • Ich hab hier einfach C:\www gewählt
    • Dort muss auch noch das Unterverzeichnis C:\www\cgi-bin angelegt werden, in welchem später die Python Skripts für alle Ajax Calls ausgeführt werden
  • Für den ersten Test erstelle ich ein einfaches SPS-Programm mit einer Zählervariable um in der Web-Visu was anzeigen zu können
    • Dieses Projekt am besten für den ersten Test lokal laufen lassen
  • Um den Python Webserver zu starten, öffnet ihr am besten erneut eine Command Shell und wechselt mit dieser in das www Verzeichnis (cd C:\www)
  • Dort angekommen startet ihr mit dem Befehl “python -m http.server –bind localhost –cgi 8000” den Python-Webserver
  • Wenn ihr nun in den cgi-bin Pfad das Script aus dem Bild kopiert und dieses vom Browser aus aufruft (https://localhost:8000/cgi-bin/test.py) dann sollte das Python Script eine Variable aus der SPS auslesen und als Textfile ausgeben => der Browser zeigt dieses File nun an

Hiermit könnt ihr nun jegliche Visualisierung erstellen und natürlich auch falls gewünscht Charts (mit Chart.js) anzeigen. Zudem ist diese Art sich auf SPS-Variablen einer Twincat Runtime zu verbinden gratis.

iPhone (Hyper-) Links funktionieren nicht iOS 9.3

Nach dem Update auf das neue Apple Mobil-Betriebssystem iOS 9.3 funktionierten bei meinem iPhone 6 die Links in (fast) allen Apps nicht mehr.

Nach kurzer Recherche im Internet stieß ich auf folgenden Blog-Eintrag von einem Tech-Blogger, der diesen Fehler genauer untersucht und mittlerweile auch einen Workaround gefunden hat.

Einfach zum Nachmachen…

How to fix iOS 9.3’s broken Safari, Mail and Messages links

Druckeraufträge lassen sich nicht löschen

Lang ist es her seit meinem letzten Post und aus aktuellem Anlass dachte ich mir es wird wieder mal Zeit. Mittlerweile bin ich auf Windows 10 64Bit gewechselt und eigentlich recht zufrieden, doch die alten Probleme bleiben, zum Teil.

Ich hab ein PDF ausdrucken wollen und während des Druckvorgangs versehentlich den PC heruntergefahren. Natürlich ist das nicht klug, aber passiert ist passiert.

Beim nächsten PC-Neustart wollte dieser Druckauftrag partout nicht fertig werden und er lies sich auch nicht abbrechen bzw. entfernen. Nun, wie bekomme ich diesen Druckauftrag aus der Liste raus, damit neue Druckaufträge wieder abgearbeitet werden?

Folgende Answeisung sollte helfen:

  • Mit der Tastenkombination Win+R das Ausführen Fenster von Windows öffnen
  • Nun services.msc eingeben um den Dienstmanager von Windows zu öffnen und mit OK bestätigen
  • Im folgenden Fenster rechts den Dienst Druckerwarteschlange suchen und beenden
  • Als nächstes mit dem Windows Explorer zum Ordner C:\Windows\system32\spool\PRINTERS navigieren und den Inhalt löschen
  • Anschließend im Dienstmanager von Windows den Dienst Druckerwarteschlange wieder starten
  • Nach erneutem Öffnen des Drucker Fensters sollten alle Aufträge verschwunden sein

Texniccenter and Adobe Reader 15

Nach einem Betriebssystem Update, in meinem Fall von Windows 7 auf Windows 10, dauert es immer eine Weile, bis wieder alle Applikationen so installiert sind wie sie vorher auf dem alten System installiert waren. So war es heute auch mit dem Latex Editor Texniccenter, welcher auf Windows7 einwandfrei lief und nun unter Windows 10 nicht mehr so will.

Folgende Einstellungen waren notwendig um die Umgebung von Texniccenter 2.02 (64Bit) und Adobe Reader 15 auf Windows 10 wieder zum Laufen zu bringen:

  1. Zuerst ins Menü “Ausgabe” -> “Ausgabeprofile definieren…” gehen
  2. Das Profil “Latex to PDF” auswählen
  3. Rechts den Reiter Viewer auswählen
  4. und nun die Set-Up Parameter (standardmäßig nach Texniccenter Setup so eingestellt) wie folgt zu bearbeiten
  • Beim “Pfad der Anwendung” sollte der Pfad zum Adobe Reader ausgewählt sein in meinem Fall “C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe”
  • Parameter sind im wesentlichen “Kommando”, “Server” und “Thema” einzustellen. Das ganze 3-mal
  • Bei “Server” sollte immer “acroviewR15” stehen
  • Bei “Thema” sollte immer “control stehen
  • Bei “Kommando” sollte die ersten beiden male “[DocOpen(“%bm.pdf”)][FileOpen(“%bm.pdf”)]” stehen
    beim zweiten mal steht “[DocClose(“%bm.pdf”)]”

Die Einstellungen sollten wie in folgendem Bild gezeigt aussehen:

latex_settings