Когда вы создаёте нового пользователя в Active Directory , он автоматически добавляется в группу Domain Users. Группа Domain Users в свою очередь по умолчанию добавляется в локальную группу Users на компьютере при добавлении его в домен AD . Это означает что любой пользователь домена может войти на любой компьютер в вашей сети. В этой статье мы рассмотрим, как ограничить вход пользователей на компьютеры домена и ограничить разрешенное время входа.
В свойствах ( атрибутах ) учетной записи пользователя Active Directory можно задать список компьютеров, на которые ему разрешено входить. Например, вы хотите, чтобы определенный пользователь мог войти только на свой компьютер. Для этого:
dsa.msc
;
dsac.msc
) и с помощью PowerShell вы можете разрешить пользователю входить более чем на 65 компьютер. Однако максимальное значение ограничивается типом данных атрибута Logon-Workstation в схема Active Directory (Octet String). В Windows Server 2016 + в этом атрибуте может содержаться до 8192 символов (в предыдущих версиях Windows Server 2003-2012 использовалось ограничение 1024 символов). Еще одна интересная особенность появляется, если вы ограничили пользователю список компьютеров разрешенных для входа с помощью атрибута LogonWorkstation.
При попытке подключится к удаленному компьютеру ( RDS ферме ) по RDP, вы можете получить ошибку:
The system administrator has limited the computers you can log on with.
Системный администратор ограничил количество компьютеров с которых вы можете войти в систему.
Для решения этой проблемы нужно добавить в список LogonWorkstation компьютер с которого (!!!) осуществляется RDP вход.
Вручную заполнять список компьютеров, на которые разрешено входить пользователю домена довольно утомительно. С помощью PowerShell можно автоматизировать это действие. Список компьютеров, на которые разрешено входить пользователю хранится в атрибуте пользователя в AD – LogonWorkstations . Например, наша задача разрешить определенному пользователю входить только на компьютеры, чьи имена содержатся в текстовом файле computers.csv (в этом примере в первой строке файла должно содержаться имя столбца – NetBIOSName).
Скрипт может выглядеть так (сначала загружаем модуль AD для Powershell ):
Import-Module ActiveDirectory
$ADusername = ‘aapetrov’
$complist = Import-Csv -Path "C:PScomputers.csv" | ForEach-Object {$_.NetBIOSName}
$comparray = $complist -join ","
Set-ADUser -Identity $ADusername -LogonWorkstations $comparray
Clear-Variable comparray
С помощью командлета Get-ADUser команды можно вывести список компьютеров, на которые разрешено входить пользователю:
Get-ADUser $ADusername -Properties LogonWorkstations | Format-List Name, LogonWorkstations
Либо можно посмотреть список компьютеров в консоли ADUC.
Чтобы добавить в список новый компьютер, воспользуйтесь такой командой:
$Wks = (Get-ADUser dvivannikov -Properties LogonWorkstations).LogonWorkstations
$Wks += ",newpc"
Set-ADUser aapetrov -LogonWorkstations $Wks
В свойствах учетной записи пользователя вы можете ограничить время входа учетной записи. Например, вы можете разрешить пользователю входить на компьютеры домена только в рабочие часы с 8:00 до 19:00.
Если вам нужно применить одинаковы ограничения Logon Hours для нескольких пользователей, проще всего использовать PowerShell. Сначала вручную настройте ограничения для одного пользователя, а затем используете значение его атрибута logonHours в качестве шаблона для других пользователей. Например, вы хотите ограничить время входа для группы удаленных пользователей:
$templateuser='a.khramov'
$templatehours= Get-ADUser -Identity $templateuser -properties logonHours
Get-ADGroupmember "msk-VPN_Users" |foreach {Set-ADUSer $_.samaccountname -Replace @{logonHours = $templatehours.logonHours} }
Если пользователь попытайся войти в компьютер за пределами разрешенных logonhours, он получит ошибку:
Account restrictions are preventing this user from signing in. For example: blank passwords aren't allowed, sign-in times are limited, or a policy restriction has been enforced.
В Windows нет встроенного функционала по принудительному завершению сессии пользователе, если его рабочее время закончено. Для гарантированного выполнения logoff
можно создать простое задание планировщика и распространить его через GPO.
Также обратите внимание на два параметра GPO в разделе to Computer configurations -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options.
При включении этих политик SMB сервера будут отключать подключения пользователей, чьи часы работы просрочены.
В больших доменах использовать свойство пользователя LogonWorkstations для ограничения доступа пользователей к компьютерам нецелесообразно из-за ограничений и недостаточной гибкости. Для более гибкого управления правилами запрета/разрешения входа на компьютеры используют групповые политики.
Можно ограничить список пользователей в локальной группе Users с помощью политики Restricted Groups (см. пример использования политик Restricted Groups из раздела Windows Settings -> Security Settings для добавления пользователей в локальную группу администраторов ). Но мы рассмотрим другой вариант.
Есть две групповые политики, которые находятся в разделе Computer Configuration -> Policies -> Security Settings -> Local Policies -> User Rights Assignment (Конфигурация пользователя -> Политики -> Параметры безопасности -> Локальные политики -> Назначение прав пользователя):
Например, чтобы запретить пользователям определенной группы входить на компьютеры в определенной Organizational Unit (OU), вы можете создать отдельную группу пользователей, добавить ее в политику Deny log on locally и назначить ее на OU с компьютерами, доступ к которым вы хотите ограничить.
В больших доменах можно использовать комбинацию этих политик. Например, вы хотите запретить пользователям входить на компьютеры других OU.
Для этого в каждой OU нужно создать группу безопасности, куда нужно включить всех пользователей OU.
Import-module ActiveDirectory
$rootOU = “OU= Users,OU=MSK,DC=remontka,DC=ru”
$group = “corpmsk-users”
Get-ADUser -SearchBase $rootOu -Filter * | ForEach-Object {Add-ADGroupMember -Identity $group -Members $_ }
Затем нужно включить параметр GPO Allow log on locally , добавить в него эту группу (+ различные администраторские группы: Domain Admins, администраторы рабочих станций и прочее) и назначить политику на OU с компьютерами. Таким образом вы разрешите входить на компьютеры только пользователям конкретного OU.
Обновите настройки GPO на клиентах. Теперь при попытке входа пользователя, которому не разрешен локальный метод входа , появится окно с предупреждением:
You cannot log on because the logon method you are using is not allowed on this computer. Please see your network administrator for more information.
Или
The sign-in method you are trying to use isn’t allowed. For more info, contact your network administrator.
Несколько важных моментов касательно данных политик:
Некоторые пользователи, экспериментируя с конфигурацией системы в окне msconfig могут столкнуться с ситуацией, когда после…
На сайте не раз публиковались обзоры программ, предназначенных для очистки или настройки последних версий Windows.…
При установке некоторых обновлений Windows 11, имеющих в названии «Предварительный просмотр накопительного обновления», многие пользователи…
Некоторые пользователи Windows 11, 10 и предыдущих версий системы могут столкнуться с ситуацией, когда исполняемые…
При установке обновлений Windows 11/10 некоторые пользователи могут столкнуться с ошибкой с кодом 0x800705b4 и…
Пользователи Windows 11 могут столкнуться с сообщением «Обслуживание вашей версии Windows окончено» (Your version of…