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.

Samsung Galaxy S8+ Daten kopieren – der Wechsel mit Smart Switch

Ich bin einer von vielen, die ein Samsung Galaxy S8+ ihr eigen nennen dürfen.  Wie bei jedem neuen Handy stellt sich die Frage:
Wie kann man am Einfachsten die Daten des alten Handy auf das neue migrieren?  
Im folgenden Stelle ich kurz das beim S8 und S8+ beinhaltete App „Samsung Smart Switch“ vor und erkläre wie die Migration erfolgt.

Samsung Smart Switch

Das Samsung Galaxy S8 kommt mit der Software „Smart Switch“ daher, welche es ermöglich seine Daten von einem alten Smartphone zu kopieren.
Es werden iOS, Android, Blackberry und Windows Phones unterstützt, was eigentlich 99% der Smartphones abdecken sollte.
Ihr braucht lediglich das Samsung Smart Switch App aus dem jeweiligen App-Store zu installieren.
Beim Übertragen der Daten vom Samsung Galaxy S6 oder S7 wird sogar das Hintergrundbild und die Position der Icons auf dem Homescreen übertragen.

Anschließend gibt es die Möglichkeit der Übertragung der Daten per Kabel oder Kabellos. Bei meinem LG G4 mit LineageOS klappte die Übertragung über den beim Galaxy S8+ mitgelieferten USB-Host Adapter leider nicht. Jedoch ließ sich Kabellos alles übertragen.


 

Fazit

Wiederherstellung der Apps aus dem Google Konto

Über das App kann man relativ schnell und unkompliziert seine Daten und einen Großteil der Apps mit Einstellungen sowie Kontakten, Nachrichten (SMS), Anrufprotokoll, Bildern, und Dateien
von der SD-Karte übertragen. Es gibt jedoch Apps wie zum Beispiel WhatsApp oder der Google Authenticator welche sich auf diesem Weg nicht sichern lassen. Jedoch gibt es für WhatsApp ja eine integrierte Backup-Funktion die ihr unter (Einstellungen -> Chats -> Chat Backup) findet.
Der beste Weg um sein Handy zu sichern setzt leider Root-Rechte voraus. Wer Root Rechte auf seinem alten und neuen Handy hat, kann dann wirklich alle Apps und Einstellungen per Titanium Backup sichern.
[stextbox id=“info“]Wichtig: Beim ersten Einrichten eures neuen Galaxy S8 oder S8+ werdet ihr beim Einrichten eures Google Kontos gefragt, ob ihr die Daten eines alten Gerätes wiederherstellen wollt. Hier würde ich unbedingt „Nicht wiederherstellen“ auswählen, da hier lediglich nur die Apps und so gut wie keine weiteren Einstellungen installiert werden.[/stextbox]
 

WSUS 2012R2 für Verteilung von Windows 10 Upgrades vorbereiten

Mit der neusten Version des Windows Update Services bietet Microsoft jetzt endlich auch die Möglichkeit, Upgrades für Windows 10 bereitzustellen.
Dafür wird die WSUS Version „Build 6.3.9600.18324“ vorausgesetzt. Das aktuellste Patchlevel könnt ihr bei wsus.de einsehen (ganz runter scrollen).
In der Regel fehlen bei einem 2012 R2 Server lediglich die beiden Patches: KB3095113 sowie KB3159706 die mittlerweile aber auch per Automatische Updates verteilt werden.
In meinem Fall lies sich danach der WSUS nicht mehr starten, was sich über den Eventlog Eintrag: „Update Services failed its initialization and stopped.“ ausdrückte.

Aus der Fehlermeldung lies sich jetzt noch nicht das Problem erkennen. Das etwas detailliertere Logfile findet sich unter:

C:\Program Files\Update Services\LogFiles\SoftwareDistribution.txt

Dort fand sich dann das eigentliche Problem:

2017-04-24 09:35:55.755 UTC Info WsusService.6 SusService.SusServiceStartUpThreadProc WSUS Server Version: 6.3.9600.18324
2017-04-24 09:36:19.724 UTC Error WsusService.6 SusService.SusServiceStartUpThreadProc WUS Service failed during startup processing, sleeping before retry - Error Details: System.Data.SqlClient.SqlException (0x80131904): Cannot open database "SUSDB" requested by the login. The login failed.
Login failed for user 'NT AUTHORITY\NETWORK SERVICE'.
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal&amp; connection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal&amp; connection)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal&amp; connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Microsoft.UpdateServices.DatabaseAccess.DBConnection.Connect(String connectionString)
at Microsoft.UpdateServices.Internal.DataAccess.ExecuteSPUpdateServerHealthStatus(String componentName, Boolean isRunning)
at Microsoft.UpdateServices.EventSystem.SusService.SusServiceStartUpThreadProc()
ClientConnectionId:5ef465d2-f07e-466e-a09d-ab40a02d50e8

Mit dieser Fehlermeldung kommt man auf den KB3159706 von Microsoft. Dort wird erklärt, dass noch die folgenden manuelle Schritte notwendig sind um die Installation der beiden vorherigen KB’s abzuschließen:

  1. Als Administrator in der Konsole ausführen
    C:\Program Files\Update Services\Tools\wsusutil.exe" postinstall /servicingführt zu folgendem Output:
    Log file is located at C:\Users\Username\AppData\Local\Temp\2\tmp46DF.tmp
    Post install is starting
    Post install has successfully completed
  2. Im Server Manager über „Add Roles and Features“ das „HTTP Activation“ Feature für .NET Framework 4.5 aktivieren
  3. Den WSUS Dienst neustarten
    net stop WsusService &amp;&amp; net start WsusService

Für diejenigen, wo kein SSL für ihren WSUS aktiviert haben, war es dass an dieser Stelle. Wer SSL benutzt bekommt eventuell in dem Moment noch die folgende Fehlermeldung zu Gesicht: „The Client Web Service is not working.“

In diesem Fall muss noch die web.config Datei des Webservices angepasst werden.
 

  1. Wieder als Administrator per cmd ausführen:
    cd C:\Program Files\Update Services\WebServices\ClientWebService\
    takeown /f web.config /a
    icacls "C:\Program Files\Update Services\WebServices\ClientWebService\Web.config" /grant administrators:f
    
  2. Weitere Endpoint Einträge in der Datei „C:\Program Files\Update Services\WebServices\ClientWebService\Web.Config“ hinzufügen.
    Hier am einfachsten nach „endpoint address“ suchen. Der Block fängt mit folgenden Zeilen an:

    &lt;services&gt;
    &lt;service
    name="Microsoft.UpdateServices.Internal.Client"
    behaviorConfiguration="ClientWebServiceBehaviour"&gt;

    Anschließend kommen die Einträge der Endpoints, zu denen ihr die folgenden dazu kopiert:

    &lt;!--
    These 4 endpoint bindings are required for supporting both http and https
    --&gt;
    &lt;endpoint address=""
    binding="basicHttpBinding"
    bindingConfiguration="SSL"
    contract="Microsoft.UpdateServices.Internal.IClientWebService" /&gt;
    &lt;endpoint address="secured"
    binding="basicHttpBinding"
    bindingConfiguration="SSL"
    contract="Microsoft.UpdateServices.Internal.IClientWebService" /&gt; 

    Der restliche Teil des Eintrages sieht zur Vollständigkeit wie folgt aus:

    &lt;endpoint address=""
    binding="basicHttpBinding"
    bindingConfiguration="ClientWebServiceBinding"
    contract="Microsoft.UpdateServices.Internal.IClientWebService" /&gt;
    &lt;endpoint address="secured"
    binding="basicHttpBinding"
    bindingConfiguration="ClientWebServiceBinding"
    contract="Microsoft.UpdateServices.Internal.IClientWebService" /&gt;
    &lt;/service&gt;
    &lt;/services&gt; 
  3. Jetzt noch ganz unten in der Datei den letzten Eintrag wie folgt anpassen/hinzufügen:
    &lt;/bindings&gt; &lt;serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /&gt; &lt;/system.serviceModel&gt; 
  4. Jetzt zur Sicherheit nochmal das System neustarten, Fertig.