Windows-Versionen im ActiveDirectory auslesen

Im Rahmen der Installation von Windows 11 auf allen PCs in der Domäne stellt sich die Frage auf welchen PCs schon Windows 11 installiert ist und auf welchen noch Windows 10 läuft. Da ich das Upgrade auf Windows 11 nicht per GPO deaktiviert habe, konnten die User das Update selbst durchführen.

In einem Forumposting habe ich eine sehr einfache Möglichkeit gefunden, diese Information mit PowerShell am Domain Controller aus dem ActiveDirectory auszulesen. Ich habe den Befehl dann noch um die Ausgabe der letzten Anmeldung ergänzt:

Import-Module activedirectory
Get-ADComputer -SearchBase 'OU=xxx,DC=xxx,DC=xxx' -Filter * -Properties OperatingSystem, lastLogonTimestamp |
Select-Object Name, OperatingSystem, @{Name='LastLogonDate'; Expression = {
    if ($_.lastLogonTimestamp) {
        [DateTime]::FromFileTime($_.lastLogonTimestamp)
    } else {
        "Never"
    }
}} | Sort-Object Name | Format-Table -AutoSize

wobei natürlich xxx jeweils durch die korrekten Werte für die gewünschte OU ersetzt werden müssen.