So fügen Sie den zuletzt angemeldeten Benutzer zur Computerbeschreibung in Active Directory hinzu

Ja, Informationen in der Beschreibung von AD-Computerobjekten zu speichern ist zwar nicht neu, aber ungemein praktisch, wenn man Hardware-Details, den zuletzt angemeldeten Benutzer oder sogar den Namen des Domänencontrollers griffbereit haben möchte. Das Problem ist nur: Manuelles Eintragen ist nicht praktikabel, insbesondere bei Hunderten oder Tausenden von Rechnern. Die Automatisierung mit PowerShell vereinfacht die Arbeit erheblich, und die Einrichtung einer Gruppenrichtlinie zum Ausführen dieser Skripte beim Anmelden sorgt dafür, dass die Daten aktuell bleiben. Allerdings muss man die Berechtigungen im Auge behalten – Benutzer können die Informationen überschreiben, wenn die Berechtigungen nicht ausreichend eingeschränkt sind. Insgesamt ist es aber eine praktische Methode, manuelle Einträge dynamisch und aktuell zu halten, ohne großen Aufwand.

So beheben und automatisieren Sie die Aktualisierung von Computerinformationen in Active Directory mithilfe von PowerShell

Aktualisieren Sie die Beschreibung Ihrer Computer mit PowerShell

Diese Methode eignet sich hervorragend, um Hardware-Details wie Hersteller, Modell oder Seriennummer im AD-Beschreibungsfeld anzuzeigen – praktisch bei der Fehlersuche oder um sich schnell einen Überblick zu verschaffen, ohne die Hardwareinventarliste durchsuchen zu müssen. Sie kommt zum Einsatz, wenn die Beschreibung fehlt oder aktualisiert werden muss. Das Skript stellt eine Verbindung zu Active Directory her, findet den aktuellen Computer und aktualisiert dessen Beschreibung mit den lokal erfassten Werten (z. B.über WMI).In manchen Konfigurationen funktioniert dies nur auf dem Computer, auf dem das Skript ausgeführt wird. Um alle Computer remote zu aktualisieren, ist ein anderer Ansatz erforderlich (mehr dazu später).Nach dem Ausführen des Skripts aktualisieren Sie die ADUC-Konsole – die Informationen sollten nun angezeigt werden, idealerweise korrekt und aktuell.

Das Kernskript macht Folgendes: Es verwendet die DirectoryServices. NET-Klasse, um eine Verbindung zu AD-Computerobjekten herzustellen und diese zu ändern. Der Befehl sieht in etwa so aus (Hinweis: Möglicherweise müssen Sie die LDAP-Pfade an Ihre Domänenkonfiguration anpassen):

$ComputerSearcher = New-Object DirectoryServices. DirectorySearcher $ComputerSearcher. SearchRoot = "LDAP://DC=yourdomain, DC=com" $ComputerSearcher. Filter = "(&(objectCategory=Computer)(CN=$computer))" $computerObj = [ADSI]$ComputerSearcher. FindOne().Path $computerObj. Put("Description", "$vendor|$Model|$SerialNumber") $computerObj. SetInfo() 

Wenn Sie auf Ihrem Rechner lieber gewohnte Cmdlets verwenden möchten, ist das Cmdlet „ Set-ADComputer“ aus dem Active Directory-Modul deutlich einfacher – allerdings muss das Modul dafür installiert sein (Teil von RSAT).So sieht das aus:

Set-ADComputer -Identity $computer -Description "$vendor|$Model|$SerialNumber"

Beachten Sie bitte, dass Sie zum Ausführen dieses Befehls wahrscheinlich ein Administratorkonto benötigen, das über Berechtigungen zum Ändern von Computerobjekten verfügt und auf dem das Active Directory PowerShell-Modul installiert sein muss.

Automatische Aktualisierung der Benutzerbeschreibung beim Benutzerlogin mithilfe von Gruppenrichtlinien

Soll dies bei jeder Anmeldung oder beim Hochfahren von Rechnern automatisch erfolgen, richten Sie eine Gruppenrichtlinie (GPO) ein. Das ist ganz einfach: Öffnen Sie gpmc.msc, erstellen Sie ein neues Gruppenrichtlinienobjekt, weisen Sie es der gewünschten Organisationseinheit (OU) zu und richten Sie anschließend unter Benutzerkonfiguration > Richtlinien > Windows-Einstellungen > Skripts (An-/Abmeldung) ein Anmeldeskript ein. Klicken Sie auf der Registerkarte „PowerShell-Skripts“ auf „Hinzufügen“ und wählen Sie Ihre Skriptdatei aus, z. B.FillCompDesc.ps1. Sie können auch Parameter wie „-ExecutionPolicy Bypass“ hinzufügen, um die Ausführungsrichtlinien nicht auf allen Rechnern manuell anpassen zu müssen.

Stellen Sie sicher, dass das Skript die Berechtigung zum Ändern von AD-Objekten besitzt. Sie können die Schreibberechtigung für die Computerobjekte in der Organisationseinheit (OU) einer bestimmten Gruppe oder einem bestimmten Benutzer delegieren, sodass jeder, der das Skript ausführt, seine Informationen aktualisieren kann, ohne die Berechtigungen anderer zu beeinträchtigen. Sobald die Gruppenrichtlinie angewendet wird und die Computer hochfahren, sollte sich Ihr Beschreibungsfeld mit Hardwareinformationen, dem letzten Benutzer oder anderen von Ihnen festgelegten Details füllen. Beachten Sie jedoch: Ohne die entsprechenden Berechtigungen können Benutzer Ihre Informationen überschreiben oder löschen. Dies ist natürlich ein Windows-Problem.

Hinzufügen von Informationen zum angemeldeten Benutzer und Domänencontroller

Angenommen, Sie möchten, dass die Beschreibung auch den aktuellen Benutzer und den Anmeldeserver anzeigt – das Hinzufügen ist einfach. Sie müssen lediglich die Skriptzeile anpassen, um Umgebungsvariablen wie folgt einzubinden:

$computerObj. Put("Description", "$vendor|$Model|$SerialNumber|$env:username|$env:LOGONSERVER")

Melden Sie sich ab und wieder an und überprüfen Sie dann das AD-Computerobjekt. Dort sollten nun Hardwareinformationen, der angemeldete Benutzer und der Domänencontroller, an dem er sich authentifiziert hat, angezeigt werden. Ich bin mir nicht sicher, warum das funktioniert, aber es ist ziemlich praktisch – insbesondere, wenn man schnell wissen möchte, wer was wo verwendet.

Um diese Informationen später zu analysieren und zu verwenden, können Sie die Beschreibung erfassen und sie wie folgt in Variablen aufteilen:

$ComputerName = 'PC-MUN22s7b2' ($vendor, $Model, $SerialNumber, $Username, $LogonServer) = ((Get-ADComputer -Identity $ComputerName -Properties description).description).split("|")

Und wenn Sie wissen möchten, wer an einem bestimmten Rechner angemeldet ist oder den aktuellen Benutzer in Ihrer Umgebung ermitteln möchten, können Sie Befehle wie die folgenden ausführen:

Get-ADComputer -Filter "description -like '*M. Becker*'" -Properties * | Select-Object Name, description | Format-Table

Im Grunde ist dies eine praktische Möglichkeit, Ihre Maschineninformationen stets aktuell und sichtbar zu halten – genau dort, wo Sie sie benötigen – ohne jedes Mal manuelle Aktualisierungen.