Die Standardkonfiguration in Active Directory ist recht locker – Benutzer können sich praktisch an jedem in die Domäne eingebundenen PC anmelden. Das liegt daran, dass neue Benutzer automatisch der Gruppe „Domänenbenutzer“ hinzugefügt werden, die in der Regel Zugriff auf alle eingebundenen Rechner hat. Nicht optimal, wenn man die Kontrolle behalten oder bestimmte Benutzer auf ihre Arbeitsstationen beschränken möchte. Unternehmen legen daher oft weitere Einschränkungen fest, beispielsweise wer sich an welchen Rechnern anmelden darf oder welche Anmeldezeiten gelten. Die Einrichtung kann etwas aufwendig sein, aber es gibt verschiedene Möglichkeiten, je nachdem, wie detailliert oder skalierbar die Kontrolle sein soll.
So beschränken Sie Benutzer auf bestimmte Computer in Active Directory
Einem Benutzer die Anmeldung nur an bestimmten AD-Computern erlauben.
Das ist die klassische Methode: Man legt in den Benutzerkontoeigenschaften eine Liste der zulässigen Computer fest. Im Prinzip sagt man Windows damit: „Dieser Benutzer darf sich nur an diesen wenigen Rechnern anmelden.“ Das ist beispielsweise nützlich für einen Supportmitarbeiter, der nur an seinem festen Rechner arbeitet, oder für ein Testkonto, das nicht überall uneingeschränkt genutzt werden soll. Allerdings ist diese Methode etwas umständlich, und die Liste ist auf maximal 64 Einträge begrenzt (Windows muss es einem ja so kompliziert machen).Für kleinere Umgebungen mag das ausreichen, aber in größeren Netzwerken wird es schnell unübersichtlich.
- Active Directory-Benutzer und -Computer öffnen (Ausführen
dsa.msc) - Suchen Sie das Benutzerkonto, dessen Eigenschaften Sie einschränken möchten.
- Gehen Sie zum Tab „Konto“ und klicken Sie dann auf „Anmelden bei“
- Standardmäßig wird angezeigt: Der Benutzer kann sich anmelden an : Allen Computern
- Wählen Sie die folgenden Computer aus und fügen Sie die Hostnamen der zulässigen Rechner hinzu. Geben Sie hier den NetBIOS- oder DNS-Namen an. Platzhalter sind nicht zulässig, Groß-/Kleinschreibung wird nicht beachtet. Beachten Sie, dass maximal 64 Computer oder 1024 Zeichen möglich sind.
- Klicken Sie auf OK und speichern Sie alles.
Wenn sich nun jemand an einem Rechner außerhalb seiner Liste anmeldet, erhält er eine Fehlermeldung wie: Ihr Konto ist so konfiguriert, dass Sie diesen PC nicht verwenden können. Bitte versuchen Sie es mit einem anderen PC.
Und jetzt kommt der Haken: Wenn die Netzwerkauthentifizierung (NLA) aktiviert ist (was normalerweise der Fall sein sollte), blockiert diese Liste auch RDP-Verbindungen zu den entsprechenden Hosts. Versuchen Sie also, sich per RDP mit einem zulässigen Host zu verbinden? Statt zu funktionieren, erhalten Sie eine Fehlermeldung wie: „ Der Systemadministrator hat die Anzahl der Computer, mit denen Sie sich anmelden können, eingeschränkt. Versuchen Sie, sich an einem anderen Computer anzumelden.“ Typisch Windows, dass es einem das Leben unnötig schwer macht. Um das Problem zu beheben, müssten Sie den Quellcomputer zur Liste der vertrauenswürdigen Hosts hinzufügen oder die NLA für RDP deaktivieren – was nur im absoluten Notfall empfehlenswert ist.
Das Attribut „Benutzerarbeitsstationen“ in AD verstehen
Wodurch wird diese Liste gesteuert? Es handelt sich um das Attribut „userWorkstations“ der Benutzerobjekte. Es speichert die zulässigen Computernamen als kommagetrennte Liste. Sie können diese Liste über die Registerkarte „Attribut-Editor“ in ADUC anzeigen oder bearbeiten, allerdings ist die Anpassung für große Gruppen nicht ganz einfach.
Beachten Sie, dass dieses Attribut maximal 1024 Zeichen aufnehmen kann – das entspricht etwa 64 Computernamen mit jeweils 16 Zeichen Länge. Wenn Sie versuchen, mehr hinzuzufügen, erhalten Sie eine Fehlermeldung: „ Diese Eigenschaft ist auf 64 Werte beschränkt.“ Das in älteren AD-Versionen (vor 2012 R2) verwendete Attribut „logonWorkstation“ funktioniert im Prinzip gleich, ist aber mittlerweile veraltet.Weitere Informationen zum Attribut „logonWorkstation“ finden Sie hier.
Verwaltung zulässiger Computer mithilfe von PowerShell
Hier wird es etwas einfacher. Manuelles Bearbeiten kann mühsam sein, insbesondere wenn viele Hostnamen hinzugefügt werden müssen. Mit PowerShell lässt sich das per Skript automatisieren, was sehr praktisch ist. Zunächst muss das Active Directory-Modul installiert sein.
Um einen Hostnamen zur Liste eines Benutzers hinzuzufügen, führen Sie beispielsweise folgenden Befehl aus:
$allowPC = "ny-wks123" $user = "amsith" $current = (Get-ADUser $user -Properties userWorkstations).userWorkstations $newValue = if ($current) { "$current, $allowPC" } else { $allowPC } Set-ADUser $user -LogonWorkstations $newValue
Hinweis: Das Set-ADUserCmdlet aktualisiert tatsächlich das Attribut „userWorkstations“, obwohl es den veralteten Parameter „LogonWorkstation“ verwendet. Seltsam, aber es funktioniert.
Wenn Sie eine CSV-Datei mit einer Liste von Hostnamen haben, können Sie diese wie folgt in großen Mengen hinzufügen:
$ADusername = 'asmith' $complist = Import-Csv -Path "C:\PS\computers.csv" | ForEach-Object { $_. NetBIOSName } $comparray = $complist -join ", " Set-ADUser -Identity $ADusername -LogonWorkstations $comparray Clear-Variable comparray
Es ist recht einfach, eine Liste der zulässigen Maschinen massenhaft zu erstellen, insbesondere wenn dies ein wiederkehrender Bedarf ist.
Wie man die Anmeldezeiten in AD begrenzt
Das ist eine gute Vorgehensweise, wenn Sie sicherstellen möchten, dass sich Ihre Benutzer nur während der Arbeitszeit anmelden können.Öffnen Sie einfach die Benutzereigenschaften, gehen Sie zum Tab „Konto“ und klicken Sie dann auf „Anmeldezeiten“.
Die Benutzeroberfläche ist recht einfach – ein Kalender, in dem Sie erlaubte oder gesperrte Zeiten markieren können. Sobald diese Zeiten festgelegt sind, wird jeder Anmeldeversuch außerhalb dieser Zeiten blockiert, und die Benutzer erhalten eine Fehlermeldung wie: „ Kontobeschränkungen verhindern die Anmeldung dieses Benutzers…“.
Wenn Sie Einstellungen zwischen mehreren Konten kopieren möchten, kann PowerShell Ihnen dabei helfen. Beispielsweise könnten Sie die Anmeldezeiten eines Vorlagenbenutzers kopieren und auf eine Gruppe anwenden:
$template_user='k.muller' $template_hours= Get-ADUser -Identity $template_user -properties logonHours Get-ADGroupMember "mun-VPNUsers" | foreach { Set-ADUser $_.samAccountName -Replace @{logonHours = $template_hours.logonHours} }
Es gibt auch Gruppenrichtlinienoptionen (GPO), um Aktionen nach Ablauf der Anmeldezeit zu steuern, wie z. B.Sperren, Abmelden oder Trennen der Verbindung, sobald die Einschränkungen außerhalb der Geschäftszeiten greifen. Sie finden diese unter Benutzerkonfiguration > Administrative Vorlagen > Windows-Komponenten > Windows-Anmeldeoptionen.
Anmeldung über Gruppenrichtlinie blockieren (Flexibler als Benutzerarbeitsplätze)
Bei großen Umgebungen ist die alleinige Verwendung von Benutzerattributen nicht sehr skalierbar. Verwenden Sie stattdessen Gruppenrichtlinien, um Anmeldungen dynamischer zu verweigern. Gehen Sie zu Computerkonfiguration > Richtlinien > Sicherheitseinstellungen > Lokale Richtlinien > Zuweisung von Benutzerrechten. Dort finden Sie die entsprechenden Optionen:
- Lokale Anmeldung verweigern : Verhindert, dass sich bestimmte Benutzer/Gruppen überhaupt anmelden können.
- Lokale Anmeldung zulassen : Wer darf sich an dem Rechner anmelden?
Die übliche Vorgehensweise: Eine Sicherheitsgruppe mit eingeschränkten Benutzern erstellen, diese der Richtlinie „Lokale Anmeldung verweigern“ hinzufügen und die Gruppenrichtlinie auf die Ziel-Organisationseinheiten oder -Computer anwenden. So lassen sich große Gruppen einfacher verwalten oder Änderungen vornehmen, ohne einzelne Benutzerkonten bearbeiten zu müssen.
Wichtig: Ablehnungsrichtlinien haben Vorrang. Gehört ein Benutzer sowohl einer erlaubten als auch einer gesperrten Gruppe an, hat die Ablehnung Vorrang. Wenden Sie diese Richtlinien außerdem nicht domänenweit an, sondern beschränken Sie sie auf die relevanten Organisationseinheiten (OUs).Benutzer können weiterhin per RDP auf Rechner zugreifen, sofern sie die entsprechenden Berechtigungen haben; diese Einstellungen beschränken lediglich lokale Anmeldungen.
$rootOU = "OU=Users, OU=UK, DC=corp, DC=woshub, DC=com" $group = "corp\lon-users" Get-ADUser -SearchBase $rootOU -Filter * | ForEach-Object { Add-ADGroupMember -Identity $group -Members $_ }
In großen Umgebungen bietet die Kombination von Gruppenrichtlinienbeschränkungen mit Sicherheitsgruppen mehr Flexibilität. Bedenken Sie jedoch, dass das Verweigern von Anmelderechten ein mächtiges Werkzeug ist – setzen Sie es mit Bedacht ein und vermeiden Sie pauschale Richtlinien für kritische Konten oder Standardrichtlinien wie die Standarddomänenrichtlinie.
Zusammenfassung
Die Verwaltung der Anmelderechte in Active Directory ist nicht ganz einfach, aber mit einer Kombination aus Benutzerattributen, PowerShell und Gruppenrichtlinienobjekten (GPOs) durchaus machbar. Jede Methode hat ihre Stärken und Schwächen. Wählen Sie daher diejenige, die am besten zu Ihrem Umfang und den benötigten Sicherheitsanforderungen passt. Manchmal reichen manuelle Anpassungen für kleinere Umgebungen aus, in größeren Netzwerken spart jedoch ein skriptbasierter oder gruppenbasierter Ansatz enorm viel Zeit.
Zusammenfassung
- Verwenden Sie „Anmelden bei“ in den Benutzereigenschaften für kleinere Einschränkungen.
- Verwalten Sie das Attribut „userWorkstations“ mit PowerShell für Massenänderungen.
- Legen Sie die Anmeldezeiten über ADUC für zeitbasierte Beschränkungen fest.
- In größeren Umgebungen können Gruppenrichtlinienobjekte (GPOs) verwendet werden, um Anmeldungen zu verweigern oder Berechtigungen flexibler einzuschränken.