Jun 082017
 

Hat man einmal einen gültigen Key eingegeben, gibt’s in Office 2016 keine Chance, diesen zu ändern. Auch nicht mit Deinstallation und Neuinstallation.

Nach Entfernung des aktuellen Keys auf diesem Weg (in cmd als Administrator), fragen die Office-Programme beim nächsten Start endlich wieder nach einer Lizenz:


C:\Program Files <x86>\Microsoft Office\Office16>cscript ospp.vbs /dstatus

(office16 = Office 2016, office15 = Office 2013)

Die angezeigten letzten fünf Stellen des aktuellen Keys sind statt XXXXX im nächsten Befehl einzusetzen:


C:\Program Files <x86>\Microsoft Office\Office16>cscript ospp.vbs /unpkey:XXXXX

 

Mai 062017
 

KB4015549 (Monthly Rollup, April 2017) für Windows 7 SP1 kann unter Win 7 64 Bit nicht installiert werden:

Code 8024200D Unbekannter Fehler bei Windows Update

Manueller Download+Installation klappt auch nicht. Dies hier hilft nicht: Updateprobleme und das auch nicht: https://answers.microsoft.com/en-us/windows/forum/all/error-windowsupdate8024200d-windowsupdatedt000/2b38439c-6748-4891-87f8-ba954d56042e

Jemand eine Idee?

Apr 272017
 

Bei Auslieferung ist der T1700G-28TQ von TP-LINK unter der IP 192.168.0.1 erreichbar.

Stellt man das Interface Vlan1 über die Web-Oberfläche auf DHCP um, sollte der Switch anschließend (oder beim nächsten Start?) eine IP vom DHCP-Server anfordern. Nach Auswahl von DHCP und Klick auf „Apply“ verliert man naturgemäß die Verbindung zum Switch und denkt, das war erfolgreich. Allerdings habe ich – bei allen gekauften Geräten – festgestellt, dass die Umstellung auf DHCP so nicht klappt, der Switch also weiter statisch unter 192.168.0.1 erreichbar bleibt.

Lösung war, dem Switch zuerst statisch die IP zuzuweisen, die er eigentlich vom DHCP-Server bekommen sollte und dann im nächsten Schritt auf DHCP umzustellen. Auf diesem Weg sieht man nach „Apply“ auch die Meldung „Operation succeeded“ und tatsächlich ist das Gerät dann auf DHCP umgestellt und spricht fortan mit dem DHCP-Server. Vor dem nächsten Stromausfall nicht vergessen: „Save Config“ …

Apr 252017
 

Outlook (2013/2016) und OWA zeigten plötzlich „öffentliche Ordner“ überhaupt nicht mehr an.

Nach Setzen eines neuen Alias für das Postfach der öffentl. Ordner per Power Shell war der Fehler behoben:


Set-Mailbox -PublicFolder -Identity "Name des Postfachs" -Alias "Neuer Alias"

Warum, weiß ich nicht. Die Lösung kam vom Microsoft Support ohne Begründung.

Apr 122017
 

Manchmal möchte man vom IDE zum AHCI-Modus wechseln (z.B. bei Einbau einer SSD). Vor Umstellung im BIOS muss jedoch Windows 7 wie folgt vorbereitet werden, sonst ist kein Systemstart mehr möglich:

  • regedit starten
  • Im Schlüssel HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ Msahci den Wert Start auf 0 setzen.
  • Im Schlüssel HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ Pciide den Wert Start auf 0 setzen.
  • Vor dem nächsten Hochfahren von Windows 7 das BIOS auf AHCI umstellen.
Mrz 222017
 

Bei einem Toshiba Tecra M11 lässt sich weder mit F2 das BIOS noch mit F12 das Boot-Menü aufrufen?

Das kann daran liegen, dass im BIOS ein Supervisor-Passwort gesetzt wurde.

Die Lösung: Nach dem Einschalten INS/Einfügen drücken und danach F2.

Dez 102016
 

Wie kann man nahezu unterbrechungsfrei eine Apache Website auf eine neue IP-Adresse umziehen, ohne warten zu müssen, bis die neue IP-Adresse weltweit bekannt ist (abhängig von der TTL der DNS-Einträge)?

Ziel: Zugriffe auf die alte IP-Adresse sollen auf die neue weitergeleitet werden, bis allen Clients die neue IP-Adresse bekannt ist.

Um dies zu erreichen, sollte auf dem alten Server, direkt nach Kopieren der Daten auf den neuen Server, mit a2enmod proxy_http das http-Proxy-Modul des Apache eingeschaltet werden. Der alte Webserver kann dann eine Konfiguration wie diese bekommen:

<VirtualHost *:80>
        ServerAdmin webmaster@domain.xy
        ServerAlias www.domain.xy www2.domain.xy
       
        ProxyPreserveHost On
        ProxyPass / http://123.123.123.123/
        ProxyPassReverse / http://123.123.123.123/

        ErrorLog /var/log/redirect-error_log
        CustomLog /var/log/redirect-access.log combined
</VirtualHost>

Im Beispiel: www.domain.xy und www2.domain.xy sind die Hostnamen der umziehenden Website, 123.123.123.123 ist die IP-Adresse des neuen Webservers.
Voraussetzung: Der alte Webserver darf http-Verbindungen nach außen, speziell zum neuen Webserver aufbauen. Diese Umleitung funktioniert auch bei Namedvirtualhosts auf dem neuen Server.

Dez 092016
 

Voraussetzung für die Installation eines DATEV 10.0 Arbeitsplatzes (genauer: DATEV 10.0 mIDentity, SmartCard, Sicherheitspaket) auf einem Windows 7 System, ist das SHA-2-Update (KB3033929) von Microsoft.

Allerdings lässt dieses sich teilweise nicht installieren: Meldung, es sei bereits installiert, obwohl dies nicht der Fall ist.

Der hierfür von DATEV angebotene Fix brachte keine Besserung (trotz der Meldung „Ihr System erfüllt nun die Voraussetzungen für die Installation“). Infos von DATEV zum Thema: Dokument 1017539

Lösung:

  • Das Sicherheitsupdate hier herunterladen.
  • Die Datei Windows6.1-KB3033929-x64.msu entpacken, z. B. mit 7-Zip.
  • Ein cmd-Fenster mit Administratorrechten öffnen.
  • Die entpackte cab-Datei mit diesem Befehl installieren: dism /online /add-package:Windows6.1-KB3033929-x64.cab
Dez 022016
 

Hat eine Site mehrere Domains, die gemeinsam ausgewertet werden sollen (Anbindung an Google Analytics wie hier mit diesem Code), sollten alle beteiligen Domains unter „.js Tracking Informationen“ in die „Verweis-Ausschlussliste“ eingetragen werden.

Um identische Pfade innerhalb der verschiedenen Domains in den Berichten unterscheiden zu können, kann ein benutzerdefinierter Filter wie folgt angelegt werden:

Google Analytics 1

Die Homepage wird mal als „/“, mal als „/index.html“ bzw. „/index.php“ aufgerufen? In den Berichten soll dies alles gemeinsam gezählt werden. Dies realisiert folgender benutzerdefinierter Filter am Beispiel von „index.html“:

Google Analytics 2

Alle URLs in Kleinbuchstaben umschreiben? Mit diesem benutzerdefinierten Filter:

Google Analytics 3

URLs von Verzeichnissen immer mit „/“ abschließen? Mit diesem benutzerdefinierten Filter:

Google Analytics 4

Alle URL-Parameter vor der Analyse abschneiden? Mit diesem benutzerdefinierten Filter:

Google Analytics 5

Eigene Zugriffe / eigene IP ausschließen? Mit diesem vordefinierten Filter:

Google Analytics 6

Warum fehlt bei der Beispieladresse das letzte Octet? Weil ich davon ausgehe, dass alle IP-Adressen anonymisiert werden, wie für Deutschland vorgeschrieben. Deshalb können eigene Zugriffe anhand der IP-Adresse natürlich nicht mehr eindeutig identifiziert werden. Bei dieser Lösung filtert man natürlich auch Zugriffe von anderen (es sei denn wir sprechen vom eigenen /24-Netz), deren IP sich nur im letzten Octet von der eigenen unterscheidet. Wen das stört, der muss eine der Lösungen ab Variante 2 von hier verwenden: http://www.thomashutter.com/index.php/2013/10/google-analytics-5-varianten-zum-ausschluss-von-internen-ips-besuchern/

 

Dez 022016
 

Um mehrere Domains, die in der Statistik zusammengefasst sein sollen, unter einer einzigen Google Analytics Property zu erfassen und trotzdem keinen hässlichen „_ga“-Parameter beim Domainwechsel an den URLs zu haben, eignet sich folgender Code:

<script>
var gaProperty = 'UA-0000000-1';
var disableStr = 'ga-disable-' + gaProperty;
if (document.cookie.indexOf(disableStr + '=true') > -1) {
window[disableStr] = true;
}
function gaOptout() {
document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
window[disableStr] = true;
}
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-0000000-1', 'auto', {'allowLinker': true});
ga('require', 'linker');
ga('linker:autoLink', ['www.dom1.xy', 'www.dom2.xy', 'www.dom3.xy'] );
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');
$(window).load(function() {
currentURL = window.location.href;
newURL = currentURL.replace(/&_ga(\=[^&]*)?(?=&|$)|_ga(\=[^&]*)?(&|$)/,"");
if(newURL.substr(-1) === "?"){newURL = newURL.slice(0, - 1)}
history.replaceState("state", "", newURL);
});
</script>

Beispiel-Sites im Code: www.dom1.xy, www.dom2.xy, www.dom3.xy, Beispiel-Property im Code: UA-0000000-1

Weitere Hinweise zu Google Analytics

Nov 242016
 

Das Teilen auf Facebook und Tweeten auf Twitter kann auch heute noch in eine Website eingebunden werden, ohne bei jedem Seitenaufruf ungefragt (und datenschutz-problematisch) eine Verbindung zu den Dienstanbietern herzustellen – z. B. mit diesem Script:

<script type="text/javascript">
function fbshare(){
var sharer = "https://www.facebook.com/sharer/sharer.php?u=";
window.open(sharer + location.href,'sharer', 'width=626,height=436');
}
function twshare(){
var sharer = "https://twitter.com/share?url=";
window.open(sharer + location.href,'sharer', 'width=626,height=436');
}
</script>

Lokal abgelegte Buttons können dann z. B. so verlinkt werden:

<img src="fbshare.png" onclick="fbshare();" onMouseOver="this.style.cursor='pointer'">
<img src="twshare.png" onclick="twshare();" onMouseOver="this.style.cursor='pointer'">
Nov 152016
 

Fail2ban ist ein flexibles Intrusion Prevention System. In diesem Fall sollen Angriffe auf eine Typo3-Installation erkannt und geblockt werden.

Achtung: Die folgende Lösung zählt auch erfolgreiche Logins als Fehler und ist daher nur geeignet, wenn man IPs, von der viele erfolgreiche Logins zu erwarten sind, in /etc/fail2ban/jail.conf mit ignoreip ignoriert und gute Werte für findtime und maxretry findet, um eine noch zulässige Anzahl Logins von anderen IPs zu ermöglichen. Für Angriffe von ausgeschlossenen IPs besteht dann natürlich kein Schutz, was akzeptabel sein kann, wenn es „hausinterne“ sind.

Zunächst als Datei /etc/fail2ban/filter.d/apache-typo3.conf einen neuen Filter anlegen:


[Definition]
failregex = ^<HOST> .*"POST .*loginProvider.*
ignoreregex =

In /etc/fail2ban/jail.local anlegen/hinzufügen:

[apache-typo3]
enabled = true
port = http,https
filter = apache-typo3
logpath = /var/www/logs/*access_log*

Hinweis: Fail2ban wird nicht wie erwartet funktionieren, wenn die Zeitzone der Einträge in den Logfiles eine andere ist, als die unter der fail2ban läuft. Nach Ändern der Zeitzone (dpkg-reconfigure tzdata) zudem nicht vergessen, den Apache neu zu starten. Ein Punkt, der mich Stunden Fehlersuche gekostet hat. Eine andere Falle kann sein, dass backend = auto in /etc/fail2ban/jail.conf auf bestimmten Systemen nicht funktioniert. Hier sollte backend = polling immer funktionieren.

Nov 122016
 

Unitymedia scheint nach drei Anrufen von mir endlich ein Austauschgerät für meinen defekten Rekorder auf den Weg gebracht zu haben:

Ihre Hardware ist jetzt auf dem Weg und trifft in Kürze bei Ihnen ein.
Die Produktaktivierung erfolgt am 01.01.0001 im Laufe des Tages, also gegebenenfalls auch erst abends.

Wenn das Datum stimmt, kann’s ruhig auch erst abends sein!

Nov 042016
 

Hatte kürzlich Bildstörungen beim TV-Empfang gemeldet. Heute ein Anruf von Unitymedia: Das Produkt Fernsehen würde im Business-Bereich gar nicht angeboten, man verstehe nicht, wie ich da eine Störung melden könne, als Geschäftskunde.

Komisch, ich habe „Business TV“ schon länger. So heißt es nämlich und ist auch aktuell noch buchbar: https://www.unitymedia.de/business/selbststaendige/business-tv/tv-pakete/

Nov 012016
 

Das Verbinden von Netzwerklaufwerken über den Explorer oder mit „net use“ zu nicht-Windows-Servern (Linux / Samba, NAS, …) schlägt mit unerklärlichen Meldungen fehl?

Dies kann daran liegen, dass unter Windows 8/8.1/10 kein lokales Konto, sondern ein Microsoft-Live-Konto bzw. eine PIN-Anmeldung verwendet wird. Ein Versuch mit lokalem Konto lohnt sich!

Sep 232016
 

Bei der Umstellung von PHP 5.5 auf PHP 5.6 kann es unter verschiedenen Umständen zur falschen Darstellung von Umlauten kommen. Dies musste auch ich feststellen, als ich umgestellt habe, da 1&1 PHP 5.5 in Kürze nur noch für ca. 5 EUR monatlichen Aufpreis anbieten wird.

Hier finden sich die Gründe und Lösungen im Detail. Oder auch hier.

Einfach, aber natürlich absolut nicht elegant, ist die Lösung, eine php.ini in allen Verzeichnissen mit betroffenen php-Scripts zu hinterlegen, die den Inhalt

default_charset = ""

hat.