Synology VMM | Windows VM mit starker CPU Auslastung durch “System interrupts”

Ich muss hier einen Fall von Layer-8 Ignoranz schildern – mit etwas Vorgeschichte.

Alles Cloud …

Vor vier Monaten erzählte mir ein Freund, dass er eine Praxis übernehmen würde – mit einer Softwarelösung, die zu 100% in der Cloud läuft. „Wir brauchen nur ein paar Tablets und Internet, da kannst du mir vielleicht helfen?“ Wo fängt man da an …

  1. Es gab PCs, Baujahr 2018 oder 2019 – so genau wusste das niemand. Man hielt sie für „relativ neu“. OK – relativ. Und mit <Panikmodus>Festplatten</Panikmodus>
  2. Ein neues, dreidimensionales Röntgengerät musste her. Die Daten sollten direkt in die Cloud gespeichert werden – allerdings braucht es dazwischen ein „Laufwerk“ als Cloud-Cache
  3. Dazu kamen diverse Konnektoren – wofür auch immer

Die Informationen sickerten nach und nach durch. Ein vollständiges Bild hatten wir erst 14 Tage vor der Wiedereröffnung der Praxis.

Where the rubber meets the road …

Für Punkt 1 konnte ich mit etwas Überzeugungsarbeit ein Synology-NAS (RS822+) ins Spiel bringen. Dank Synology Directory Server gab es eine kleine Domäne, über die sich die PCs (nun mit SSDs ausgestattet) verwalten ließen.

Mit maximalem RAM ausgestattet, liefen darauf zwei bis drei kleine VMs. Der AMD Ryzen 1500B ist zwar kein Kraftpaket, aber für kleine Aufgaben reicht’s. Die Bereitstellung der VMs übernahm der Synology Virtual Machine Manager (VMM), also QEMU/KVM so mehr oder weniger.

Zwei Windows-VMs wurden eingerichtet:

  • Eine mit 4 vCPUs, 16 GB RAM und 2 TB Speicher für den Cloud-Cache (Punkt 2).
  • Eine weitere mit 10 GB RAM für einen Healthconnector.

Nach einigen Optimierungen liefen die VMs stabil und flott – auch dank SSD-Cache im NAS.

Punkt 3: Die Konnektoren

Der erste Konnektor ließ sich problemlos installieren. Kein Thema. Dann kam der RISE-Konnektor – und wie so oft: ein Dienstleister, der sich als besonders „resistent“ erwies.

Natürlich, der Dienstleister ist immer der andere … Winking smile

Die „Anforderung“, in der virtuellen Windows-VM (QEMU/KVM-basiert) das „Hyper-V Networking“ zu installieren, war für mich nicht nachvollziehbar. Angeblich sei das für WireGuard-VPN nötig?! Das Eventlog zeigte jedenfalls mehr als nur „Hyper-V Networking“ – vielleicht hatte er sich jemand verklickt.

image

Mir ist kein explizites „Hyper-V Networking“ bekannt. Windows bietet auf dem Client die folgenden Features an:

Vor dem Reboot sah der Taskmanager noch wie folgt aus …

image

Die Konsequenzen waren aber dem Reboot zu sehen und verheerend.

image

Der Screenshot zeigt nicht das gesamte Ausmaß des Desasters, die virtuellen CPUs liefen über weite Strecken auf 100% und ein Arbeiten war nicht mehr möglich. Weder RDP-Sitzungen noch TeamViewer funktionierten. Auch mehr vCPUs halfen nicht wesentlich.

Ich konnte die Last auf etwa 40 % drücken – aber die VM blieb träge. Sehr träge.

image

Sobald die Hyper-V-Rolle innerhalb des Windows 11-Gastsystems installiert ist, beginnt sich die virtuelle Maschine selbst wie ein Hyper-V-Host zu verhalten (oder versucht es zumindest). Dies verändert die Art und Weise, wie Windows mit der zugrunde liegenden Hardware und der Virtualisierungsschicht interagiert und führt häufig zu:

  • Konflikten bei verschachtelter Virtualisierung: Hyper-V innerhalb einer VM (Nested Virtualization) kann mit den eigenen Virtualisierungsmechanismen von QEMU/KVM interferieren.
  • Problemen bei der Interrupt-Verarbeitung: Das System kann auf andere Taktquellen oder Interrupt-Modelle umschalten (z. B. hyperv_clocksource_tsc_page vs. tsc), was zu übermäßigen System-Interrupts und einer verschlechterten Leistung führen kann
  • Verändertes Timer- und Polling-Verhalten: Hyper-V kann beeinflussen, wie das Gastbetriebssystem Leerlaufzustände und Interrupts behandelt – insbesondere, wenn Funktionen wie halt_poll nicht abgestimmt sind

Ein zeitaufwändig erstellter Dump des Systemprozesses (PID 4) zeigte massenhaft IRPs – ein weiteres Indiz für Probleme durch Hypervisor-Verschachtelung.

image

Hyper-V musste also wieder runter

Final blieb nur die Möglichkeit Hyper-V zu entfernen, was dem Dienstleister nicht wirklich gefallen hat. Die Lösung war die Installation des RISE-Konnektors auf einen der PCs in der Praxis, wobei hier auf das Hinzufügen der Hyper-V Rolle verzichtet wurde?!Wir fragen nicht und nehmen die Alternative mal einfach so hin Sick smile

Die beiden folgenden PowerShell Aufrufe zeigten halfen das System dann anschließend zu korrigieren und in einen nutzbaren Zustand zu versetzen:

# Anzeigen aller aktivierten (enabled) Features in Windows 11
Get-WindowsOptionalFeature -Online | Where-Object {$_.State -eq "Enabled"}
# Deaktivieren der Hyper-V Rolle + manuellem Reboot hinterher
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

Nach dem Neustart lief der RISE-Konnektor mit ~10 % Systemlast. Der Dienstleister war da schon am nächsten PC – und ich hatte ehrlich gesagt keine Lust mehr. Hauptsache, die VM lief wieder.

So, genügend Angry smile – einfach aufpassen und schauen, was “Fachkräfte” auf den Systemen so installieren und sich die Systemanforderungen im Vorfeld schriftlich per Mail besorgen.

Enjoy it, b!

Windows Recovery Partition löschen und neu erstellen

Vor etwas mehr als 8 Jahren habe ich einen Blog über das Löschen der Windows Recovery Partition geschrieben. Hey, mehr als 8 Jahre in der IT ist eine halbe Ewigkeit, vielleicht sogar mehr. Damals ging es darum, ein Problem mit dem Client-Backup des Windows Small Business Essential Server zu lösen.

Wichtig:
Die Partitionsnummern können abweichen. Achtet deshalb unbedingt darauf, dass die ermittelte Nummer verwendet und das Skript nicht nach dem Prinzip „Fire and Forget“ ausgeführt wird. Dafür ist es nämlich nicht gedacht, sondern dient lediglich als Sammlung der verwendeten Befehle.

Unten gibt es dann auch das Update wenn die Winre.wim fehlen sollte, der eigentliche Beitrag ist ja aus dem Juni 2024.

Das Problem

Heute mit Windows 11 und dem Server 2022 ist die Recovery Partition immer noch ein Thema. Meistens, wenn die Systempartition erweitert werden muss, befindet sich die Windows Recovery Partition am Ende der Festplatte.

Genau genommen sprechen wir vom Windows Recovery Environment (Windows RE), zu dem auch die Windows Recovery Partition gehört.

Die folgende Abbildung zeigt die Recovery Partition auf einem Windows Server 2022.

image

Wird die Disk nun erweitert (auf 196GB), dann sieht das wie folgt aus.

image

Natürlich gibt es eine Reihe von 3rd-Party-Tools, die hier helfen können, und einige davon sind sogar OpenSource, andere wiederum laufen in den kostenlosen Versionen nicht auf den Servern und müssen (und sollten) für den kommerziellen Einsatz bezahlt werden.

Wenn noch eine größere Anzahl von Servern oder (z.B. VMs) erweitert werden muss, ist die Unterstützung von PowerShell oder Kommandozeile (cmd.exe) hilfreich.

Die Vorgehensweise (Ablauf)

Die Erweiterung wird mit den folgenden Schritten durchgeführt.

  1. Deaktivieren von Windows RE
  2. Löschen der Windows Recovery Partition
  3. Erweitern der Systempartition (bis zum Maximum abzüglich 524MB)
  4. Erstellen der neuen Recovery Partition im freien Bereich (524MB) mit NTFS als Dateisystem und ohne Laufwerksbuchstaben
  5. Anpassen der Attribute der neuen Windows Recovery Partition
    – Partition Type = de94bba4-06d1-4d40-a16a-bfd50179d6ac
    – Partition Attribute = 0X8000000000000001
  6. Aktivieren von Windows RE

Achtung, bei MBR-Disks (die ich nicht mehr verwenden würde), lautet der Partition-Type anders, nämlich 27 und nicht de94bba4-06d1-4d40-a16a-bfd50179d6ac.

Die Schritte im Einzelnen

Vor dem ersten Schritt ist es sinnvoll, sich einen Überblick über den Zustand von Windows RE zu verschaffen und dann im Anschluss Windows RE zu deaktivieren.

image

Die grün umrandete Informationen zu Disk und Partition kann über die beiden PowerShell-Befehle Get-Disk und Get-Partition verifiziert werden.

image

Im Gegensatz zu meinem Blog zu beginn, habe ich inzwischen eine Möglichkeit gefunden, die Recovery-Partition mit PowerShell zu löschen.

image

Im Diskmanagement ist danach die Recovery Partition nicht mehr vorhanden.

image

Nun wird die Systempartition (Laufwerk C) auf die maximale Größe, abzüglich des Platzes für die Recovery Partition erweitert.

image

Was im Diskmanagement anschließend wie folgend aussieht. Wir sehen das Laufwerk C mit 195GB und 524MB freiem Platz für die Windows RE Partition.

image

Ok, jetzt die Frage Smile warum wird die Windows RE Partition mit 524MB angelegt, wenn sie doch vor dem Löschen 523MB hatte?

Grob geschätzt habe ich das bestimmt einige hundert Mal gemacht, ein einziges Mal hat Windows RE danach mit einer 523MB großen Partition nicht mehr funktioniert. Eine wirklich gute Analyse konnte ich aus Zeitgründen nicht durchführen. Der Workaround, der funktionierte, war eine Partition mit 524MB statt der ursprünglichen 523MB.

Nun geht es um den Wiederaufbau von Windows RE.

Der verbleibende Platz auf der Disk 0 (524MB) wird nun der neuen Windows RE Partition zugewiesen, darüber hinaus mit NTFS formatiert und kein Laufwerksbuchstabe verwendet.

image

Jetzt müssen wir noch die ID der Windows RE Partition und das GPT-Attribut ändern. Das ist auch der einzige Punkt, wo PowerShell keine Möglichkeit bietet.

Partition Type = de94bba4-06d1-4d40-a16a-bfd50179d6ac
Partition Attribute = 0X8000000000000001

Falls jemand von Euch eine bessere Lösung hat, bitte in die Kommentare schreiben – Danke!

image

Beide Einstellungen können mit diskpart.exe überprüft werden.

image

Sieht gut aus, würde ich sagen.

Fehlt nur noch die Aktivierung von Windows RE, vorher sollte man aber prüfen, ob Winre.wim im Verzeichnis C:\Windows\System32\recovery vorhanden ist.

image

Da Winre.wim eine versteckte Datei ist, wurde der Befehl Get-ChildItem mit der Option -Attributes h ausgeführt. Der Befehl reagentc /enable kopiert dann die Datei auf die Windows RE Partition (was ein paar Sekunden dauert).

Update 08.10.2025 – die Winre.wim fehlt …

Durchaus möglich ist, dass die Windows RE-Datei (Winre.wim) fehlt und damit reagentc das Image nicht auf die neue Recovery-Partition kopieren kann.

image

In diesem Fall empfiehlt sich die folgende Vorgehensweise.

  1. Bereitstellen einer ISO-Datei des entsprechenden Betriebssystems
    – Kopieren der ISO-Datei auf den Server
    – Ein Doppelklick mit dem Windows Explorer mounted das ISO
  2. Erstellen eines Verzeichnisses um die install.wim zu mounten
  3. Mounten der install.wim Datei nach $winDir
  4. Wechsel in das Recovery-Verzeichnis der gemounteten install.wim
  5. Kopieren der Winre.wim nach C:\Windows\System32\Recovery
  6. Aktivierung von Windows RE
  7. Unmount der install.wim

Auch hier die Schritte im Detail

Nach dem Doppelklick mit dem Windows Explorer ist das Windows Server 2022 Image auf Laufwerk G vorhanden.

image

Erstellen eines Verzeichnisses um die install.wim zu mounten und bereitstellen dieser mit dism.exe

image

Wechsel in das Recovery-Verzeichnis der gemounteten install.wim und kopieren der Winre.wim nach C:\Windows\System32\Recovery

image

Jetzt muss noch die Recovery Partition aktiviert (reagentc /enable kopiert die Winre.wim) und die install.wim wieder entfernt werden.

image

So, jetzt aber.

Natürlich gibt es alle Befehle als PowerShell-Datei zum Download.

Enjoy it und happy Recovery, b!

Windows 11 | Kernelisoierung

Wenn in Windows 11 aufgrund eines inkompatiblen Treibers die Speicherintegrität nicht aktiviert werden kann, kann der entsprechende Treiber deinstalliert werden, sofern er nicht verwendet wird.

Hier die Meldung von Windows 11:

image

Bevor nun der Treiber deinstalliert wird, ist es sinnvoll zu prüfen ob dieser nicht doch geladen ist. Für diesen Fall, konnte ich das schon im Vorfeld ausschließen, da es sich um mein eigenes Surface Laptop Studio handelte und ich keine WDC-Geräte im Einsatz habe.

Der folgende “One-Liner” in PowerShell zeigt, ob zum Beispiel der Treiber für “Volume Shadow Copy / volsnap” geladen ist (Quasi als Test).

# Check if volsnap\.sys is running
Get-CimInstance Win32_SystemDriver | Where-Object { $_.State -eq 'Running' -and $_.PathName -match 'volsnap\.sys' } | ForEach-Object { "Driver '$($_.Name)' is running from path: $($_.PathName)" }

image

Wie im folgenden Aufruf zu sehen, muss nun der Volsnap gegen den WDCsam64_PreWin8 ausgetauscht werden. Der Name lässt sich übrigens über die Zwischenablage kopieren. Im Gegensatz zu oben darf nun nichts angezeigt werden.

# Check if wdcsam64_prewin8\.sys is running
Get-CimInstance Win32_SystemDriver | Where-Object { $_.State -eq 'Running' -and $_.PathName -match 'wdcsam64_prewin8\.sys' } | ForEach-Object { "Driver '$($_.Name)' is running from path: $($_.PathName)" }

Jetzt kann der WDC-Treiber entfernt werden. Am einfachsten geht das mit pnputil.exe, wenn man den “Veröffentlichter Name“: oem26.inf verwendet (oben im Screenshot blau unterstrichen). Die Eingabeaufforderung dazu bitte als Administrator ausführen.

# Deleting wdcsam64_prewin8.sys driver
pnputil /delete-driver oem26.inf /uninstall /force

image

Jetzt den PC neu starten und die Speicherintegrität kann eingeschaltet werden, was aber danach einen erneuten Neustart erfordert.

image

Sieht am Ende so aus und Windows 11 ist damit auch zufrieden.

image

Enjoy it, b!

P.S. jetzt kümmere ich mich darum wieso Windows 11 glaubt, dass mein Laptop alles in DE-DE anzeigen muss, obwohl ich EN-US eingestellt habe.

Surface Pro 9 | Langsames Kopieren auf eine SSD

Ich denke, dass die folgenden Erkenntnisse auf jeden Computer mit Windows 11 übertragbar sind, sofern er über eine schnelle Schnittstelle (USB-C oder Thunderbolt) verfügt.

Analysiert habe ich das alles auf einem Microsoft Surface Pro 9 und daher rührt der Titel.

Ausgangssituation

Ich verwende externe SSDs hauptsächlich (zu 95%) als Speichermedium für Fotos und RAW-Dateien. Früher liefen auf meinen externen Festplatten oft virtuelle Maschinen (VMs), die vielleicht die restlichen 5% ausmachen.

Es handelt sich um Dateigrößen zwischen 25MB und bis zu 100MB, eine VM kann also auch mal 50 oder 100GB haben, wahrscheinlicher ist aber, dass auf der externen SSD ein paar ISO-Dateien herumliegen (die sind meistens zwischen 4 und 6GB groß).

Die beiden Schnittstellen des Surface sind als USB-C nach der USB 4.0-Spezifikation ausgeführt und leisten zumindest theoretisch 40GBit/s.

Als Übersicht hier die einzelnen Geschwindigkeiten, da wir diese nachher noch benötigen (als Anhaltspunkt).


Spezifikation Geschwindigkeit
USB 2.0 480Mbit/s ~ 60MB/s
USB 3.0 5Gbit/s ~ 625MB/s
USB 3.1 10GBit/s ~ 1250MB/s
USB 3.2 20GBit/s ~ 2500MB/s
USB 4.0 40GBit/s ~ 5000MB/s

Kurz vor meinem Urlaub wollte ich eine Reihe von Verzeichnissen mit Bildern (etwas über 100 GB) auf eine zweite externe SSD sichern, was über eine halbe Stunde dauerte. Die beiden verwendeten externen SSDs waren eine alte Samsung Portable T5 mit 1TB und eine Samsung Portable T7 mit 4TB.

  • Samsung Portable SSD T5 mit USB 3.1 und ~ 540MB/s
  • Samsung Portable SSD T7 mit USB 3.2 und ~1000MB/s

Meine Erwartung war, dass die 100GB Daten in weniger als 10min kopiert werden.

Der eigentliche Test

Um die Sache nicht unnötig kompliziert zu machen, habe ich mich für das ISO von Windows 11 in der Version 23H2 als Testobjekt (mit 6,8GB) entschieden.

Ein erster Test ergab eine Schreibgeschwindigkeit von ~ 30MB/s was deutlich unter den Möglichkeiten der alten Samsung T5 liegt.

image

Auch robocopy bestätigte in seiner Zusammenfassung die geringe Performance.

image

Mein erster Verdacht fiel auf das verwendete USB-Kabel, ein USB-C Ladekabel von UGREEN, da dieses vom Hersteller mit 480Mbps angegeben wird und somit schnell genug für die 540MB/s des Samsung T5 sein sollte. Trotzdem habe ich das USB-Kabel von UGREEN durch ein original “Samsung SSD” USB-C Kabel ersetzt und damit eine 10x höhere Schreibrate erreicht.

image

Robocopy hat hier eine Geschwindigkeit von 323.678.163 Bytes/sec. ermittelt.

Das ist die erste Erkenntnis, die ich zusammenfassen möchte:

Es kommt auf das Kabel an, genauer gesagt auf dessen Bandbreitenspezifikation.

Das USB-C Kabel von UGREEN hat seinen Weg zu mir gefunden, als ich versuchte, die Anzahl der Kabel für ein größeres Projekt zu minimieren.

Dabei stellte sich mir die Frage, ob man mit einem geeigneten Kabel und einer schnelleren SSD wie der T7 noch höhere Übertragungsraten erzielen könnte.

Testmuster mit einer Samsung Portable Shield T7 4TB

Neben einer doppelt so hohen Schreibgeschwindigkeit will ich mir auch den Einfluss der Windows Write-Caching Policy anschauen.

Wie schon die Samsung Portable T5 war auch die T7 wie folgt eingestellt.

image

Damit war eine Geschwindigkeit von um die 540MB/s zu erreichen.

image

Ob in der Write-caching policy die beiden Optionen Enable write caching on the device und Turn of Windows wirte-cache buffer flushing on the device aktiviert waren, spielte keine große Rolle.

image

Die Datenrate erhöhte sich um ~ 25MB/s auf 560MB/s.

Die zweite Erkenntnis wäre damit, dass hauptsächlich die Einstellung Removal Policy = Better Performance eine Rolle spielt, insofern das passende Kabel verwendet wird.

Removal Policy = Better Performance

Möchte man also sowohl sein Surface über das Kabel laden als auch eine externe SSD mit guter Performance betreiben, so muss dieses beiden Spezifikationen entsprechen. Die Annahme, dass wenn das Kabel schnellladefähig ist, auch eine hinreichende Übertragungsrate erzielt wird, kann ich nicht bestätigen.

Das beste kommt zum Schluss

Natürlich könnte man die Frage stellen, was mache ich wenn mein originales Kabel verloren geht? Richtig, aufpassen Winking smile aber es gibt auch noch Alternativen. Im großen Fluss habe ich ein, für USB4 zertifiziert Kabel gefunden (30cm) das ebenfalls 40Gb/s. Die Hoffnung war das es ungefähr die Datenrate des Samsung-Kabels erreichen würde. Dem war aber nicht so, mit diesem Kabel waren 15% mehr Durchsatz möglich.

image

Enjoy it, b!

Windows 11 | RDP died with KB5051987

Es gibt Dinge, die man nicht braucht, und das Verhalten von Windows 11 nach der Installation von KB5051987 gehört eindeutig dazu.

RDP-Sitzungen zwischen Windows 11 PCs und auch Windows Server 2022 sowie 2025 (mehr konnte ich nicht testen) mit aktuellem Februar-Update bleiben nach Eingabe der Anmeldeinformationen hängen.

Eine sehr gute Quelle ist der Blog von Günther Born, in dem häufig erste Probleme gesammelt werden.

Ein erster Workaround

Eine erste Lösung war die Deinstallation von KB5051987 sowohl auf dem Quell- als auch auf dem Zielsystem.

image

Dies ist vor allem dann praktikabel, wenn man zur weiteren Fehleranalyse in den Modus Operandi zurückkehren möchte. Die Deinstallation des Updates ist nur ein Workaround, zumal Windows sich beeilt, das Update erneut zu installieren oder zur Installation anzubieten.

image

Sollte noch ein WSUS im Einsatz sein, kann man das über diesen verhindern, befindet sich aber immer noch im Bereich eines Workarounds.

Die Lösung bis es hoffentlich einen Fix dafür gibt

Eine mögliche Lösung ist die Aktivierung der Netzwerkerkennung auf dem Server über ein GPO und da bei mir auf dem Server immer alles in Englisch ist, geht es auch mit den Einstellungen in Englisch weiter.

image

Dazu habe ich eine neue GPO angelegt und zusätzlich die Gruppe der Domain Computers berechtigt (Security Filtering), die Authenticated Users sind per Default schon berechtigt. Für Small Business Umgebungen, wo es nur einen einzigen Server gibt (der damit zwangsweise auch Domain Controller ist), muss die Gruppe der Domain Controllers berechtigt werden.

Dazu habe ich ein neues GPO erstellt und zusätzlich die Gruppe der Domain Computers berechtigt (Security Filtering), die Authenticated Users sind per Default bereits berechtigt. Für Small Business Umgebungen, wo es nur einen Server gibt (der damit zwangsläufig auch Domain Controller ist), muss die Gruppe der Domain Controller berechtigt werden.

image

Nun muss die folgende Einstellung in der GPO gesetzt werden.

# Enable Select network detection on the server
Computer Configuration \ Policies \ Administrative Templates \
Windows Components \ Remote Destop Services \
Remote Desktop Session Host \ Connections \
Select network detection on the server = Enabled \
Select Network Detect Level = Use both Connect Time Detect and Continuous Network Detect

Was dann wie im 3ten Screenshot oben aussieht.

Auf den betroffenen Systemen dann einen gpupdate /force durchführen, den man (weil ja RDP nicht geht) auch über Enter-PSsession durchführen kann.

Update (geht diesesmal schneller als sonst Smile ) 17.02.2025

Das Setzen der Policy funktioniert natürlich auch auf einem Windows 11 PC OHNE Domänenzugehörigkeit. Dazu einfach gpedit als Administrator öffnen und den Wert wie folgt setzen.

image

Damit habe ich auch die Einstellungen in deutscher Sprache geliefert!

Enjoy it, b!

Aber das

cc

Surface Laptop 3, AMD RX Vega Driver (dunkles Display)

Ich besitze und verwende immer noch ein Surface Laptop 3 mit einem AMD Ryzen™ 7 3780U Mobile Prozessor und einer Radeon™ RX Vega 11 Graphics Microsoft Surface® Edition Grafikeinheit.

Microsoft selbst stellt seit einiger Zeit keine neuen Treiber mehr für diese Einheit zur Verfügung, von AMD sind jedoch aktuelle und verbesserte Treiber erhältlich. Wird der AMD-Treiber installiert, kann es je nach Version dazu kommen, dass die Helligkeit des Displays bei ca. 20% bleibt und auch nicht korrigiert werden kann. Auf reddit gibt es eine Reihe von Threads zu diesem Problem.

Die Lösung besteht darin, nicht die neueste, sondern die Version 23.7.1 des Adrenalin-Treibers zu installieren. Dies scheint die letzte Version zu sein, in der das Verhalten nicht auftritt. Das Problem tritt dazu nicht nur beim Surface Laptop 3 sondern auch in der darauf folgenden Generation 4 auf.

Der folgende Link führt nicht nur zum Support-Artikel von AMD, sondern enthält auch einen Link zum Download des Treibers.

Mit diesem Treiber sind auch einige Probleme mit meinem RAW-Konverter und in der Bildbearbeitung verschwunden.

Abschließend wünsche ich allen ein frohes und gesundes neues Jahr.

Enjoy it, b!

Windows 11 | Change what opening the lid does

In Windows gibt es seit langem die Möglichkeit, ein Verhalten beim Schließen des Bildschirms (bei Notebooks) zu konfigurieren. Die Möglichkeiten sind sind im Control Panel / Power Options/ Change what closing the lid does vorhanden.

image

image

Nun wäre es natürlich sinnvoll, wenn es auch die Möglichkeit gäbe, das Verhalten beim Öffnen des Displays zu beeinflussen.

Da ich selbst ein Freund des Surface Laptop Studio bin, habe ich hier einen Punkt der mich wirklich stört. Wenn ich ein bisschen Yoga auf dem Display machen will, dann geht das Ding meistens an und das ist ärgerlich, vor allem wenn Hello mich begrüßt hat und ich dann aus Versehen eine Reihe von Fenstern, Apps und so weiter öffne, schließe oder was auch immer damit mache.

Aber mit ein wenig Akrobatik in der Eingabeaufforderung kann man auch dieses Verhalten ändern.

:: Add Lid open action to the current Powerplan - ## THE POWER OF DARKNESS ##
powercfg -attributes SUB_BUTTONS 99ff10e7-23b1-4c07-a9d1-5c3206d741b4
:: Query the Powerplan if Lid-Option is there
powercfg /q | findstr /i "99ff10e7"
 :: Set Lid open action to 0
REM powercfg -SETACVALUEINDEX {guidPlan-New} {guidSubgroup-Display} {guidPowerSetting-Brightness} 0
REM powercfg -SETACVALUEINDEX {guidPlan-New} {guidSubgroup-Display} {guidPowerSetting-Brightness} 0

powercfg -SETACVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 4f971e89-eebd-4455-a8de-9e59040e7347 99ff10e7-23b1-4c07-a9d1-5c3206d741b4 0
powercfg -SETDCVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 4f971e89-eebd-4455-a8de-9e59040e7347 99ff10e7-23b1-4c07-a9d1-5c3206d741b4 0

Vor dem Setzen des Wertes sieht die Einstellung wie folgt aus.

image

Danach stehen die beiden Werte der Power Settings auf 0:

  • Current AC Power Setting Index: 0x00000000
  • Current DC Power Setting Index: 0x00000000

image

Hier noch die Befehle für die Eingabeaufforderung, welche möglicherweise angepasst werden müssen. Dieser Artikel ist dabei eine große Hilfe.

Enjoy it, b!

Windows 11 24H2 Downloads verfügbar

Microsoft hat den Download der ISO-Dateien für Windows 11 aktualisiert und stellt damit die neue Version Windows 11 24H2 zur Verfügung. Die ISO-Dateien sind nicht aktuell, es muss zumindest KB5043080 (2024-09 Cumulative Update for Windows 11 Version 24H2) nachinstalliert werden.

image

Außerdem und “highly recommended” ist das Update von Surface-Devices, am besten schon im Vorfeld.

Happy upgrade, b!

Windows 11 Hyper-V VM kann nicht gelöscht werden

Wenn das Hyper-V Management eine VM anzeigt, die nicht mehr administriert werden kann, dann handelt es sich um übrig gebliebene Fragmente. Wurde die VM z.B. aus dem Dateisystem gelöscht und wie in diesem Fall Hyper-V sogar deinstalliert, so taucht die VM nach einer erneuten Installation von Hyper-V wie ein Zombie wieder auf.

Untitled-1

Das Problem konnte ich auf einfache Weise mit der Eingabeaufforderung (als Administrator gestartet) lösen.

image

Nach einem Neustart des Hyper-V Managements war die VM nicht mehr vorhanden. Das Beenden der vmms.exe war natürlich nicht die feine Art und so empfiehlt es sich, den Rechner neu zu starten, bevor Hyper-V wieder verwendet wird.

Untitled-2

Enjoy it, b!

UAC | Skripte unter Windows

Einleitung

Die Benutzerkontensteuerung (User Account Control, UAC) ist ein wichtiger Bestandteil der Windows-Sicherheit. UAC reduziert das Risiko von Malware, indem es die Fähigkeit von bösartigem Code einschränkt, mit Administratorrechten ausgeführt zu werden.

Mit UAC muss jede Anwendung, die das Administrator-Zugriffstoken benötigt, die Zustimmung des Endbenutzers einholen. Die einzige Ausnahme ist die Beziehung zwischen übergeordneten und untergeordneten Prozessen. Untergeordnete Prozesse erben das Zugriffstoken des Benutzers vom übergeordneten Prozess. Der übergeordnete und der untergeordnete Prozess müssen jedoch die gleiche Integritätsstufe haben.

UAC in Skripten unter Windows

Gelegentlich, aber dann wirklich problematisch, wird während der Ausführung eines Skripts eine Bestätigung für die Ausführung eines Befehls oder einer Anwendung angefordert. Als Beispiele seien hier cmd.exe, diskpart.exe und regedit.exe genannt.

Befindet man sich im interaktiven Modus, bestätigt man den Dialog und die Verarbeitung wird fortgesetzt.

cmd-uac

Will man das Skript aber ohne Interaktionen (zum Beispiel remote) ausführen, muss man irgendwie um diese Dialog herumkommen.

PowerShell und die Eingabeaufforderung

Wenn wir über Skripting unter Windows reden, gibt es hauptsächlich Powershell und die Eingabeaufforderung, da beide in neueren Windows Versionen vorhanden sind und nicht zusätzlich installiert werden müssen.

Es gibt eine Reihe von meist freien Utilities und auch Workarounds um mit dem Problem umzugehen, soweit ich das aber vermeiden kann will ich keine 3rd-Party Utilities einsetzen (zumal diese dann im Netzwerk verteilt und auch gewartet werden müssen) und eine Deaktivierung der UAC kommt für mich nicht in Frage.

Microsoft hat hier in Windows selbst eine Lösung eingebaut, die bei mir sowohl in der Eingabeaufforderung (cmd.exe) als auch in der PowerShell sehr gut funktioniert.

Es gibt nämlich die Möglichkeit über eine Umgebungsvariable einen RunAsInvoker zu konfigurieren.

Um beispielsweise regedit.exe ohne UAC-Abfrage zu starten, verwendet man in der PowerShell folgenden Code:

:: Setzen des RunAsInvoker in PowerShell
[Environment]::SetEnvironmentVariable("__COMPAT_LAYER", "RunAsInvoker")

image

In der Eingabeaufforderung kann dagegen dieser Code verwendet werden.

:: Setzen des RunAsInvoker in der Eingabeaufforderung
set __COMPAT_LAYER=RunAsInvoker

image

Happy Skripting und Enjoy it, b!