Mai 202019
 

Wer mit AWStats monatlich und jährlich statische Statistiken erzeugt, möchte aus diesen vielleicht nachträglich aus Datenschutzgründen alle IP-Nummern und Hostnamen löschen.

Eine Möglichkeit ist:

1. Die Listen “Gesamte Liste”, “Letzter Zugriff” und “Unaufgelöste IP-Adressen” aus dem Bereich “Rechner” komplett entfernen.


find ./awstats -name *allhosts\.html -exec rm {} \;
find ./awstats -name *unknownip\.html -exec rm {} \;
find ./awstats -name *lasthosts\.html -exec rm {} \;

2. Aus allen Indexseiten für die Monate und Jahre die Top 20 Rechner rausfiltern:


find ./awstats -name *-yearly\.html -exec awstats-anonymizer {} \;
find ./awstats -name *-monthly\.html -exec awstats-anonymizer {} \;

Hier das erforderliche Script awstats-anonymizer:


if [ $# -eq 1 ]
then
  tmpfile=$(mktemp)
  grep -v "[B0]</td><td nowrap" $1 > $tmpfile
  cp $tmpfile $1
  rm -f $tmpfile
else
  echo Dateinamen angeben!
fi

Achtung: Der Zeilenfilter könnte versionsabhängig evtl. nicht funktionieren und Falsches filtern! Getestet mit Advanced Web Statistics 7.0 (build 1.971),  Advanced Web Statistics 7.3 (build 20140126) und Advanced Web Statistics 7.7 (build 20180105).

Mrz 042019
 

Canon bietet in der Anleitung zur Einrichtung des Canon PIXMA TS3151 keine Möglichkeit, den WLAN-Key einzugeben. Aus unerfindlichen Gründen wird die WLAN-Einrichtung nur per WPS beschrieben.

Wer schließlich alle Canon-Tools installiert hat und den Drucker vorläufig per USB verbunden hat, findet im Canon IJ Network Device Setup Utility die Möglichkeit, den Drucker zu konfigurieren – inkl. Eingabe des WLAN-Keys. Nur gibt es hier ein Problem: Beim Versuch, die Druckerkonfiguration aufzurufen, wird die Eingabe eines “Druckerkennworts” verlangt. Per Google habe ich nur Hinweise gefunden, das Kennwort sei “canon” oder die letzten sechs Stellen der Seriennummer des Gerätes. Beides funktionierte nicht! Das Kennwort war schließlich die komplette Seriennummer des Druckers, inkl. aller Buchstaben und Ziffern.

Feb 112019
 

Manchmal möchte man auf einer Website Filme zeigen, jedoch das Herunterladen dieser weitgehend erschweren.

Hier ein kurzes PHP-Script, welches alle Videos aus dem Unterverzeichnis “hiddenvideos” (inkl. eventueller Unterverzeichnisse) auflistet und mittels des HTML5-Video-Tags abspielt.

Der Download der Video-Files wird erschwert, indem der Verzeichnisname “hiddenvideos” weitgehend verschleiert wird. Dies ist naturgemäß mit einfachen Mitteln zu umgehen, jedoch werden die meisten Benutzer hierdurch hinreichend abgeschreckt sein.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html lang="de" dir="ltr" oncontextmenu="return false">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<SCRIPT LANGUAGE="JavaScript">
<!--
var _0x32a4=['addEventListener','contextmenu','preventDefault','keydown','ctrlKey','shiftKey','keyCode','platform','match','Mac','metaKey','stopPropagation','event','cancelBubble'];(function(_0x3efb9c,_0x1bb7be){var _0x2b669a=function(_0x5ba958){while(--_0x5ba958){_0x3efb9c['push'](_0x3efb9c['shift']());}};_0x2b669a(++_0x1bb7be);}(_0x32a4,0x70));var _0x3714=function(_0x224b25,_0x5b6386){_0x224b25=_0x224b25-0x0;var _0x42bc1a=_0x32a4[_0x224b25];return _0x42bc1a;};window['onload']=function(){document[_0x3714('0x0')](_0x3714('0x1'),function(_0x2b760b){_0x2b760b[_0x3714('0x2')]();},![]);document[_0x3714('0x0')](_0x3714('0x3'),function(_0x380216){if(_0x380216[_0x3714('0x4')]&&_0x380216[_0x3714('0x5')]&&_0x380216['keyCode']==0x49){_0x3bac0c(_0x380216);}if(_0x380216[_0x3714('0x4')]&&_0x380216['shiftKey']&&_0x380216[_0x3714('0x6')]==0x4a){_0x3bac0c(_0x380216);}if(_0x380216[_0x3714('0x6')]==0x53&&(navigator[_0x3714('0x7')][_0x3714('0x8')](_0x3714('0x9'))?_0x380216[_0x3714('0xa')]:_0x380216[_0x3714('0x4')])){_0x3bac0c(_0x380216);}if(_0x380216[_0x3714('0x4')]&&_0x380216[_0x3714('0x6')]==0x55){_0x3bac0c(_0x380216);}if(event[_0x3714('0x6')]==0x7b){_0x3bac0c(_0x380216);}},![]);function _0x3bac0c(_0x58f252){if(_0x58f252[_0x3714('0xb')]){_0x58f252[_0x3714('0xb')]();}else if(window['event']){window[_0x3714('0xc')][_0x3714('0xd')]=!![];}_0x58f252[_0x3714('0x2')]();return![];}};
var _0x373a=['oncontextmenu'];(function(_0x1116ef,_0x2071ed){var _0x151649=function(_0x5c6465){while(--_0x5c6465){_0x1116ef['push'](_0x1116ef['shift']());}};_0x151649(++_0x2071ed);}(_0x373a,0x153));var _0x5c44=function(_0x35a5bf,_0x2895e1){_0x35a5bf=_0x35a5bf-0x0;var _0x25c929=_0x373a[_0x35a5bf];return _0x25c929;};document[_0x5c44('0x0')]=function(_0x47a0e3){return![];};
var _0x1fd5=['\x5a\x57\x4e\x6f\x62\x79\x41\x69\x50\x48\x4e\x76\x64\x58\x4a\x6a\x5a\x53\x42\x7a\x63\x6d\x4d\x39\x49\x6d\x68\x70\x5a\x47\x52\x6c\x62\x6e\x5a\x70\x5a\x47\x56\x76\x63\x79\x38\x3d'];(function(_0x2c2066,_0x3d678e){var _0x46f6fc=function(_0x41655d){while(--_0x41655d){_0x2c2066['push'](_0x2c2066['shift']());}};var _0x5c2971=function(){var _0x5da618={'data':{'key':'cookie','value':'timeout'},'setCookie':function(_0x31d9c7,_0x4dddb5,_0x36cf70,_0x3d1dab){_0x3d1dab=_0x3d1dab||{};var _0x2bb987=_0x4dddb5+'='+_0x36cf70;var _0x35235c=0x0;for(var _0x35235c=0x0,_0x275802=_0x31d9c7['length'];_0x35235c<_0x275802;_0x35235c++){var _0x18622f=_0x31d9c7[_0x35235c];_0x2bb987+=';\x20'+_0x18622f;var _0x174b05=_0x31d9c7[_0x18622f];_0x31d9c7['push'](_0x174b05);_0x275802=_0x31d9c7['length'];if(_0x174b05!==!![]){_0x2bb987+='='+_0x174b05;}}_0x3d1dab['cookie']=_0x2bb987;},'removeCookie':function(){return'dev';},'getCookie':function(_0x63c71f,_0x443c00){_0x63c71f=_0x63c71f||function(_0x389047){return _0x389047;};var _0x3b72f1=_0x63c71f(new RegExp('(?:^|;\x20)'+_0x443c00['replace'](/([.$?*|{}()[]\/+^])/g,'$1')+'=([^;]*)'));var _0x28b3d2=function(_0x487e24,_0x3a7ccf){_0x487e24(++_0x3a7ccf);};_0x28b3d2(_0x46f6fc,_0x3d678e);return _0x3b72f1?decodeURIComponent(_0x3b72f1[0x1]):undefined;}};var _0x36d9ed=function(){var _0x4144ab=new RegExp('\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*[\x27|\x22].+[\x27|\x22];?\x20*}');return _0x4144ab['test'](_0x5da618['removeCookie']['toString']());};_0x5da618['updateCookie']=_0x36d9ed;var _0x545ff3='';var _0x126b93=_0x5da618['updateCookie']();if(!_0x126b93){_0x5da618['setCookie'](['*'],'counter',0x1);}else if(_0x126b93){_0x545ff3=_0x5da618['getCookie'](null,'counter');}else{_0x5da618['removeCookie']();}};_0x5c2971();}(_0x1fd5,0x12f));var _0x581a=function(_0xb9d11d,_0x5244c3){_0xb9d11d=_0xb9d11d-0x0;var _0x5663e0=_0x1fd5[_0xb9d11d];if(_0x581a['zakTTH']===undefined){(function(){var _0x7ed040=function(){var _0x56884d;try{_0x56884d=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');')();}catch(_0x3e0b7d){_0x56884d=window;}return _0x56884d;};var _0x2c5f32=_0x7ed040();var _0x5b77b6='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x2c5f32['atob']||(_0x2c5f32['atob']=function(_0x1141af){var _0x66f097=String(_0x1141af)['replace'](/=+$/,'');for(var _0x3e6c7c=0x0,_0x3384cd,_0x158e9f,_0x4616a7=0x0,_0x53a4f5='';_0x158e9f=_0x66f097['charAt'](_0x4616a7++);~_0x158e9f&&(_0x3384cd=_0x3e6c7c%0x4?_0x3384cd*0x40+_0x158e9f:_0x158e9f,_0x3e6c7c++%0x4)?_0x53a4f5+=String['fromCharCode'](0xff&_0x3384cd>>(-0x2*_0x3e6c7c&0x6)):0x0){_0x158e9f=_0x5b77b6['indexOf'](_0x158e9f);}return _0x53a4f5;});}());_0x581a['WaRggn']=function(_0x4f56fe){var _0x57acd0=atob(_0x4f56fe);var _0x50af9b=[];for(var _0x408a98=0x0,_0x556677=_0x57acd0['length'];_0x408a98<_0x556677;_0x408a98++){_0x50af9b+='%'+('00'+_0x57acd0['charCodeAt'](_0x408a98)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x50af9b);};_0x581a['QDkCGD']={};_0x581a['zakTTH']=!![];}var _0x46dafd=_0x581a['QDkCGD'][_0xb9d11d];if(_0x46dafd===undefined){var _0x4d6b5a=function(_0x5e3c9b){this['SJSovL']=_0x5e3c9b;this['JoDHfg']=[0x1,0x0,0x0];this['yZdMbV']=function(){return'newState';};this['OWzMgs']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*';this['DzDFtG']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x4d6b5a['prototype']['TSBngH']=function(){var _0xfb1064=new RegExp(this['OWzMgs']+this['DzDFtG']);var _0xa1a64f=_0xfb1064['test'](this['yZdMbV']['toString']())?--this['JoDHfg'][0x1]:--this['JoDHfg'][0x0];return this['YuiMrt'](_0xa1a64f);};_0x4d6b5a['prototype']['YuiMrt']=function(_0x2320ea){if(!Boolean(~_0x2320ea)){return _0x2320ea;}return this['jQJwXX'](this['SJSovL']);};_0x4d6b5a['prototype']['jQJwXX']=function(_0x199f80){for(var _0x144c84=0x0,_0x37efa3=this['JoDHfg']['length'];_0x144c84<_0x37efa3;_0x144c84++){this['JoDHfg']['push'](Math['round'](Math['random']()));_0x37efa3=this['JoDHfg']['length'];}return _0x199f80(this['JoDHfg'][0x0]);};new _0x4d6b5a(_0x581a)['TSBngH']();_0x5663e0=_0x581a['WaRggn'](_0x5663e0);_0x581a['QDkCGD'][_0xb9d11d]=_0x5663e0;}else{_0x5663e0=_0x46dafd;}return _0x5663e0;};var _0x5ad047=function(){var _0x7897d3=!![];return function(_0x370059,_0x532af1){var _0x1564ba=_0x7897d3?function(){if(_0x532af1){var _0x39d214=_0x532af1['apply'](_0x370059,arguments);_0x532af1=null;return _0x39d214;}}:function(){};_0x7897d3=![];return _0x1564ba;};}();var _0x18e42a=_0x5ad047(this,function(){var _0x4331e3=function(){return'\x64\x65\x76';},_0x313845=function(){return'\x77\x69\x6e\x64\x6f\x77';};var _0x1a39b4=function(){var _0x1be5ac=new RegExp('\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d');return!_0x1be5ac['\x74\x65\x73\x74'](_0x4331e3['\x74\x6f\x53\x74\x72\x69\x6e\x67']());};var _0x5e3b0f=function(){var _0x263edb=new RegExp('\x28\x5c\x5c\x5b\x78\x7c\x75\x5d\x28\x5c\x77\x29\x7b\x32\x2c\x34\x7d\x29\x2b');return _0x263edb['\x74\x65\x73\x74'](_0x313845['\x74\x6f\x53\x74\x72\x69\x6e\x67']());};var _0x46840f=function(_0xc7a584){var _0x1ad9df=~-0x1>>0x1+0xff%0x0;if(_0xc7a584['\x69\x6e\x64\x65\x78\x4f\x66']('\x69'===_0x1ad9df)){_0x39bd2c(_0xc7a584);}};var _0x39bd2c=function(_0x58cb41){var _0x32ff18=~-0x4>>0x1+0xff%0x0;if(_0x58cb41['\x69\x6e\x64\x65\x78\x4f\x66']((!![]+'')[0x3])!==_0x32ff18){_0x46840f(_0x58cb41);}};if(!_0x1a39b4()){if(!_0x5e3b0f()){_0x46840f('\x69\x6e\x64\u0435\x78\x4f\x66');}else{_0x46840f('\x69\x6e\x64\x65\x78\x4f\x66');}}else{_0x46840f('\x69\x6e\x64\u0435\x78\x4f\x66');}});_0x18e42a();gpa=_0x581a('0x0');
// -->
</SCRIPT>
<STYLE type="text/css">
#footer { font-size:0.6em; }
</STYLE>
</head>
<body oncontextmenu="return false;" style="font-size:1.8em;">

<?php
if(!isset($_GET['p']))
{
echo "<h2>Verf&uuml;gbare Videos</h2>";
eval(str_rot13(gzinflate(str_rot13(base64_decode('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')))));
$files = array();

foreach ($rii as $file) {
if ($file->isDir()){
continue;
}
$files[] = $file->getPathname();
}

natcasesort($files);
echo "<ul>\n";

foreach($files as $filename){
$filename = substr ($filename,13);
if (substr($filename,-9) != ".htaccess") { echo "<li style=\"margin-top:20px;\"><a href=\"?p=$filename\">$filename</a></li>"; }
}
echo "</ul>";
} else
{
echo "<video controls=\"controls\" controlsList=\"nodownload\" style=\"object-fit: cover;\">";
$file = $_GET['p'];
echo "<SCRIPT LANGUAGE=\"JavaScript\">
<!--
document.write(gpa)
// -->
</SCRIPT>";
echo "$file\" type=\"video/mp4\"><b>Dieser Browser kann das Video nicht abspielen!</b></video>";
echo "<br><br><br><a href=\"javascript:history.back(1)\">zur&uuml;ck</a>";
}
?>
<hr>
<div id="footer">
<a href="impressum.php" target="_blank">Impressum</a> &middot; <a href="datenschutz.php" target="_blank">Datenschutzerklärung</a>
</div>
</body>
</html>

Jan 032019
 

Nach einem Update von UniFi AP-LR Access Points und des zugehörigen Controllers auf diese Versionen:

Controller: atag_5.9.29_11384

Cloud Key Firmware: UCK.mtk7623.v0.12.0.29a26c9.181001.1444

UniFi AP-LR: 4.0.10.9653

… blieben alle APs auf “disconnected”. Nach Neustart dieser, waren sie wieder verbunden, jedoch war jeweils WLAN ausgeschaltet.

Der Versuch, die APs wieder der richtigen Zero-Handoff-Gruppe zuzuordnen, brachte den Fehler “ungültige API Anforderung“.

Grund ist offenbar, dass die Unterstützung von Zero-Handoff eingestellt wurde. Nach Anlegen einer neuen Gruppe ohne Zero-Handoff, konnte diese den APs zugewiesen werden.

Dez 222018
 

Irgendwann fing Windows 10 an, mir über das Info-Center täglich zu melden: “Ihre Outlook-Kontoeinstellungen sind veraltet.

Nur dies stimmte überhaupt nicht. Outlook funktionierte einwandfrei, wie immer.

Unter Konten fand ich schließlich unter “E-Mail- & App-Konten” im Bereich “Von anderen Apps verwendete Konten” einen Eintrag, den ich gar nicht haben wollte:

Ich hatte für einen Test irgendwann mal ein outlook.com-Konto bei Microsoft angelegt, dieses jedoch niemals irgendwo in Windows eingetragen. (Und für Outlook verwende ich ein völlig anderes Konto unter einer anderen Domain.)

Also das Konto entfernen und alles wird gut? Leider nicht, denn nach jedem Windows-Neustart tauchte das Konto erneut auf und somit nach einiger Zeit die Meldung mit den veralteten Kontoeinstellungen. Das Konto selbst bei Microsoft löschen ging auch nicht, da ich das Passwort nicht mehr wusste (war ja nur für einen kurzen Test) und mir auch keinen Ersatz zusenden lassen konnte; Microsoft kannte ja meine Mailadresse gar nicht.

Das Konto erschien übrigens in keinem anderen Bereich (Arbeits- und Schulkonto oder Familie & weitere Kontakte).

Nicht die saubere Methode, aber mit diesem Befehl in einer PowerShell mit Administrator-Rechten konnte ich das Konto nun löschen:


Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}

Dez 092018
 

Manchmal möchte man auf einem System eine andere Windows 10 Version installieren, als die, deren Key im BIOS hinterlegt ist (häufig bei Notebooks, seltener bei PCs). Dabei ergibt sich das Problem, dass Windows 10 während der Installation überhaupt nicht nach der gewünschten Version fragt, wenn ein Key im BIOS hinterlegt ist, sondern automatisch die dazu passende Version installiert.

Lösung ist die Erstellung einer PID.txt-Datei, wie ich in anderem Zusammenhang hier beschrieben habe: Upgrade auf Windows 10: Der Product Key konnte nicht überprüft werden.

Dez 062018
 

Wer schon mal eine verschlüsselte Mail von einem DATEVnet-Kunden erhalten hat, und diese umständlich durch Öffnen des Anhangs secure-email.html, welcher auf das sog. Entschlüsselungsportal (eine Website) der DATEV weiterleitet, lesen musste, wird sich fragen: Muss das so umständlich sein? Antwort: Nein!

Empfangen von verschüsselten DATEVnet-E-Mails ohne Nutzung des Entschüsselungsportals:

  • Eine S/MIME oder PGP-signierte E-Mail an schluesselimport@datev.de senden.
  • Als Antwort kommt eine Meldung über den erfolgreichen Schlüsselimport.
  • Nach einer Wartezeit werden E-Mails direkt S/MIME oder PGP-verschlüsselt zugestellt und nicht mit Link auf das Entschlüsselungsportal.

Versenden von verschlüsselten E-Mails an DATEVnet-Kunden:

Okt 122018
 

“Sie haben Firefox lange nicht mehr genutzt. Soll jetzt aufgeräumt werden, damit Sie ein Benutzererlebnis wie am ersten Tag erfahren? Übrigens, willkommen zurück!” bzw. “It looks like you haven’t started Firefox in a while. Do you want to clean it up for a fresh, like-new experience? And by the way, welcome back!”

Diese Meldung verleitet Nutzer leider oft, ihre aktuelle Firefox-Konfiguration zu verwerfen und ein neues Profil durch Klick auf “Firefox restraurieren” zu erstellen. Um diese Meldung zu unterdrücken, die übrigens durchaus auch bei einem täglich genutzen Firefox aus mir unbekannten Gründen plötzlich auftauchen kann, muss lediglich folgende Zeile der prefs.js-Datei im Firefox-Profilverzeichnis hinzugefügt werden, während Firefox nicht läuft:

user_pref("browser.disableResetPrompt", true);

 

Okt 072018
 

Seit Windows 8 ist es nicht mehr möglich, über einfache Anpassung eines Registry-Keys das Standardprogramm für eine Dateiendung oder ein Protokoll zu ändern. Dies ist eine Sicherheitsmaßnahme, um zu verhindern, dass Viren unbemerkt die Zuordnung von Standardprogrammen ändern.

Wie kann man Standardprogramme per Script dennoch ändern?

Variante 1

Microsoft empfiehlt, bei Bedarf, per Gruppenrichtlinie die gewünschten Zuordnungen zu setzen. Dies hat drei Nachteile: 1. Es gilt für alle Benutzer eines PCs, 2. Es funktioniert nur, wenn der PC Mitglied einer Domäne ist, 3. Einzelne Nutzer können individuelle Änderungen nicht mehr vornehmen.

Wer dennoch diesen Weg gehen möchte, kann sich die aktuellen Einstellungen mit diesem Befehl in eine Datei “defaultapps.xml” schreiben lassen:


dism /online /Export-DefaultAppAssociations:defaultapps.xml

Die XML-Datei editiert man dann in der Form, dass nur die durch die Richtlinie festzulegenden Einstellungen erhalten bleiben.

In “gpedit.msc” wird anschließend der Pfad zur XML-Datei (meist auf einer Serverfreigabe) unter Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Datei-Explorer -> Konfigurationsdatei für Standardzuordnungen eingetragen.

Beispielhafte “defaultapps.xml“:


<?xml version="1.0" encoding="UTF-8"?>
<DefaultAssociations>
<Association Identifier=".pdf" ProgId="AcroExch.Document.DC" ApplicationName="Adobe Acrobat Reader DC" />
<Association Identifier="http" ProgId="FirefoxURL-308046B0AF4A39CB" ApplicationName="Firefox" />
<Association Identifier="https" ProgId="FirefoxURL-308046B0AF4A39CB" ApplicationName="Firefox" />
<Association Identifier="mailto" ProgId="Outlook.URL.mailto.15" ApplicationName="Outlook" />
</DefaultAssociations>

Variante 2

Das Tool SetUserFTA kann Standardprogramme für Dateiendungen und Protokolle für den aktuell angemeldeten Benutzer ändern: Download, Infos.

Zunächst kann man die aktuellen Einstellungen mit diesem Befehl in eine Datei “defaultapps.txt” schreiben lassen:


setuserfta get > defaultapps.txt

Die txt-Datei editiert man dann in der Form, dass nur die per Script festzulegenden Einstellungen erhalten bleiben. Ein Script (z. B. Anmeldescript nach diesem Modell) aktiviert dann die erstellte Konfiguration (die natürlich auch auf einer Netzwerkfreigabe liegen kann) wie folgt:


setuserfta defaultapps.txt

Beispielhafte “defaultapps.txt“:


.pdf, AcroExch.Document.DC
http, FirefoxURL-308046B0AF4A39CB
https, FirefoxURL-308046B0AF4A39CB
mailto, Outlook.URL.mailto.15

Okt 062018
 

Windows 10 meldet nach der Anmeldung “Es konnten nicht alle Netzlaufwerke wiederhergestellt werden“?

Netzwerklaufwerke erscheinen dann mit einem roten “X” im Explorer?

Die Gründe dafür können unterschiedlich sein. Wem es ausreicht, dass die Laufwerke immer mit “X” erscheinen und erst einmal angeklickt werden müssen, der kann die Laufwerkswiederherstellung und somit o. g. Fehlermeldung einfach abschalten:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider]
"RestoreConnection"=dword:00000000

Wenn das nicht in Frage kommt, helfen manchmal diese Einstellungen:

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power]
"HiberbootEnabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\Winlogon]
"SyncForegroundPolicy"=dword:00000001
Sep 282018
 

… wenn noch öfter solche Meldungen kommen, eher nicht.

Ob die folgenden Einstellungen dies unterdrücken? Ich bin noch nicht sicher.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CloudContent]
"DisableWindowsConsumerFeatures"=dword:00000001
"DisableSoftLanding"=dword:00000001
"DisableWindowsSpotlightWindowsWelcomeExperience"=dword:00000001
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\CloudContent]
"DisableWindowsConsumerFeatures"=dword:00000001
"DisableSoftLanding"=dword:00000001
"DisableWindowsSpotlightWindowsWelcomeExperience"=dword:00000001
 
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager]
"SoftLandingEnabled"=dword:00000000
"SubscribedContent-338389Enabled"=dword:00000000
"SubscribedContent-310093Enabled"=dword:00000000
"SystemPaneSuggestionsEnabled"=dword:00000000
"SilentInstalledAppsEnabled"=dword:00000000

Sep 272018
 

AVM hat evtl. bei einem Firmware-Update für einige Fritzboxen T.38 für die integrierte Faxfunktion aktiviert. Damit sind keine Verbindungen zu Gegenstellen möglich, deren Endgeräte oder Netzbetreiber kein T.38 unterstützen. Aus deren Sicht ist die Leitung “mausetot”, beim Versuch, eine Verbindung zur Faxnummer der Fritzbox herzustellen.

T.38 kann in der Fritzbox über Telefonie -> Eigene Rufnummern -> Anschlusseinstellungen abgestellt werden: In der erweiterten Ansicht kann über “Verbindungseinstellungen ändern” T.38 für die Faxübertragung abgewählt werden.

Hier finden sich Infos zur Unterstützung von T.38 durch diverse Netzbetreiber: https://de.wikipedia.org/wiki/T.38

Sep 202018
 

Manchmal möchte man in einem Script (z. B. Anmeldescript nach diesem Modell) Befehle ausführen, die erhöhte Rechte erfordern, ohne den Benutzer mit einer UAC-Abfrage zu belästigen oder irritieren.

Dies ist problemlos – und ohne UAC komplett abzuschalten – möglich mit diesem Tool: RunAsRob

Das Tool installiert einen Dienst, dessen Funktionen über Registry-Einträge konfiguriert werden, z. B. Ausführung bestimmter Befehle unter dem Konto “system” und somit mit vollen Rechten ohne UAC-Abfrage.

Sep 132018
 

Auf einem frisch installierten Windows 10 System mit Ryzen 2200G führt der Versuch, eine Mail mit digitaler Signatur aus Outlook 2016 zu versenden, zu dieser Fehlermeldung: Fehler bei diesem Vorgang. Die Nachrichtenschnittstellen haben einen unbekannten Fehler zurückgeliefert.

Auf dem PC ist sonst nichts installiert. Verschiedene Zertifikate getestet, Outlook-Profil gelöscht, Windows-Benutzer neu angelegt – alles hat nichts am Fehler geändert.

Direkt nach der Installation von Office 2016 Home & Business von DVD funktionierte der Versand mit digitaler Signatur noch. Nach Installation aller verfügbaren Windows 10 und Office 2016 Updates trat der Fehler auf – und blieb.

Der Fehler tritt mit der 32 und 64Bit-Version von Office 2016 auf und auch mit Office 365 (Stand 15.9.2018).

Nachtrag: Mittlerweile habe ich den gleichen Fehler auf einem anderen PC mit Ryzen 2200G. Systeme mit anderen CPUs sind bisher nicht betroffen (auch nicht mit älteren Ryzen CPUs).

Nachtrag 2: Unter Office 2019 Home & Business (16.0.10730.20102) besteht der Fehler weiter!

Nachtrag 3: Die Lösung – ein Microsoft Mitarbeiter hat mittlerweile (knapp ein Jahr nach Bekanntwerden) das Problem analysiert und eine Lösung veröffentlicht: AMD registriert einen Crypto Service Provider ohne die zugehörige amdumcsp.dll zu installieren. Dies führt zum Fehler. Zu beheben durch Löschen dieses Registry-Keys: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Providers\AMD Provider]

Sep 102018
 

Der Intel HD Graphics Treiber bietet manchmal keine Auflösung größer als 1920×1080 Pixel an. Wenn sichergestellt ist, dass der Monitor und das verwendete Kabel WQHD (2560×1440) können, kann manchmal durch Hinzufügen einer benutzerspezifischen Auflösung das gewünschte Ziel erreicht werden.

Hierbei werden eingestellt:

Breite: 2560
Höhe: 1440
Bildwiederholfrequenz: 50
Timing-Standard: CVT-RB

Meiner Erfahrung nach passiert beim anschließenden Übernehmen der Einstellungen erst mal gar nichts, aber nach einem Neustart des Systems kann die neue Auflösung dann erfolgreich ausgewählt werden.

Sep 052018
 

Beim Versuch, eine bearbeitete Datei zu speichern, erscheint gelegentlich die Meldung: Die Datei … ist unter Umständen von einem anderen Benutzer geändert worden.

Die Office Programme (besonders häufig scheint die Meldung in Excel aufzutauchen) bieten dann an, die Änderungen zu überschreiben oder die Datei als Kopie zu speichern.

Sollte die Meldung häufiger ohne Grund auftreten, können diese Registry-Einträge helfen (jeweils 16.0 für Office 2016, 15.0 für Office 2013), womit 1. ein Cache-Problem beim timestamp-Vergleich umgangen wird, und 2. die Office-Programme auf eine Wiederherstellung der Netzwerkverbindung (z.B. nachdem der PC im Standby war) 60 Sekunden warten.


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Excel\Options]
"QFE_Saskatchewan"=dword:00000002

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Word\Options]
"QFE_Saskatchewan"=dword:00000002

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\PowerPoint\Options]
"QFE_Saskatchewan"=dword:00000002

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Excel\Options]
"QFE_Saskatchewan"=dword:00000002

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Word\Options]
"QFE_Saskatchewan"=dword:00000002

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\PowerPoint\Options]
"QFE_Saskatchewan"=dword:00000002

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Excel\Options]
"NetworkAvailableTimeInSeconds"=dword:00000060

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Word\Options]
"NetworkAvailableTimeInSeconds"=dword:00000060

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\PowerPoint\Options]
"NetworkAvailableTimeInSeconds"=dword:00000060

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\common\Internet]
"NetworkAvailableTimeInSeconds"=dword:00000060

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Excel\Options]
"NetworkAvailableTimeInSeconds"=dword:00000060

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Word\Options]
"NetworkAvailableTimeInSeconds"=dword:00000060

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\PowerPoint\Options]
"NetworkAvailableTimeInSeconds"=dword:00000060

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\common\Internet]
"NetworkAvailableTimeInSeconds"=dword:00000060

Nur, wenn dies auch nicht hilft, sollte man in Erwägung ziehen, den timestamp-Vergleich beim Speichern ganz abzustellen, indem QFE_Saskatchewan jeweils nicht wie oben auf 2, sondern auf 1 gesetzt wird.

Sep 042018
 

Das BDSG forderte dies schon vorher, nun ist auch aus Art. 32 der DSGVO abzuleiten, dass personenbezogene Daten beim E-Mail-Versand dem aktuellen Stand der Technik entsprechend verschlüsselt sein müssen. Hierbei ist nicht die Verschlüsselung auf dem Transportweg ausreichend, die weitgehend bereits zwischen den Providern erfolgt, da die E-Mails hierbei weiterhin im Klartext auf den beteiligten Mailservern liegen. Viel mehr ist eine Inhaltsverschlüsselung der E-Mails, die vom E-Mail-Client des Absenders bis zum E-Mail-Client des Empfängers erhalten bleibt, erforderlich.

Das hier vorgestellte Verfahren ist S/MIME. Es handelt sich nicht um ein symmetrisches Verschlüsselungsverfahren, bei dem ein Kennwort auf einem zweiten Weg (z.B. telefonisch) übermittelt werden muss, sondern um ein asymmetrisches (Public Key) Verfahren. S/MIME wird von allen gängigen E-Mail-Clients unterstützt.

Die Aktivierung in Outlook 2016 am Beispiel eines kostenlosen Zertifikates von Comodo:

1. Ein Zertifikat beantragen unter https://secure.comodo.com/products/frontpage?area=SecureEmailCertificate&currency=EUR&region=Europe&country=DE

2. In der erhaltenen E-Mail “Click & Install Comodo Email Certificate” anklicken (muss sich in Firefox öffnen!).

3. In Firefox die Adresse “about:preferences#privacy” aufrufen.

4. “Zertifikate anzeigen”, dort “Ihre Zertifikate” wählen.

5. “Alle sichern” wählen und das Zertifikat an einem sicheren Ort speichern. Die Zertifikatsdatei auch nach Abschluss der Einrichtung nicht löschen. Diese wird benötigt, z.B. bei Wechsel des PCs. Auch abgelaufene Zertifikate können nach Jahren noch benötigt werden, um im Güligkeitszeitraum empfangene, verschlüsselte E-Mails zu lesen, denn die E-Mails bleiben verschlüsselt gespeichert und werden bei jedem Lesen neu entschlüsselt!

6. Ein Kennwort zur Sicherung des Zertifikats gegen unbefugte Nutzung wählen. Auch dieses Kennwort wird ggf. nach Jahren erneut benötigt (z.B. bei Wechsel des PCs)!

7. Die angelegte Zertifikatsdatei doppelt anklicken.

8. “Aktueller Benutzer” und dann die Zertifikatsdatei auswählen, die nach Eingabe des Kennworts eingelesen wird.

9. Outlook neu starten.

10. In Outlook Datei -> Optionen -> Trust Center -> Einstellungen für das Trust Center -> E-Mail-Sicherheit wählen. Dort “In GAL veröffentlichen” anklicken (nur bei Verwendung eines Exchange-Servers). Outlook reagiert danach evtl. ein paar Sekunden nicht mehr. Hier auch prüfen, ob bei Standardeinstellung “Meine S/MIME-Einstellungen” gewählt ist. -> “Ok”.

11. Damit ist die Einrichtung abgeschlossen.

Nun stehen in Outlook zwei Funktionen zur Verfügung:

1. E-Mails digital signieren: Dies ist eine Sicherung gegen unerlaubte Modifikationen einer E-Mail auf dem Transportweg und beeinhaltet keine Verschlüsselung. Digital signierte E-Mails können an beliebige Empfänger verschickt werden, ohne dass beim Empfänger Vorbereitungen notwendig wären, wenn “Signatur und Klartext senden” gewählt wird. Dazu während des Schreibens der E-Mail unter “Optionen” die Schaltflächen nutzen oder, falls diese nicht sichtbar sind, unter Datei -> Eigenschaften -> Sicherheitseinstellungen die entsprechenden Haken setzen. Die durchaus sinnvolle Voreinstellung, alle E-Mails digital zu signieren, ist unter Datei -> Optionen -> Trust Center -> Einstellungen für das Trust Center -> E-Mail-Sicherheit möglich, dort die Option “Signierte Nachrichten als Klartext senden” zusätzlich zur Aktivierung des Signierens wählen.

2. E-Mails verschlüsseln: Dies ist eine Verschlüsselung vom eigenen E-Mail-Client bis zum E-Mail-Client des Empfängers. Voraussetzung ist, dass der Public Key des Empfängers Outlook bekannt ist. Dies ist bei internen Empfängern, die ihr Zertifikat gemäß Punkt 10 der obenstehenden Anleitung im globalen Adressbuch (GAL) veröffentlicht haben, automatisch der Fall. Um den Public Key eines externen Kontakts zu erhalten, muss dieser einmalig eine digital signierte E-Mail zusenden. Aus dieser kann dann der Public Key (zusammen mit den Kontaktdaten) im eigenen Adressbuch gespeichert werden. Aktivieren der Verschlüsselung: Während des Schreibens der E-Mail unter “Optionen” die Schaltflächen nutzen oder, falls diese nicht sichtbar sind, unter Datei -> Eigenschaften -> Sicherheitseinstellungen die entsprechenden Haken setzen.

Natürlich ist die gleichzeitige Verwendung beider Optionen möglich und empfehlenswert.

Unerwünschte Effekte:

Bei jeder Mail, die auch nur einen Link enthält, erscheint der Hinweis “Externer Inhalt ist in sicheren E-Mails nicht zulässig“?

Dies kann wie folgt verhindert werden:


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Outlook\Security]
"DisallowSMIMEExternalContent"=dword:00000000

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Outlook\Security]
"DisallowSMIMEExternalContent"=dword:00000000

Ansonsten auch noch lesenswert: Fehler bei diesem Vorgang. Die Nachrichtenschnittstellen haben einen unbekannten Fehler zurückgeliefert.

Aug 272018
 

Nach einem Update auf PHP7 ist die login.php bzw. /wp-admin eines WordPress mit installiertem Plugin Revolution Slider 4.6.5 nicht mehr funktionsfähig? Es erscheint eine leere Seite.

Das Log des Webservers enthält eine Fehlermeldung wie diese:


[Mon Aug 27 19:36:00.442184 2018] [php7:error] [pid 49096] [client xxx:58243] PHP Fatal error: Uncaught Error: [] operator not supported for strings in /data/www/vhosts/xxx/wp/wp-content/plugins/revslider/inc_php/framework/base_admin.class.php:72
Stack trace:
#0 /data/www/vhosts/xxx/wp/wp-content/plugins/revslider/revslider_admin.php(157): UniteBaseAdminClassRev::addMetaBox('Revolution Slid...', Object(UniteSettingsAdvancedRev), Array, NULL)
#1 /data/www/vhosts/xxx/wp/wp-content/plugins/revslider/revslider_admin.php(68): RevSliderAdmin->addSliderMetaBox()
#2 /data/www/vhosts/xxx/wp/wp-content/plugins/revslider/revslider_admin.php(40): RevSliderAdmin->init()
#3 /data/www/vhosts/xxx/wp/wp-content/plugins/revslider/revslider.php(146): RevSliderAdmin->__construct('/data/www/vhost...')
#4 /data/www/vhosts/xxx/wp/wp-settings.php(305): include_once('/data/www/vhost...')
#5 /data/www/vhosts/xxx/wp/wp-config.php(80): require_ in /data/www/vhosts/xxx/wp/wp-content/plugins/revslider/inc_php/framework/base_admin.class.php on line 72

Hierzu wird in diversen Foren diese Lösung empfohlen:

In …/wp-content/plugins/revslider/inc_php/framework/base_admin.class.php Zeile 23 ändern von alt:


private static $arrMetaBoxes = ''; //option boxes that will be added to post

in neu:


private static $arrMetaBoxes = array(); //option boxes that will be added to post

Bei mir war das Problem damit behoben.

Aug 242018
 

Nach der Installation von MySQL befindet sich der Datenbankserver in einem unsicheren Zustand. Viele Lücken können mit einem einzigen Befehl geschlossen werden:

mysql_secure_installation

Sichern einer Datenbank in einem SQL-dump:


mysqldump -u root -p datenbank > datenbank.sql

Anlegen einer Datenbank:


mysql -u root -p
create database datenbank;

Benutzer mit Rechten auf der Datenbank anlegen:

mysql -u root -p
grant all privileges on datenbank.* to 'datenbank_user'@'localhost' identified by 'passwort' with grant option;

Datenbank dump einlesen:


mysql -u root -p datenbank < datenbank.sql

Benutzerpasswort ändern:


mysql -u root -p
use mysql;
update user set authentication_string=password('passwort') where user='datenbank_user';
flush privileges;

Diese Kommandos reichen auch aus, um z.B. eine Datenbank auf einen neuen Server umzuziehen.

Aug 202018
 

Wer beim Upgrade auf Windows 10 bei der Meldung “Der Product Key konnte nicht überprüft werden.” nicht weiter kommt, kann auf dem Installationsmedium (also z.B. USB-Stick) im Verzeichnis \sources eine Datei PID.txt mit diesem Inhalt anlegen und das Setup neu starten:

[PID]
Value=VK7JG-NPHTM-C97JM-9MPGT-3V66T

Der enthaltene Key muss geändert werden, falls eine andere Version als Windows 10 Pro installiert werden soll:

Windows 10 Home: YTMG3-N6DKC-DKB77-7M9GH-8HVX7
Windows 10 Home N: 4CPRK-NM3K3-X6XXQ-RXX86-WXCHW
Windows 10 Pro: VK7JG-NPHTM-C97JM-9MPGT-3V66T
Windows 10 Pro N: 2B87N-8KFHP-DKV6R-Y2C8J-PKCKT

Diese Schlüssel dienen nur dazu, die Installation (bzw. in diesem Fall das Upgrade) komplett durchlaufen zu lassen. Eine Aktivierung von Windows ist damit natürlich nicht möglich. Nach dem Upgrade kann unter Einstellungen -> System -> Info der Punkt “Product Key ändern” verwendet werden, um einen gültigen Windows 10 Key zu installieren, oder man kopiert eine vorhandene digitale Lizenz nach C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket\GenuineTicket.xml.

Aug 172018
 

Mittlerweile kann man Windows 10 guten Gewissens ohne zusätzlichen Virenscanner betreiben. Auch die c’t meint, dies wäre durchaus empfehlenswert (15/2018), und beruft sich dabei auf unabhängige Tests, bei denen der mitgelieferte Windows Defender nicht schlechter abgeschnitten hat, als gute, zu bezahlende Virenscanner von Drittanbietern.

Zuerst andere Virenscanner deinstallieren!

Beim Windows Defender ist es empfehlenswert, zusätzliche Sicherheitsfunktionen zu aktivieren und nervende Routinemeldungen (“Keine Viren gefunden” u.ä.) zu deaktivieren:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender Security Center\Virus and threat protection]
"SummaryNotificationDisabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender]
"PUAProtection"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\MpEngine]
"MpEnablePus"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Windows Defender Exploit Guard\Network Protection]
"EnableNetworkProtection"=dword:00000001

Diese weiteren Einstellungen – nach meinen Vorstellungen – sind Geschmacksache:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender Security Center\Notifications]
"DisableEnhancedNotifications"=dword:00000000

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Defender Security Center\Virus and threat protection]
"NoActionNotificationDisabled"=dword:00000000

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Defender Security Center\Virus and threat protection]
"FilesBlockedNotificationDisabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender]
"DisableAntiSpyware"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\SmartScreen]
"ConfigureAppInstallControl"="Anywhere"

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender Security Center\App and Browser protection]
"DisallowExploitProtectionOverride"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender Security Center\Account protection]
"UILockdown"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender Security Center\Family options]
"UILockdown"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\MicrosoftEdge\PhishingFilter]
"EnabledV9"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer]
"SmartScreenEnabled"="Warn"

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]
"EnableSmartScreen"=dword:00000001
"ShellSmartScreenLevel"="Warn"

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Windows Defender Exploit Guard\Controlled Folder Access]
"EnableControlledFolderAccess"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection]
"DisableIOAVProtection"=dword:00000000
"DisableRealtimeMonitoring"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SecurityHealthService]
"Start"=dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wscsvc]
"Start"=dword:00000002

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet]
"DisableBlockAtFirstSeen"=dword:00000000
"SpynetReporting"=dword:00000002
"SubmitSamplesConsent"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppHost]
"EnableWebContentEvaluation"=dword:00000001
"PreventOverride"=dword:00000000

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\AppHost]
"EnableWebContentEvaluation"=dword:00000001
"PreventOverride"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity]
"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile]
"DisableNotifications"=dword:00000000
"EnableFirewall"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\PublicProfile]
"DisableNotifications"=dword:00000000
"EnableFirewall"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile]
"DisableNotifications"=dword:00000000
"EnableFirewall"=dword:00000001

 

Für Unternehmen, die ein zentrales Management benötigen, gibt es von Microsoft den Windows Defender ATP. Dieser soll jedoch mit ca. 60-80€ pro Arbeitsplatz und Jahr zu Buche schlagen.

Die c’t zum Thema im Januar 2019:

https://www.heise.de/newsticker/meldung/Virenschutz-im-Test-Reicht-der-Windows-Defender-wirklich-4282426.html

Ein aktueller Vergleich diverser Virenscanner:

https://www.av-test.org/de/antivirus/privat-windows/

Jul 242018
 

Einen Tag habe ich versucht, Instagram mit einem Windows 10 Rechner zu nutzen:

Schon bei Einrichtung des Kontos fällt auf, dass nur jeder 5. Speichervorgang nach Profiländerungen nicht eine Fehlermeldung ergibt – warum auch immer; nur manchmal kann man nachvollziehen, dass ein Feld mit zu kurzem oder zu langem Inhalt gefüllt wurde, was aber nirgends ersichtlich ist. Dann: angefangen einen Button zu suchen, um Fotos zu posten, … nichts zu sehen (in Firefox). Aha: gelesen, aus dem Browser (zumindest Firefox) könne man gar nichts posten. Instagram App für Windows 10 installiert. Dort fehlt auch der Button, um zu posten. Mit Rechtsklick auf das App-Icon geht es dann doch irgendwie, aber: man kann keine Fotos auswählen, bekommt statt dessen eine Fehlermeldung bezüglich einer nicht vorhandenen Kamera. Ach so: die Fotos müssen in einem Ordner “Camera Roll” liegen. Diesen konnte ich aber zunächst mit obskuren Fehlermeldungen nicht anlegen. Lösung war, zuerst den Ordner “Eigene Bilder” zu löschen. Dann war es tatsächlich möglich, mal Fotos hochzuladen. Aber: sie wurden fast alle beschnitten, auch im “neuen” Breitformat, welches Instagram eingeführt hat, da trotzdem nur bestimmte Seitenverhältnisse zugelassen werden. Hat man es dann mal geschafft, kann man bei Postings mit mehreren Fotos immer nur das erste sehen, keine Chance, in der Windows 10 App zum nächsten Foto zu kommen. Das geht dann wiederum nur im Browser.

Mai 152018
 

Um die Kommentarfunktion von WordPress auf einfache Weise der EU-Datenschutz-Grundverordnung näher zu bringen, kann man unter Einstellungen -> Diskussion folgende Haken entfernen:

  • “Benutzer müssen zum Kommentieren Name und E-Mail-Adresse hinterlassen”
  • “Benutzer müssen zum Kommentieren registriert und angemeldet sein”

Wenn man die Felder zur Eingabe von URL, Mailadresse und Name beim Schreiben von Kommentaren nun noch mit folgendem Code über ein Plugin wie “Simple Custom CSS” oder z. B. bei Suffusion unter Suffusion Options -> Back-End -> Custom Includes ausblendet, werden m. E. keine personenbezogenen Daten mit den Kommentaren gespeichert (sofern man anderweitig bereits das Speichern der IP-Adresse unterbunden hat – was aber eher niemand kontrollieren kann):


input#author.textarea, input#email.textarea, input#url.textarea, #commentform label.suf-comment-label {
display: none;
}

#commentform label.textarea.suf-comment-label {
display: inline;
}

Der CSS-Code ist für Suffusion. Für andere Themes müssen die Bezeichner evtl. angepasst werden.

Mrz 292018
 

Outlook 2016 meldet beim Versuch, ein Exchange-Konto einzurichten: Es steht keine verschlüsselte Verbindung mit Ihrem E-Mail-Server zur Verfügung?

Grund hierfür kann sein, dass die autodiscover-Funktion für den betreffenden Domainnamen nicht funktioniert. (Zu prüfen mit Strg-Rechtsklick auf das Outlook-Icon im System Tray rechts in der Taskleiste, dort: E-Mail-AutoKonfiguration testen.)

Hier half bis Outlook 2013, das Konto manuell unter Angabe des Servers anzulegen (z. B. outlook.office365.com für Exchange Online). Dies ist mit Outlook 2016 nicht mehr möglich!

Teilweise wird empfohlen, statt dessen ein Exchange ActiveSync Konto anzulegen, da dort die Eingabe des Servernamens möglich ist, und bei der Fehlermeldung, der Server sei nicht erreichbar, Outlook über den Task-Manager abzuschießen. Danach ist es tatsächlich möglich, das Konto in Outlook zu nutzen. Allerdings ist dies nicht zu empfehlen, da das Exchange ActiveSync Protokoll nur für mobile Geräte und niedrige Bandbreiten gedacht ist. Welche Funktionseinschränkungen daraus resultieren, ist mir nicht bekannt.

Also zurück zur Überschrift: Outlook 2016 ohne autodiscover.xml mit einem Exchange Server zu verbinden geht m. W. gar nicht, es sei denn man weiß, wie man das Konto manuell in der Registry anlegt. Alternativ kann man aber z. B. eine lokale autodiscover.xml anlegen, die eine Umleitung auf die gewünschte autodiscover.xml des Mailhosters ist, wenn man für den eigenen Domainnamen nicht die erforderliche Konfiguration vornehmen kann. (… was ich mich in den DNS-Einstellungen bei 1&1 im Moment nicht mehr traue, da man dann bestätigen muss, dass alle Mailadressen und Umleitungen gelöscht werden, obwohl dies damit überhaupt nicht in Zusammenhang steht.)

Anlegen einer lokalen autodiscover.xml (in diesem Beispiel für Exchange Online)

Für das Beispiel habe ich diese autodiscover.xml in c:\temp abgelegt:


<?xml version="1.0" encoding="utf-8"?>
<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
<Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
<Account>
<AccountType>email</AccountType>
<Action>redirectUrl</Action>
<RedirectUrl>http://autodiscover.outlook.com/autodiscover/autodiscover.xml</RedirectUrl>
</Account>
</Response>
</Autodiscover>

Damit Outlook die Datei findet, sind diese Registry-Einträge notwendig (beispiel.domain durch die Domain des Exchange-Kontos ersetzen):


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\AutoDiscover]
"beispiel.domain"="c:\\temp\\autodiscover.xml"
"PreferLocalXML"=dword:00000001

Feb 062018
 

Microsoft stellt “Clutter” nach und nach ein, da die Funktion von der “Focused Inbox” übernommen wird. Ich mag beides nicht, aber wer die “Focused Inbox” sofort nutzen möchte (nur mit Outlook 2016 im Office 365 Abo, nicht mit Dauerlizenz – da wohl ab Outlook 2019!), kann so vorgehen:

  • Alle Updates für Outlook 2016 installieren: Datei -> Office-Konto -> Updateoptionen -> Jetzt aktualisieren
  • Über die PowerShell Clutter auf dem Exchange Server abschalten (Beispiel für alle User): Get-Mailbox -ResultSize Unlimited | Set-Clutter -Enable $False | FL
  • Über die PowerShell Modern Auth auf dem Exchange Server einschalten: Set-OrganizationConfig -OAuth2ClientProfileEnabled $true
  • Über die PowerShell Focused Inbox auf dem Exchange Server einschalten (Beispiel für alle User): Set-OrganizationConfig -FocusedInboxOn $true
  • Modern Auth erzwingen:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Exchange] "AlwaysUseMSOAuthForAutoDiscover"=dword:00000001
  • Outlook neu starten.
  • Nach Markieren des Posteingangs sollte nun im Menü Ansicht die Aktivierungsmöglichkeit für die Focused Inbox sichtbar sein.

Die Freischaltung von Modern Auth für eventuelle Outlook 2013 Clients zum Zweck der Vereinheitlichung ist per Registry möglich (Focused Inbox gibt es unter Outlook 2013 dennoch keine!).

Jan 022018
 

Oh .. endlich mal eine Anwendung für den “neuen” Personalausweis! Die Onlinefunktion habe ich seit einem Test 2010 nicht mehr verwendet. Nun sagt Elster, dass die USt-Erklärung ab 2017 nur noch mit Zertifikat möglich sei und man dieses mit dem nPA sofort bekommen könne. Wäre schön gewesen … geht natürlich nicht. Die aktuelle AusweisApp2 oder der Kartenleser oder dessen Treiber – irgendetwas – erkennt meinen aufgelegten Ausweis nicht, egal wie ich ihn drehe und wende. Der Klick auf Diagnose bringt keine Fehlerhinweise außer “Kein Ausweis erkannt”.

Die FAQ zur AusweisApp2 empfehlen in diesem Fall, manuell den Treiber von der Hersteller-Website zu installieren. Dies führt jedoch zu diesem Fehler:

Meine Versuche beziehen sich auf den Kartenleser SCL011 P/N 905204 unter Windows 10. Zum Treiber.

Dez 212017
 

Manchmal möchte man allen Nutzern im Netz die Möglichkeit geben zu sehen, wer im Haus gerade anwesend ist bzw. eine Samba/smb-Verbindung zur DiskStation aufgebaut hat.

Im Folgenden ein Weg, diese Information über einen Webserver auf der DiskStation unter einer Adresse wie http://diskstation.intern/benutzer.php bereitzustellen:

1. Voraussetzung ist die Installation der Pakete WebStation und PHP 7.0.

2. Im Aufgabenplaner ein benutzerdefiniertes Script, welches alle fünf Minuten als root ausgeführt wird, einrichten:

/bin/smbstatus -S |cut -f 3,4 | grep . | sort | uniq | tee /tmp/benutzer-list
date | tee /tmp/benutzer-date

3. Unter /volume1/web/benutzer.php das Ausgabescript ablegen:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
 <meta http-equiv="expires" content="0">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="refresh" content="600;url=/benutzer.php">
 <title>Aktuell angemeldete Benutzer</title>
</head> 
<body text="#00335B" bgcolor="#FFFFFF" link="#F49807" vlink="#F49807" alink="#FFCC33" style="width: 95%; margin-left:auto; margin-right:auto; font-family: Helvetica, Arial, Geneva, sans-serif;">
<table border="0">
<tr>
<td width="90%">
 <h3><b>Aktuell angemeldete Benutzer</b></h3>
</td>
<td align=right><img src="Logo.png"></td>
</tr>
</table>
<?php
echo "<table>";
echo "<tr><th width=\"130\" align=\"left\">User</th><th align=\"left\">Workstation</th></tr>";
$file = '/tmp/benutzer-list';
$file_handle = fopen($file, 'r');
while (!feof($file_handle)) {
 $line = fgets($file_handle);
 $spline = preg_split('/\s+/', $line);
 if (!empty($spline[0])) {
 echo "<tr><td>";
 echo $spline[0];
 echo "</td><td>";
 echo gethostbyaddr($spline[1]);
 echo "</td></tr>";
 }
}
fclose($file_handle);
echo "</table><br>";
echo "Anzahl: ";
echo shell_exec("wc -l < /tmp/benutzer-list");
echo "<br><br>";
echo shell_exec("cat /tmp/benutzer-date");
?>
</body>
</html>

4. In /etc.defaults/samba/smb.conf und /etc/samba/smb.conf diese Zeilen ergänzen und samba neu starten (/usr/syno/etc/rc.sysv/S80samba.sh restart):

socket options=SO_KEEPALIVE TCP_KEEPCNT=4 TCP_KEEPIDLE=240 TCP_KEEPINTVL=15
deadtime=10
keepalive=150
Dez 142017
 

Über meine Erfahrungen mit Ubiquiti UniFi Produkten hatte ich bereits früher berichtet: WLAN mit Roaming bezahlbar

Heute mein Versuch eines minimalen Monitorings der UniFi-Produkte mit Nagios:

Da die beiden existierenden Nagios-Plugins, welche über SNMP Detailinformationen des UniFi-Controllers abrufen und auswerten, bei mir nicht zum Laufen zu bekommen sind, habe ich ein minimales Plugin geschrieben, welches lediglich die Erreichbarkeit der Access Points per ping und des Controllers auf tcp Port 8443 prüft. Die Adressen und Bezeichnungen müssen direkt im Code selbst geändert werden. Der Ausfall eines Access Points gibt den Status WARNING zurück, der Ausfall mehrerer Access Points den Status CRITICAL. Der Ausfall des Controllers gilt ebenfalls als CRITICAL.


#!/bin/bash

ping="/bin/ping"
nc="/bin/nc"
failures=0
output=""

docheck(){
if ! $ping -c 1 -w 1 $1 > /dev/null; then
((failures++))
output+="AP $2 DOWN; "
else
output+="AP $2 UP; "
fi;
}

docheck-ctrl(){
if ! $nc -z -w1 $1 8443 > /dev/null; then
# Wertung als Doppelfehler, da kritisch
((failures++))
((failures++))
output+="Controller $2 DOWN; "
else
output+="Controller $2 UP; "
fi;
}

# Pruefung der Access Points (nur ping)
docheck "192.168.1.50" "Erdgeschoss"
docheck "192.168.1.51" "Trakt A"
docheck "192.168.1.52" "Trakt B"
docheck "192.168.1.53" "Keller"
docheck "192.168.1.54" "Empfang"
docheck "192.168.1.55" "Halle"
docheck "192.168.1.56" "Hof"
# Pruefung des Controllers (tcp 8443)
docheck-ctrl "192.168.1.5" "unifi-Controller"

if [ $failures -lt 1 ]
then
echo "OK- $output"
exit 0
elif [ $failures -eq 1 ]
then
echo "WARNING- $output"
exit 1
elif [ $failures -gt 1 ]
then
echo "CRITICAL- $output"
exit 2
else
echo "UNKNOWN- $output"
exit 3
fi

 

Dez 072017
 


Bei Überwachung eines Synology High-Availability Clusters (HA-Cluster) mit Nagios möchte man gern eine Warnung erhalten, wenn nicht mehr der primäre, sondern – aufgrund eines Ausfalls desselbigen – der sekundäre Server aktiv ist?

Dies kann einfach erreicht werden, indem man im Plugin check_snmp_synology zwischen den anderen Checks folgenden Code einfügt, um anhand der Seriennummer der aktiven DiskStation zu prüfen, welches Gerät gerade angesprochen wird. Im Code ist “1740PVN123456” durch die Seriennummer des primären Servers des HA-Clusters zu ersetzen.


#Check system serial
if [[ "$serialNumber" == *"1740PVN123456"* ]] ; then
systemSerial="primary"
else
systemSerial="non-primary (WARNING)"
healthWarningStatus=1
healthString="$healthString, System serial: $systemSerial "
fi

Somit steht einem Monitoring des Wechsels zwischen aktivem und passivem Server nichts mehr im Wege.