Anmeldedaten für Active Directory mit PowerShell überprüfen

    Möchte man feststellen, ob mit einem bestimmten Paar aus Benutzername und Kennwort die Anmeldung an einem ActiveDirectory möglich ist, dann kann man dies über PowerShell tun. Dazu muss man ein PrincipalContext-Objekt im Namespace System.DirectoryServices.AccountManagement anlegen. Er ist Bestandteil der Assembly-Bibliothek System.­DirectoryServices.­AccountManagement, die ihrereseits zur .NET 3.5-Laufzeit gehört.

    Die Library lässt sich einfach per Add-Type-Cmdlet laden (auf einem XP-Computer, auf dem nur .NET 2.0 installiert ist, wird es daher nicht funktionieren). Wurde das PrincipalContext-Objekt mit dem Namen der Domäne angelegt, kann die Gültigkeit eines Paares aus Benutzername und Kennwort über dessen ValidateCredentials-Methode überprüft werden.

    Einfache Variante des Credentials-Tests

    Die Funktion Test-Credentials verpackt den beschriebenen Aufruf so, dass der Test wie folgt durchgeführt wird:

    Test-ADCredentials -Username <Username> -Password "Kennwort" -Domain "<Fqdn>"

    Dass das Kennwort in dieser Aufrufvariante im Klartext übergeben wird, ist nur dem Wunsch nach Einfachheit geschuldet. Es sind drei weitere Zeilen erforderlich, um ein Kennwort über Tastatur als SecureString entgegenzunehmen und es als String-Objekt weiterzugeben:

    Damit kann die Funktion etwas sicherer aufgerufen werden:

    Keine Kommentare