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 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.

Sep 012016
 

Ein Zugriff (nur lesend) auf den Kalender einer Shared Mailbox / Freigabe bzw. Ressource per Smartphone ist auf diesem Weg möglich:

Nachtrag 02/2018: Mittlerweile kann auch die Outlook-App auf freigegebene Kalender zugreifen (auch schreibend). Allerdings muss der Benutzer für jeden Kalender eine Einladung zugesendet bekommen (gemäß nachfolgendem Absatz). Vielleicht möchte auch nicht jeder die Outlook-App installieren, sofern E-Mails per Exchange Active Sync (EAS) synchronisiert werden. Eine weitere Möglichkeit, freigegebene Kalender zu erreichen, ist der Zugriff per Browser bzw. OWA-App.

Jemand, der Vollzugriff auf die Freigabe hat, muss diese als Postfach eines anderen Benutzers in Outlook Web Access (OWA) öffnen, dann mit rechter Maustaste auf den Kalender -> Kalender freigeben wählen. Als Empfänger der Freigabe muss eine Mailadresse außerhalb der eigenen Exchange Organisation angegeben werden. Der Empfänger erhält dann einen Link nach diesem Muster:


webcal://outlook.office365.com/owa/calendar/285264d25085464355746c3518594b06719@your.domain/4ec21e6343465478f113195a1cd11d782646306418034430461/S-1-8-154354352078-416523236723-3568956853-2430023/reachcalendar.ics

Bei dieser Adresse muss webcal durch https ersetzt werden, dann kann mit der URL z. B. (für Android) mit dem Subscribed Calendars-ICSReader der Kalender in jede Kalenderapp des Smartphones oder Tablets eingebunden werden. (Am Rande: Zugriff auf den Kalender per Browser ist auch möglich, mit Prefix https:// und Endung .html statt .ics)

Hinweis: Solche Kalenderfreigaben werden nach Änderungen in den Kalendern leider nicht sehr schnell aktualisiert.

Alternativ ist auch eine Freigabe über die PowerShell möglich: mittels Set-MailboxCalendarFolder. Hier besteht die Möglichkeit, den Kalender bis zu einem Jahr im Voraus zu publizieren (PublishDateRangeTo). Bei Freigabe über OWA beträgt der Zeitraum unveränderlich 6 Monate. Die erzeugten URLs werden dann mittels Get-MailboxCalendarFolder abgerufen.

Aug 242016
 

Um den Microsoft Kalenderdruck-Assistenten für Outlook 2007/2010 unter Outlook 2013/2016 nutzen zu können, muss vor der Installation:

… auf einem 32 Bit Windows System dieser Registry-Eintrag erzeugt werden:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\ProductVersion]
"LastProduct"="4.0.6029.1000"

… auf einem 64 Bit Windows System dieser Registry-Eintrag erzeugt werden:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Common\ProductVersion]
"LastProduct"="4.0.6029.1000"

Nach Abschluss der Installation kann und sollte der Eintrag wieder entfernt werden.

Der Kalenderdruck-Assistent ermöglicht die Erzeugung diverser zusätzlicher Kalenderansichten (z.B. einer Jahresübersicht), auch für auf einem Exchange-Server liegende Kalender.

Aug 182016
 

Microsoft bestätigt: Anniversary Update kann PCs einfrieren – so und ähnlich in diesen Tagen überall (1, 2, …) zu lesen.

Ich sehe ja jetzt nicht den großen Unterschied zu älteren Versionen. Auch schon vor 1607 konnte Windows 10 PCs zum einfrieren bringen, die unter Windows 7 Jahre problemlos liefen, so habe ich es erlebt mit diversen PCs aus unterschiedlichster Hardware der letzten 5-10 Jahre. Offenbar ist nun „nur noch“ ein weiterer Grund hinzu gekommen.

Für mich auch ein weiterer Grund, nämlich ein weiterer Grund, auf PCs, die zuverlässig laufen müssen, nicht ein System zu installieren, welches sich bei den regelmäßigen und nicht abschaltbaren Updates automatisch zerschießt.

Ein paar Nettigkeiten sind mir bei einem kurzem Blick auf das Anniversary-Release auch noch aufgefallen: 1. Der Lock-Screen lässt sich nicht mehr wie bisher per Registry abschalten, 2. Cortana lässt sich nicht mehr wie bisher per Registry „klein“ schalten, sondern nur noch ganz aus (mal sehen, wie lange noch), 3. Beim Versuch, den Standardbrowser zu ändern, kommt eine freche zusätzliche Abfrage „Zuerst den neuen schnellen Edge probieren?“ mit der Option „trotzdem ändern“ in nur kleiner Schrift darunter … Windows 10 ist nicht nur Betriebssystem, sondern auch Verkaufs- und Werbeplattform, so steht es treffend in der c’t 18/2016.

Jun 172016
 

Manche meiner bei 1&1 gehosteten Sites zeigten plötzlich nur noch: internal server error.

Was war der Grund?

1&1 hat ein Update von Apache 2.2 auf 2.4 gemacht. Es wäre schön, wenn dies vorher angekündigt worden wäre, denn z. B. die Syntax in der .htaccess ist teilweise völlig anders.

Beispiel aus einer .htaccess für Apache 2.2:


Options All -Indexes
<files readme.html>
Order allow,deny
Deny from all
</files>

Das muss für Apache 2.4 wie folgt aussehen:


Options -Indexes
<files readme.html>
Require all denied
</files>

Hier alle Upgradehinweise: http://httpd.apache.org/docs/2.4/upgrading.html

Mai 252016
 

Hmm .. ein altes 19″ Display erkennt (DVI) an mehreren Windows 10 PCs kein Signal, sobald der Grafiktreiber geladen ist. Unter Windows 7 kein Problem. Einstellungen sind jeweils identisch 1280×1024, 60 Hz. Andere 19″ Displays funktionieren an den Windows 10 PCs problemlos, nur ein MVS-WR190C nicht.

Apr 142016
 

MS Konto

Seit etwa einem Monat ist es nicht mehr möglich, während der Aktivierung von Office Home & Business 2016 ein neues Microsoft-Konto anzulegen. Nach Bestätigung der Mailadresse folgt immer diese Fehlermeldung, beim nächsten Versuch geht es dann. Mal sehen, wie lange das noch so bleibt ….

Apr 072016
 

Um ein paar der Nettigkeiten, die Microsoft in Windows 10 eingebaut hat, abzustellen, bieten sich – neben der obligatorischen Installation von http://www.classicshell.net/ – folgende Registry-Einträge an:

Cortana abschalten

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Windows Search]
"AllowCortana"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\Windows Search]
"AllowCortana"=dword:00000000
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Search]
"SearchboxTaskbarMode"=dword:00000000

Onedrive abschalten

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Onedrive]
"DisableLibrariesDefaultSaveToOneDrive"=dword:00000001
"DisableFileSync"=dword:00000001
"DisableMeteredNetworkFileSync"=dword:00000001
"DisableFileSyncNGSC"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\Onedrive]
"DisableLibrariesDefaultSaveToOneDrive"=dword:00000001
"DisableFileSync"=dword:00000001
"DisableMeteredNetworkFileSync"=dword:00000001
"DisableFileSyncNGSC"=dword:00000001

[HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\ShellFolder]
"Attributes"=dword:f090004d
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\ShellFolder]
"Attributes"=dword:f090004d

[HKEY_CURRENT_USER\Software\Classes\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\ShellFolder]
"Attributes"=dword:f090004d
[HKEY_CURRENT_USER\Software\Classes\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\ShellFolder]
"Attributes"=dword:f090004d

Tipps und Werbung abschalten

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CloudContent]
"DisableWindowsConsumerFeatures"=dword:00000001
"DisableSoftLanding"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\CloudContent]
"DisableWindowsConsumerFeatures"=dword:00000001
"DisableSoftLanding"=dword:00000001

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager]
"SoftLandingEnabled"=dword:00000000

Lockscreen abschalten (sofort zur Anmeldung)

(Nachtrag: Funktioniert seit dem Anniversary Update nicht mehr, nun wird es umständlicher: so oder so. Nachtrag 2: Nach dem Creators Update soll es wieder funktionieren.)


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Personalization]
"NoLockScreen"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\Personalization]
"NoLockScreen"=dword:00000001


Autostart delay abstellen (Programme in Autostart ohne Verzögerung starten)


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Serialize]
"StartupDelayInMSec"=dword:00000000

Die nervigsten Sounds durch unauffälligere ersetzen


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\Notification.Default\.Current]
@="C:\\Windows\\media\\Windows Pop-up Blocked.wav"
[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\Notification.Default\.Modified]
@="C:\\Windows\\media\\Windows Pop-up Blocked.wav"

[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\Notification.Mail\.Current]
@="C:\\Windows\\media\\ding.wav"
[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\Notification.Mail\.Modified]
@="C:\\Windows\\media\\ding.wav"

[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\MailBeep\.Current]
@="C:\\Windows\\media\\ding.wav"
[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\MailBeep\.Modified]
@="C:\\Windows\\media\\ding.wav"

[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\.Default\.Current]
@="C:\\Windows\\media\\Speech Misrecognition.wav"
[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\.Default\.Modified]
@="C:\\Windows\\media\\Speech Misrecognition.wav"

[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\SystemExclamation\.Current]
@="C:\\Windows\\media\\Windows Information Bar.wav"
[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\SystemExclamation\.Modified]
@="C:\\Windows\\media\\Windows Information Bar.wav"

[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\WindowsUAC\.Current]
@="C:\\Windows\\media\\Windows Ding.wav"
[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\WindowsUAC\.Modified]
@="C:\\Windows\\media\\Windows Ding.wav"

[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\SystemHand\.Current]
@="C:\\Windows\\media\\Speech Misrecognition.wav"
[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\SystemHand\.Modified]
@="C:\\Windows\\media\\Speech Misrecognition.wav"

[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\MessageNudge\.Current]
@="C:\\Windows\\media\\ding.wav"
[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\MessageNudge\.Modified]
@="C:\\Windows\\media\\ding.wav"

[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\SystemAsterisk\.Current]
@="C:\\Windows\\media\\Windows Pop-up Blocked.wav"
[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\SystemAsterisk\.Modified]
@="C:\\Windows\\media\\Windows Pop-up Blocked.wav"


UNC hardening für Netlogon abschalten


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\NetworkProvider\HardenedPaths]
"\\\\*\\NETLOGON"="RequireMutualAuthentication=0,RequireIntegrity=0"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\NetworkProvider\HardenedPaths]
"\\\\*\\NETLOGON"="RequireMutualAuthentication=0,RequireIntegrity=0"
Mrz 302016
 

Jetzt wollte ich doch tatsächlich zum ersten Mal Win 10 auf einem PC installieren:

Also schön eine DVD erstellt und bei der Installation einen Windows 7 Key eingegeben. Ergebnis: Aktivierung nicht möglich, auch nicht telefonisch nach Aufruf von slui 04. Laut Microsoft ist das gar nicht möglich, was ich machen möchte, es sei denn der Win 7 Key sei noch nie benutzt worden. Stimmt das denn? Wer hat denn heute noch einen nie genutzten Win 7 Key? Von dieser „kleinen“ Einschränkung habe ich noch nie gehört.

Zum gewünschten Endergebnis führte dann dieser Weg:

  • Win 7 installieren und aktivieren.
  • Von der Win 10 DVD gatherosstate.exe kopieren und unter Win 7 aufrufen. Die dadurch erzeugte GenuineTicket.xml sichern.
  • Win 10 von DVD installieren.
  • Die GenuineTicket.xml im versteckten Ordner C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket ablegen.
  • Win 10 Neustart.

Nachtrag 2017: Mittlerweile kann man den Win 7 Key während der Win 10 Installation regulär eingeben.

Mrz 212016
 

proftpd

proftpd (proftpd-basic / standalone) beendet sich unter Ubuntu 14.04.4 regelmäßig (killed, SIGNAL 15).

Offenbar steht dies im Zusammenhang mit der Ausführung von logrotate.

Lösung

in /etc/init.d/proftpd die Zeile:


start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE"

ersetzen durch diese Zeilen:


start-stop-daemon --stop --signal $SIGNAL --retry 1 --quiet --pidfile "$PIDFILE"
sleep 2

Mrz 092016
 

virtual host

Nach der Installation eines neuen Ubuntu Servers 14.04 hatte ich das Problem, dass die virtuellen Apache-Hosts nicht funktionierten. Trotz meiner Meinung nach korrekter Konfiguration führten alle Aufrufe immer zum default-Host. Meine Lösung war dann, in der 000-default.conf einen erfundenen Servernamen zu setzen: ServerName dummy386786. Ergebnis: Die virtuellen Hosts funktionieren nun und für alle nicht definierten Servernamen wird der default-Host verwendet.

Wenn mir irgendwann mal jemand erklären könnte, was da los ist ….

(Es muss an einer Einstellung auf dem System außerhalb von /etc/apache2 liegen, denn eine Kopie von /etc/apache2 von einem anderen Ubuntu 14.04 Server, auf dem der Effekt nicht auftritt, änderte nichts am Problem.)

Mrz 062016
 

Store Link

Hier ein paar hilfreiche Registry-Einstellungen für häufig gewünschte Konfigurationen unter Microsoft Office 2013 sowie 2016 (alle Einträge sind für Office bzw. Outlook 2013 [V15.0] und 2016 [V16.0] erstellt und können nach Speichern in einer .reg-Datei ausgeführt werden):

Outlook: Link zum Store ausblenden (rote Einkaufstasche)

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Outlook\Options\webext]
"StoreButtonInRibbonHomeTabAllowed"=dword:00000000
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Outlook\Options\webext]
"StoreButtonInRibbonHomeTabAllowed"=dword:00000000

Cursoranimation und andere Animationen abschalten

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Graphics]
"DisableAnimations"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\Graphics]
"DisableAnimations"=dword:00000001

Outlook: Gelöschte Mails in fremden Postfächern ins dortige „Gelöschte Elemente“ verschieben


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Options\General]
"DelegateWastebasketStyle"=dword:00000004
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Options\General]
"DelegateWastebasketStyle"=dword:00000004

Outlook: Für neue Mails immer den Default-Absender benutzen


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Options\Mail]
"NewItemsUseDefaultSendingAccount"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Options\Mail]
"NewItemsUseDefaultSendingAccount"=dword:00000001

Outlook: Cache ohne Zeitbegrenzung (Richtlinie für alle User)


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\15.0\Outlook\Cached Mode]
"SyncWindowSetting"=dword:00000000
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\16.0\Outlook\Cached Mode]
"SyncWindowSetting"=dword:00000000

Outlook: Modern Auth einschalten


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Identity]
"EnableADAL"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Identity]
"Version"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Exchange]
"AlwaysUseMSOAuthForAutoDiscover"=dword:00000001
Mrz 062016
 

CSV

Beim Versuch, Kontakte von Excel nach Outlook zu portieren, stellt man schnell fest, dass Excel beim CSV-Export ein Semikolon als Feldtrennzeichen verwendet, Outlook beim CSV-Import jedoch ein Komma erwartet.

Der teilweise verbreitete Tipp, über die Windows-Systemsteuerung das Trennzeichen zu ändern, brachte bei mir unter Windows 7 keinen Erfolg – Excel exportierte weiterhin unter Verwendung des „;“. Suchen und Ersetzen verbietet sich von selbst, denn die Daten könnten ja auch mal ein Semikolon enthalten (und sollten deshalb übrigens in Anführungszeichen stehen, was untenstehendes Skript – dann mit Kommata – anbietet).

Eine Lösung brachte schließlich dieses kleine Excel-Makro von Thomas Lexa (CC BY-NC-SA 3.0 DE):

Sub ExportCSV()
 
Dim Bereich As Object, Zeile As Object, Zelle As Object
Dim strTemp As String
Dim strDateiname As String
Dim strTrennzeichen As String
Dim strMappenpfad As String
Dim blnAnfuehrungszeichen As Boolean
Dim blnSave As Boolean
 
 
strMappenpfad = ActiveWorkbook.FullName
 
strDateiname = InputBox("Bitte den Namen der CSV-Datei angeben.", "CSV-Export", strMappenpfad)
If strDateiname = "" Then Exit Sub
 
strTrennzeichen = InputBox("Welches Trennzeichen soll verwendet werden?", "CSV-Export", ",")
If strTrennzeichen = "" Then Exit Sub
 
If MsgBox("Sollen die Werte in Anführungszeichen exportiert werden?", vbQuestion + vbYesNo, "CSV-Export") = vbYes Then
    blnAnfuehrungszeichen = True
Else
    blnAnfuehrungszeichen = False
End If
 
Set Bereich = ActiveSheet.Range("A1:U1000")
 
Open strDateiname For Output As #1
 
For Each Zeile In Bereich.Rows
        For Each Zelle In Zeile.Cells
        If Application.WorksheetFunction.CountBlank(Zeile.Cells) = Zeile.Cells.Count Then
            Zeile.Delete
            blnSave = False
        Else
            If blnAnfuehrungszeichen = True Then
                strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
            Else
                strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
            End If
        End If
        Next
        If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
        If blnSave = True Then
            Print #1, strTemp
            blnSave = True
        Else
            blnSave = True
        End If
        strTemp = ""
Next
 
  Close #1
  Set Bereich = Nothing
  MsgBox "Export erfolgreich. Datei wurde exportiert nach" & vbCrLf & strDateiname
 
End Sub

Vor Ausführung den Bereich anpassen (im Code jetzt A1:U1000)!

Mrz 042016
 

Windows Update

Unter Windows 7 versagt der Updateservice manchmal bereits direkt nach einer Neuinstallation von Windows 7 SP1.

Die Suche nach Updates dauert dann nicht nur ein paar Stunden, sondern läuft endlos oder endet mit einer Fehlermeldung.

Ein paar Lösungsansätze:

Mrz 032016
 

Es ist mal wieder so weit. Die Änderungen der Widerrufsbelehrung vom Juni 2014 (z. B. bezügl. Rücksendekosten und Notwendigkeit eines Muster-Widerrufstexts) sind noch längst nicht auf allen Websites umgesetzt, ob die Cookie-Richtlinie trotz bisher fehlender Umsetzung in Deutschland durch den Gesetzgeber überhaupt greift, wird noch diskutiert (wer Google Dienste wie AdSense oder Analytics verwendet, braucht nicht zu überlegen, Google verlangt hier eine Einwilligung der Nutzer seit September 2015), da tauchen zwei neue Anforderungen auf:

  • Aus der EU-Verordnung Nr. 524/2013 (ODR-Verordnung) ergibt sich für jeden Online-Shop die Pflicht, auf die Plattform zur Online-Streitbeilegung (OS) http://ec.europa.eu/consumers/odr hinzuweisen und zu verlinken.
  • Man hat es schon immer geahnt: Eine fehlende Datenschutzerklärung könnte abmahnfähig sein. Seit Inkrafttreten des „Gesetzes zur Verbesserung der zivilrechtlichen Durchsetzung von verbraucherschützenden Vorschriften des Datenschutzrechts“ am 24.2.2016 ist dies vom Gesetzgeber sogar so festgeschrieben. Braucht man gar nicht, wenn man keine personenbezogenen Daten verarbeitet? Kann sein, aber bereits die Speicherung von IP-Nummern in Server-Logfiles scheint eine Datenschutzerklärung notwendig zu machen, denn eine IP-Adresse wird regelmäßig als schützenswertes Persönlichkeitsdatum angesehen.

Je nach Bedarf kostengünstige oder kostenlose Mustertexte stellt ein Anwalt hier zur Verfügung: http://www.e-recht24.de/, ein anderer hier: http://www.datenschutzerklaerung-online.de/.

Übrigens, die Skripte Internet-Recht und IT-Recht von Prof. Hoeren können manche Fragen klären:

http://www.uni-muenster.de/Jura.itm/hoeren/lehre/materialien

Feb 282016
 
  • Die Windows Power Shell installieren von https://www.microsoft.com/de-de/download/details.aspx?id=40855
  • Die Power Shell befindet sich nun im Startmenü unter Zubehör -> Windows PowerShell und muss einmalig mit Administrator-Rechten (rechte Maustaste) gestartet werden, um folgenden Befehl auszuführen: Set-ExecutionPolicy RemoteSigned
  • Dann $profile eingeben, um zu sehen, wo das Profil abgelegt werden kann, bei mir unter Dokumente -> Eigene Dokumente -> WindowsPowerShell -> Microsoft.PowerShell_profile.ps1
  • In der Profildatei die Befehle zum Aufbau einer Sitzung mit Microsoft Exchange Online abspeichern, damit diese beim Aufruf der Powershell in Zukunft automatisch ausgeführt werden:
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session

Linux-Freunde mögen sich dies gleich mit in die Datei schreiben, um einen kleinen grep und sed-Ersatz zu haben:

filter grep($keyword) { if ( ($_|Out-String) -like"*$keyword*") { $_ } }
filter sed($before,$after) { %{$_ -replace $before,$after} }

(Fortsetzung folgt)

Feb 262016
 
Metrik

Gut so: Metrik der VPN-Verbindung am niedrigsten: 26 (Ausgabe von „route print“)

Je neuer die Windows-Version wird, desto mehr VPN Probleme treten auf.

Unter Windows 10 empfehle ich, zunächst diesen Beitrag zu beachten, der schon unter Windows 8/8.1 helfen konnte: Shrew Soft VPN Client Probleme (Win 8/8.1 und Win 10)

Ab Windows 10 gibt es nun aber noch ein zusätzliches Problem, sowohl mit dem Shrew Soft als auch mit dem Cisco AnyConnect Client:

Manchmal funktioniert zunächst alles …. dann und wann können jedoch plötzlich keine Nameserveranfragen (DNS) mehr aufgelöst werden. Dies ist dann unabhängig davon, ob die VPN Verbindung noch besteht oder wieder beendet wurde.

In dieser Situation hilft scheinbar nur noch, die Netzwerkverbindung (Adaptereinstellungen) zu deaktivieren und wieder zu aktivieren.

Wie kann dies verhindert werden?

In den Interface-Einstellungen „Automatic Metric“ abschalten und dem Interface eine höhere Metric geben, als die, die das VPN-Interface erhalten hat.

Wenn der Cisco-Client weiterhin irgendwelchen Ärger macht, hilft evtl. noch diese sehr interessante Ausarbeitung: http://itthatshouldjustwork.blogspot.de/2015/07/cisco-64-bit-vpn-client-on-windows-10.html

Andere VPN-Probleme unter Windows 10?

  • Split-Tunneling abschalten mit: Set-VpnConnection -Name „Verbindungsname“ -SplitTunneling 0
  • Folgende DWORDs auf 1 setzen: DisableSmartNameResolution in HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClient und DisableParallelAandAAAA in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
    \Dnscache\Parameters
Feb 212016
 

regedit

Voraussetzungen für einen Remote-Registry-Zugriff auf einen Windows 7 (8.x/10 ungetestet) PC:

  1. Der Dienst Remoteregistrierung muss laufen. (Ebenfalls der Dienst Plug & Play, aber dies müsste Standard sein.)
  2. Die Datei und Druckerfreigabe muss durch die Windows-Firewall zugelassen sein.
  3. Der Benutzer, der den Zugriff haben soll, muss Lesezugriff auf diesen Registry-Key haben: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\
    SecurePipeServers\winreg
    (es reicht nicht, wenn der Nutzer zu den lokalen Administratoren gehört).

Ich gehe von einer Situation ohne Domäne aus:

Auf dem PC, von dem aus der Zugriff erfolgen soll, muss ein Nutzer mit dem gleichen Namen und Passwort angemeldet sein, wie der, der oben unter 3. die Rechte bekommen hat. Ist dies nicht gewünscht, kann eine Verknüpfung zur regedit.exe angelegt werden, die man mit Shift-Rechte-Maustaste -> Als anderer Benutzer ausführen aufruft. Somit ist es möglich, nur den regedit unter diesem Nutzer laufen zu lassen. Dennoch muss der Nutzer natürlich auf beiden PCs mit den gleichen Daten angelegt sein.

Fertig! Nun sollte im regedit Datei -> mit Netzwerkregistrierung verbinden funktionieren.

Feb 212016
 

Autostart

Für lokale Windows 7 und Windows 10 Nutzer (8.x ungetestet), die beim Login dynamisch Netzwerklaufwerke gemappt bekommen sollen (und vielleicht will man auch mal den einen oder anderen sonstigen Befehl laufen lassen), ist eine der Möglichkeiten diese:

Im Autostart für All Users, also in C:\ProgramData\Microsoft\Windows\Startmenü\Programme\Autostart (nur sichtbar, wenn ausgeblendete Dateien und Ordner angezeigt werden!) ein Script logon.cmd ablegen mit diesem Inhalt:


@echo off
cls
call \\servername\netlogon\%username%-logon.cmd

Um diese Datei am richtigen Ort speichern zu dürfen, muss der verwendete Editor als Administrator ausgeführt werden!

Dann für jeden Benutzer ein Script \\servername\netlogon\BENUTZERNAME-logon.cmd anlegen, welches zuerst ein allgemeines Script für alle Benutzer aufruft und dann benutzerspezifische Befehle ausführt, also z. B.:


call \\servername\netlogon\alle-logon.cmd
net use s: /delete /yes > nul: 2>&1
net use s: \\servername\sonderlaufwerk /persistent:yes > nul: 2>&1

Die \\servername\netlogon\alle-logon.cmd könnte z. B. sowas beinhalten:


echo Login von %username% auf %userdomain%
echo Bitte warten ...
net use h: /delete /yes > nul: 2>&1
net use h: \\servername\%username% /persistent:yes > nul: 2>&1
net use g: /delete /yes &gt; nul: 2>&1
net use g: \\servername\gemeinsames /persistent:yes > nul: 2>&1

Es empfiehlt sich, mit der Anmeldung zu warten, bis das Netzwerk bereit ist, sonst wird das Script manchmal nicht ausgeführt:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\Winlogon]
"SyncForegroundPolicy"=dword:00000001 

ACHTUNG! Unter Windows 10 muss evtl. das UNC hardening abgeschaltet werden, wenn „netlogon“ als Freigabename verwendet wird:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\NetworkProvider\HardenedPaths]
"\\\\*\\NETLOGON" = "RequireMutualAuthentication=0,RequireIntegrity=0"

Feb 202016
 

remote

Um – z. B. als Helpdesk – einem Windows 7 oder Windows 10 (8.x ungetestet) Arbeitsplatz-PC Remoteunterstützung („Aufschalten auf den Bildschirm“ ähnlich VNC oder Teamviewer) anzubieten, ohne von diesem dazu eine Einladung bekommen zu haben, sind diverse Einstellungen auf dem Arbeitsplatz-PC erforderlich:

  1. Systemsteuerung -> System -> Remoteeinstellungen -> Remoteunterstützungsverbindungen mit diesem Computer zulassen aktivieren (ist evtl. schon aktiv – Standard).
  2. Zubehör -> Eingabeaufforderung (mit rechter Maustaste als Admin starten), dort aufrufen: gpedit.msc, dort unter Richtlinien für Lokaler Computer -> Administrative Vorlagen -> System -> Remoteunterstützung -> Remoteunterstützung anbieten aktivieren. Um diese Änderung speichern zu können, muss unter Helfer -> Anzeigen ein Helfer-Benutzer eingetragen werden. Wenn man sich nicht in einer Domäne befindet, muss dies ein Benutzer sein, der sowohl auf diesem PC als auch auf dem Helpdesk-PC eingerichtet ist (nicht getestet, ob auch das Passwort gleich sein muss, wahrscheinlich ja).
  3. Systemsteuerung -> Verwaltung -> Computerverwaltung (mit rechter Maustaste als Admin starten), dort unter Computerverwaltung -> System -> Lokale Benutzer und Gruppen -> Gruppen -> Remoteunterstützungsanbieter hinzufügen, wer Unterstützung anbieten darf. Dies muss der unter 2. gewählte Benutzer sein.
  4. Systemsteuerung -> Windows-Firewall -> Programm zulassen, dort zulassen: Datei- und Druckerfreigabe, Remoteunterstützung (evtl. durch 1. schon aktiviert worden), Windows-Remoteunterstützungs-COM-Server (falls der Eintrag fehlt: Anderes Programm zulassen, dann c:\windows\system32\raserver.exe wählen).
  5. Nur unter Windows 10: Einstellungen -> Netzwerk und Internet -> Ethernet auf Ethernet (verbunden) klicken und dort „Dieser PC soll gefunden werden“ einschalten.

Fertig! Der Helpdesk kann nun über die Eingabeaufforderung (ggf. mit Shift-Rechte-Maustaste -> Als anderer Benutzer ausführen den unter 2. und 3. konfigurierten Benutzer verwenden) mit dem Befehl msra /offerra eine Remoteunterstützungssitzung anbieten. Die Verbindung wird erst nach Bestätigung am Arbeitsplatz-PC aufgebaut. Ebenso ist eine weitere Bestätigung erforderlich, wenn der Remoteunterstützer auf „Steuerung übernehmen“ klickt.

P.S. Praktisch ist evtl. noch diese Einstellung: Im gpedit.msc unter Richtlinien für Lokaler Computer -> Windows-Einstellungen -> Sicherheitseinstellungen -> Lokale Richtlinien -> Sicherheitsoptionen -> Benutzerkontensteuerung: UIAccess-Anwendungen können erhöhte Rechte ohne sicheren Desktop anfordern aktivieren.

Was bei mir bisher leider nicht funktioniert (für Erklärungen wäre ich dankbar), ist alternativ statt Nutzung von gpedit.msc diese Registry-Einträge vorzunehmen:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
"fAllowUnsolicited"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
"fAllowUnsolicitedFullControl"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\RAUnsolicit]
"admin"="admin"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableUIADesktopToggle"=dword:00000001

Feb 192016
 

Eee PC

Der Austausch der Festplatte in einem ASUS Eee PC 1215B gegen eine SSD (in meinem Fall eine SanDisk SSD PLUS 120GB) gelingt so problemlos:

  1. Umbau der Hardware nach dieser Anleitung – dabei genau merken, welche Schrauben an welche Stelle gehörten: http://www.insidemylaptop.com/disassemble-asus-eee-pc-1215b-laptop/
  2. Iso-Image einer Windows 7 Installations-DVD erstellen, z. B. mit CD Burner XP – ich empfehle natürlich den Download ohne „Open Candy“ unter „mehr Downloadmöglichkeiten“ hier: https://cdburnerxp.se/de/download
  3. Wie auch immer ich das Iso erstellte (Joliet, UDF, ..): Das Tool von Microsoft zur Erstellung eines bootfähigen USB-Sticks sagte dazu immer nur „invalid iso file“. Mit einem anderen Tool Namens R… (kompletten Namen gerade vergessen) klappte es dann.
  4. Ich empfehle, auf dem so erstellten USB-Stick diese Datei zu löschen: \Sources\ei.cfg  – dann kann mit dem Stick jede Windows 7-Version installiert werden (für die man einen Key besitzt), auf einen Fehler wegen falscher SKU wird man dann nicht stoßen.
  5. Durch Drücken von ESC kann am Eee PC nach dem Einschalten das Boot-Device gewählt werden, also der USB-Stick.
  6. Wenn als Installationsmedium Windows 7 inkl. SP1 verwendet wurde, müssen im Anschluss nur noch wenige Treiber installiert werden:
    Der WLAN Treiber, je nach dem, welche Karte im Eee PC ist, bei mir: Broadcom BCM-43xx Wireless Network Driver
    Der USB 3.0 Treiber: http://dlcdnet.asus.com/pub/ASUS/EeePC/Driver/USB3-V1_10_0_0.zip
    Der LAN-Treiber: http://dlcdnet.asus.com/pub/ASUS/EeePC/Driver/LAN-Atheros-V1_0_0_36.zip
    Der Grafikkartentreiber: http://dlcdnet.asus.com/pub/ASUS/EeePC/1215B/8_871_121536_WHQL_For_Asus_Brazos.zip

Fertig – die Fn-Tasten funktionieren dann auch wieder, zumindest die zur Helligkeitsregelung, andere nutze ich nicht. Am Rande: Im AMD Vision Engine Control Center habe ich den Kontrast auf 60 runter und die Sättigung auf 160 hoch gestellt. So erkennt man auf dem wahrlich nicht guten Display wenigstens halbwegs alle Farben/Grautöne.

Ich habe nicht die von ASUS ausgelieferten Treiber für das Touchpad installiert. Mit den Treibern von Windows funktioniert das Touchpad plötzlich viel zuverlässiger (kein Springen mehr, keine Aktionen in falsche Richtungen) – und das, obwohl ich schon vorher im Treiber alle 2- und 3-Fingerfunktionen abgestellt hatte.

Der Eee PC ist durch den Umbau erheblich schneller geworden (4 GB RAM hatte ich allerdings bereits vorher drin, angeblich sollen auch 8 funktionieren, obwohl laut ASUS nicht unterstützt – dran denken: Die 64 Bit Version von Win 7 installieren!).

Feb 172016
 

nowin10

Ach gibt’s nun doch mal – nach monatelangem Theater – einen von Microsoft empfohlenen (oder auch nicht) Weg, um unkontrollierte Updates durch Benutzer zu verhindern:

http://www.heise.de/newsticker/meldung/Upgrade-auf-Windows-10-per-Doppelklick-verhindern-3093805.html

… dort zum Download oder dies hier manuell per regedit eintragen oder in einer .reg-Datei speichern und ausführen:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows]
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Gwx]
"DisableGwx"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
"DisableOSUpgrade"=dword:00000001

Feb 112016
 

Eine Fritzbox 6490 am Unitymedia-Kabelanschluss verschluckt beim Faxempfang auf ca. jeder 2. Seite ein paar Zeilen. Erster Gedanke: T.30 einschalten – dann der Schreck: das unterstützt Unitymedia gar nicht. Was nun?

Mit einer Fritzbox 6360 an einem anderen Unitymedia-Anschluss keine Probleme …

Wechsel zur 6360 am Problemanschluss geht nicht wegen 250 MBit.

Feb 062016
 

Ist es normal, dass Windows 10 auf allen Bildschirmen die Abstände zwischen Desktop-Icons ändert (vergrößert), nur weil ein Bildschirm gegen einen mit einer höheren Auflösung ausgetauscht wurde? Dies kann man offenbar auch nicht dadurch ändern, dass man die Skalierung der Bildschirme unterschiedlich einstellt – auch auf 100% sind die Abstände auf allen Bildschirmen größer, als vor Tausch des einen Bildschirms.

Die Größe der Icons groß/mittel/klein lässt sich anscheinend auch nur bildschirmübergreifend einstellen, oder?

Und: Wirklich übersichtlich ist die Systemsteuerung ja nicht … man muss immer überall mindestens 1x auf ‚weitere Einstellungen‘ klicken, bis man mehr als 2-3 Schieberegler sieht.

Da muss sich noch einiges ändern, bevor mir Windows 10 auf meine Systeme kommt. Die virtuellen Desktops würden mich irgendwie reizen, aber kann es sein, dass auf allen die gleichen Icons liegen müssen? Dann ist es ziemlich nutzlos.

Win 10-Mecker-Ende