Доменный пользователь не входит в компьютер

Обновлено: 06.07.2024

При входе на компьютер с доменной учетной записью пользователь вводит свои учетные данные, которые передаются на ближайший контроллер домена для проверки подлинности. Если в сетевом окружении отсутствуют доступные контроллеры домена, то учетные данные проверить некому и в систему пользователь войти не сможет.

Чтобы избежать подобной ситуации, после успешного входа в систему учетные данные пользователя сохраняются в кэш на локальном компьютере. Это позволяет войти в систему с доменными учетными данными и получить доступ к ресурсам локального компьютера даже при отсутствии подключения к домену.

Примечание. Если быть точным, то кэшируются не сами учетные данные (логин и пароль), а результат их проверки. Еще точнее система хранит хэш пароля, модифицированный при помощи соли (salt), которая в свою очередь, генерируется на основе имени пользователя. Кэшированные данные хранятся в разделе реестра HKLM\SECURITY\Cache, доступ к которому имеет только система.

За возможность кэширования отвечает параметр реестра CashedLogonsCount, находящийся в разделе HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon. Этот параметр определяет количество уникальных пользователей, чьи учетные данные сохраняются локально. По умолчанию значение параметра равно 10, что означает следующее: учетные данные сохраняются для последних 10 пользователей, заходивших в систему, а при входе на компьютер одиннадцатого пользователя учетные данные первого пользователя будут перезаписаны.

Управлять значением CashedLogonsCount можно централизованно, с помощью групповых политик. Для этого необходимо создать новый GPO (или открыть существующий), перейти в раздел Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options и найти параметр Interactive logon: Number of previous logons to cache (in case domain controller is not available).

По умолчанию данный параметр не определен (Not Defined), соответственно на всех компьютерах используется дефолтное значение. Для его изменения надо включить параметр и указать необходимое значение в пределах от 0 до 50. Значение, равное 0, означает запрет на кэширование учетных данных, соответственно при этом значении вход в систему при недоступности контроллера домена невозможен.

Поскольку теоретически при наличии физического доступа к компьютеру у злоумышленника есть возможность воспользоваться сохраненными учетными данными, то для повышения безопасности рекомендуется отключать локальное кэширование. Исключение могут составить пользователи мобильных устройств (ноутбуков, планшетов и т.п.), которые пользуются устройствами как на работе, так и вне ее. Для таких пользователей количество кэшированных входов можно задать в пределах 1-2. Этого вполне достаточно для работы.

И в завершение пара важных моментов:

• Для того, чтобы учетные данные были закешированы необходимо, чтобы пользователь хотя-бы раз зашел на компьютер под своей доменной учетной записью при доступном контроллере домена.
• Довольно часто параметр CashedLogonsCount трактуют как количество входов в систему при отсутствии доступа к домену. Это не так, и если учетные данные пользователя закешированы локально, то он сможет заходить в систему неограниченное количество раз.

Вот что мне показал ipconfig /all на "пострадавшем" компе
Настройка протокола IP для Windows

Подключение по локальной сети - Ethernet адаптер:

DNS-суффикс этого подключения . . :
Описание . . . . . . . . . . . . : Marvell Yukon Gigabit Ethernet 10/10
0/1000Base-T Adapter, Copper RJ-45
Физический адрес. . . . . . . . . : 00-11-2F-62-A3-AF
Dhcp включен. . . . . . . . . . . : да
Автонастройка включена . . . . . : да
IP-адрес . . . . . . . . . . . . : 192.168.1.112
Маска подсети . . . . . . . . . . : 255.255.255.0
Основной шлюз . . . . . . . . . . : 192.168.1.1
DHCP-сервер . . . . . . . . . . . : 192.168.1.2
DNS-серверы . . . . . . . . . . . : 192.168.1.2
192.168.1.3
192.168.1.1
Основной WINS-сервер . . . . . . : 192.168.1.2
Дополнительный WINS-сервер. . . . : 192.168.1.3
Аренда получена . . . . . . . . . : 15 марта 2007 г. 9:15:42
Аренда истекает . . . . . . . . . : 23 марта 2007 г. 9:15:42

Добавлено:
dcdiag на серваке выдало следующее


Domain Controller Diagnosis

Performing initial setup:
Done gathering initial info.

Doing initial required tests

Doing primary tests

Running enterprise tests on : company.donbass
Starting test: Intersite
. company.donbass passed test Intersite
Starting test: FsmoCheck
. company.donbass passed test FsmoCheck

Per interface results:

Adapter : Local Area Connection

Netcard queries test . . . : Failed
NetCard Status: UNKNOWN

Host Name. . . . . . . . . : swetlana
IP Address . . . . . . . . : 192.168.1.2
Subnet Mask. . . . . . . . : 255.255.255.0
Default Gateway. . . . . . : 192.168.1.1
Primary WINS Server. . . . : 192.168.1.2
Dns Servers. . . . . . . . : 192.168.1.2
192.168.1.1


AutoConfiguration results. . . . . . : Passed

Default gateway test . . . : Passed

NetBT name test. . . . . . : Passed

WINS service test. . . . . : Passed


Domain membership test . . . . . . : Passed


NetBT transports test. . . . . . . : Passed
List of NetBt transports currently configured:
NetBT_Tcpip_
1 NetBt transport currently configured.


Autonet address test . . . . . . . : Passed


IP loopback ping test. . . . . . . : Passed


Default gateway test . . . . . . . : Passed


NetBT name test. . . . . . . . . . : Passed


Winsock test . . . . . . . . . . . : Passed


Redir and Browser test . . . . . . : Passed
List of NetBt transports currently bound to the Redir
NetBT_Tcpip_
The redir is bound to 1 NetBt transport.

List of NetBt transports currently bound to the browser
NetBT_Tcpip_
The browser is bound to 1 NetBt transport.


DC discovery test. . . . . . . . . : Passed


DC list test . . . . . . . . . . . : Passed


Trust relationship test. . . . . . : Skipped


Kerberos test. . . . . . . . . . . : Passed


Bindings test. . . . . . . . . . . : Passed


WAN configuration test . . . . . . : Skipped
No active remote access connections.


Modem diagnostics test . . . . . . : Passed

IP Security test . . . . . . . . . : Skipped

Note: run "netsh ipsec dynamic show /?" for more detailed information

Такие проблемы наблюдаются со всеми оффисами(2000,2003,ХР проф, ХР для малого бизнеса), только 97 работает нормально.

P.S. у пользователей Windows XP prof SP1,SP2, Windows 2000 prof и как правило стоит office ХР для малого бизнеса

. Эта проблемма видимо исходит из другой - основной уже несколько месяцев не работает репликация. в dns-ах были кое какие проблеммы . те что я нашел невооружонным глазом я поправил но всеравно при попытке репликации в логах пишет, что не может установить репликационную связь между серверами.
The attempt to establish a replication link for the following writable directory partition failed.
Directory partition:
%1
Source domain controller:
%4
Source domain controller address:
%2
Intersite transport (if any): - здесь у меня в логе вместо %5 ничего не записано
%5
This domain controller will be unable to replicate with the source domain controller until this problem is corrected.
User Action
Verify if the source domain controller is accessible or network connectivity is available.
Additional Data
Error value:
%6 %3

Еще ругается по поводу Kerberos key :
The kerberos client received a KRB_AP_ERR_MODIFIED error from the server %1. The target name used was %3. This indicates that the password used to encrypt the kerberos service ticket is different than that on the target server. Commonly, this is due to identically named machine accounts in the target realm (%2), and the client realm. Please contact your system administrator.

Структура сети следующая: Главный сервер с ГК запасной сервер в этом же помещении и еще один удаленный сервер который включен через WAN. Вся маршрутизация между удаленным и этими серваками работает через BSD gateway. В принципе все работает нормально связь и маршрутизация стабильная.

NSLOOKUP показывает все записи DNS имен правильно

Что интересно, на другом сервере который находится в этой же комнате запустил repadmin /showreps и он показал следующее:

В некоторых случаях требуется на компьютере, который включен в домен Active Directory войти не под доменной, а под локальной учетной записью. Большинству администраторов этот трюк знаком, но пользователи зачастую о нем не знают.

окно входа в систему Windows XP

Однако в последующих версиях Windows это раскрывающийся список из интерфейса входа в систему убрали. Вместо этого списка на экране входа в систему, появилась небольшая кнопка «Как я могу войти в другой домен» (How to log on to another domain). Если вы нажмете эту кнопку, появится следующий совет.

Type domain name\domain user name to sign in to another domain.
Type РKZ-ТZI01K1\local user name to sign in to this PC only (not a domain )

Чтобы войти в другой домен, введите имя_домена\имя_пользователя_домена
Чтобы войти только на этот компьютер (не в домен), введите РKZ-ТZI01K1\локальное_имя_пользователя

окно входа в систему в windows server 2012

вход под локальным админом на сервер в домене

К счастью, есть простой способ, который позволит вам войти в систему под локальной учеткой без указания имени компьютера.

Секрет в том, что Windows использует символ точки (.) в качестве псевдонима для локального компьютера. Поэтому, если в поле с именем пользователя поставить .\ , то система будет считать, что вы хотите авторизоваться под локальной учеткой. Соответственно изменится поле Sign in to, вместо имени домена там уже будет указано имя данного компьютера.


Теперь после .\ осталось набрать имя локальной учетной записи и пароль.


Этот небольшой трюк может использоваться для входа на доменный компьютер под локальной учетной записью во всех поддерживаемых версиях Windows, начиная с Windows Vista и заканчивая Windows 10 и Windows Server 2016.

Совет. Аналогичным образом можно авторизоваться на удаленном компьютере в рабочей группе под локальной учетной запись при доступе к общим файлам по протоколу SMB.

date

28.09.2021

directory

Active Directory, PowerShell, Групповые политики

comments

комментариев 19

По умолчанию при создании пользователя в AD он автоматически добавляется в группу Domain Users. Группа Domain Users в свою очередь по умолчанию добавляется в локальную группу Users на компьютере при добавлении его в домен AD. Это означает что любой пользователь домена может войти на любой компьютер в сети. В этой статье мы рассмотрим основные способы ограничения возможности входа пользователей на компьютеры домена.

Разрешаем вход только на определенные компьютеры в свойствах пользователя AD

В небольших доменах вы можете в свойствах каждого пользователя в AD ограничить возможность входа под его учетной на компьютеры домена. Например, вы хотите, чтобы конкретный пользователь мог входить только на свой компьютер. Для этого:

разрешить пользвоателю вход только на следующие компьютеры

  1. Запустите оснастку ADUC (Active Directory Users and Computers), выполнив команду dsa.msc.
  2. С помощью поиска найдите учетную запись пользователя, которому нужно разрешить вход только на определённые компьютеры и откройте его свойства.
  3. Перейдите на вкладку Account и нажмите кнопку Log On To.
  4. Как вы видите, пользователю разрешено входить на все компьютеры (The user can log on to: All computer). Чтобы разрешить пользователю доступ на определенные компьютеры, выберите опцию The following computers и добавьте в список имена компьютеров, но которые ему разрешено логиниться.

Примечание. Нужно указывать полное NetBIOS или DNS имя компьютера (знаки подстановки использовать нельзя), параметр регистронезависимый.

Изменяем атрибут LogonWorkstations с помощью PowerShell

Вручную ограничивать вход пользователей на компьютеры домена довольно утомительно. С помощью PowerShell можно автоматизировать это действия. Список компьютеров, на которые разрешено входить пользователю хранится в атрибуте пользователя в AD – LogonWorkstations. Например, наша задача разрешить определенному пользователю входить только на компьютеры, чьи имена содержатся в текстовом файле computers.csv

Скрипт может выглядеть так (сначала загружаем модуль AD для Powershell):

Import-Module ActiveDirectory
$ADusername = ‘aapetrov’
$complist = Import-Csv -Path "C:\PS\computers.csv" | ForEach-Object
$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

Ограничиваем вход на компьютеры с помощью GPO

В больших доменах использовать свойство пользователя LogonWorkstations для ограничения доступ пользователей к компьютерам нецелесообразно из-за ограничений и недостаточной гибкости. Как правило, чтобы запретить пользователям входить на некоторые ПК? используют групповые политики.

Можно ограничить список пользователей в локальной группе Users с помощью политики Restricted Groups (Windows Settings -> Security Settings), но мы рассмотрим другой вариант.

Есть две групповые политики, которые находятся в разделе Computer Configuration -> Policies -> Security Settings -> Local Policies -> User Rights Assignment (Конфигурация пользователя -> Политики -> Параметры безопасности -> Локальные политики -> Назначение прав пользователя):

  • Deny log on locally (Запретить локальный вход) – позволяет запретить локальный вход на компьютеры для определенных пользователей или групп. ;
  • Allow log on locally (Локальный вход в систему) – содержит список пользователей и групп, которым разрешено входить на компьютер локально.

Например, чтобы запретить пользователям определенной группы входить на компьютеры в некой OU, вы можете создать отдельную группу пользователей, добавить ее в политику Deny log on locally и назначить ее на OU с компьютерами, доступ к которым вы хотите ограничить.

политика Deny log on locally (Запретить локальный вход)

В больших доменах можно использовать комбинацию этих политик. Например, вы хотите запретить пользователям входить на компьютеры других OU.

Для этого в каждой OU нужно создать группу безопасности, куда нужно включить всех пользователей OU.

Совет. Группы можно автоматически наполнять пользователями из OU с помощью командлетов PowerShell Get-ADUser и Add-ADGroupMember таким скриптом:

Import-module ActiveDirectory
$rootOU = “OU= Users,OU=MSK,DC=winitpro,DC=ru”
$group = “corp\msk-users”
Get-ADUser -SearchBase $rootOu -Filter * | ForEach-Object

Затем нужно включить политику Allow log on locally, добавить в нее эту группу (+ различные администраторские группы: Domain Admins, администраторы рабочих станций и прочее) и назначить политику на OU с компьютерами. Таким образом вы разрешите только пользователям конкретного OU входить на компьютеры.

При попытке входа пользователя, которому не разрешен локальный вход, появится окно с предупреждением:

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.

The sign-in method you are trying to use isn’t allowed

Несколько важных моментов касательно данных политик:

    Не стоит применять данные политики, для ограничения доступа к серверам и тем более к контроллерам домена.

Читайте также: