Archive for the ‘Problemlöser’ Category

Powershell und das Datum bei länderspezifischen Einstellungen

29 September 2018

Die ganzen Datumsfunktionen von Powershell beruhen auf .Net Funktionen. Eigentlich sollte länderspezifische Formatierungen heutzutage keine Rolle mehr spielen, aber je nachdem welche Vorgehensweise man wählt, kann einem das Thema auf die Füße fallen und einen staunend zurück lassen. Ich will hier nicht auf die Details eingehen, das haben schon andere gemacht. Ich möchte nur eine einfache Variante zeigen, mit der man sich helfen kann aus dem Dilemma rauszukommen.

Fangen wir konkret an. Gegeben sei ein beliebiges Datum

$d = Get-Date

Gibt man nun $d aus erscheint dieses

Samstag, 29. September 2018 11:11:01

alles in der korrekte Form, da Get-Culture

LCID             Name             DisplayName
—-             —-             ———–
1031             de-DE            Deutsch (Deutschland)

liefert. Soweit so gut.

Blöd wird es nur, wenn man die Variable $d ausgeben möchte und zwar nicht in der direkten sondern indirekten Form:

$d

Samstag, 29. September 2018 11:11:01

"$d"
09/29/2018 11:11:01

Wie aus heiterem Himmel wird das amerikanische Datumsformat verwendet, genauer gesagt die Culture-Invariant-Form.

Wie lässt sich das Dilemma lösen? Es gibt zwei Möglichkeiten. Eigentlich drei, aber die Dritte Möglichkeit manuell “yyMMdd” usw. anzugeben ist am wenigsten praktikabel, weil man sich da unnötige Abhängigkeiten schafft. Nun zu den zwei Varianten.

Entweder man gibt am Anfang bereits ein Format mit:

$d=get-date -format "G"
$d
29.09.2018 11:11:01
"$d"
29.09.2018 11:11:01

oder man gibt das Format bei der Ausgabe durch Umwandlung bei ToString() mit:

$d=get-date
$d
Samstag, 29. September 2018 11:11:01
"$($d.ToString("G"))"
29.09.2018 11:11:01

Weitere Infos zum Thema findet man hier: https://stackoverflow.com/a/37603732 und hier https://stackoverflow.com/a/30541917. Bei diesem Thema kommt dann noch schnell die ganze Geschichte mit den Cultures hoch: https://stackoverflow.com/questions/49866108/issue-with-english-non-us-culture, wo es auch bei Powershell Core 6.x immer noch offene Punkte gibt: https://github.com/PowerShell/PowerShell/issues/3831 und https://github.com/PowerShell/PowerShell/issues/3833.

Advertisements

Kaputte oder hängende Windows Updates Offline unter WinPE oder WinRE mittels DISM deinstallieren

20 September 2018

Ab und an gibt es Probleme mit Updates von Windows, welche dazu führen, dass mit dem betreffenden Rechner nichts mehr anzufangen ist. Er fährt einfach nicht mehr hoch und die üblichen Mechanismen zur Reparatur funktionieren nicht. Der normale Weg ist dann eine komplette Neuinstallation. Solange man einen Hardwaredefekt ausschließen kann muss dies nicht immer sein. Man muss nur irgendwie Zugriff auf die Festplatte des nicht funktionierenden Systems bekommen. Am einfachsten geht es mittels WinPE oder WinRE.

Nun verwendet man DISM.EXE um mit Images zu arbeiten, allerdings muss man immer mittels Parameter sagen, um welches Images es sich handelt. Images bezieht sich in diesem Zusammenhang auf eine Windowsinstallation. Dazu muss zuerst in Erfahrung gebracht werden, unter welchem Laufwerksbuchstaben das zu betreuende Windows verfügbar ist. Anschließend wird DISM immer mit dem Parameter /image:<LW> aufgerufen, wobei <LW> der Laufwerksbuchstabe des zu bearbeitenden Windows ist.

Zum Auflisten der installierten Updates verwendet man:

DISM /Image:C: /Get-Packages


Paketidentität : Package_for_KB4456655~31bf3856ad364e35~amd64~~17134.281.1.1
Status : Installiert
Versionstyp : Update
Installationszeit : 11.09.2018 20:03

Paketidentität : Package_for_KB4457146~31bf3856ad364e35~amd64~~10.0.1.0
Status : Installiert
Versionstyp : Security Update
Installationszeit : 11.09.2018 20:04

Paketidentität : Package_for_RollupFix~31bf3856ad364e35~amd64~~17134.228.1.6
Status : Abgelöst
Versionstyp : Security Update
Installationszeit : 15.08.2018 22:33

Paketidentität : Package_for_RollupFix~31bf3856ad364e35~amd64~~17134.285.1.7
Status : Installiert
Versionstyp : Security Update
Installationszeit : 15.09.2018 03:07

Der Vorgang wurde erfolgreich beendet.

Hat man nun ein Problem mit einem Update dann deinstalliert man dies, indem man die Paketidentität angibt:

DISM /Image:C: /Remove-Package /PackageName:Package_for_RollupFix~31bf3856ad364e35
~amd64~~17134.285.1.7

Am Ende sollte noch aufgeräumt werden:

DISM /Image:C: /CleanUp-Image /RevertPendingActions

Der Parameter RevertPendingActions kann auch in anderen Situationen angewandt werden: https://blogs.technet.microsoft.com/joscon/2009/10/15/getting-out-of-a-no-boot-situation-after-installing-updates-on-windows-7-2008r2/.

Wenn das Entfernen des letzten Updates nicht hilft, könnte das weitere Entfernen von Updates helfen.

Übrigens kann man obige Befehle auch auf eine laufende Instanz von Windows anwenden indem einfach anstatt /Image:C: /Online angibt.

S.M.A.R.T Daten von Festplatten und SSDs abfragen

25 August 2018

Falls man Probleme mit Festplatten bekommt, dann helfen oft genauere Informationen zum Problem. Hier bin ich schon Mal kurz auf dieses Thema eingegangen: https://newyear2006.wordpress.com/2016/10/31/laufwerk-unter-windows-auf-mgliche-probleme-prfen/. Im Zweifel benötigt man aber mehr Daten oder noch besser eine Möglichkeit direkt ein Gerät prüfen zu können. Seit Jahren gibt es die Open Source Software SmartMonTools https://sourceforge.net/projects/smartmontools/. Sie ist auf allen bekannten System verfügbar. Für spezielle Einsatzbereiche z. B. beim Microsoft Hyper-V Server gibt es sogar extra eine reine 64-Bit Version. Das tolle an SmartMonTools ist, dass diese aktiv gepflegt werden und nun anfangen NVME-Geräte mit abzudecken.

Installation
Die aktuelle Version ladet man sich am zuverlässigsten beim Github-Mirror herunter: https://github.com/smartmontools/smartmontools/releases. Man bekommt zwar eine Setup-EXE heruntergeladen, muss diese aber nicht ausführen und kann statt dessen direkt mit 7Zip die benötigten Dateien herausholen. Im Grunde wird nur SmartCtl.exe benötigt.

Übersicht verfügbarer Laufwerke
Um eine Übersicht der ansprechbaren Laufwerke zu bekommen, ruft man

.\smartctl.exe –scan

auf und erhält z. B.

/dev/sda -d ata # /dev/sda, ATA device
/dev/sdb -d ata # /dev/sdb, ATA device
/dev/sdc -d ata # /dev/sdc, ATA device
/dev/sdd -d ata # /dev/sdd, ATA device
/dev/sde -d ata # /dev/sde, ATA device
/dev/sdf -d ata # /dev/sdf, ATA device
/dev/sdg -d sat # /dev/sdg [SAT], ATA device

angezeigt. Ruft man auf diesem System

Get-PhysicalDisk | select friendlyname, model

in Powershell auf, so erhält man diese Ausgabe

friendlyname  model
————  —–
PhysicalDisk5 WDC WD10JPVT-16A1YT0
PhysicalDisk6 Elements 25A1
PhysicalDisk1 Samsung SSD 850 PRO 1TB
PhysicalDisk4 WDC WD10JPVT-16A1YT0
PhysicalDisk0 INTEL SSDSC2CW480A
PhysicalDisk3 Samsung SSD 840 EVO 1TB
PhysicalDisk2 Samsung SSD 840 EVO 1TB

Das ist ein schönes durcheinander. Wenn man nun aber eine gewisse Interoperabilität haben möchte, muss man einfach dieses Mapping anwenden:

/dev/sda => PhysicalDisk0
/dev/sdb => PhysicalDisk1
/dev/sdc => PhysicalDisk2
usw.

Diese Regel gilt in den meisten Fällen. Ausnahmen sind in der Anleitung unter Windows am Anfang beschrieben.

Um einfacher Skripte mittels Powershell und SmartMonTools schreiben zu können, habe ich dieses Script erstellt:

Damit kann man ganz einfach zwischen den beiden Formaten hin und her konvertieren:

Convert-LinuxDeviceAndWinPhysicalDrive "/dev/sda"

gibt PhysicalDrive0 zurück und

Convert-LinuxDeviceAndWinPhysicalDrive "PyhsicalDrive0"

gibt /dev/sda zurück.

Allgemeine Informationen zu einem Laufwerk abfragen
Bevor man ins Detail geht, möchte man vielleicht sich vergewissern, dass man das richtige Laufwerk bearbeitet oder anschaut, dies erfolgt mit dem Parameter –i

.\smartctl.exe -i /dev/sdb

dabei erhält man z. B. diese Ausgabe:

smartctl 6.6 2017-11-05 r4594 [x86_64-w64-mingw32-2012r2] (sf-6.6-1)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Samsung based SSDs
Device Model:     Samsung SSD 850 PRO 1TB
Serial Number:    S222NXBG110522B
LU WWN Device Id: 5 001138 8302afec0
Firmware Version: EXM02B6Q
User Capacity:    1.024.209.543.168 bytes [1,02 TB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 4c
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Sat Aug 25 21:04:37 2018 WEDT
SMART support is: Available – device has SMART capability.
SMART support is: Enabled

S.M.A.R.T. Daten abfragen
Will man nun S.M.A.R.T.-Informationen zu einem Laufwerk haben, so kann man ganz einfach

.\smartctl.exe -A /dev/sdb

verwenden. Dies liefert – je nach Laufwerk – z. B. diese Daten:

smartctl 6.6 2017-11-05 r4594 [x86_64-w64-mingw32-2012r2] (sf-6.6-1)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, http://www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   099   099   010    Pre-fail  Always       -       7
  9 Power_On_Hours          0x0032   096   096   000    Old_age   Always       -       15905
12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       2
177 Wear_Leveling_Count     0x0013   099   099   000    Pre-fail  Always       -       20
179 Used_Rsvd_Blk_Cnt_Tot   0x0013   099   099   010    Pre-fail  Always       -       7
181 Program_Fail_Cnt_Total  0x0032   100   100   010    Old_age   Always       -       0
182 Erase_Fail_Count_Total  0x0032   100   100   010    Old_age   Always       -       0
183 Runtime_Bad_Block       0x0013   099   099   010    Pre-fail  Always       -       7
187 Uncorrectable_Error_Cnt 0x0032   095   095   000    Old_age   Always       -       49984
190 Airflow_Temperature_Cel 0x0032   079   100   000    Old_age   Always       -       21
195 ECC_Error_Rate          0x001a   199   199   000    Old_age   Always       -       49984
199 CRC_Error_Count         0x003e   100   100   000    Old_age   Always       -       0
235 POR_Recovery_Count      0x0012   100   100   000    Old_age   Always       -       0
241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always       -       13132430686

Anleitung
Eine umfangreiche Anleitung mit vielen weiteren Beispielen findet sich auf der Wiki Seite, hier der Link zur aktuellen Version: https://www.smartmontools.org/browser/tags/RELEASE_6_6/
smartmontools/smartctl.8.in
. Zur neuesten Fassung – das ist aber die in der Entwicklung befindlichen Version – gelangt man über: https://www.smartmontools.org/browser/trunk/smartmontools/smartctl.8.in

Beim Versuch eine LibreOffice Erweiterung hinzuzufügen kommt die Fehlermeldung “Could not create Java implementation loader”

12 August 2018

Zum Einsatz kam eine recht neue LibreOffice Version 6.1.0.3 unter Windows 10. Installiert werden sollte die Grammatikhilfe LanguageTool. Dieses Add-On ist unter https://languagetool.org/#libreoffice zu finden.

Wenn man nun versucht in LibreOffice unter Extras->Extension Manager die heruntergeladene Erweiterung LanguageTool-4.2.oxt mittels Hinzufügen zu installieren, kann man diese Fehlermeldung erhalten:

Could not create Java implementation loader

Auf der LanguageTool-Seite steht bereits, dass Java 8 benötigt wird. Aber dies alleine reicht nicht aus, denn Java muss auch in LibreOffice aktiviert sein. Dazu ruft man im Menü Extras->Optionen auf und wählt den Eintrag LibreOffice->Erweitert aus. Hier muss man “Eine Java-Laufzeitumgebung verwenden” aktivieren.

Falls nicht bereits eine Laufzeitumgebung mit Version aufgeführt wird, muss diese noch ausgewählt werden. Man klickt auf Hinzufügen und wählt die passende Java-Runtime z. B. aus dem Verzeichnis C:\Programme\Java\jre1.8.0_181. Hier kann es passieren, dass die Plattformen von LibreOffice und Java-Laufzeitumgebung nicht zueinander passen. Dann erhält man diese Meldung:

Der von Ihnen ausgewählte Ordner enthält keine Java-Laufzeitumgebung. Bitte wählen Sie einen anderen Ordner.

D. h. bei einem 32-Bit LibreOffice benötigt man auch eine 32-Bit Java Laufzeitumgebung. Bei einer 64-Bit LibeOffice Version benötigt man die 64-Bit Java Laufzeitumgebung.

Server bootet nicht nach Installation einer Intel I350-T2V2 Netzwerkkarte

30 April 2018

Bei einer Aufrüstung eines Hyper-V Servers mit einer “Intel Ethernet Server Adapter I350-T2V2”-Karte bootete der Rechner nach dem Einstecken der Netzwerkkarte nicht mehr. Nicht einmal das BIOS des Rechners war erreichbar. Statt dessen erschien nur oben links ein blinkender Cursor auf schwarzem Hintergrund.

Der Server selber war schon etwas älter deshalb gab es keine BIOS-Updates. Was also tun? Die Beschreibung auf dieser Seite brachte die Lösung: https://communities.intel.com/thread/56362.

Im Prinzip war das Flashen der Firmware der Netzwerkkarte notwendig. Das passende Utility war dieses hier: https://downloadcenter.intel.com/download/19186, das sogenannte “Intel® Ethernet Connections Boot Utility, Preboot Images, and EFI Drivers”.

Jetzt wurde nur noch ein Rechner benötigt, der mit der Karte bootete, tatsächlich konnte ein anderer, älterer Windows-Rechner mit eingesteckter Karte problemlos booten. Damit konnte dann mittels (es war ein 32-Bit Windows, bei 64-Bit ist der Aufruf leicht anders)

BOOTUTILW32.EXE

die Netzwerkkarte ermittelt werden und mittels

BOOTUTILW32.EXE –up PXE –nic 1

aktualisiert werden. Zuvor musste aber noch die Datei BootIMG.FLB aus dem übergeordneten Verzeichnis in das Verzeichnis der BOOTUTILW32.EXE kopiert werden.

Mit dem Boot Utility wurde die Firmware der Netzwerkkarte von der Version 1.3.98 auf die Version 1.5.85 aktualisiert. Danach konnte der ursprüngliche Rechner mit der Netzwerkkarte problemlos gebootet und eingerichtet werden.

Powershell Fehlermeldung ConvertFrom-Json : Ungültiger JSON-Primitiv: ..

26 März 2018

Beim Versuch eine absolut simple JSON-Datei in Windows Powershell 5.1 einzulesen erschien die Fehlermeldung:

ConvertFrom-Json : Ungültiger JSON-Primitiv: ..
In Zeile:1 Zeichen:1
+ ConvertFrom-Json .\settings.json
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [ConvertFrom-Json], ArgumentException
    + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJsonCommand

Ich bin schon mehrfach über dieses Problem gestolpert, wie andere auch, jedoch war es noch nie so klar wie in diesem Fall, woran das Problem liegt. Wieso das Problem so offensichtlich gelöst werden konnte, lag daran, dass die JSON-Datei absolut simple war:

{
"files.encoding": "cp850"
}

Obwohl die Datei offensichtlich korrekt aussieht, beschwert sich ConvertFrom-JSON. Als ich mir dann die Datei in Hex angeschaut habe, wurde aber schnell offensichtlich was das Problem ist:

PS > Format-Hex .\settings.json

           Pfad: .\settings.json

           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000   7B 0A 20 20 20 20 22 66 69 6C 65 73 2E 65 6E 63  {.    "files.enc
00000010   6F 64 69 6E 67 22 3A 20 22 63 70 38 35 30 22 0A  oding": "cp850".
00000020   7D                                               }

Ich gebe zu, die Darstellung ist unter aller sau, Danke WordPress, aber das Entscheidende ist zu sehen. Es sind die markierten 0A für den Zeilenumbruch. 0A weil es sich um eine Datei aus der Linuxwelt handelt, da ist 0A als Zeilenumbruch üblich. Hat sich leider bis zur Version 5.1 von Powershell nicht bei Microsoft herumgesprochen. Erst Powershell 6 Core arbeitet hier korrekt.

Wenn ich nun also vor dem Aufruf mit ConvertFrom-Json die Zeilenumbrüche in Windowsverträgliche umwandle, dann klappt auch die JSON-Konvertierung:

(Get-Content .\settings.json) -replace 0x10, (0x13,0x10) |ConvertFrom-Json

files.encoding
————–
cp850

Hier der Beweis, dass die anderen Zeilenumbrüche gesetzt sind:

PS > (Get-Content .\settings.json) -replace 0x10, (0x13,0x10) |out-string | Format-Hex

           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000   7B 0D 0A 20 20 20 20 22 66 69 6C 65 73 2E 65 6E  {..    "files.en
00000010   63 6F 64 69 6E 67 22 3A 20 22 63 70 38 35 30 22  coding": "cp850"
00000020   0D 0A 7D 0D 0A                                   ..}..

Da viele REST-APIs von Linuxrechnern auch JSON-Dateien verteilen und davon auszugehen ist, dass diese ihre JSON-Dateien mit den unter Linux-üblichen Zeilenumbrüchen versehen, ist davon auszugehen, dass das Problem auch bei einfachen Invoke-WebRequest zum Thema wird, wie hier https://stackoverflow.com/questions/24453320/invalid-json-primitive-error-when-converting-json-file oder hier https://stackoverflow.com/questions/47908382/convertfrom-json-invalid-json-primitive-%C3%AF.

Wie gesagt mit Powershell Core 6.x ist das Thema ebenfalls erledigt.

Probleme mit Windows 10 Feature Update weil ein alter Treiber das Update auf 1709 zunichte machte

16 März 2018

Bei einem Windows 10 Rechner mit v1703 sollte auf auf das Fall Creator Update v1709 aktualisiert werden. Doch dies war nicht möglich. Egal welche Variante probiert wurde, es klappte einfach nicht. Installiert war die 32-Bit-Variante, ob dies mit dem Problem zu tun hat, konnte nicht ermittelt werden. Was aber im weiteren Verlauf noch von Bedeutung sein wird, ist, dass es sich um einen Rechner handelt der bereits Windows Vista und Windows 7 davor gesehen hat und über Jahre hinweg immer mittels Windows-Updates aktualisiert wurde.

Der eigentliche v1709-Updatevorgang lief sogar zu fast 100% durch. Doch am Anfang wurde nach einem Neustart das Update immer rückgängig gemacht. Übliche Troubleshootversuche wie https://docs.microsoft.com/en-us/windows/deployment/upgrade/resolve-windows-10-upgrade-errors brachte leider nichts.

Es wurde dann auch die setupact.log-Datei analysiert, welche im Verzeichnis "C:\$WINDOWS.~BT\Sources\Panther" zu finden ist. Dort war lediglich diese Fehlerinformation zu finden:

Error                 SYSPRP ActionPlatform::DeleteValue: Error from RegOpenKeyExW on key HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\Sysprep\OfflineState; dwRet = 0x13

Aber es gibt scheinbar keine Informationen darüber. Lediglich ein MSDN-Foreneintrag https://social.msdn.microsoft.com/Forums/de-DE/ee8c7041-930c-4a2e-9720-e6b49a05c67f/windows-10-fcu-update-fails-with-registry-key-delete-of-sysprep-offlinestate?forum=win10itprosetup mit ähnlicher Konstellation deutete etwas an, dass es an einem Treiber liegen müsse.

Nachdem einige Versuche fehlgeschlagen sind, wurde die Sache erst nach weiteren zwei Monaten in Angriff genommen. Nach normalen Windows Updates tauchte beim erneuten Versuch das Featureupdate zu installieren auf einmal diese Meldung auf:

"Windows could not configure one or more system components"

Aufgrund der Meldung und dieses Artikels https://social.technet.microsoft.com/Forums/en-US/1b5b24b7-a0f0-4955-9f44-32a977643aef/windows-10-fall-creator-upgrade-1709-stops-at-45-with-windows-could-not-configure-one-or-more?forum=win10itprosetup wurde weiter gesucht. Ein Eintrag sagt, man solle sich die Datei $Windows.~bt\Sources\Rollback\setupapi\setupapi.dev.log genauer anschauen. Tatsächlich waren darin Fehler vermerkt.

Eigentlich sollte Windows 10 vor einem Update prüfen, ob die Treiber alle verfügbar sind und entsprechend ein Update von vornherein ablehnen, wenn etwas nicht passt. Aber vielleicht ist der Computer mal wieder nicht schlau genug seine Probleme selber zu lösen.

Tatsächlich  brachte die Suche nach unnötigen Treibern die Lösung. So wurde mittels pnputil.exe zunächst die vorhandenen Treiberdateien aufgelistet.

pnp-util /enum-drivers

Dabei tauchten einige alte NDIS-Treiber, also Netzwerkkartentreiber auf. Im obigen Forums-Artikel gibt es viele, die auf einmal nach abstöpseln von WLAN-Adaptern erfolgreich das Update einspielen konnten. Also die alten NDIS und andere unsinnige alte Treiber mittels

pnputil /delete-driver oemx.inf /force 

gelöscht, wobei x bei oemx.inf immer eine Zahl die bei enum-drivers ermittelt wurde, darstellt.

Am Ende hat doch tatsächlich die Installation geklappt!

Apple iPhone taucht nicht im Windows Explorer auf, kein Zugriff auf Bilder möglich weil MTP fehlt

9 Februar 2018

Auf einem Rechner mit Windows 10 v1709 (64-Bit) schloss man per USB ein iPhone 7 an, es tauchte aber kein Eintrag im Windows Explorer auf. iTunes mit der aktuellen Version war auch installiert, also sollten alle Treiber aktuell verfügbar sein. Das manuelle aktualisieren der Treiber im Gerätemanager wurde auch immer nur mit der Meldung bestätigt, dass man bereits den aktuellen Treiber hat. Was tun?

Die Lösung ist relativ simpel. Man muss nur im Gerätemanager bei den USB-Controllern auf den Eintrag “Apple Mobile Device USB Driver” gehen und die Eigenschaften öffnen. Nun geht man auf das Register Treiber und klickt auf “Treiber aktualisieren”. Im nächsten Dialog klickt man “Auf dem Computer nach Treibern suchen” und dann auf “Aus einer Liste der verfügbaren Treiber auf meinem Computer auswählen”. Es stehen nun zwei Treiber zur Auswahl, der bereits bekannte “Apple Mobile Device USB Driver” und der “MTP-USB-Gerät”-Treiber. Wir wählen den MTP-Treiber. Wird der Treiber installiert, taucht automatisch im Gerätemanager der Eintrag “Tragbare Geräte” auf unter dem dann “Apple iPhone” zu sehen ist.

Nun ist auch das iPhone im Windows Explorer zu finden und nach Freigabe vom iPhone kann man nun problemlos auf den DCIM-Ordner des iPhone zugreifen.

Letzte abgestürzte Chrome Sessions Tabs wiederherstellen

5 Dezember 2017

Wenn man, wie ich, Chrome Tabs sammelt um ja nichts zu vergessen, dann kann es in einer ungünstigen Situation passieren, dass man diese z. B. durch einen Neustart des Rechners verliert, oder wenn jemand anderes einfach herumklickt und Chrome öffnet ohne die alten Sessions wiederherzustellen. Zum Glück gibt es aber eine recht einfache Methode die alten Sitzungen wiederherzustellen.

Hier wird der grundsätzliche Weg beschrieben: https://superuser.com/questions/342437/how-to-restore-chrome-without-restore-button-and-the-files-last-session-and/639956#639956.

Hier nochmal der Weg in meinen Worten:

Bestehende Chrome Instanz im Taskmanager beenden

Stop-Process Chrome* –Force

und ins Verzeichnis

CD "$Env:LocalAppData\Google\Chrome\User Data\Default"

wechseln, dann

ren "Current Session" "Current Session.old"
ren "Current Tabs" "Current Tabs.old"
ren "Last Session" "Current Session"
ren "Last Tabs" "Current Tabs"

Nun kann man Chrome wieder starten.

Virtuelle Soundkarte für Windows

30 November 2017

Bei den vielen virtuellen Maschinen mit denen man es heutzutage zu tun hat, gibt es manchmal eine Situation, wo man gerne Sound hören würde. Aber je nach Zugang zur VM ist dies evtl. nicht möglich.

Zum Glück gibt es eine einfache Möglichkeit dieses Problem zu lösen. Man installiert einfach eine virtuelle Soundkarte. Bewährt hat sich Cable von VB Audio: https://www.vb-audio.com/Cable/. Das Programm ist umsonst und ist schnell installiert. Es funktioniert tadellos unter Windows 10 auf x86 sowie x64 Basis.