Windows 10 – Standarddrucker verwalten

Ihr wundert euch warum euer Standard Drucker immer wechselt? Ein neues „Feature“ in Windows 10 setzt den aktuellen Standarddrucker immer auf den zuletzt benutzten Drucker.
Hierbei wird auch berücksichtigt, an welchem Standort sich das Gerät im Moment befindet. Sprich zuhause wird der Heimdrucker automatisch als Standard ausgewählt und im Büro ein anderer.
Das kann ganz praktisch sein, stört aber vielleicht auch. Daher beschreibe ich hier kurz wie ihr die Funktion „Windows verwaltet Standarddrucker“ entweder per Hand oder via Gruppenrichtlinie / Registry deaktivieren könnt.

Von Hand

  1. Öffnet die Einstellungen von Windows 10 (z.B. Windows Taste + i)
  2. Navigiere zu Geräte und anschließend Drucker & Scanner
  3. Entferne den Haken bei „Windows verwaltet Standarddrucker“

Per Registry

  1. Navigiere zu folgendem Pfad:
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows
  2. Ändere den Wert „LegacyDefaultPrinterMode“ (DWORD) auf 1 ab.

 

Per Gruppenrichtlinie

Per GPO findet ihr die Option „Turn off Windows default printer management“ unter:

User Configuration\Administrative Templates\Control Panel\Printers\

Redis Memcache für Owncloud / Nextcloud unter Ubuntu einrichten

Um die Geschwindigkeit der eigenen Owncloud bzw. Nextcloud Installation mithilfe eines Cache aufzubessern gibt es mehrere Techniken die eingesetzt werden können. Hier beschreibe ich kurz wie man Redis einsetzt. Als Betriebssystem wurde ein Ubuntu 17.04 sowie Nextcloud 12.0.3 eingesetzt.

  1. Redis und Modul für PHP installieren
    apt-get install redis-server php7.0-redis
  2. Redis Konfigurieren
    Redis kann entweder über auf einem eigenem Server installiert werden und per IP/Port (6379) angesprochen werden oder aber direkt auf dem gleichen System wie eure Owncloud. In dem Fall bietet sich an die Kommunikation über ein unix Socket einzustellen. Hier folgenden Bereich auskommentieren und die Berechtigungen 770 setzen.

    vi /etc/redis/redis.conf
    # Unix socket.
    #
    # Specify the path for the Unix socket that will be used to listen for
    # incoming connections. There is no default, so Redis will not listen
    # on a unix socket when not specified.
    #
    unixsocket /var/run/redis/redis.sock
    unixsocketperm 770
  3. Apache Benutzer der Redis Gruppe hinzufügen
    Damit nun das PHP-Modul auch auf das unix Socket zugreifen kann, müssen wir den Benutzer des Webservers in die Gruppe „redis“ aufnehmen.

    vi /etc/group

    Unter Ubuntu ist dies für apache2 der Benutzer: www-data.

    redis:x:119:www-data
  4. Owncloud/Nextcloud config.php anpassen
    In der Config fügen wir nun folgende Zeilen ein, damit auch Redis als Caching Software verwendet wird.

    vi config/config.php
     'memcache.locking' => '\OC\Memcache\Redis',
     'memcache.local' => '\OC\Memcache\Redis',
     'redis' => array(
                   'host' => '/var/run/redis/redis.sock',
                   'port' => 0,
                   'dbindex' => 0,
                   'password' => 'secret',
                   'timeout' => 1.5,
                  ),
    
  5. Dienste neustarten
    Schlussendlich nochmal den Redis-Server sowie Apache2 neustarten, damit auch alle Änderungen aktiv werden.

    service redis-server restart
    service apache2 restart

Mögliche Fehler:
Am Anfang hatte ich noch folgenden Fehler, welcher aber auf die fehlende Gruppenzugehörigkeit zurückzuführen war:

Internal Server Error
The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.

Schaut man genau ins error.log sieht man, dass es ein Berechtigungsfehler ist und hier bei Punkt 2 und 3 nochmal angesetzt werden sollte.

[Thu Dec 14 11:34:25.451617 2017] [core:notice] [pid 3333] AH00094: Command line: '/usr/sbin/apache2'
[Thu Dec 14 11:38:05.020250 2017] [:error] [pid 3338] [client 10.0.0.55:32848] PHP Warning:  Redis::connect(): connect() failed: Permission denied in /var/www/owncloud/lib/private/RedisFactory.php on line 82, referer: https://cloud.domain.info/
[Thu Dec 14 11:38:08.363190 2017] [:error] [pid 3339] [client 10.0.0.55:32851] PHP Warning:  Redis::connect(): connect() failed: Permission denied in /var/www/owncloud/lib/private/RedisFactory.php on line 82
[Thu Dec 14 11:38:10.320506 2017] [:error] [pid 3339] [client 10.0.0.55:32851] PHP Warning:  Redis::connect(): connect() failed: Permission denied in /var/www/owncloud/lib/private/RedisFactory.php on line 82, referer: https://cloud.domain.info/
ls /var/run/redis/ -al
total 4
drwxrwsr-x  2 redis redis   80 Dec 14 11:39 .
drwxr-xr-x 32 root  root  1200 Dec 14 11:21 ..
-rw-r--r--  1 redis redis    5 Dec 14 11:39 redis-server.pid
srwxrwx---  1 redis redis    0 Dec 14 11:39 redis.sock

Freenas 11 – Virtuelle Maschine stoppen (cli)

Die aktuelle Version von Freenas 11.0 (Stable) setzt auf die Virtualisierungsumgebung byvhe, welche zumindest was die Web-Oberfläche angeht, noch nicht wirklich ausgereift ist.
Derzeit existiert noch das Problem, dass in manchen Fällen die Virtuelle Maschine nicht über die GUI gestoppt werden kann.
Sollte dass der Fall sein, kann man den Prozess zumindest über die Konsole beenden.
Schritt 1: Prozessliste ausgeben

root@freenas:/mnt/disks # ps aux
USER         PID  %CPU %MEM     VSZ    RSS TT  STAT STARTED      TIME COMMAND
root          11 400.0  0.0       0     64  -  RL   10:06   245:40.26 [idle]
root       15133   0.1  1.2 53 410180 26656 -  I    11:00     1:12.67 bhyve: Windows (bhyve)

Sucht hier nach dem Namen eurer VM und notiert euch die PID. In meinem Fall heißt die Maschine schlicht „Windows“ und die PID ist „15133“.
Schritt 2: Prozess beenden

kill -9 "PID ID"

Anschließend ist die VM hart beendet worden und ihr könnt diese auch wieder starten.

GPO – Fix: Encountered an error while parsing

Mit dem Update der aktuellen Windows 10 ADMX Tempaltes für das Creators Update (1703) bin ich bei uns im Group Policy Editor auf folgende Fehlermeldungen bei älteren GPO’s gestoßen:

Namespace 'Microsoft.Policies.Sensors.WindowsLocationProvider' is already defined as the target namespace for another file in the store.
File
\\domain...\microsoft-windows-geolocation-wlpadm.admx, line 5, column 110


Die gleiche Fehlermeldung kam ebenfalls nochmal für WinStoreUI:

Encountered an error while parsing.
Namespace 'Microsoft.Policies.WindowsStore' is already defined as the target namespace for another file in the store.
File \\domain...\WinStoreUI.admx, line 4, column 80


Problem:
Eine kurze Recherche ergab, dass Microsoft die Templates „WinStoreUI.admx“ in „WinStoreUI.admx“ bzw. „LocationProviderAdm.admx“ in „microsoft-windows-geolocation-wlpadm.admx“ umbenannt hat.
In der Regel werden die ADMX Dateien automatisch bei einem Update überschrieben. In diesem Fall kommt jedoch das neuere File dazu.
Aus diesem Grund gibt 2 admx Dateien mit den gleichen Namespaces, weswegen die Fehlermeldung erscheint.

Lösung:
Die alten ADMX Dateien (WinStoreUI.admx und LocationProviderAdm.admx) können samt der Language Files gelöscht werden. Die neuen ADMX Templates sind mit allen Einstellungen Abwärtskompatibel.

Windows 2008/2012/2016 – DFS Replikation wiederherstellen

Wird der Domaincontroller z.B. durch einen Stromausfall unsauber heruntergefahren, kann es passieren dass die DFS-Replikation anschließend nicht mehr korrekt funktioniert. In dem Fall tauchen im Eventlog Fehlermeldungen mit den ID’s: 6012, 1204, 2203 oder 4012 auf, die das bestätigen.
Wenn die Replikation nicht mehr funktioniert, wird das SYSVOL Verzeichnis nicht mit anderen Domain Controllern synchronisiert. Es werden also keine Gruppenrichtlinen oder Startskripte synchronisiert/aktualisiert.
Die Fehlermeldungen im Detail:

Der DFS-Replikationsdienst hat die Replikation für den Ordner unter dem folgenden lokalen Pfad "C:\Windows\SYSVOL\domain" beendet. Dieser Server wurde von anderen Partnern für 218 Tage getrennt. Dadurch wird die im Parameter "MaxOfflineTimeInDays" zulässige Dauer überschritten (60). Aus diesem Grund geht der DFS-Replikationsdienst davon aus, dass diese Daten veraltet sind, und dieser Ordner wird vom Server erst nach Korrektur dieses Fehlers wieder repliziert.
Verwenden Sie zum Fortsetzen der Replikation dieses Ordners das DFS-Verwaltungs-Snap-Ins zum Entfernen dieses Servers aus der Replikationsgruppe, und fügen Sie ihn dann der Gruppe erneut zu. Dadurch führt der Server einen ersten Synchronisierungstask aus, wodurch die veralteten Daten durch aktuelle Daten der Mitglieder der Replikationsgruppe ersetzt werden.
Weitere Informationen:
Fehler: 9061 (Der replizierte Ordner war zu lange offline.)
Name des replizierten Ordners: SYSVOL Share
ID des replizierten Ordners: 02A2AFE0-7636-4311-8224-7870CA231A31
Replikationsgruppenname: Domain System Volume
ID der Replikationsgruppe: D312232D-1934-4F65-9EC8-3A92F9A1ABEF
Mitglieds-ID: F12B1BC5-158F-48F4-9B36-9585C7F8DF46
Vom DFS-Replikationsdienst wurde die Replikation für das Volume "C:" beendet. Dieser Fall tritt ein, wenn eine DFSR-JET-Datenbank nicht ordnungsgemäß heruntergefahren wird und die automatische Wiederherstellung deaktiviert ist. Sichern Sie zum Beheben dieses Problems die Dateien in den betroffenen replizierten Ordnern, und setzen Sie die Replikation anschließend mithilfe der WMI-Methode "ResumeReplication" fort.
Weitere Informationen:
Volume: C:
GUID: 41230C60-D123-11E2-93E8-123E6F6E6123
Wiederherstellungsschritte
1. Sichern Sie die Dateien in allen replizierten Ordnern auf dem Volume. Andernfalls gehen möglicherweise aufgrund einer unerwarteten Konfliktauflösung im Rahmen der Wiederherstellung der replizierten Ordner Daten verloren.
2. Setzen Sie die Replikation für dieses Volume mithilfe der WMI-Methode "ResumeReplication" der DfsrVolumeConfig-Klasse fort. Geben Sie hierzu an einer Eingabeaufforderung mit erhöhten Rechten beispielsweise den folgenden Befehl ein:
wmic /namespace:\\root\microsoftdfs path dfsrVolumeConfig where volumeGuid="41230C60-D123-11E2-93E8-123E6F6E6123" call ResumeReplication
Weitere Informationen finden Sie hier: http://support.microsoft.com/kb/2663685.

Als erstes kann man folgende Schritte unternehmen um die Replikation zu überprüfen. In meinem Fall handelt es sich um mehrere Domaincontroller, es geht also um das SYSVOL Verzeichnis. (Quelle: Technet)

For /f %i IN ('dsquery server -o rdn') do @echo %i && @(net view \\%i | find "SYSVOL") & echo


Anschließend kann man sich den Status der DFS Replikation ausgeben lassen:

For /f %i IN ('dsquery server -o rdn') do @echo %i && @wmic /node:"%i" /namespace:\\root\microsoftdfs path dfsrreplicatedfolderinfo WHERE replicatedfoldername='SYSVOL share' get replicationgroupname,replicatedfoldername,state

Die Statuscodes haben folgende Bedeutung:

0 = Uninitialized
1 = Initialized
2 = Initial Sync
3 = Auto Recovery
4 = Normal
5 = In Error

[stextbox id=’alert‘]Vorher eine Sicherung des geteilten Ordners machen! Also in meinem Fall: C:\Windows\SYSVOL. Bei der Wiederherstellung kann es vorkommen, dass die Inhalte der Freigabe verloren gehen.[/stextbox]
Nun geht es an die Wiederherstellung der Replikation. Bei mehreren DC’s oder bei neu hinzugefügten DC’s kann es sein, dass das SYSVOL Verzeichnis noch nie synchronisiert wurde und daher leer ist bzw. gar nicht existiert. Daher die folgenden Schritte auf dem „primären“ DC ausführen, von dem aus der Sync erfolgen soll.
Schritt 1: Replikation fortsetzen
Aus der 2. Fehlermeldung von oben ergibt sich, dass die Replikation gestoppt ist. Diese müssen wir wieder fortsetzen. Der passende Befehl dazu findet sich zum Glück direkt im Eventlog.

wmic /namespace:\\root\microsoftdfs path dfsrVolumeConfig where volumeGuid="41230C60-D123-11E2-93E8-123E6F6E6123" call ResumeReplication

Im Eventlog finden sich jetzt weitere Einträge, dass die Replikation zwar fortgesetzt wird – jedoch nicht funktioniert, da der Partner immer noch zulange offline war.
Schritt 2: MaxOfflineTimeInDays hochsetzen
Die Lifetime also den Wert „MaxOfflineTimeinDays“ können wir mit folgenden Befehl für alle DC’s überprüfen:

For /f %i IN ('dsquery server -o rdn') do @echo %i && @wmic /node:"%i" /namespace:\\root\microsoftdfs path DfsrMachineConfig get MaxOfflineTimeInDays

Dieser wird jetzt auf eine Anzahl Tage gesetzt die höher ist, als die im Eventlog vermerkte Anzahl. In meinem Fall wäre das dann 220. Der Befehl muss auf allen DC’s mit dem Fehler ausgeführt werden.

wmic.exe /namespace:\\root\microsoftdfs path DfsrMachineConfig set MaxOfflineTimeInDays=220

Damit die Änderung des Wertes greift muss jeweils noch der Dienst „DFS Replication“ (DFSR) neugestartet werden.

net stop DFSR && net start DFSR

Ab jetzt sollte die Replikation wieder korrekt durchlaufen. Dies kann man über das Eventlog weiter verfolgen.

Schritt 3: MaxOfflineTimeInDays  – back to default
Wenn die Replikation abgeschlossen wurde sollte der Wert „MaxOfflineTimeInDays“ – wie in Schritt 2 – wieder auf den Standard von 60 Tagen zurückgesetzt werden.

Fix: Windows Update Fehler 0x80072f0c mit WSUS Server

Nach einer Neuinstallation des WSUS Servers bin ich auf folgenden Fehler bei einigen Windows Clients gestoßen: 0x80072f0c
Der Fehler bedeutet dass ein Zertifikat für die Authentifizierung notwendig ist. (A certificate is required to complete client authentication)
Besitzt der Client der Updates beziehen möchte also ein Computerzertifikat sollte es funktionieren.
Jedoch benutzt nicht jeder Computerzertifikate, also kann man den Authentifizierungstyp im IIS auch abändern.

  1. Internet Information Services (IIS Manager) starten
  2. Zur Site „WSUS Administration“ wechseln
  3. SSL Settings öffnen
  4. Prüfen dass kein Haken bei „Require SSL“ gesetzt ist und Client Certificates auf „Ignore“ steht.
  5. ggf. per cmd noch einen iisreset machen

2017-07-24	20:09:48:158	 876	950	PT	WARNING: PTError: 0x80072f0c
2017-07-24	20:09:48:158	 876	950	Report	WARNING: Reporter failed to upload events with hr = 80072f0c.
2017-07-24	20:39:36:230	 876	1d0	PT	WARNING: Cached cookie has expired or new PID is available
2017-07-24	20:39:36:230	 876	1d0	PT	Initializing simple targeting cookie, clientId = 1ce7f007-90b6-469f-b045-052a350db63b, target group = , DNS name = client.domain.info
2017-07-24	20:39:36:230	 876	1d0	PT	  Server URL = https://wsus.domain.info:8531/SimpleAuthWebService/SimpleAuth.asmx
2017-07-24	20:39:36:262	 876	1d0	Misc	WARNING: Send failed with hr = 80072f0c.
2017-07-24	20:39:36:262	 876	1d0	Misc	WARNING: SendRequest failed with hr = 80072f0c. Proxy List used: <(null)> Bypass List used : <(null)> Auth Schemes used : <>
2017-07-24	20:39:36:262	 876	1d0	Misc	FATAL: SOAP/WinHttp - SendRequest: SendRequestUsingProxy failed. error 0x80072f0c
2017-07-24	20:39:36:262	 876	1d0	PT	  + Last proxy send request failed with hr = 0x80072F0C, HTTP status code = 0
2017-07-24	20:39:36:262	 876	1d0	PT	  + Caller provided credentials = No
2017-07-24	20:39:36:262	 876	1d0	PT	  + Impersonate flags = 0
2017-07-24	20:39:36:262	 876	1d0	PT	  + Possible authorization schemes used =
2017-07-24	20:39:36:262	 876	1d0	PT	WARNING: GetAuthorizationCookie failure, error = 0x80072F0C, soap client error = 5, soap error code = 0, HTTP status code = 200
2017-07-24	20:39:36:262	 876	1d0	PT	WARNING: Failed to initialize Simple Targeting Cookie: 0x80072f0c
2017-07-24	20:39:36:262	 876	1d0	PT	WARNING: PopulateAuthCookies failed: 0x80072f0c
2017-07-24	20:39:36:262	 876	1d0	PT	WARNING: RefreshCookie failed: 0x80072f0c
2017-07-24	20:39:36:262	 876	1d0	PT	WARNING: RefreshPTState failed: 0x80072f0c
2017-07-24	20:39:36:262	 876	1d0	PT	WARNING: PTError: 0x80072f0c
2017-07-24	20:39:36:262	 876	1d0	Report	WARNING: Reporter failed to upload events with hr = 80072f0c.
2017-07-24	20:52:21:341	 876	1d0	PT	WARNING: Cached cookie has expired or new PID is available
2017-07-24	20:52:21:341	 876	1d0	PT	Initializing simple targeting cookie, clientId = 1ce7f007-90b6-469f-b045-052a350db63b, target group = , DNS name = client.domain.info
2017-07-24	20:52:21:341	 876	1d0	PT	  Server URL = https://wsus.domain.info:8531/SimpleAuthWebService/SimpleAuth.asmx
2017-07-24	20:52:21:387	 876	1d0	Misc	WARNING: Send failed with hr = 80072f0c.
2017-07-24	20:52:21:387	 876	1d0	Misc	WARNING: SendRequest failed with hr = 80072f0c. Proxy List used: <(null)> Bypass List used : <(null)> Auth Schemes used : <>
2017-07-24	20:52:21:387	 876	1d0	Misc	FATAL: SOAP/WinHttp - SendRequest: SendRequestUsingProxy failed. error 0x80072f0c
2017-07-24	20:52:21:387	 876	1d0	PT	  + Last proxy send request failed with hr = 0x80072F0C, HTTP status code = 0
2017-07-24	20:52:21:387	 876	1d0	PT	  + Caller provided credentials = No
2017-07-24	20:52:21:387	 876	1d0	PT	  + Impersonate flags = 0
2017-07-24	20:52:21:387	 876	1d0	PT	  + Possible authorization schemes used =
2017-07-24	20:52:21:387	 876	1d0	PT	WARNING: GetAuthorizationCookie failure, error = 0x80072F0C, soap client error = 5, soap error code = 0, HTTP status code = 200
2017-07-24	20:52:21:387	 876	1d0	PT	WARNING: Failed to initialize Simple Targeting Cookie: 0x80072f0c
2017-07-24	20:52:21:387	 876	1d0	PT	WARNING: PopulateAuthCookies failed: 0x80072f0c
2017-07-24	20:52:21:387	 876	1d0	PT	WARNING: RefreshCookie failed: 0x80072f0c
2017-07-24	20:52:21:387	 876	1d0	PT	WARNING: RefreshPTState failed: 0x80072f0c
2017-07-24	20:52:21:387	 876	1d0	PT	WARNING: PTError: 0x80072f0c
2017-07-24	20:52:21:387	 876	1d0	Report	WARNING: Reporter failed to upload events with hr = 80072f0c.

Exchange 2016 und WMF 5.0 – Management Shell Fehler

Installiert man das Windows Management Framework 5.0 auf einem Windows Server 2012 R2 um z.B. die aktuelle Powershell 5.0 zu bekommen, sollte man vorher prüfen ob nicht auch die Exchange Management Shell verwendet wird.
Sonst führt dies zu folgendem Fehler: „Cannot find path “ because it does not exist.“

VERBOSE: Connecting to TESTDC.domain.info.
New-PSSession : Cannot find path '' because it does not exist.
At line:1 char:1
+ New-PSSession -ConnectionURI "$connectionUri" -ConfigurationName Micr ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], RemoteExc
   eption
    + FullyQualifiedErrorId : PSSessionOpenFailed
VERBOSE: Connecting to TESTDC.domain.info.


Das Windows Management Framework 5.0 findet man unter den installierten Updates (KB3134758).
Und wer lesen kann ist klar im Vorteil: In den System Requirements steht nichts von Powershell 5.0. (Aktueller Stand bei Exchange CU6)


Also Update entfernen und siehe da – alles geht 😉

SSL-Zertifikat des Unifi Wifi Controller austauschen

Wer den Ubiquiti Unifi Wlan Controller nutzt wird vielleicht schon über das mitgelieferte, selbsterstellte Zertifikat gestolpert sein. Das ganze führt auf der Adminoberfläche zu einer kleinen Fehlermeldung die soweit aber noch nicht so dramatisch ist. Nutzt man noch das Gästeportal bekommen jedoch auch alle Clients mit ihrem Smartphone eine Fehlermeldung, wenn auf die Loginseite mit HTTPS weitergeleitet wird.
Leider gibt es noch keine Möglichkeit das Zertifikat über die Admin Oberfläche auszutauschen. Jedoch per Kommandozeile, wie ich hier kurz beschreibe. Ich verwende den Windows Controller. Die Prozedur sollte unter Linux bis auf die Pfade nicht viel anders sein.
Ausgangslage ist ein bereits erstelltes Zertifikat was in Form eines PFX vorliegt. (Der Windows-Standard, wenn man ein Zertifikat exportiert.)
[stextbox id=’alert‘]Vorher unbedingt eine Sicherungskopie des Keystore machen und den Unifi Controller beenden.
(C:\Users\Dein-User\Ubiquiti UniFi\data\keystore)[/stextbox]

Alias des Zertifikats anzeigen lassen:

cd C:\Users\constey\Ubiquiti UniFi\data\
"C:\Program Files\Java\jre1.8.0_131\bin\keytool" -list -keystore mein-eigenes-zertifikat.pfx -storetype pkcs12
Enter keystore password:
Keystore type: PKCS12
Keystore provider: SunJSSE
Your keystore contains 1 entry
1, 16.05.2017, PrivateKeyEntry,
Certificate fingerprint (SHA1): 97:CE:EE:22:3A:B4:1C:76:C5:D5:A6:7A:FB:17:EB:60:
7B:C3:E2:E3

Die erste Zahl (1, 16.05.2017) gibt an welcher Alias das Zertifikat in dem PFX hat. In meinem Fall ist in dem PFX nur ein Zertifikat enthalten, evtl. kann aber z.B. noch das Root Zertifikat enthalten sein – dann muss man die Fingerabdrücke vergleichen und den korrekten Alias auswählen.

cd C:\Users\constey\Ubiquiti UniFi\data\
"C:\Program Files\Java\jre1.8.0_131\bin\keytool" -importkeystore -srcstoretype pkcs12 -srcalias 1 -srckeystore mein-eigenes-zertifikat.pfx -keystore keystore -destalias unifi
Enter destination keystore password:
Enter source keystore password:
Existing entry alias 1 exists, overwrite? [no]: yes

Das Passwort für den keystore lautet: aircontrolenterprise
Zum Abschluss den Unifi Controller wieder starten.

Google Authenticator – Token exportieren/importieren

Durch den Google Authenticator kann man seine Konten durch den sogenannten 2. Faktor zusätzlich schützen. Nun habe ich bei einigen Diensten wie z.B. Amazon, Google, Teamviewer und noch ein paar mehr, die 2 Faktor Authentifizierung bereits aktiviert und auf meinem Handy eingerichtet.
Mit dem Wechsel des Smartphones kann man über die Android Backup Funktion (bzw. Herstellerspezifische) seine Daten und Apps weitestgehend kopieren.
Dies habe ich bereits für das Samsung Galaxy S8+hier beschrieben.
Dabei gehen aber die eingerichteten Tokens des Google Authenticator verloren. Diese müssen alle über die Konten neu eingerichtet werden.
Wem dies zuviel Aufwand ist, kann eine schnellere Methode benutzen – bei der jedoch Root-Rechte auf dem Smartphone benötigt werden, wo der Google Authenticator bereits genutzt wird. Auf dem „neuen“ Handy werden keine Root-Rechte benötigt.
[appbox googleplay com.mufri.authenticatorplus]

Authenticator Plus

Abhilfe schafft hier die ca. 3€ teure App: Authenticator Plus. Diese App kann die Tokens aus dem Google Authenticator importieren, wenn Root-Rechte vorhanden sind. Anschließend muss man ein Passwort vergeben, mit dem die Tokens in einer verschlüsselten Datenbank abgelegt werden. Danach können die Tokens auf das neue Smartphone exportiert bzw. synchronisiert werden. Für die Synchronisation werden folgende Anbieter unterstützt: Google Drive oder Dropbox – was das ganze komfortable gestaltet.
Wer der verwendeten Verschlüsselung und den Hostern nicht traut, kann aber auch einfach die Datei per USB oder SDKarte von Hand auf das neue Gerät kopieren/verschieben. Weitere ausführliche technische Informationen zur Sicherheit finden sich hier.
Netter Nebeneffekt dabei ist, dass man mit dem Authenticator Plus seine Tokens auf mehreren Geräten gleichzeitig verfügbar machen kann. Die Handhabe funktioniert genau und 1:1 wie beim Google Authenticator z.B. Das einlesen per QR Code. Desweiteren kann man seine Token noch kategorisieren, was jedoch bei meinen 8 verwendeten noch keinen wirklichen Mehrwert bietet.
Die App bietet desweiteren noch einige Einstellungen im Vergleich zum Google Authenticator wie ein extra Pin-Schutz, Anzeigeoptionen, Android-Wear Unterstützung und viele Einstellungen zu Synchronisation und Import/Export Funktion. Wenn die App auf einem gerootetem Handy benutzt wird, muss der Pin-Schutz explizit genutzt werden, um so die Tokens zusätzlich zu schützen.