Fehlermeldung von Windows Fax und Scan wegen fehlendem Faxkonto bei Druck über Faxserver

26 November 2014

Bekommt man an einem Windows Client beim Druck über einen Faxserver folgende Fehlermeldung an den Latz geknallt:

—————————

Windows-Fax und -Scan

—————————

Sie müssen erst ein Faxkonto erstellen, um Faxe mit dem ausgewählten Drucker senden zu können. Suchen Sie nach "Computer zum Senden und Empfangen von Faxen einrichten" in Hilfe und Support", um weitere Informationen zu erhalten.

—————————

OK  

—————————

 

So kann man sich behelfen, indem man zunächst bei Windows Fax und Scan im Menü unter Extras->Faxkonten den bestehenden Eintrag entfernt. Anschließend das Programm zumachen und noch bei Drucker und Faxgeräten den betreffenden Druckertreiber, der fürs Faxen über den Server eingerichtet war, über “Gerät entfernen” loswerden.

 

Nun wieder über Windows Fax und Scan über das Extra-Menü Faxkonten aufrufen, Hinzufügen anklicken und “Verbindung mit einem Faxserver im Netzwerk herstellen” auswählen. Dann den Servernamen eingeben usw. Danach sollte es ohne obige Fehlermeldung klappen.

Windows Azure Pack Ressourcen

23 November 2014

Die wohl umfassendste Seite zum Thema Windows Azure Pack, es wird kein Thema ausgelassen. Dadurch ist es generell eine der umfassendsten Seite zu Microsoft Azure Themen.

http://social.technet.microsoft.com/wiki/contents/articles/20689.the-windows-azure-pack-wiki-wapack.aspx

Fehlende Cmdlets in Powershell durch Polyfills nachbilden

17 November 2014

In der HTML5-Welt sind Polyfills ein fester Begriff. Es geht um das Nachrüsten von Funktionen, die in bestimmten Browsern nicht vorhanden sind. Die Definition stammt von Remy Sharp einer der Größen in der HTML5/Javascript-Welt https://remysharp.com/2010/10/08/what-is-a-polyfill.

Was hat das mit Powershell zu tun? Auch in Powershell haben wir das Problem, dass Microsoft es wegen Menpowerproblemen oder strategischen Gründen nicht geschafft hat, Cmdlets aus Windows 8 zurückzuportieren für Windows 7. Ein Beispiel ist Rename-Printer. http://technet.microsoft.com/en-us/library/hh918360.aspx. Oder ein neues kommendes Cmdlet ist Expand-Archive aus Windows 10, welches sicher auch auf alten Windows Versionen benötigt wird.

Polyfills, sogenannte Drop-in Polyfills, wie im Buch “Building Polyfills” von Brandon Satrom definiert, prüfen, ob eine bestimmte Funktion vorhanden ist, wenn diese fehlt, wird diese nachimplementiert. Ist die Funktion bereits vorhanden, so wird die bestehende native Funktion verwendet. In Powershell kann man genau dieses verhalten nachbilden.

Zunächst muss man herausfinden, ob ein bestimmtes Cmdlet verfügbar ist. Zunächst sollte dazu das zugehörige Modul geladen werden. Als zweites sollte dann mittels Get-Command abgefragt werden, ob das betreffende Cmdlet vorhanden ist.

Die Prüfung, ob Rename-Printer vorhanden ist, sieht z. B. so aus:

if (-not (Get-Command Rename-Printer -ErrorAction SilentlyContinue))
{
       # Rename-Printer ist nicht vorhanden
}

Wichtig dabei ist der Parameter –ErrorAction SilentlyContinue, der dafür sorgt, dass wenn das Cmdlet nicht vorhanden ist, keine Fehlermeldung erscheint.

Wie könnte nun ein konkreter Nachbau von Rename-Printer aussehen? Früher hatte man so etwas über WMI gelöst, demzufolge kommen diese Zeilen dem Ziele nahe:

$Filter = "Name=’$($Name)’"
$prn = Get-WMIObject Win32_Printer -Filter $Filter
$res = $prn.RenamePrinter($NewName)
#res.ReturnValue -eq 5 wenn Access Denied, bei 0 OK

Nun möchte man ja aber im Skript konkret das Cmdlet Rename-Printer nutzen, ohne jedesmal per if-Abfrage in Erfahrung zu bringen, ob das Cmdlet vorhanden ist oder ob die alternative Implementierung aufgerufen werden soll. Dazu definiert man in einem Scriptblock das fehlende Cmdlet und führt diesen über den & Call-Operator aus.

$polyfill = {Function Rename-Printer() {"Ersatz für Rename-Printer"}}
&  $polyfill

Wenn man nun unter Windows 7 versucht diesen Aufruf auszuführen passiert nichts, denn Rename-Printer wird nicht gefunden, da die definierte Funktion nur in einem reduzierten Scope zu sehen ist. Um dieses Problem zu lösen, verwendet man explizit den globalen Scope:

$polyfill = {Function Global:Rename-Printer() {"Ersatz für Rename-Printer"}}
&  $polyfill

Nach diesem Aufruf steht nun Rename-Printer zur Verfügung.

Nun gilt es nur noch obige Dinge zu kombinieren, dann erhält man folgendes Cmdlet Polyfill für Powershell um z. B. Rename-Printer nachzubauen:

# Rename-Printer geht nur unter Win8 oder höher, benötigt Admin-Rechte

if (-not (Get-Command Rename-Printer -ErrorAction SilentlyContinue)) {

# damit die Function verfügbar wird, muss sie mittels & ausgeführt werden und mit dem Scope global: versehen werden

&{

Function global:Rename-Printer ($Name, $NewName) {

$Filter = "Name=’$($Name)’"

# anstatt Name doch DeviceID?

$prn = Get-WMIObject Win32_Printer -Filter $Filter

$renres = $prn.RenamePrinter($NewName)

# renres.ReturnValue == 5 wenn Access Denied, bei 0 erfolgreich

}

}

}

Als Template kann man dieses Skelett sehen:

if (-not (Get-Command CmdletName -ErrorAction SilentlyContinue)) {
  &{ Function global:CmdletName ($Parameter) {
             # CmdletName – Nachbau
        }
    }
}

Durch Powershell Polyfills erreicht man bessere und schönere Skripte, da nur zu Beginn notwendige evtl. nicht vorhandene Cmdlets nachgebaut werden müssen. Ein Skript, welches unter Windows 8 läuft, kann somit ohne umschreiben auch direkt auf Windows 7 laufen. Selbst wenn später ein Update doch noch die Unterstützung für das betreffende Cmdlet auf Windows 7 bringen sollte, so wird automatische das dann nativ zur Verfügung stehende Cmdlet verwendet.

VirtualBox Probleme mit 64-Bit Gast und das Ding mit dem Client-Hyper-V

31 Oktober 2014

Als bekennender Hyper-Vler bin ich über ein Problem gestoßen. Es ging darum eine virtuelle Maschine zu haben, über die man problemlos auf den USB Port losgehen kann. Leider ist da Hyper-V auch in aktuellen Ausprägungen nicht so der Bringer. Also nimmt man einen anderen VM-Host, wie in diesem Fall VirtualBox von Oracle: https://www.virtualbox.org/.

Nach der Installation war es aber nicht möglich ein 64-Bit Gastsystem aufzusetzen. Nach dem üblichen Überprüfen der BIOS-Einstellungen, damit auch die nötigen Virtualisierungseinstellungen aktiv waren, funktionierte es immer noch nicht. Dann diesen Artikel gelesen: https://forums.virtualbox.org/viewtopic.php?f=1&t=62339. Aha Hyper-V! Aber der läuft doch gar nicht!?!?

PS C:\Windows\system32> Get-Service -DisplayName *hyper*

Status   Name               DisplayName
——   —-               ———–
Stopped  vmicguestinterface Hyper-V-Gastdienstschnittstelle
Stopped  vmicheartbeat      Hyper-V-Taktdienst
Stopped  vmickvpexchange    Hyper-V-Datenaustauschdienst
Stopped  vmicrdv            Hyper-V-Remotedesktopvirtualisierun…
Stopped  vmicshutdown       Hyper-V-Dienst zum Herunterfahren d…
Stopped  vmictimesync       Hyper-V-Dienst für Zeitsynchronisie…
Stopped  vmicvss            Hyper-V-Volumeschattenkopie-Anforderer
Stopped  vmms               Hyper-V-Verwaltung für virtuelle Co…

PS C:\Windows\system32>

Dann Hirn eingeschaltet und an BCDEdit erinnert, dass es dort zig Einstellmöglichkeiten zum Hyper-V gibt. http://msdn.microsoft.com/en-us/library/windows/hardware/ff542202(v=vs.85).aspx.

OK, dann mal nachgeschaut:

bcdedit /enum

Dabei wurde folgendes ausgegeben:

Windows-Startladeprogramm
————————-
Bezeichner              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 8.1
locale                  de-DE
inherit                 {bootloadersettings}
recoverysequence        {4b6f8314-5573-15e4-b299-de2a5ae3ac48}
integrityservices       Enable
recoveryenabled         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {4b6f8312-5575-15e4-b299-de2a5ae3ac48}
nx                      OptIn
bootmenupolicy          Standard
hypervisorlaunchtype    Auto

Ja alles klar. HypervisorLaunchtype steht auf Auto und sollte entweder nicht da sein oder auf Off stehen.

Hier wird beschrieben wie man einen weiteren Eintrag im Bootmenü generieren kann: http://www.hanselman.com/blog/SwitchEasilyBetweenVirtualBoxAndHyperVWithABCDEditBootEntryInWindows81.aspx

Dadurch kann man beim Rechnerstart auswählen, ob der Hyper-V Hypervisor aktiviert werden sein soll oder nicht.

Entscheidend dabei sind:

C:\>bcdedit /copy {current} /d "No Hyper-V" 
The entry was successfully copied to {ff-23-113-824e-5c5144ea}.

C:\>bcdedit /set {ff-23-113-824e-5c5144ea} hypervisorlaunchtype off
The operation completed successfully.
Dadurch wird ein weiterer Eintrag ins Bootmenü geschrieben. Die GUID
ff-23-113-824e-5c5144ea sieht aber bei jedem anders aus. Es stellt nur
eine eindeutige Kennung dar.

Da aktuelle Rechner recht schnell beim Booten sind, hilft ein weiterer BCDEdit Befehl in Zukunft den richtigen Eintrag beim Start automatisch auszuwählen:

bcdedit.exe /bootsequence {ff-23-113-824e-5c5144ea}


shutdown.exe /r /t 0 /f

Damit wird der Rechner mit dem neuen Bootmenüeintrag gestartet.

Man könnte dies nun über Powershell automatisieren aber der BCD WMI Provider hat so scheinbar seine Tücken: https://social.technet.microsoft.com/Forums/scriptcenter/en-US/18094085-781f-4649-8ff8-331388097911/how-to-get-boot-configuration-data-bcd-information-out-of-wmi-with-powershell?forum=ITCG

Sich schnell über die Zuverlässigkeit eines Rechners informieren mittels des Verlauf der Zuverlässigkeitsüberwachung

23 Oktober 2014

Seit Windows Vista bereits gibt es die Zuverlässigkeitsüberwachung. Für Commandliner kann der Status so aufgerufen werden:

control  /name "Microsoft.ActionCenter" /page pageReliabilityView

Hier ein Beispielbild was angezeigt werden könnte:

image

Interessant dabei sind die roten umkreisten X-Eintragungen. Diese sind auf unterschiedlichen Ebenen. Doch was hat die jeweilige Ebene für eine Bedeutung?

Die oberste Ebene stellt Probleme mit Anwendungen dar. D. h. jedes mal wenn eine Anwendung abstürzt und nicht regulär beendet wird, erfolgt dort ein Eintrag.

Die Ebene darunter stellt Probleme von Windowskomponenten dar, wie z. B. Bluescreens.

Die nächste Ebene darunter stellt ganz einfach dar, wenn Windows einfach abgeschaltet wurde. D. h. Strom weg oder den Ausschalter länger als 4 Sekunden gedrückt.

Zusammenfassend gilt:

Ebene Symbol Bereich
1 Kritisch Anwendungsprobleme
2 Kritisch Windowsprobleme (Bluescreen, Treiber etc.)
3 Kritisch Stromausfall oder Freeze
4 Warnung Warnungen z. B. über fehlgeschlagene Updates
5 Info Informationen z. B. erfolgreiche Updates

Übrigens kann man auf die Zuverlässigkeitsdaten auch per Powershell und WMI zugreifen: http://newyear2006.wordpress.com/2009/12/14/powershell-windows-7-zuverlssigkeitsabfrage-grafisch-dargestellt/

Festplatten löschen (wipen) mit Windows Bordmitteln

23 Oktober 2014

Unglaublich was man manchmal für Entdeckungen macht und sich wundert, warum man davon noch nie gehört hat. Per Zufall bin ich heute über Cipher.EXE gestolpert. Hatte ich zuvor noch nie gehört. Wenn man die Hilfe von Cipher.EXE anschaut, dann wird schnell klar, dass es für die Verschlüsselung von Dateien und Verzeichnissen zuständig ist.

Aber dann taucht da auch der Parameter /W für Wipe auf:

    /W       

Entfernt Daten aus verfügbarem, nicht verwendetem Speicherplatz auf dem Volume. Alle anderen Optionen werden ignoriert, wenn diese Option ausgewählt wird. Das angegebene Verzeichnis kann sich an einer beliebigen Position auf dem lokalen Volume befinden. Wenn es sich um einen Bereitstellungspunkt oder einen Verweis auf ein Verzeichnis auf einem anderen Volume handelt, werden die Daten auf diesem Volume entfernt.

Es agiert also nicht wie Sdelete von Sysinternals und überschreibt bestehende Dateien, sondern überschreibt den freien Speicherbereich eines Volume.

Wenn man nun eine Festplatte mittels DISKPART Befehl CLEAN löscht, dann eine Partition darauf einrichtet, dann kann man mittels CIPHER /W die Festplatte komplett löschen.

Spannend wird die Sache in Verbindung mit WinPE. Schade das WinPE, WinRE und die Windows-Bootmedien keine direkte Unterstützung für CIPHER.EXE haben. Aber oft hat man ja sowieso irgendwo ein Windows bzw. auf der zu löschenden Platte ein vorhandenes Windows.

Man muss also einfach nur CIPHER.EXE von der lokalen Windows-Installation kopieren. Dabei ist allerdings zu beachten, ob die WinPE-Umgebung 32-Bit oder 64-Bit unterstützt. Je nachdem verwendet man dann C:\Windows\System32\cipher.exe oder C:\Windows\SysWOW64\cipher.exe. Wenn die Cipher.EXE von dem Laufwerk kommt, welches gelöscht werden soll, kopiert man es auf das RAM-Laufwerk X: und startet es von dort aus.

Ach noch was: Man könnte auch den CLEAN Befehl mit dem Parameter ALL bei DISKPART verwenden, dann würde auch alles mit 0x00 überschrieben. Warum sollte man dann CIPHER.EXE verwenden? CIPHER.EXE geht beim Überschreiben anders vor, es überschreibt in drei Durchgängen. Zuerst wird alles mit 0x00 dann mit 0xFF und am Schluss mit Zufallswerten überschrieben. Dies ist auch der Grund, warum CIPHER.EXE nachgesagt wird, es wäre langsam.

http://blogs.technet.com/b/chad/archive/2012/08/16/tip-53-wipe-your-hard-drive-without-any-extra-programs.aspx

Und noch was: Bei SSDs gibt es nicht die sichere Möglichkeit wirklich alles zu löschen. In diesem Fall sollte man schauen, ob die betreffende SSD eine interne AES-Verschlüsselung bietet und ob man dort den zugehörigen Key löschen kann.

Geblockte Dateien von Downloads zulassen

7 Oktober 2014

Wenn man Dateien unter Windows aus dem Internet lädt, werden diese mit dem sogenannten Zone.Identifier in einem Alternate-Data-Stream erweitert. Ist der Zone.Identifier vorhanden und ein Eintrag unter der Sektion [ZoneTransfer] mit ZoneID=3 gesetzt, reagieren viele Windows Programme anders. Bei EXE-Dateien erscheint immer zusätzlich eine Rückfrage, ob die Datei geöffnet werden soll.

Im Explorer lässt sich die Information entfernen, wenn man die Eigenschaften der Datei mittels Rechtsklick öffnet und Zulassen anklickt.

In der Eingabeaufforderung wird die Sache etwas schwieriger. Es sei denn man hat Powershell 3.0 oder höher. Dort gibt es den Befehl Unblock-File.  http://technet.microsoft.com/en-us/library/hh849924.aspx

Wer das Problem hat, nur Powershell 2.0 zur Verfügung zu haben, der wird sich über diese Powershell-Funktion freuen: http://andyarismendi.blogspot.de/2012/02/unblocking-files-with-powershell.html.

Allgemein zum Thema: http://stackoverflow.com/questions/1617509/unblock-a-file-with-powershell. Weitere Möglichkeiten: http://www.robvanderwoude.com/amb_filestreams.php

Von Sysinternals gäb es auch noch was: Streams: http://technet.microsoft.com/en-us/sysinternals/bb897440.aspx

Protokoll zu Alternate Data Streams: http://msdn.microsoft.com/en-us/library/dd433166.aspx

Windows 10 und die wirklichen Neuerungen

7 Oktober 2014

Gerade wird viel über Windows 10 geschrieben. Das meiste hält sich jedoch an Banalitäten wie dem nun wieder verfügbaren Startmenü auf. Das Highlight ist natürlich die Möglichkeit in der Eingabeaufforderung nun mittels STRG+V etwas aus der Zwischenablage einzufügen (http://blogs.msdn.com/b/winsdk/archive/2014/10/02/windows-10-threshold-changes-to-the-windows-command-prompt.aspx). Aber ganz ehrlich? Das geht jetzt auch bereits, man muss nur die Powershell ISE verwenden!

Also alles für die Katz? Wenn man sich die richtigen Dokumente anschaut, dann kann man doch sehen, wo im Unterbau tatsächlich gearbeitet wurde.

Zuvorderst ist dabei Powershell 5.0 zu nennen, aber das gibt es ja auch so mit dem Management Framework 5.0 Preview bereits für Windows 8.1 und Server 2012 R2. Die Highlights dabei natürlich DSC und OneGet bzw. PowershellGet.

Wer etwas tiefer schaut, wird dann dieses Dokument mit Namen “Open Specifications Preview Specifications” entdecken: http://www.microsoft.com/en-us/download/details.aspx?id=9101. Hier sind alle internen Protokoll-Änderungen dokumentiert, welche für das neue Windows 10 angedacht sind. Wenn man aber die Dokumente so durchschaut, findet sich nicht eine Architekturänderung sondern überwiegend Nuancen und Verfeinerungen. Im Active Directory z. B.  um Mobile Geräte mit verwalten zu können, eine kleine Erweiterung der Firewall, eine Erweiterung für Miracast um den Cursor schneller darzustellen usw.

Für den neuen Windows Server findet man die Änderungen im Klartext hier beschrieben: http://technet.microsoft.com/en-us/library/dn765472.aspx

Rechtfertigt dies nun den Ausspruch von Terry Myerson, Windows 9 wäre nicht passend weil sich soviel geändert hat? Wohl kaum, es ist vielmehr mal wieder Marketinggeschwafel. Der Grund für 10 ist sicher dieser: http://www.heise.de/newsticker/meldung/Diskussion-ums-neue-Windows-Warum-nicht-9-2411563.html

Oder werden sie bei den kommenden Konsumerversionen erst den Schleier lüften? Vielleicht indem Sie Android Apps direkt unterstützen? Ach nein, geht ja nicht mehr, Google war schon cleverer: http://www.heise.de/newsticker/meldung/Android-Apps-laufen-im-Chrome-Browser-2411092.html.

OK, für Gamer kommt wahrscheinlich DirectX 12: http://blogs.msdn.com/b/directx/archive/2014/10/01/directx-12-and-windows-10.aspx

Im IE haben sie klammheimlich die Unterstützung für HTTP2 implementiert: http://blogs.msdn.com/b/ie/archive/2014/10/01/internet-explorer-and-the-windows-10-technical-preview.aspx.

Alles zusammen aber doch eher ein überschaubares Update und nicht ein revolutionäres Windows 10, was den Versionssprung rechtfertigen könnte.

Drucker mittels Powershell in Windows 8.1 kopieren

30 September 2014

Leider gibt es seit Jahren unter Windows keine einfache Möglichkeit einen Drucker zu kopieren. Gemeint sind die Drucker die nach Aufruf von

Control Printers

angezeigt werden.

Dank Powershell ist dies nun unter Windows 8.1 mit den Drucker-Cmdlets  sehr einfach möglich.

Man ruft einfach

Get-Printer | Out-GridView -Title "Quelldrucker auswählen" -PassThru | foreach {Add-Printer -DriverName $_.DriverName -Name "$($_.Name) Kopie" -PortName $_.PortName}

auf und bekommt eine Auswahl der installierten Drucker angezeigt, kann den gewünschten auswählen und klickt auf OK. Man bekommt den neuen Drucker mit dem Namen des alten und dem Anhängsel Kopie angelegt.

Wie immer gibt es aber eine Ausnahme: Leider funktioniert obige Methode nicht bei Druckern die von einem anderen Rechner kommen, die also über die Variante \\Server\Freigabe angesprochen werden. Wird solch ein Drucker versucht zu kopieren, erscheint diese Fehlermeldung:

Add-Printer : Der angegebene Anschluss ist nicht vorhanden. Verwenden Sie "add-printerport", um einen neuen Anschluss hinzuzufügen, oder geben Sie einen vorhandenen
Anschluss an.
In Zeile:1 Zeichen:81
+ Get-Printer | Out-GridView -Title "Quelldrucker auswählen" -PassThru | foreach { …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (MSFT_Printer:ROOT/StandardCimv2/MSFT_Printer) [Add-Printer], CimException
    + FullyQualifiedErrorId : HRESULT 0x80070704,Add-Printer

Wenn man man einen Drucker kopiert hat, fällt auf, dass dieser nicht unbedingt direkt zu sehen ist. In diesem Fall ist dieser Artikel interessant: http://newyear2006.wordpress.com/2014/07/09/gruppierung-bei-windows-druckern-aufheben/

Leider werden bei obiger Methode noch nicht die Einstellungen des zu kopierenden Druckers mitübertragen. D. h. die Kopie des Druckers hat immer die Standardeinstellungen, wie nach einer Neuinstallation des Druckertreibers. Dazu aber ein anderes Mal mehr…

SBS2003 Server machte nach Internetproviderumstellung Probleme mit DNS-Namensauflösungsanfragen

2 August 2014

Nachdem bei einem Kunden der Internetprovider gewechselt wurde, kam es zu massiven Problemen bei den Clientrechnern. Bei Zugriffen, vor allem auf kompliziertere oder mittels HTTPS verschlüsselten Seiten wie bahn.de, ebay.de, mobile.de usw. gab es teilweise ewige Verzögerungen und am Ende sogar Timeouts, so dass die Seiten nicht korrekt dargestellt wurden.

Der SBS hat bekanntlich noch zwei Netzwerkkarten. Davon wird eine für den lokalen Netzwerkverkehr verwendet und die zweite ist das Gateway nach außen. Der neue Internetprovider hatte ein Gerät installiert, wo ein anderer IP-Adressbereich hinterlegt war. Demzufolge musste beim SBS in den Netzwerkkarteneinstellungen die neue IP-Adresse für die Kommunikation mit dem externen Router hinterlegt werden. Damit fingen die Probleme an.

Am SBS-Server war ein gewohnt schneller Zugriff auf alle Seiten möglich. Allerdings war auf den Clientrechnern eben obige Aussetzer zu beobachten. Auch ein Test mit Googles-DNS-Server-Adresse 8.8.8.8 auf dem Client brachte die übliche Geschwindigkeit. Was tun? Zunächst mittels Ping und NSlookUp versucht der Sache auf die schliche zu kommen. Nach vielen Tests und einigem hin- und her hatte es sich herausgestellt, dass am SBS noch ein DNS-Forward eingestellt werden sollte.

Mittels

dnscmd /info

kann man verschiedene Infos zum DNS abfragen:


  Aging Configuration:
        ScavengingInterval           = 0
        DefaultAgingState            = 0
        DefaultRefreshInterval       = 168
        DefaultNoRefreshInterval     = 168
  ServerAddresses:
Addr Count = 2
                Addr[0] => 192.168.60.1
                Addr[1] => 192.168.10.2
  ListenAddresses:
Addr Count = 1
                Addr[0] => 192.168.60.1
  Forwarders:
Addr Count = 1
                Addr[0] => 192.168.1.1
        forward timeout  = 5
        slave            = 0
Command completed successfully.

Hier sieht man sehr schön, dass zwar die IP-Adresse der zweiten Netzwerkkarte Addr[1] passend zum neuen Router gesetzt wurde aber die Adresse Addr[0] des Forwarders noch auf den alten IP-Bereich eingestellt ist. Wichtig dabei ist nun auch der Timeout=5, was 5 Sekunden entspricht.

Wenn man es weiß, ist nun die Sache schnell erledigt:

dnscmd . /ResetForwarders 192.168.10.1 /TimeOut 5 /Slave

Damit wurde Addr[0] des Forwarders auf die korrekte Adresse.

Interessant an der Geschichte ist vor allem, dass Seiten mit Subdomains massive Probleme bekamen. Ist irgendwie logisch denn für jede Subdomainanfrage kam der Timeout mit 5 Sekunden zu tragen.

So führte ein einfacher Aufruf von ebay.de und das klicken auf Einloggen zu zig Domainabfragen, hier einige davon:

www.ebay.de
secureir.ebaystatic.com
ir.ebaystatic.com
securepics.ebaystatic.com
srx.de.ebayrtm.com
cors.api.paypal.com
thumbs2.ebaystatic.com
thumbs3.ebaystatic.com
thumbs4.ebaystatic.com
p.ebaystatic.com
www.paypalobjects.com
b.stats.ebay.com
314797b0qxk.stats.ebay.com
signin.ebay.de
phx.stats.paypal.com
src.ebay-us.com
sofe.ebay.de
rover.ebay.de
rtm.ebaystatic.com
pics.ebaystatic.com
secureir.ebaystatic.com
pages.ebay.de
i.ebayimg.com

Was für eine Auflistung! Über 20 DNS-Abfragen werden benötigt um die Start- und dann die Loginseite aufzurufen. Pech, wenn man sowas unterwegs in einem Edge- oder noch besser GPRS-Handynetz macht, wo jede Anfrage ca. 200 Millisekunden und mehr dauert…


Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.