Aktive Computer im Active Directory

Für die Verlängerung von Lizenzen musste ich die Anzahl von Computern, die noch aktiv sind, ermitteln. Leider wurden zwar neue PCs stetig im Active Directory (AD) hinzugefügt, alte Computer-Konten aber einfach dort belassen.

Es bestand also die Notwendigkeit alle Computer zu finden die Ihr Passwort in den letzten 30 Tagen gewechselt hatten. Der Wechsel nach 30 Tagen ist der von Microsoft festgelegte Standard und kann über eine GPO geändert werden.

https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/domain-member-maximum-machine-account-password-age

Zur Auswertung macht es darum Sinn, hier nochmals einen Blick auf die Richtlinie zu werfen.

Geholfen hat mir dieser Einzeiler in PowerShell:

# Ermitteln der vorhandenen Computer im AD
Get-ADComputer -Filter {enabled -eq $true} -Properties * | select Name, DNSHostName, OperatingSystem, LastLogonDate, LastLogonTimestamp | FT Name, @{n='LastLogonTimeStamp';e={[DateTime]::FromFileTime($_.LastLogonTimeStamp)}} -A | Out-File c:\temp\pc.txt

Damit wird im Verzeichnis c:\temp eine Datei mit dem Namen pc.txt erstellt. Deren Inhalt entsprechend analysiert werden kann.

image

In diesem Fall, war der XX_WKS-5 seit März nicht mehr im Betrieb!

Enjoy it, b!

Windows Backup und alte nicht mehr vorhandene Sicherungen

Es ist mal wieder Zeit etwas über Windows Backup und seine Eigenheiten zu schreiben.

Gelegentlich laufen mir die Sicherungsplatten der Small Business Server voll und Windows Backup schafft es nicht die alten Sicherungen zu entfernen.

image

Windows Backup liefert neben wbadmin.exe noch eine Reihe von PowerShell Befehlen mit, die bei der Wartung und damit zu Behebung des Problems hilfreich sind.

# Löschen aller alten Backups bis auf die letzten 10
wbadmin delete backup -keepversions:10 -quiet

Der Aufruf funktioniert sehr gut, allerdings kommt er nicht mit Backups zurecht die nicht mehr erreichbar sind, sich also auf einer Offline-Platte befinden. Damit haben wir die Situation, dass die Backups auf der Platte sind und noch einen Eintrag im Katalog besitzen. Ist die Platte noch da, können die Backups problemlos gelöscht werden. Im Falle eines Defekts oder Verlusts geht das nicht und wbadmin liefert die folgenden Fehlermeldungen (grüner Kasten).

image

The operation to delete backup version … failed with error:
The specified media type is invalid.

Eine Bereinigung des Backup-Katalogs ist über zwei Wege möglich, zum einen bietet wbadmin die Möglichkeit explizit die Backup-Version (blauer Kasten oben) zu löschen, fordert hier aber zweimal die Bestätigung mit [Y]es. Die Verwendung der Option –quiet überspringt leider die optionale Nachfrage zur Löschung des Eintrags aus dem Katalog.

# Löschen von alten Backups über die Versions-ID
wbadmin delete backup -versions:09/20/2014-21:00

Alternativ und effektiver bewerkstelligt man die Aufgabe mit PowerShell.

# Löschen aller alten Backups bis auf die letzten 10
Remove-WBBackupSet -MachineName server.domain.tld -KeepVersions 10

Auch bei dem Aufruf von Remove-WBBackupSet kommt es zu Fehlermeldungen wegen des fehlenden Mediums, diese werden aber ignoriert und der Backup-Katalog bereinigt.

Die nun noch vorhandenen Versionen lassen sich mit Get-WBBackupSet anzeigen

# Anzeige der nun noch vorhandenen Backup Versionen
Get-WBBackupSet

Bis zum nächsten Mal.

Enjoy it, b!

Hyper-V, Umstellung und Konfiguration von Switch Embedded Teaming (SET)

Seit Windows Server 2016 bietet Hyper-V die Möglichkeit des Switch Embedded Teaming (SET). Dieser Blog beschreibt die Umstellung eines Hyper-V Hosts (Windows Server 2019) von normalen Teaming auf SET.

  1. https://redmondmag.com/articles/2020/03/17/hyperv-switch-embedded-teaming-1.aspx
  2. https://redmondmag.com/articles/2020/03/19/hyperv-switch-embedded-teaming-2.aspx

Da in der Regel auf Hyper-V Hosts VMs aktiv sind, sollten hier einige Vorsichtsmaßnahmen ergriffen werden.

  1. Shutdown aller VMs
  2. Für den Fall, dass eine VM automatisch startet muss diese Aktion ebenfalls deaktiviert werden
  3. Anlegen oder aktivieren eines lokalen Admins, der auch funktioniert Winking smile

Im ersten Schritt werden alle mit dem zu lösenden Team verbundenen Virtual Switches auf Internal oder Private Network umgestellt, nur dann lässt sich ein bestehendes Team löschen.

image

Die Umstellung ist temporär und damit verlieren die darauf laufenden VMs ihre Verbindung ins Netzwerk und werden darum wie in Punkt 1 oben geschrieben am besten heruntergefahren.

Der PowerShell Befehlt Get-NetLbfoTeam, zeigt die vorhandenen Teams an.

image

Beide Teams (also Team Ethernet 1 und Team Ethernet 2) werden nun gelöscht und zu einem SET verbunden.

# Löschen eines Teams
Remove-NetLbfoTeam -Name "Team Ethernet 1"
Remove-NetLbfoTeam -Name "Team Ethernet 2"
# Löschen aller Teams
Get-NetLbfoTeam | Remove-NetLbfoTeam

Hier sollte klar sein, dass damit auch die Netzwerkverbindung zum Hyper-V Host verloren geht. Ist ein DHCP-Server vorhanden, werden die Adapter von diesem neue Adressen bekommen, ansonsten kann nun nur noch der Zugriff über die Konsole oder ein ILO-Board erfolgen. Siehe hier Punkt 3 oben, wir brauchen dann einen funktionierenden lokalen Administrator.

Das SET wird nun über diesen Befehl eingerichtet.

# Konfiguration eines SET Switch embedded teams
New-VMSwitch -Name "_ Network 172.16.16.0" -NetAdapterName "Ethernet","Ethernet 2","Ethernet 3","Ethernet 4" -EnableEmbeddedTeaming $true -AllowManagementOS $true

Was nicht wirklich gut aus der Microsoft Dokumentation von New-VMSwitch hervorgeht, ist die Beschreibung von –EnableEmbeddedteaming.

Bei mehr als einem Adapter, wird automatisch –EnableEmbeddedTeaming $true verwendet, bei nur einem Adapter –EnableEmbeddedTeaming $false. Soll also ein SET gebaut werden, der zu Beginn nur einen Adapter besitzt und irgendwann erweitert wird, dann muss unbedingt –EnableEmbeddedTeaming $true verwendet werden.

-AllowManagementOS $true ist notwendig, damit auch der Hyper-V Host den Adapter verwenden kann, wir also mit einem konvergierten Adapter arbeiten. Nur dann kann eine IP-Adresse darauf gebunden werden.

Danach kann mit sconfig wieder die korrekte / alte IP des Adapters gesetzt werden und im Hyper-V Manager steht dieser dann wie folgt zur Verfügung.

image

Damit sind wir fertig, leider nein … es können nämlich eine Reihe von Dingen schief gehen!

Bei einigen, nicht bei allen Umstellungen habe ich die folgende Meldung erhalten.

External Ethernet adapter ‚Intel(R) 82574L Gigabit Network Connection‘ is already bound to the Microsoft Virtual Switch protocol.

Dadurch lässt sich der Adapter nicht in das SET aufnehmen und bedarf einer zusätzlichen Behandlung. Wahrscheinlich auch mit PowerShell möglich, habe ich aber ncspbind den Vorzug gegeben.

Das Tool ist in dem folgenden KB-Artikel beschrieben:

Creating V-switches within the hyper-V environment fails

Der folgende Befehl löst dieses Problem:

nvspbind /u “AdapterName” 

Wenn ich mir nicht sicher bin, ob meine Adapter noch sauber funktionieren, gibt es die Möglichkeit diese komplett zurück zu setzen. Mit komplett meine ich komplett!!!!

netcfg –d

Danach hilft nur noch die Anmeldung über das ILO-Board und ein durchgeführter Neustart des Servers, nun kann ebenfalls der SET konfiguriert werden.

Mit einem Scanner, wie zum Beispiel dem Advanced IP-Scanner lassen sich IPs in einfach auffinden. Das Tool, habe ich bei solchen Umstellungen immer parat.

Enjoy it, b!

Windows 10 Version 2004

Mirosoft plant die Veröffentlichung von Windows 10 Version 2004 Ende Mai (so Günther Born auf dem Heise Newsticker). Alle die es nicht mehr erwarten können und eine MSDN-Subscription besitzen, können die ISO-Dateien schon jetzt herunterladen.

image

Sobald es die ISO auf bekanntem alternativem Weg gibt, lass ich es Euch wissen.

Für den Fall, dass eine Version des Windows Server Essentials (ab 2010 R2) zum Einsatz kommt, bitte diesen Link beachten.

Update 28.05.2020
Heute wurde die Windows 10 Version 2004 offiziell freigegeben, dazu auch Windows Server 2004. Das ISO von Windows 10 findet ihr unter diesem Link.Die hier beschriebene Anleitung funktioniert immer noch und auf Heise gibt es ein paar Infos dazu.

Enjoy it, b!

Windows Terminal ist fertig

Zur Microsoft Build 2020, wurde das Windows Terminal in der Version 1.0 veröffentlicht. Der Download erfolgt über den Microsoft Store.

image

Mit nur 6,26MB erfolgt der Download recht zügig und auf den ersten Blick liefert das Windows Terminal eine Multi-Tab (mehrere Registerkarten) fähige PowerShell-Konsole.

image

Die Einstellungen basieren auf einer JSON-Konfigurationsdatei (settings.json), die sich zum Beispiel mit Visual Studio Code anpassen lässt.

image

Auch besteht nun die Möglichkeit eines schnellen Wechselns zwischen der Eingabeaufforderung, PowerShell und der Azure Cloud Shell. Die neuen Features im Überblick sind wie folgt.

  • Mehrere Registerkarten
  • Vollständige Unicode-Unterstützung
  • GPU-beschleunigtes Textrendering
  • Vielfältige Anpassungen
  • Geteilte Arbeitsbereiche

Weitere Informationen liefert Microsoft direkt auf seiner Webseite und natürlich auf GitHub.

Enjoy it, b!

Fix: Windows 10 Update 2004 und der Essentials Connector

Info: Bitte die Update Historie unten lesen, ursprünglich wurde das Script für Windows 10 Version 1903 entwickelt und seitdem immer wieder getestet und aktualisiert. Für alle die nicht lesen wollen, die aktuelle Version des Scripts befindet sich hier .

Zumindest aus Sicht des Windows Server Essentials Connector ist jedes Update von Windows 10 spannend. Die seit gestern offiziell verfügbaren Version 1903 für Windows 10 versäumt es beim Upgrade, die für die Ausführung des Windows Server Essentials Connectors notwendigen Dienste (Services) zu migrieren. Die sind nach dem Update nicht mehr vorhanden.WSE-1903

Damit ist der Windows 10 Client nicht mehr in der Lage sich am Windows Server Essentials an zu melden um seinen Status zu kommunizieren oder eine Sicherung durch zu führen. Im Dashboard des Server erscheint der Client Offline.

image

Damit das wieder klappt, müssen die Services hergestellt werden. Das geht am einfachsten durch das folgende Script, welches die Services in Form von REG-Dateien in die Registry importiert. Im Anschluss, nach einem Neustart funktioniert der Connector ohne Probleme.

image

Das Script und die dazu notwendigen REG-Dateien sind in der ZIP Datei als Download verfügbar. Für eventuelle Schäden lehne ich jegliche Haftung ab.

  • Die Ausführung des Scripts muss in einer PowerShell-Session als Administrator erfolgen
  • Script und REG-Dateien müssen zwingend im gleichen Verzeichnis liegen
  • Das Script prüft ob es sich um den Version 1903 oder höher handelt. Nur dann werden die REG-Dateien in die lokale Registry des Windows 10 Clients eingetragen

Möglicher Weise können Probleme mit der PowerShell Execution-Policy auftreten, dazu wende ich den folgenden Workaround an.

Get-Content -Path .\Fix-WSeLaunchpad-1903.ps1 | PowerShell.exe -NoProfile -

image

Update 30.05.2019:
Inzwischen ist es mir gelungen, dass Microsoft dieses Problem als Bug (Fehler) betrachtet und an einem Fix arbeitet. Wie schnell damit zu rechnen ist, kann ich nicht sagen melde mich aber wenn ich weiteres weiß.

Update 15.07.2019
Das Script, und damit der Workaround funktionieren mit dem WSE 2016 und dem WSE 2012R2, dass mag im Blog nicht richtig rüber gekommen sein. Für die anderen Versionen (WSE 2011 und 2012) müsste man die Registry-Einträge des Connectors vergleichen.

Update 21.07.2019
Ich hatte nun die Gelegenheit Windows 10 Clients an einem SBE 2012 (ohne R2) um zu stellen und muss gestehen, dass das Script hier definitiv nicht funktioniert. Der Clientconnector dort verwendet wohl andere Einträge in der Registry als unter Windows Server 2012R2/2016.

Update 18.11.2019
Mit dem Update auf Windows 10 1909 gibt es keine Probleme, dass liegt an der von Microsoft geänderten Bereitstellung. Dazu werden vornehmlich nur Features freigeschaltet, die schon in früheren Versionen vorhanden waren.

Update 11.12.2019
Wird ein ISO mit Windows 10 1909 für einen Upgrade, zum Beispiel von Windows 7 auf Windows 10 verwendet. Schlägt der Bug wieder zu und das bisherige Script funktioniert leider nicht. Darum habe ich eine kleine Änderung durchgeführt und eine Version erstellt (steht nun auch in der History), die mit 1903 und neuer funktioniert.

Update 15.05.2020
Auch mit Windows 10 2004 tritt dieses Problem auf und kann über das Script behoben werden. Ich habe an diesem eine Reihe kleinerer Korrekturen durchgeführt und hier zum Download bereitgestellt.


Enjoy it, b!

Reparatur von OneDrive for Business

Nicht oft, aber gelegentlich kommt es vor das OneDrive for Business nicht mehr funktionieren will. Mit dem folgendem Befehl war es mir bisher immer möglich den Dialog zur Konfiguration von OneDrive for Business zu starten und abschließend wieder zur Arbeit zu bewegen.

%localappdata%\Microsoft\OneDrive\OneDrive.exe /client=MicrosoftSPO

Enjoy it, b!

Hyper-V Move-VM schlägt fehlt

Eigentlich ist das ein alter und bekannter Fehler. Das Verschieben einer VM unter Hyper-V schlägt fehl. In diesem Fall bin ich mit Powershell auf das Problem gestoßen. Nur das die Fehlermeldung nicht besonders sprechend ist.

image

Das Problem war einfach, dass ich Integration Services Setup Disk an der VM gemounted hatte.Genau genommen ist das auch keine Disk sondern ein ISO, dass sich auf jedem Hyper-V Host im Verzeichnis \Windows\System32\vmguest.iso befindet. Da dieses ISO sowohl am Quell- als auch am Ziel-Server vorhanden ist, kommt es hier zu einem Problem. Dismount von der VM und der Spuk ist vorbei, die Migration klappt. Der VMM von Microsoft hat hier übrigens das gleiche Problem.

Die Lösung ist also, dass mit der VM verbundene ISO zu entfernen. Mit PowerShell kann man das über den folgenden Befehl erfolgen.

Get-VMDvdDrive -VMName _vm1.testlab.local | Remove-VMDvdDrive

Ein ISO fügt man übrigens mit dem folgenden Befehl hinzu.

Add-VMDvdDrive -VMName _vm1.testlab.local -Path C:\Windows\system32\vmguest.iso

Enjoy it, b!

WSUS Offline Update 12

Mit dem Update auf die Version 12 von WSUS Offline, bekommt dieses für mich sehr nützliche Tool die Möglichkeit die Windows 10 Versionen besser zu steuern.

image

Dabei ist es sinnvoll, wenn gelegentlich das Zielverzeichnis (target directory) zu löschen und vollständig neu zu laden. Besonders dann, wenn man auf die eine oder andere Version von Windows 10 nicht mehr angewiesen ist.

Das Update selbst erfolgt automatisch, oder kann von der Homepage heruntergeladen werden.

image

Mit dem Update wurde auch der Support für Windows 7 und den Server 2008R2 entfernt. Hier ein Auszug aus dem Release Notes:

  • Support removed for Windows 7 and Server 2008(R2) since Microsoft discontinued support for it on January 14th, 2020
  • Support removed for Microsoft Security Essentials, Windows 7 Defender, Service Packs, Remote Desktop Client and Silverlight (download switches /includemsse and /excludesp, update switches /instmsse, /instmssl and /updatetsc)
  • Support removed for Windows 10 version 1703 since Microsoft discontinued support for it on October 8th, 2019
  • Split Windows 10 download into version specific parts

Enjoy it, b!

ASUS UX301L und Windows 10 1903

Nach einer Neuinstallation eines ASUS UX301L “Phantom-Notebook” hatte ich ein unbekanntes Gerät im Geräte-Manager.

  • PCI-Datensammlungs- und Signalverarbeitungscontroller

image

Leider war dafür in Windows Update kein passender Treiber zu finden. Mein erster Versuch mit der ASUS-Support Webseite ging gleich ins Leere, denn ASUS will anscheinend dieses Notebook niemals gebaut haben Winking smile Dort findet sich ein ASUS Zenbook UX301LA, aber kein UX301L und damit auch keine Treiber. Auch passen die von ASUS gelisteten Spezifikation nicht 100% zu dem UX301L, was zum Beispiel zwei M.2 Slots mit 60mm Baulänge aufweist.

Erfolgreich war ich letztendlich mit der Suche nach der Hardware-ID, denn anscheinend sind nicht nur ASUS-Benutzer auf der Suche nach diesem Treiber sondern auch Besitzer von Dell, HP und Lenovo Notebooks.

Letztendlich habe ich mir von ASUS einen Treiber unter diesem Link geladen, er ist zwar für ein anderes Modell sollte aber nach Analyse der INF-Datei auch hier funktionieren. Im Englischen wird der Treiber wie folgt genannt:

  • Intel® Dynamic Platform and Thermal Framework Driver

image

Da es sich um eine ZIP-Datei handelte, habe ich diese entpackt und nach dem Treiber selbst gesucht, um eine Installation über irgendein Setup-Programm zu vermeiden.

Zur Installation habe ich direkt auf das Treiber-Verzeichnis verwiesen.image

Womit die Installation ohne Probleme funktioniert hat.

image

Bis zum nächsten Mal.

Enjoy it, b!