Technik

WSUS-Updates remote genehmigen

02. Februar 2021 · Anwendungen · andreas · Kein Kommentar

Soll das Skript, welches die WSUS-Updates genehmigt (oder ablehnt) nicht auf dem WSUS-Server selbst sondern auf einem anderen Server ausgeführt werden, scheitert dies zunächst mit der Fehlermeldung

Der Typ [Microsoft.UpdateServices.Administration.AdminProxy] wurde nicht gefunden.

Grund ist das Fehlen der benötigten Powershell-Cmdlets, welche zur Ausführung installiert werden müssen. Eine Suche im Internet führt meist in die falsche Richtung, nämlich zu Installationsanleitungen für die WSUS 3.0 SP2 Administration Console, welche aber für den unter Server 2019 verwendeten WSUS schon ein paar Tage zu alt ist.

Die benötigten Module lassen sich über den “Assistent zum Hinzufügen von Rollen und Features” installieren, hier ist unter “Features” der Punkt “Remoteserver-Verwaltungstools” / “Rollenverwaltungstools” / “Windows Server Upgrade Service-Tools” / “API- und PowerShell-Cmdlets” zu wählen.

Als letztes muß in dem Skript nur noch eine Zeile zum Zugriff auf den Remote-Server angepasst werden:

$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer($serverName, $useSecureConnection, $portNumber)

Der Aufruf der Funktion “getUpdateServer” wird um die drei selbsterklärenden Parameter “$serverName”, “$useSecureConnection” sowie “$portNumber” erweitert.


Virtualisierung unter Debian

28. Januar 2021 · Anwendungen · andreas · 1 Kommentar

Wird auf Windows-Clients oft VirtualBox als Desktop-Virtualisierungslösung eigesetzt, stellt man nach dem Wechsel auf Debian fest, daß VirtualBox seit Buster nicht mehr in den Paketquellen enthalten ist.

Das Debian-Wiki empfieht als Ersatzlösung das auf QEMU/KVM basierende Paket virt-manager, welches in den “normalen” Paketquellen enthalten ist und somit einfach installiert werden kann:

$ sudo apt install virt-manager

Nach dem ersten Aufruf poppt erst einmal ein Fenster “System policy prevents management of local virtualized systems” zur Eingabe des Kennwortes hoch. Wer dies vermeiden möchte, kann seinen Benutzer der Gruppe “libvirt” hinzufügen:

$ sudo usermod -aG libvirt $(whoami)

Anschließend kann eine virtuelle Maschine aufgesetzt (und verwendet) werden.

Vollständigen Beitrag lesen


Hinweis auf veraltete Beiträge

22. Januar 2021 · Anwendungen · andreas · Kein Kommentar

Problematisch bei Beiträgen zu Technik ist, daß sie meist ein Verfallsdatum haben. Was heute prima funktionert, kann bereits in der nächsten Softwareversion entweder an ganz anderer Stelle versteckt sein oder wurde komplett gestichen. So häufen sich auch hier im Blog die Kommentare von Lesern, die übersehen, daß ein mit “Windows 7” gekennzeichneter Beitrag unter Windows 10 wohl nur noch durch Zufall so nachvollziehbar sein wird.

Aus diesem Grund wird nach und nach in älteren Beiträgen ein entsprechender Hinweistext eingebaut. Um nicht die Beitragstexte selbst ändern zu müssen, wird dies über ein paar Zeilen Code in der “functions.php” realisiert:

function outdated_notification($content) { global $post; if (is_single()) { $isOutdated = get_post_meta(get_the_ID(), 'veraltet', true); if ($isOutdated) { $content = '<p class="outdated_notification">Der Inhalt ist veraltet!</p>' . $content; } } return $content; } add_filter('the_content', 'outdated_notification');

Der Code richtet einen Wordpress-Filter ein, der jedesmal, wenn der Inhalt eines Beitrags über die Funktion “the_content” angefragt wird, den Beitragsinhalt vor Verwendung durch die Funktion “outdated_notification” schickt.

Diese prüft zuerst, ob es sich um eine Einzeldarstellung des Beitrags handelt (“is_single()”) und im Erfolgsfall, ob für den Beitrag das Feld “veraltet” gesetzt wurde. Ist dies der Fall, wird ein HTML-Paragraph mit einem Hinweistext vor den Beginn des eigentlichen Beitragsinhalts gestellt.

Der oben skizzierte Code funktionert allerdings nur, solange der Inhalt über die Funktion “the_content” angefragt wird. Wird vom gewählten Thema hingegen die Funktion “get_the_content” verwendet, ist etwas mehr Bastelarbeit notwendig, denn hier sind keine Filter vorgesehen.


Javascript, Objekte, Werte und Referenzen

03. Januar 2021 · Programmierung · andreas · Kein Kommentar

Im Gegensatz zu einigen anderen Sprachen kopiert JavaScript bei einer Zuweisung lediglich bei der Verwendung primitiver Datenelemente den Wert der ursprünglichen Variablen. Bei allen anderen Datenstrukturen wird nur die Referenz kopiert, was zu unerwarteten und unerwünschten Ergebnissen führen kann.

var band = { name : 'Deep Purple', year : 1968, members : { vocals : 'Rod Evans', guitar : 'Ritchie Blackmore' } }

Wird einer zweiten Variablen der Wert der ersten Variable zugewiesen, so wird intern keine Kopie der Werte erzeugt, sondern lediglich die Referenz auf die Werte kopiert. Dies führt dazu, daß bei einer Änderung von “band2” auch “band” geändert wird.

var band2 = band; band2.year = 1969; console.log(band); { "name": "Deep Purple", "year": 1969, "members": { "vocals": "Rod Evans", "guitar": "Ritchie Blackmore" } }

Vollständigen Beitrag lesen


Bang & Olufsen Beoplay E8: guter Klang mit nervigen Konstruktionsfehlern

20. Dezember 2020 · Hardware · andreas · Kein Kommentar

Bereits seit einiger Zeit sind die Bang & Olufsen Beoplay E8 der ersten Generation für deutlich unter einem Drittel des ursprünglich veranschlagten Preises erhältlich und somit durchaus eine Überlegung wert, zumal Magazine wie z.B. Techstage den Klang loben:

Neutral eingestellt bietet sich ein sehr klares und detailliertes Klangbild auf High-End-Niveau

So gut der Klang auch ist, so unterirdisch präsentiert sich der Rest der Technik.

Bang & Olufsen Beoplay E8

Lediglich der rechte Ohrhörer ist als Master ausgelegt, der linke Ohrhörer ist ein dämlicher Slave, was sich vor allem im Bezug auf die Laufzeit als extrem nervig erweist. Die FAQ erklärt:

… If the earbuds are left outside the charging case, the left earbud will remain switched on and eventually lose its battery charge completely, while the right earbud switches off after 15 minutes.

Während sich der rechte Ohrhörer ohne Aktivität automatisch nach 15 Minuten abschaltet, bleibt der linke Ohrhörer so lange aktiv, bis er entweder zurück ins Etui gelegt wird oder sein Akku leer ist. Leider ist das noch nicht alles, denn

If the charging case does not have any battery charge, it will drain the battery of the left earbud.

falls der Akku des Etuis entladen ist, besteht keine Chance mehr, den linken Ohrhörer überhaupt abzuschalten. Im Gegenteil: beim Einsetzen des linken Ohrhörers wird diesem zusätzlich Energie vom Etui entzogen.

Wer bitte entwirft sowas?
Welche Qualitätskontrolle winkt sowas durch?

Im Vergleich hierzu fällt die große und träge Einstellungs-App mit Registrierungszwang und die instabile Funkverbindung, bei der ein einfacher Seitenblick beim Überqueren einer Straße schon zur Unterbrechung des Streamings ausreicht, fast nicht mehr ins Gewicht.