• Virtual WiFi macht Windows 7 zum Access Point

    Wireless Local Area Networks (WLAN) erfreuen sich steigender Popularität. Fast jeder, den ich kenne, hat zu Hause einen WLAN-Router stehen und nutzt die Freiheit, mit dem Laptop auch auf dem Balkon im Internet surfen zu können.

    Ein WLAN kann dabei in zwei unterschiedlichen Modi betrieben werden: Mobile Geräte wie beispielsweise Notebooks können entweder direkt untereinander oder mit einem gemeinsamen Zugriffsknoten verbunden werden. Im ersten Fall spricht man von einem Adhoc-Netzwerk. Diese Variante sieht man aber recht selten, da darüber nur gemeinsam Daten ausgetauscht werden können und kein Internetzugriff hergestellt werden kann.

    Die zweite Variante mit einem gemeinsamen Zugriffsknoten nennt sich Infrastruktur-Netz. Sie wird am häufigsten in Verbindung mit einem drahtlosen Router eingesetzt, der die Verbindung zum Internet (beispielsweise über DSL) allen angeschlossen Clients gemeinsam zur Verfügung stellt.

    Bisher ist es so, dass eine drahtlose Netzwerkschnittstelle unter Windows nur in einem Modus betrieben werden kann. Entweder Adhoc- oder Infrastruktur-Netz. Weiterhin kann man mit nur einem drahtlosen Netzwerk pro WLAN-Karte zur gleichen Zeit verbunden sein. Bis Windows Vista sah die WiFi-Architektur so aus:

    Virtual-Wifi-1

    Seit 2002 arbeitete Microsoft Research unter dem Codenamen MultiNet an einer Virtualisierung der WiFi-Architektur. Die Ergebnisse wurden als Projekt VirtualWiFi der Öffentlichkeit vorgestellt und in mehreren Projekten eingesetzt:

    Entwickelt für Windows XP wurde es bisher über 100.000 mal heruntergeladen und an mehr als 400 Universitäten als Bestandteil des Mesh Academic Resource Toolkits weltweit verteilt.

    VirtualWiFi abstrahiert eine WLAN-Karte, so dass sie als virtueller Netzwerkadapter mehrfach im System erscheint. Jede virtuelle Karte kann dann vom Anwender separat konfiguriert werden und erlaubt damit die Verbindung zu unterschiedlichen drahtlosen Netzwerken zur gleichen Zeit über nur einen physikalischen Netzwerkadapter.

    Wofür kann man das nun gebrauchen? Zum Beispiel kann man gleichzeitig mehrere Rechner drahtlos vernetzen, um darüber spielen zu können und gleichzeitig einen der Rechner mit einem (kostenpflichtigen) Hotspot verbinden, über den dann alle Clients sich den Zugang teilen. Ein anderes Beispiel ist die Heimvernetzung, wenn das Funksignal des WiFi Access Points nicht bis in alle Ecken des Hauses reicht. Mit VirtualWiFi kann ein Computer nun gleichzeitig auch als Repeater arbeiten und die Funkabdeckung erhöhen.

    In Windows 7 griff Microsoft diese Technologie auf und baute sie direkt in das Betriebssystem ein. Im ersten Schritt wurde dafür die generelle WiFi-Architektur verändert, um die Virtual WiFi Infrastruktur zu integrieren:

    Virtual-Wifi-2

    Im nächsten Schritt kamen dann alle notwendigen Funktionen hinzu, um einen Software Access Point (SoftAP) abbilden zu können. Den größten Teil deckt dabei Microsoft ab. Die Hersteller müssen lediglich in ihren Netzwerktreibern SoftAP unterstützen. Zur weitreichenden Untertützung der neuen Technologie wurde die Unterstützung von SoftAP als Bedingung für die Erfüllung des Windows 7 Logotests für die Treiber drahtloser Netzwerkkarten gemacht:

    Virtual-Wifi-3

    In Windows 7 kann Virtual WiFi eine physikalische WLAN-Karte um eine zweite virtuelle Karte erweitern. Wir nennen das neue Feature Wireless Hosted Network – auf Deutsch gehostetes Netzwerk. In der MSDN finden Hersteller eine Dokumentation zur Implementierung von Virtual WiFi in einen 802.11 Miniport-Treiber:

    Die grundlegende Einrichtung, das Netzwerk und der Betrieb werden dabei über die folgende Funktionen gesteuert:

    Für Anwender sind diese Funktionen in Kommandos der Netshell eingeflossen. netsh wlan /? zeigt die grundlegende Bedienung:

    • netsh wlan start hostednetwork
      Startet das gehostete Netzwerk.
    • netsh wlan stop hostednetwork
      Stoppt das gehostete Netzwerk.
    • netsh wlan set hostednetwork [mode=]allowed|disallowed
      Aktiviert oder Deaktiviert das gehostete Netzwerk.
    • netsh wlan set hostednetwork [ssid=]<ssid> [key=]<passphrase> [keyUsage=]persistent|temporary
      Konfiguriert die Einstellungen für das gehostete Netzwerk. Es wird immer WPA2-PSK mit AES zur Verschlüsselung genutzt.
    • netsh wlan refresh hostednetwork [data=] key
      Aktualisiert den Schlüssel für das gehostete Netzwerk.
    • netsh wlan show hostednetwork [[setting=]security]
      Zeigt Informationen über das gehostete Netzwerk an.
    • netsh wlan show settings
      Zeigt die globalen WLAN-Netzwerkeinstellungen an.

    Wie verhält sich das nun in der Praxis? Man benötigt als erstes eine unterstützte Netzwerkkarte. Die mit Windows 7 ausgelieferten WLAN-Treiber unterstützen für fast alle Karten das gehostete Netzwerk. Ich habe es mit Karten von Atheros und Broadcom selbst getestet. Lediglich der Treiber von Intel beherrscht die notwendigen Erweiterungen bisher nicht. Es wird aber von Intel einen aktualisierten Treiber geben, den wir über Windows Update zur Verfügung stellen werden.

    Als nächstes öffnet man eine Eingabeaufforderung als Administrator und gibt folgendes in einer Zeile ein:

    netsh wlan set hostednetwork mode=allow ssid="Virtual WiFi" key="mh29-dyi9-txwt" keyUsage=persistent

    Die SSID und den Key passt man natürlich an die eigenen Wünsche an. Wenn man alles richtig eingegeben hat, bekommt man als Antwort:

    1. Der Modus für das gehostete Netzwerk ist so festgelegt, dass das gehostete Netzwerk zugelassen wird.
    2. Die SSID des gehosteten Netzwerks wurde erfolgreich geändert.
    3. Die Benutzerschlüsselpassphrase des gehosteten Netzwerks wurde erfolgreich geändert.

    Im Gerätemanager erscheint dann eine neue Netzwerkkarte:

    Virtual-WiFi-4

    Sie taucht als Drahtlosnetzwerkverbindung 2 im System auf:

    Virtual-WiFi-5

    Mit netsh wlan start hostednetwork startet man dann das gehostete Netzwerk. Windows 7 wird auf dem Host den neuen Adapter automatisch mit dem neuen Netzwerk verbinden…

    Virtual-WiFi-7

    …und den Anwender fragen, wie er das Netzwerk einstufen möchte. Ich habe im obigen Beispiel “Arbeitsplatznetzwerk” gewählt. Die Standardeinstellung lautet “Öffentliches Netzwerk”:

    Virtual-WiFi-6

    Informationen über den derzeitigen Status erhält man mit netsh wlan show hostednetwork:

    Einstellungen für das gehostete Netzwerk
    -----------------------
        Modus                   : Zugelassen
        SSID-Name              : "Virtual WiFi"
        Maximale Clientanzahl  : 100
        Authentifizierung         : WPA2-Personal
        Verschlüsselung                 : CCMP

    Status des gehosteten Netzwerks
    ---------------------
        Status                 : Gestartet
        BSSID                  : 00:21:00:ed:cb:7b
        Funktyp             : 802.11g
        Kanal                : 1
        Anzahl Clients      : 0

    Man sieht, dass das Netzwerk betriebsbereit ist und sich noch kein Client verbunden hat. Wenn man nun auf einem anderen Client das Netzwerkicon in der Taskleiste rechts unten klickt, erscheint das neue Netzwerk als ganz normales drahtloses Netzwerk und kann entsprechend verbunden werden:

    Virtual-WiFi-8

    Wenn man nun zum Beispiel sich in einen Hotspot eingebucht hat, kann man mit Hilfe des gehosteten Netzwerks ein zweites WLAN eröffnen, das nur für einen selbst zur Verfügung steht. Hier kann man dann weitere Laptops, Spielekonsolen, Musikplayer mit drahtlosem Internetzugang, Smartphones, etc. einbinden und die Internetverbindung über den Hotspot teilen. Mir erspart das zukünftig das Mitschleppen von einem WLAN-Router, wenn ich mal wieder unterwegs bin.

    Damit Mitglieder des gehosteten Netzwerks den Internetzugang gemeinsam nutzen können, muss lediglich in den Eigenschaften der Drahtlosnetzwerkverbindung, die mit dem Hotspot verbunden ist, die gemeinsame Nutzung der Internetverbindung aktiviert und die Drahtlosnetzwerkverbindung 2 als Heimnetzwerkverbindung festgelegt werden:

    Virtual-WiFi-10

    Man könnte darüber natürlich auch andere Arten von Internetzugängen drahtlos teilen. Das können drahtgebundene Zugänge über ein Ethernetkabel, als auch drahtlose Zugänge über UMTS sein, wenn sich die UMTS-Karte als Wählverbindung im System einrichten lässt. Windows 7 agiert dann wie ein Gateway zwischen den Netzen. Das gehostete Netzwerk wird dabei mittels NAT gegenüber Zugriffen aus dem äußeren Netz abgeschottet. Ein DHCP-Server wird durch die Konfiguration der gemeinsamen Nutzung der Internetverbindung automatisch gestartet und vergibt an die Clients IP-Adressen aus einem vordefinierten Segment.

    Zum Anhalten des gehosteten Netzwerks gibt man netsh wlan stop hostednetwork ein. Das gehostete Netzwerk wird dann beendet.

  • Net Send Ersatz

    In meinem Blogpost über Windows Vista Service Pack 2 schrieb mir computerdoctor einen Kommentar:

    Ich dachte es wird der Nachrichtendienst und net send mal wieder eingebaut. Solange es die nicht gibt und keine einfach handhabbare Alternative existiert, ist Vista in unserer  Firma nicht nutzbar und wir bleiben bei XP.

    Ich hatte mich nie wirklich mit net send beschäftigt. Früher einmal, zu Zeiten von Windows 98, machte ich mir einen Spaß daraus, dem Chef meiner damaligen Freundin damit eine Fehlermeldung des Systems zu simulieren, um ihn ein wenig zu erschrecken. Später las man viel über Spammer, die über diesen Mechanismus aus dem Internet Werbung auf Computern einblendeten, die bei der Einwahl keine Firewall aktiv und/oder die Datei- und Druckerfreigabe am Einwahlinterface aktiviert hatten. Ich schrieb zum ersten Mal 1998 über dieses Thema einen entsprechenden Kommentar in die Anleitung für den Windows NT-Zugang per Modem zum RRZ der Universität Hamburg.

    Aber zurück zum Thema. Der Nachrichtendienst kommt ganz gewiss nicht zurück mit Windows Vista SP2. Was kann man stattdessen nutzen? Am einfachsten ist es, msg.exe zu nutzen.

    image

    Darüber kann man einzelnen Benutzern auf dem jeweiligen Zielsystem ganz einfach direkt Nachrichten zusenden. Vom Einsatzzweck eigentlich für Terminalserverumgebungen gedacht, funktioniert das auch mit Windows XP, Windows Vista und sogar Windows 7. Einfach mal msg <Anmeldename> Dies ist ein Test! ausprobieren (<Anmeldename> durch den eigenen Namen, mit dem man an Windows angemeldet ist, ersetzen).

    image

  • Drucker auf Windows 7 64-bit im Netzwerk freigeben

    Drucker im Netzwerk zur gemeinsamen Nutzung zur Verfügung zu stellen ist nicht nur in Firmennetzwerken eine Standardaufgabe. In der Vergangenheit haben viele Anwender auch zu Hause einen Drucker zur gemeinsamen Nutzung konfiguriert. Während das bei Windows XP und Windows Vista ein mühsame und manuelle zu erledigende Aufgabe war, kann Windows 7 mit der neuen Heimnetzwerkfunktion angeschlossene Drucker mit einem Mausklick allen Mitgliedern der Heimnetzwerkgruppe zur Verfügung stellen.

    Möglicherweise hat man aber nicht nur Windows 7-Rechner zu Hause im Einsatz, sondern auch andere PCs oder Laptops mit Windows Vista, Windows XP oder sogar noch Windows 2000 am Laufen. Ich möchte jetzt nicht in die Details der Konfiguration eines gemeinsamen Netzwerks zwischen verschiedenen Windows-Versionen einsteigen – hier gibt es genügend Anleitungen, die beschreiben, wie man eine passende IP-Konfiguration zur Vernetzung einrichtet und Benutzerkonten mit gleichem Benutzernamen und gleichen Kennworten auf allen Rechnern anlegt.

    Ich möchte vielmehr aufzeigen, welche Fallstricke der Umstieg von 32-bit auf 64-bit haben kann. Den Stein ins Rollen brachte eine Kundenanfrage, die über mein Blog hereinkam:

    -----Original Message-----
    From: ***@***.de [mailto:***@***.de]
    Sent: Montag, 30. November 2009 14:12
    To: Daniel Melanchthon
    Subject: (.: Daniel Melanchthon :. ) : Win7/XP
    Importance: High

    Auf einem Rechner Win 7 pro 64 bit installiert. Dort ist auch der Drucker Canon pixma ip 4300 angeschlossen und im Netzwerk freigegeben.
    Zweiter Rechner mit BS Win XP pro.
    Ich kann den Drucker in der Abfrage sehen aber nicht intregieren. Treiber sind auf dem neuesten Stand. Das System will die Datei inf haben. Ist aber weder von der CD Canon noch anderswo zu beziehen.
    Keiner kann mir von den Herstellerfirmen helfen.

    Welches Problem tritt hier auf? Wen man einen Drucker auf einem Windows-Druckserver (was durchaus auch ein Windows-Client sein kann) einrichtet, werden automatisch die notwendigen Treiber für die Plattform installiert. Das ist bei Windows 7 x64 ein 64-bittiger Treiber. Wenn man nun von einem anderen Rechner aus den freigegebenen Drucker nutzen möchte, kann es passieren, dass der Treiber, den der Druckserver automatisch zur Verfügung stellt, nicht passt. In diesem Beispiel nutzt der Kunde Windows XP auf dem anderen Rechner und ich gehe stark davon aus, dass er die 32-bit-Version installiert hat.

    Was muss man nun tun? Man muss auf dem 64-bit-Rechner einen 32-bit Druckertreiber hinzufügen. Das gleiche Problem hat man übrigens auch andersherum, wenn man auf einen Drucker, der an einem Rechner mit 32-bit Windows eingerichtet ist, von einem 64-bit Windows aus über das Netzwerk zugreifen will. Hier muss man auf dem 32-bit-Rechner einen 64-bit Treiber nachinstallieren.

    clip_image001

    Das habe ich dem Kunden geantwortet. Die nächste Frage des Kunden kam daraufhin prompt und war nicht wirklich eine große Überraschung:

    Soweit wie unten beschrieben konnte ich voran kommen. Nur den Treiber. Dort wird dann mein CD Lw angezeigt. Nur auf der Canon-CD ist dann der passende Treiber nicht zu finden. Ich hatte zwar eine Exe-Datei von Canon heruntergeladen mit dem ein 32bit Treiber zusätzlich installiert werden kann. Nur ist das Verzeichnis nicht aufgeführt.
    Den habe ich über die Microsoftseite, die zwar zur Canonseite verzweigt, heruntergeladen.
     

    Was ist jetzt das Problem? Zur Treiberinstallation muss der Treiber in ausgepackter Form vorliegen. Dazu muss der Treiber sich über die INF-Datei installieren lassen. Wenn die Setupautoren des Treibers nur die Installation über ein Setupprogramm vorgesehen haben, läuft man hier in eine Sackgasse. Es gibt zwar auch Workarounds, mit denen man da wieder herauskommen kann (man legt den Drucker auf dem Zielrechner mit einem lokalen Anschluss an, der als Ziel den UNC Pfad des freigegeben Drucker hat), aber ich möchte an dieser Stelle den vorgesehenen, eleganten Weg zeigen.

    Als erstes sucht man das Druckermodell im Windows Update Katalog. Der Anfrage kann man gleich Stichworte für das gesuchte Modell mitgeben. So kann man zum Beispiel nach einem Canon PIXMA iP4300 mit folgender URL suchen:

    http://catalog.update.microsoft.com/v7/site/Search.aspx?q=ip4300

    Das Ergebnis ist dann eine Liste aller Treiber, die zu dem gesuchten Modell passen und in der Datenbank vorhanden sind:

    image

    In dieser Liste kann man jeden Eintrag anklicken. Es öffnet sich ein Fenster mit Informationen zu unterstützten Plattform (AMD64=64-bit, X86=32-bit), Sprachversionen, Windows-Versionen, etc. Mit dem Button “Add to Basket” kann man den Treiber der Auswahl hinzufügen:

    image

    Wir brauchen für dieses Beispiel die Treiber für beide Plattformen, also wählt man die aktuellsten Treiber (in diesem Beispiel die ersten zwei) aus und fügt sie dem Auswahlkorb hinzu. Über “View Basket” lässt man sich dann die Auswahl anzeigen…

    image

    … und startet das Herunterladen:

    image image

    In dem vorher ausgewählten Zielordner befindet sich dann ein Unterordner mit dem Namen des ausgewählten Modells. Darin liegen die Treiberdateien als CAB-Dateien verpackt:

    image

    Diese kann man in Windows 7 wie Unterordner darstellen, indem man einen Doppelklick auf eine CAB-Datei ausführt:

    image

    Aus der CAB-Datei extrahiert man nun mit Copy & Paste die enthaltenen Dateien und legt sie in einen Ordner pro CAB-Datei ab. In meinem Beispiel habe ich zwei Ordner mit den Namen AMD64 und X86 verwendet und in diese Ordner die Dateien aus den jeweiligen CAB-Dateien hineinkopiert.

    Als nächstes installiert man den Drucker auf dem Windows 7-PC, an dem der Drucker angeschlossen ist:

    image image

    Bei der Treiberauswählt wählt man jetzt kein Modell aus der Liste (oder über Windows Update), sondern klickt auf den Button mit der Beschriftung “Datenträger…”:

    image

    Jetzt navigiert man zu dem Zielordner, in dem sich die ausgepackten Treiberdateien befinden und wählt die INF-Datei an. In diesem Beispiel wird ein Canon PIXMA iP4300 Drucker auf einem 64-bit Windows 7 installiert. Also ist der AMD64-Ordner der richtige:

    image image image image image image

    Nun ist der Drucker lokal angeschlossen unter Windows 7 einsatzbereit. Die korrekte Funktion kann man mit dem Drucken einer Testseite überprüfen. Im nächsten Schritt fügen wir jetzt den notwendigen 32-bit-Treiber hinzu. Dazu öffnet man über “Geräte und Drucker” die Eigenschaftenseite des installierten Canon-Druckers und wählt die Druckereigenschaften aus:

    image

    Auf dem Freigabereiter gibt es rechts unten die Option, über die man zusätzliche Treiber einfügen kann:

    image

    Hier besteht jetzt die Möglichkeit, Treiber für andere, unterstützte Plattformen hinzufügen, in dem man für unser Beispiel den Haken unter x86 setzt. Man beachte die Spalte “Installiert” – der x86-Treiber ist noch nicht eingerichtet:

    image

    Es folgt wieder die Auswahl des Zielordners. Jetzt navigiert man in den X86-Ordner und wählt die dortige INF-Datei aus:

    image

    Nachdem man die Auswahl mit “Öffnen” tätigt und die anderen Dialoge mit OK bestätigt, wird der notwendige Treiber installiert und steht ab sofort im Netzwerk zur Verfügung. Wenn man nochmal nachschaut, wird das auch in der Spalte “Installiert” reflektiert:

    image

    Damit kann man nun auf den Drucker von 32- und 64-bit Windows-Versionen drucken. Das ganze Verfahren könnte man nun auch mit Windows XP-Druckertreibern (falls die Windows Vista-Druckertreiber auf XP nicht funktionieren) durchführen oder auch mit Treibern, die der Hersteller direkt zur Verfügung stellt. Hier muss nur jeweils sichergestellt sein, dass die 32-bit und 64-bit Treiber exakt zueinander passen und als INF-Datei zur INF-Installation zur Verfügung stehen.

    Das ist leider nicht bei allen Treiberdateien der Fall. Deswegen habe ich in diesem Beispiel auf den Windows Update Katalog zurückgegriffen. Treiber, die wir über Windows Update zur Verfügung stellen, sind von uns geprüft worden und müssen zum Beispiel die INF-Installation unterstützen.

  • HowTo: Product Key auslesen

    Gastbeitrag von Georg Binder, selbständiger IT-Dienstleister und Autor von windowsblog.at.

    Ergänzend zu dem Artikel noch ein weiteres Programm, das den verwendeten Schlüssel wieder auslesen kann. Es dekodiert den in der Registry gespeicherten Wert, im Falle von Windows unter HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion den Wert DigitalProductId.

    Hier mein Christian völlig richtig: da braucht es doch kein eigenes Programm, wenn man doch die PowerShell hat: Windows Product Key per Powershell auslesen  Ähm, ja… aber ein wenig bequemer ist es schon mit ProduKey.

    ProduKey kann (im Gegensatz zu dem im anderen Artikel geposteten Programm) auch den 2010er Schlüssel auslesen:

    RecoverOffice2010Productkey

    Quelle: http://www.intowindows.com/how-to-recover-office-2010-product-key/

  • Windows 7-Installation vom USB-Stick

    Windows 7 kann man auf verschiedenen Arten und Weise installieren. Die Teilnehmer der PDC bekamen jeweils DVDs für Windows 7 (32- und 64-bit) sowie Windows Server 2008 (x64) sowie eine Festplatte mit ISO-Images und jede Menge weiterem Material. natürlich kann man zum Installieren einfach die DVD einlegen - mein Lenove X61 Tablet PC hat aber kein integriertes Laufwerk. Das befindet sich in der Dockingstation und die im Hotel und der nächste Shuttlebus geht... Egal - man kann viel einfacher Windows von einem USB-Stick aus installieren.

    Was braucht man dazu? Einen Stick mit einer möglichst hoher Leserate. So ab 20 MB/s bis 35 MB/s macht es richtig Spaß. Zuerst benutzt man diskpart.exe, um den Stick vorzubereiten. Achtung: Dabei geht der komplette Inhalt verloren:

    1 2 3

    In diskpart.exe wählt man die richtige Disk und darauf die Partition aus, formatiert sie mit FAT32 und setzt sie auf den Status Aktiv. Nun muss man nur noch die ISO-Datei auf den Stick entpacken. Das geht zum Beispiel mit der Software 7-Zip. Danach den Stick einstecken, im BIOS die USB-Unterstützung während der Bootphase aktivieren und dann den USB-Stick als Bootlaufwerk auswählen.

    Die Installation geht dann um ein Vielfaches schneller als über die DVD, weil der USB-Stick nahezu keine Latenz und eine viel höhere Datentransferrate hat. Auf diesem Weg lassen sich auch Windows Vista und Windows Server 2008 installieren, solange der Computer das Booten von USB-Sticks unterstützt. Ich habe das bisher mit Lenovos X61 & T61p, Toshiba R500, Maxdata 6100IW, HP nc8430 und Fujitsu Siemens Celsius H240 genutzt.

    Update am 30.09.2009

    Wer diskpart.exe unter Windows XP nutzt, muss eventuell noch den Bootsektor auf den Stick schreiben:

    <CD-Laufwerk>:\boot\bootsect.exe /nt60 <USB-Stick>:

    Vielen Dank an den Leser Thorsten Albrecht für den netten Hinweis!