Win 8.1: Update KB2919355 läßt sich nicht installieren …

Neulich hatte ich bei einem Kunden das Problem, dass ein Windows 8.1 PC (Professional x64) Update 2919355 immer wieder zur Installation angeboten hat, diese dann aber regelmäßig in einem Fehler endete.

Vom Verhalten her deutet der Problem auf einen korrupten Windows Component Store hin und in der Vergangenheit hatte ich hier schon mittels dieses Blogs erfolgreiche Reparaturen durchführen können. Das Problem mit dem Component Store ist unter Windows 8 nicht neu, schon unter Windows Server 2008 R2 hatte ich 2x das allerdings war dort die Reparatur nochmals deutlich aufwendiger.

Leider haben dieses mal alle Empfehlungen aus dem Blog nichts geholfen, auch DISM war nicht in der Lage das Problem abschließend zu beheben Sad smile Da es sich bei den PC auch noch um ein wichtiges Kundensystem handelte war eine Neuinstallation die letzte (nein aller letzte) Möglichkeit, einfach schon aus dem Grund da hier 3 externe Dienstleister ihre Software installieren müssen und noch Kalibrierungen des Monitors und des angeschlossenen Röntgengeräts notwendig sind. Was tun sprach Zeus … nach einigem hin und her war des Rätsels Lösung eine Windows 8.1 Reparatur Installation!

Damit die Sache zügig von Statten ging habe ich mich dazu entschieden die DVD als ISO auf den lokalen Rechner zu kopieren und einfach mit einem Doppelklick zu mounten. Der Rechner hat eine SSD als Platte und damit ist ein deutlich schnellerer Kopiervorgang zu erwarten als von einer eingelegten DVD!

Ein einfacher Doppelklick auf die setup.exe startet das Update und hier muss lediglich noch die erste Option (alle Anwendungen und Einstellungen behalten) angewählt werden. Da Reparatur auf dem Quellsystem stattfindet ist auch die Eingabe des Lizenzschlüssels nicht mehr notwendig! Ich hatte um die ganze Sache zu testen den PC mittels Disk2vhd in eine VM migriert und dort wollte das Windows Setup (wegen grundlegender Änderungen an der Hardware) einen Lizenzschlüssel haben.

Nach gut einer Stunde hat das System rebootet und mir wurden in Summe 42 Updates zur Installation angeboten und auch erfolgreich durchgeführt.

Update 22.04.2015:
Für Probleme mit KB300850 sei auf den sehr interessanten Artikel der c’t hingewiesen: http://www.heise.de/ct/ausgabe/2015-9-Beseitigung-von-Windows-Update-Problemen-am-Beispiel-von-KB3000850-2585285.html

Enjoy it, b!

Windows 10 TP, Fehler beim Update auf Build 10041

Inzwischen wurde mir von Windows update der Build 10041 angeboten, leider schlug die Installation jedes mal mit folgenden Fehler fehl:

image

Nach einiger Recherche bin ich auf folgende Punkte gekommen, welche das Problem in meinem Fall gelöst haben:

  1. Start des Updates als angemeldeter Administrator (das bin ich normaler Weise nicht! )
  2. Anmeldung bei Windows Live https://www.live.com
  3. Sicherstellen, dass der PC ausreichend RAM hat – in meinem Fall war es nämlich eine VM mit Dynamic Memory (768MB Start) und das ist wohl Zuwenig, hier sollten mindestens 2GB vorhanden sein. Ich habe gleich 3072MB gewählt und der Update lief durch

Nach dem Update kann im Falle einer VM die RAM Konfiguration wieder “normalisiert” werden, ich habe wie schon einmal gepostet folgende Konfiguration:

https://sbsland.wordpress.com/2014/07/02/hyper-v-generation-2-vm-spinnt/

Enjoy it, b!

RDP, Your credentials did not work …

… oder der RDP Client speichert die Anmeldedaten nicht.

Eigentlich ist mir die Sache ein wenig peinlich, da ich das Problem gefühlt seit einigen Jahren mit mir herumschleppe. Immer wenn ich mich per RDP an einem Server anmelden setzte ich den Haken in der Checkbox Rember my credentials

image

was diese aber letztendlich generell zu ignorieren scheint. Anschließend bekomme ich darauf hin folgende Meldung mit dem Hinweis einfach meine Anmeldedaten nochmals ein zu tragen:

image

Also habe ich mich auf die Suche nach einer Lösung gemacht und folgende Policy (Richtlinie) dazu gefunden welche, wenn sie nicht konfiguriert ist dieses Problem verursacht:

Computer Configuration\Administrative Templates\System\Credentials Delegation
Setting: Allow delegating saved credentials with NTLM-only server authentification
State: Enabled

hier muss unter der Option: Add servers to the list
eine Liste mit Servern, oder Domain-Endungen erstellt werden. In meinem Fall laufen interne Domains immer mit der Endung .local und verschiedene andere Remote Desktop Server sind unter den TLDs de, org und com erreichbar …

Somit sieht die Liste bei mir wie folgt aus:

  • TERMSRV/*.local
  • TERMSRV/*.org
  • TERMSRV/*.de
  • TERMSRV/*.com

image

Nach dem Eintrag der Einstellungen und einen refresh der GPOs (gpupdate) war die Fehlermeldung weg … was mir auch ein paar Jahre früher hätte einfallen können Winking smile

Enjoy it, b!

Windows 10: löschen eines Printerports

Nach einigen Versuchen auf früheren Builds von Windows 10 erschien mir Build 9926 für die “Produktion” geeignet und so habe ich mein Notebook auf Windows 10 TP 9926 umgestellt.

Beim wiederholten Einrichten von Druckern ist mir aufgefallen, dass ich einen Printerport nicht löschen konnte obwohl der dazugehörige Drucker sowohl im Devicemanager als auch in den Druckern selbst nicht mehr vorhanden war (also anscheinend erfolgreich gelöscht wurde).

image

Um oben zu sehenden Screenshot wird der Lexmark T644 Class Driver immer noch als zugehöriger Printer zum Port 192.168.1.5 angezeigt.

Die Lösung war das Löschen des Druckers in  der Registry unter folgendem Hive:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\Lexmark T44 Class Driver

image

Nach einem vorsorglichem Neustart der Druckerwarteschlage konnte ich den Port problemlos löschen und meine Drucker erneut sauber einrichten und konfigurieren.

Enjoy it, b!

Windows Phone 8.1, Winmail.dat und der Microsoft Account

Bei einem meiner Kunden kommen seit geraumer Zeit auf seinem Windows Phone 8.1 (latest updates) Mails mit Terminen als Winmail.dat an! Die Winmail.dat kann auf dem Windows Phone nicht so ohne weiteres geöffnet werden. Der Kunde wollte darauf hin eine App installieren, ich stellte mir aber die Frage woher den die Winmail.dat überhaupt kommt.

Ein wenig Recherche offenbarte einige Gründe wieso diese unter Outlook oder Windows Mail auf PCs auftaucht, zum Thema Windows Phone habe ich aber nichts gefunden. Also habe ich mir das Windows Phone direkt einmal angeschaut und dabei ist mir folgende Anomalie aufgefallen:

Auf einem Windows Phone wird erst einmal ein Microsoft Account (aka Windows Live Account, aka Passport … nun egal wie das Ding immer einmal hieß). Dahinter steht dann im Normalfall eine name@outlook.de Adresse und damit ein Microsoft Exchange Server (MAPI). Nun hatte aber der Kunde zwar ein Microsoft Konto, damit aber eine GMX-Adresse verbunden. Zwar konnte er die GMX-Adresse als Microsoft Konto konfiguriert werden – Mails liefen aber über den GMX-Server und damit über (IMAP), was wiederum mit Terminen nicht gut funktioniert und in der besagten Winmail.dat resultierte.

Die Lösung war dann verhältnismäßig einfach:

  1. Anlegen eines neuen Microsoft Accounts mit einer outlook.de Adresse
  2. Reset des Windows Phones und Neukonfiguration des neuen Microsoft Accounts auf dem Phone
  3. Anlage der GMX-Adresse als weitere, reine Mail-Adresse
  4. Installation der Apps …

Das positive an der Sache war, dass der Kunde nur eine gekaufte App hatte – da wir nun ja mit einem neuen Microsoft Account arbeiten.

Enjoy it, b!

Windows Server NIC Teaming und die LANCOM Router

Erst einmal noch an alle meine Leser, ein gutes Neues Jahr!

Verwendet man das mit Windows Server 2012 in das OS integrierte Netzwerk Adapter (NIC) Teaming, schlägt die Konfiguration eines LANCOM Routers mittels LANconfig fehl insofern LANconfig auf diesem Sytem ausgeführt wird. Der Router zeigt hier unter anderem folgendes Verhalten:

  1. Der Router reagiert im LANconfig nicht oder nur manchmal auf Konfigurationsänderungen, oder kann erst gar nicht über das Tool ausgelesen werden
  2. Firmware Updates schlagen fehl
  3. Die Erkennung des Gerätes funktioniert nur bedingt oder gar nicht

Das Problem tritt immer auf, insofern Teaming irgendwo im Stack vorhanden ist. Also auch bei den folgenden Konfigurationen:

  1. Teaming im OS und Ausführen von LANconfig auf dem Server
  2. Teaming auf einem Hyper-V Host und ausführen von LANconfig in einer VM (welche keinen geteamten Netzwerkadapter hat) welche auf dem Hyper-V Host (egal ob Windows Server 2012, Hyper-V Server, …) läuft

Ändern lässt sich dieses Verhalten, wenn in der Konfiguration des Routers die folgende Option aktiviert wird: Configuration / IP Router / General / Transfer packtes from internal services via the router

image

Da diese Option per Default nicht gesetzt ist, muss natürlich erst einmal eine erfolgreiche Konfiguration des Routers erfolgen. Sinnvoller Weise über einen PC oder Server welcher kein NIC Teaming verwendet. Nach Aktivierung und einem erfolgreichen Schreiben auf dem Router arbeitet LANconfig problemlos auch auf Systemen mit Teaming.

Enjoy it, b!

WS 2012 R2: Control Panel

Eigentlich sollte die Möglichkeit bekannt sein – wem die Navigation in Windows Server 2012 R2 zur Systemsteuerung (Control Panel) zu umständlich ist, der kann diese über die beiden folgenden Wege deutlich scheller öffnen:

  1. In einer geöffneten Eingabeaufforderung (Command Prompt) einfach control.exe eingeben
    image
  2. Im Windows Explorer in die Eingabeleiste Control Panel eingeben
    image

Je nachdem, was schneller zur Hand bzw. gerade geöffnet ist!

Frohes Fest und enjoy it, b!

SMTP@home mit 1&1

Mit dem Small Business Server und dem darin enthaltenen Exchange Server hatte man mit ein wenig Konfiguration auch gleich noch einen SMTP-Server welcher zum Versand von Status-Mails, Logfiles oder auch Monitoring-Informationen verwendet werden konnte. Dazu gab’s von mir auch schon einen Beitrag dazu:

https://sbsland.wordpress.com/2010/02/11/sbs2008-meine-hardware-versendet-keine-mails-mehr/

Da aber so nach und nach auch die Mails von kleinen Firmen in die Cloud gehen und Microsoft einen aktuellen Small Business Server auf Basis von Windows Server 2012 R2 und Exchange 2013 gar nicht mehr anbietet, fällt damit auch die Möglichkeit weg über den lokalen Exchange Server die oben beschriebenen Mails zu versenden.

Damit haben wir noch folgende Möglichkeiten:

  1. Wir konfigurieren jedes Hardware-Device mit einem externen POP-Account, welchen wir uns bei einem Provider (gmx, web.de, etc.) anlegen. Dann müssen wir aber mit den Unzulänglichkeiten der einzelnen Mail-Clients kämpfen … es gibt RAID-Controller die nur Port 25 und nicht 587 unterstützen, das Lexmark x544 MFC erlaubt keine Authentifizierung mit externen POP-Accounts … usw.
    Real betrachtet ist dieser Ansatz für eine kleine Firma nicht wirklich sinnvoll! 
  2. Wir bauen uns einen eigenen, internen SMTP-Server welcher sich mit einem Mail-Account gegenüber einem Provider wie z.B. 1&1 authentifiziert und intern Mails mit einer “loseren” Sicherheit entgegen nimmt …

Ich selbst verwende schon seit meiner eigenen Migration in die Cloud Möglichkeit 2. Dazu müssen folgende Voraussetzungen erfüllt sein:

  • Postfach bei einem Provider (und dazu ein entsprechender Mail-Account). Ich habe eine Domain bei 1&1 wo ich für jeden meiner Kunden einen E-Mail Account anlege. Nennen wir die Domain sbs-smtp.net
  • Windows Server (in einer von Microsoft unterstützten Version) in diesem Beispiel Windows Server 2012 R2 mit installiertem SMTP-Feature

Die gesamte Konfiguration sieht damit wie folgt aus…image

… und wird wie folgt konfiguriert (Windows Server 2012 R2 Englisch):

  1. Im Server Manager unter Manage / Add Roles and Features den SMTP Server als Feature hinzufügen, alternativ mit PowerShell:
    Install-WindowsFeature "SMTP Server"
  2. Nach der Installation wird der SMTP Server über die Internet Information Services (IIS) 6.0 Manager Konsole konfiguriert (Server Manager / Tools / …)
  3. Hier mit der rechten Maustaste in die Properties des SMTP Servers gehen
    image
  4. Im Reiter Access werden nun folgende Einstellungen vorgenommen:
    Access / Authentification / Anonymus access aktivieren
    image
    Damit ist es möglich ohne Auth gegenüber dem SMTP Server über diesen Mails zu versenden! Und damit hier Hinz und Kunz das nicht aus dem lokalen Netzwerk machen, tragen wir hier als Erhöhung der Sicherheit die IP-Adressen der Geräte ein welche ohne Auth senden dürfen:
    Access / Connection Control / Connection / Only the list below
    image
    SMTP-Relaying ist in kleinen Firmennetzwerken kein Thema, dass heißt das alle Endgeräte unter der internen Domain (sbsland.local) ihre Mails versenden. Der Fall, dass weitere interne Domains den SMTP Server als Relay verwenden sollen beschreibe ich weiter unten als Zusatz.
  5. Damit wir mit bekommen, ob Mails nicht versendet werden können wird eine funktionale E-Mail-Adresse mit Postfach unter Messages konfiguriert
    image
    Diese Mail-Adresse sollte sinnvoller Weise auch abgerufen werden um ggf. irgendwelche Mails mit NDR auswerten zu können
  6. Interessant wird es nun im Reiter Delivery unter diesem wir unter anderem die Auth gegenüber den Provider (hier 1&1) konfigurieren. Die Mail-Adresse und das Passwort wird bei 1&1 im Kundenportal angelegt:
    image
    Wichtig dazu ist, dass 1&1 wie viele anderen Provider die Verschlüsselung von Mails mit SSL bzw. TLS unterstützen und auch den Versand über den Standard-Port von SMTP (25) nicht mehr zulassen.
  7. Dazu müssen wir wie unter Delivery / Outbound Connections den Port 587 anstatt 25 zusätzlich einstellen
    image
  8. Abschließend konfigurieren wir die Advanced Delivery Optionen wie folgt
    image
    Masquerade domain: sbs-smtp.net
    Full-qualified domain name: sbsland.local
    Smart host: smtp.1und1.de
    Da wir diese Konfiguration auf unserem SBS durch führen welcher die Domain sbsland.local im DNS hostet ist diese auch über Check DNS auflösbar. Als SMART Host, also als Server an den im Internet die Mails gesendet werden tragen wir smtp.1und1.de ein. Dieser muss natürlich auch von unserem Server erreichbar sein – hier einen nslookup smtp.1und1.de und ggf. einen tracert smtp.1und1.de zum Test ausführen
  9. Zum Abschluss prüfen wir noch, ob sbsland.local als Domain erscheint
    image

Damit wäre die Konfiguration abgeschlossen und unser SBS, der RAID Controller, etc. versenden ihre Mails nun über unseren eigenen internen Mail-Server.

Enjoy it, b!

SQL Server – Remote Access

Neulich musste ich einen SQL Datenbank über einen Port ins Internet exponieren – Ziel war, dass eine Anwendung von Remote auf diese Datenbank zugreifen kann. Um das System möglichst gut gegen Angriffe zu schützen habe ich folgende Maßnahmen ergriffen:

  • Alle Microsoft Updates installiert
  • Da für den Zugriff über das Internet SQL-Auth notwendig ist, habe ich den SA deaktiviert und einen neuen Login mit SA-Rechten angelegt, um damit Scans auf den SA zu umgehen
  • Die Infrastruktur läuft noch vollkommen auf IPv4 und damit wird am Router NAT betrieben. Der Standard-Port auf dem der SQL Server intern läuft (1433) wird am Router auf einen beliebigen externen High-Port gemapped z.B. 47113
  • Für den Zugriff auf die Datenbank selbst habe ich einen weiteren Benutzer angelegt und ihm in KeePaas ein hinreichend “scharfes” Passwort erstellen lassen

Der Zugriff von Remote sieht in einem Schaubild wie folgt aus:

image

Damit nicht von jedem beliebigen Rechner im Internet auf diesen Port zugegriffen werden kann ist es sinnvoll explizit nur die (externe) IP-Adresse des Benutzers in der Firewall des Windows Servers frei zu schalten!

Was aber tun, wenn der Benutzer eine dynamische IP-Adresse verwendet, welche z.B. bei der Telekom jede Nacht wechselt? In diesem Fall ist als Kompromiss zumindest eine Einschränkung auf den Provider möglich – hier z.B. auf 1&1 / Telefonica.

  1. Ermittlung der externen IP-Adresse des Benutzers (http://www.wieistmeineip.de) oder alternativ einfach bei einer schon bestehenden Verbindung die externe IP-Adresse aus einem netstat heraus lesen
    image
    Anmerkung: Das hier ist eine Verbindung aus dem KabelBW Netz und nicht von 1&1!
  2. Ermittlung des vom Provider verwendeten IP-Ranges beim RIP
    image
  3. Ändern des Firewall Regel des SQL Servers wie folgt:
    image
    Damit auf den Datenbankserver noch aus dem lokalen Netzwerk zugegriffen werden kann muss unter Remote IP address am einfachsten das lokale Netzwerk selbst mit z.B. 192.168.1.0/24 hinzugefügt werden.

Wer hierzu noch Verbesserungsvorschläge hat – nur zu, wir lernen immer voneinander.

Update, 2014-11-04-01:
Der Vorschlag ließ nicht lange auf sich warten – klar man kann die Verbindung zur Datenbank noch zusätzlich verschlüsseln. Hier die Anleitung für einen Windows Server 2012 R2 Essentials in Verbindung mit SQL Server 2014 Express (geht auch auf dem “alten” Windows Server 2011 Small Business Essentials mit SQL Server 2008 R2 Express):

  1. Im SQL Server Configuration Manager unter Flags, Force Encryption auf Yes stellen
    image
  2. Unter Certificate muss dann noch das entsprechende zu verwendende Zertifikat ausgewählt werden
    image
  3. Damit die Einstellungen funktionieren, muss der SQL Server neu gestartet werden
  4. Schlägt der Neustart des SQL Servers fehl und wird dazu folgende Meldung im System Eventlog protokolliert, gibt es ein Problem mit den Rechten welche der Service Account zum Zugriff auf das Zertifikat benötigt:
    image
    Im Falle von SQL Server 2014 Express handelt es sich hier um
    NT System\MSSQLSERVER – ändert man diesen auf Local System oder einen entsprechend berechtigten Service Account welcher auf folgenden Pfad „C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys“ Zugriff hat, startet der SQL Server auch wieder
  5. und damit wäre (entgegen dem verlinkten MSDN Artikel) die Verbindung fertig konfiguriert, auf dem Client muss nichts gemacht werden

Eine Prüfung ob auch wirklich verschlüsselt gearbeitet wird, ist durch folgende Abfrage möglich:

Select protocol_type, encrypt_option from sys.dm_exec_connections

image

Zusätzlich natürlich auch mit WireShark oder Netmon – was aber einen extra Artikel wert wäre. Smile

Enjoy it, b!