Die Aufgabenstellung

Neue Active-Directory-User werden standardmäßig (nicht nur von der SF Serververwaltung) mit einer Einstellung ​erzeugt, die es erlauben kann, dass das Konto ein leeres Kennwort hat (siehe auch https://blogs.technet.microsoft.com/pfesweplat/2012/12/10/do-you-allow-blank-passwords-in-your-domain/). Wie kann die SF Serververwaltung eingestellt werden, dass das sowohl bei neu angelegten als auch bei bereits existierenden Benutzern nicht erlaubt ist?

Die Lösung

Wenn Sie in der SF Serververwaltung Benutzerkonto-Eigenschaft suchen ausführen, werden Sie kein Attribut mit dem z.B. in PowerShell-Cmdlets wie Set-ADUser angebotenen Parameternamen PasswordNotRequired finden - es gibt nämlich kein solches. Stattdessen ist das ein einzelnes Bit in einem 32-Bit-Wert namens userAccountControl (siehe auch https://support.microsoft.com/de-de/help/305144/how-to-use-the-useraccountcontrol-flags-to-manipulate-user-account-pro). Gehen Sie bitte so vor:

  1. Wählen Sie Benutzerkonto-Eigenschaft suchen im Aufgabenblatt (oder Datei, Benutzerkonto-Eigenschaft... im Menü).

  2. Suchen Sie das Attribut userAccountControl und öffnen Sie es mit OK.

  3. Fügen Sie folgenden Code ein:

    ' Reset PasswordNotRequried to False by clearing the correct bit:
    value = value and (not 32)
    return true

  4. Wählen Sie dann rechts unten Extras, VB-Code prüfen... - dort sollte alles als gültig gemeldet werden. Falls nicht, prüfen Sie den Code nochmals oder kontaktieren Sie uns.
  5. Exportieren Sie den VB-Code ggf. zur Sicherheit über Benutzerkonto-Einstellungen exportieren in eine Datei. Wenn wir denselben Stand Ihres Codes bei uns haben sollen, mailen Sie uns diese Datei - so gibt es eine Sicherheitskopie mehr.
Wenn Sie fortan neue Benutzer anlegen oder existierende mit Benutzereinstellungen prüfen und setzen behandeln, wird die SF Serververwaltung leere Kennwörter für diese Benutzer verbieten.

Zur Erläuterung: Das Bit mit dem Dezimalwert 32 (binär also 100000) ist das besagte Bit, was diese Einstellung steuert. Der Befehl value = value and (not 32) stellt sicher, dass genau dieses Bit auf 0 gesetzt wird, der Rest der Bits dieses Wertes aber unverändert bleibt.

Voilà!
​​