Archive for Oktober 2014

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: https://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.