Windows 11 ohne TPM installieren

Ich migriere aktuell meinen Krempel, der im Moment auf diversen unterschiedlichen System läuft, auf ein TrueNAS Scale-System.
Leider unterstützt der darunterliegende HP ML10v2 noch kein TPM, sodass ich keine normale Windows 11-Installation einer virtuellen Maschine durchführen kann.

Lösung des Problems ist, im ersten Fenster der Windows-Installation die Tastenkombination [SHIFT] + [F10] zu drücken, um eine Eingabeaufforderung zu öffnen.

In der Eingabeaufforderung kann man nun per

REG ADD HKLM\SYSTEM\Setup\LabConfig /v BypassTPMCheck /t REG_DWORD /d 1

die TPM-Überprüfung des Windows-Setups deaktivieren, die Eingabeaufforderung schließen und anschließend Windows 11 ganz normal, nur ohne TPM, installieren.

Coolio!

Manuelles Aufräumen von Exchange Datenbanken

Da unser Exchange 2016 Standard ganz langsam vollläuft, wir keine Datenbanken mehr anlegen können, zum Glück aber am Anfang einer Migration zu Exchange-Online sind, habe ich ein wenig manuell aufgeräumt.

Als erstes schaute ich mir dabei den vorhandenen Datenbank-Whitespace innerhalb der jeweiligen Datenbank an. Hierfür gibts den Powershell-Einzeiler:

Get-MailboxDatabase -status | select name, databasesize, availablenewmailboxspace

Nun wusste ich, um welche Datenbank ich mich primär kümmern sollte. Also gleich mal die Top 50 Postfächer der jeweiligen Datenbank gezogen:

Get-MailboxDatabase %DBNAME% | Get-MailboxStatistics | Sort totalitemsize -desc | ft displayname, totalitemsize, itemcount | Select -first 50 >> C:\top50mailboxes.txt

Anhand der Top 50 dann Rücksprache mit den Abteilungsleitern gehalten, ob die Postfächer überhaupt noch benötigt werden, und falls einzelne nicht mehr benötigt werden, die dazugehörigen Benutzer und somit auch die Postfächer gelöscht. Es dauerte je nach Postfachgröße ein wenig, bis die Postfächer dann als getrennte Postfächer im Exchange angezeigt worden sind. Sobald dies der Fall war, konnte ich mit folgendem Befehl getrennte Postfächer endgültig löschen:

Get-MailboxStatistics -Database "%DBNAME%" | where {$_.DisconnectReason -eq "Disabled"} | foreach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState Disabled}

String in EventLog suchen

Und wieder ein Powershell-Einzeiler:

Get-WinEvent -FilterHashtable @{logname='$LogName'; ProviderName='Microsoft-Windows-Security-Auditing'} | where-object { $_.Message -like '*zu suchender String*'}

Automatischer Neustart von PCs per GPO

Wir mussten einige PC nachts automatisch neu starten lassen. Hierfür erstellte ich eine GPO und in dieser GPO in der Computerkonfiguration einen geplanten Task, der einfach die shutdown.exe in c:\windows\system32\ mit den Parametern -r -f -t 60 aufruft.

Problem war dann, dass der Task ausgeführt werden muss, ohne das ein Benutzer angemeldet ist. Die Ausführung des Tasks mit dem lokalen Administrator misslang, da hierfür ein Passwort mitgegeben werden müsste, was jedoch nicht mehr unterstützt wird. Laut gpresult /h schlug die Erstellung des geplanten Tasks mit 0x80070534 fehl. Weitere Erläuterungen dazu findet man bei direkt bei Microsft: https://docs.microsoft.com/en-us/archive/blogs/grouppolicy/passwords-in-group-policy-preferences-updated

Lösung war dann, den geplanten Task als SYSTEM auszuführen. Dabei funktioniert es jedoch nicht, den User VORDEFINIERT\SYSTEM über den Assistenten auszuwählen, sondern man muss explizit die SID des SYSTEM Accounts „S-1-5-18“ als Benutzerkonto eingeben.

Et voilà.

CPU Boost-Modus in Windows steuern

Mein schönes neues XPS 9305 boostet mir ab und zu zu hoch. Der Lüfter läuft an, kühlt die CPU wieder runter und das Spiel beginnt mit vielen offenen Tabs alle paar Minuten von vorn. Ich könnte jetzt das Notebook weniger / anders nutzen, aber meeeh.

Also dachte ich, ich könnte den Boost-Modus des i5 1135G7 irgendwie im Bios steuern. Aber es geht noch einfacher / besser!

REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\be337238-0d82-4146-a960-4f3749d470c7 /v Attributes /t REG_DWORD /d 0x00000002

in einer cmd mit Adminrechten ausführen und schon sollten in den erweiterten Energiespareinstellungen einige Optionen zur Steuerung des Bootverhaltens auftauchen! Was genau die einzelnen Punkte machen, weiß ich noch nicht. Sie funktionieren jedoch. Das XPS läuft nun komplett lautlos und hat immer noch mehr als genügend Leistung für die täglichen Aufgaben.

PGS Untertitel aus MKV entfernen

Da 4k-HDR-Transcoding mit PGS Untertiteln eine Qual ist und deutlich mehr Leistung benötigt, als mein Plex-Server mit seinem Core i3 7100t auf die Beine stellt, entferne ich im Moment mit mkvmerge, was Teil von MKVToolNix ist, die PGS Untertitel und ersetze sie durch externe SRTs von opensubtitles.com. Das ist zwar etwas aufwendig, da man passende Untertitel händisch suchen muss… aber besser, als die 4k-Videos nicht auf Nicht-4k-Bildschirmen gucken zu können.

Der Befehl lautet:

mkvmerge -o output.mkv -S input.mkv

Warum Output vor Input kommt, kann wohl nur der Entwickler verraten.

Datei-Änderungsdatum per Powershell ändern

Ich stand vor der Aufgabe, das „Zuletzt geändert“-Datum einer Datei zu ändern, da dieses bei einer einzigen Datei, warum und wie auch immer, der 30.09.2071 war.
Die Datei tauchte in allen Listen, wenn man nach Datum sortierte, stets ganz oben oder ganz unten auf, was den Kollegen einfach nur nervte.

Also schnell per Powershell die Dateieigenschaften angeschaut:

Get-ItemProperty -Path 'Dateipfad\Dateiname.Endung' | fl

Und WTF?

CreationTime : 05.10.2020 15:36:07
LastWriteTime : 30.09.2071 22:29:43
LastAccessTime : 28.01.2021 11:16:18

Da kann was nicht stimmen.

Als nächstes habe ich dann per

set-ItemProperty -Path 'Dateipfad\Dateiname.Endung' -Name LastWriteTime '2020-10-05 15:40:00'

LastWriteDate auf einen Zeitpunkt kurz hinter der Erstellung gesetzt und siehe da, der Benutzer kann nun die Datei auch richtig sortieren.

CreationTime : 05.10.2020 15:36:07
LastWriteTime : 05.10.2020 15:40:00
LastAccessTime : 28.01.2021 11:20:22

Konfiguration des Junk-E-Mail-Filters per GPO

Überall im Netz findet man eigentlich die Aussage, es reiche aus, die Option Benutzerkonfiguration > Richtlinien > Administrative Vorlagen > Microsoft Outlook (2016) > Outlook Optionen > Einstellungen > Junk-E-Mail > Pfad zur Liste ‚Sichere Absender‘ angeben zu aktivieren, um die Konfiguration des Junk-E-Mail-Filters vorzunehmen.

Dabei muss eine zeilengetrennte Text-Datei mit Domänen (angeführt vom @) oder einzelnen Adressen irgendwo zentral mit Benutzerzugriff abgelegt werden und schon sollten die Adressen auftauchen.

Tun sie jedoch nicht.

Anschließend dachte ich, die Lösung sei die Option Junk-E-Mail-Importliste überschreiben oder daran anfügen wäre die Lösung. Die Option kann jedoch nur aktiviert oder deaktiviert werden. Was zur Hölle, Microsoft? Man beantwortet keine Entweder-Oder-Frage mit Ja und Nein. Aktiviert man die Option, wird die lokal vom Benutzer selbst gepflegte Liste mit der zentral abgelegten Liste überschrieben. Deaktiviert man die Option, tut sich weiterhin nichts. Ugh.

Erst die Option Trigger zur Anwendung der Einstellungen für die Junk-E-Mail-Liste brachte die Erlösung und die in der Text-Datei definierten Domänen bzw. E-Mail-Adressen tauchten zusätzlich in der Junk-E-Mail-Liste der sicheren Absender im Outlook der User auf.

Microsoft, ey.

Jetzt ein Bier wär‘ OK 2020

Da das Appletree Garden Festival dieses Jahr ausfiel, weil ja irgendwas ist, sah sich die Party Neuguinea-Crew gezwungen, sich woanders zu treffen. So schlugen wir in Bad Zwischenahn in der nähe von Oldenburg unsere Zelte und Pavillons am Appletree-Wochenende auf.

Mit Luxus-Dixies, Musik, Festivalbändchen, Lagerfeuer, Fahnenappell und Hymne, Rackelhahn, Grill, Obstler und jede Menge leckerem Bier.