Использование локальных учетных записей (в том числе локального администратора) для доступа по сети в средах Active Directory нежелательно по ряду причин. Зачастую на многих компьютерах используются одинаковые имя и пароль локального администратора, что может поставить под угрозу множество систем при компрометации одного компьютера (угроза атаки Pass-the-hash). Кроме того, доступ под локальными учетными записями по сети трудно персонифицировать и централизованно отследить, т.к. подобные события не регистрируются на контроллерах домена AD.
Для снижения рисков, администраторы могут изменить имя стандартной локальной учетной записи администратора Windows (Administrator). Для регулярной смены пароля локального администратора на всех компьютерах в домене можно использовать MS LAPS (Local Administrator Password Solution). Но этими решениями не удастся решить проблему ограничения сетевого доступа под локальными учетными записями, т.к. на компьютерах может быть больше одной локальной учетки.
Ограничить сетевой доступ для локальных учетных записей можно с помощью политики Deny access to this computer from the network. Но проблема в том, что в данной политике придется явно перечислить все имена учетных записей, которым нужно запретить сетевой доступ к компьютеру.
В Windows 8.1 and Windows Server 2012 R2 появилась две новые группы безопасности (Well-known group) с известными SID. Одна включает в себя всех локальных пользователей, а вторая всех локальных администраторов.
| S-1-5-113 | NT AUTHORITYLocal account | Все локальные учетная запись |
| S-1-5-114 | NT AUTHORITYLocal account and member of Administrators group | Все локальные учетные записи с правами администратора |
Теперь для ограничения доступа локальным учетным записям не нужно перечислять все возможные варианты SID локальных учёток, а использовать их общий SID.
Данные группы добавляются в токен доступа пользователя при входе в систему под локальной учетной записью.
Чтобы убедится, что в Windows 10/Windows Server 2016 локальной учетной записи присвоены две новый группы
NT AUTHORITYLocal account (SID S-1-5-113)
и
NT AUTHORITYLocal account and member of Administrators group (SID S-1-5-114)
, выполните команду:
whoami /all

Эти встроенные группы безопасности можно исопльзовать и в Windows 7, Windows 8, Windows Server 2008 R2 и Windows Server 2012, установив обновление KB 2871997 ( обновление от июня 2014 г.).
Проверить, имеются ли данные группы безопасности в вашей Windows можно по их SID так:
$objSID = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-113")
$objAccount = $objSID.Translate([System.Security.Principal.NTAccount])
$objAccount.Value
Если скрипт возвращает NT AuthorityLocal account, значит данная локальная группа (с этим SID) имеется.
Чтобы запретить сетевой доступ под локальным учетным записями, с этими SID-ами в токене, можно воспользоваться политиками из раздела GPO Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> User Rights Assignment.
Запрет на вход через RDP для локальных пользователей и администратора
Политика Deny log on through Remote Desktop Services (Запретить вход в систему через службу с удаленного рабочего стола) позволяет указать пользователей и группы, которым явно запрещен удаленный вход на компьютер через RDP. Вы можете запретить RDP доступ к компьютеру для локальных или доменных учетных записей.
По умолчанию RDP доступ в Windows разрешён администраторам и членам локальной группы Remote Desktop Users.
Если вы хотите запретить RDP подключения только локальных пользователей (в том числе локальных администраторов), откройте локальной редактор GPO gpedit.msc (если вы хотите применить эти настройка на компьютерах в домене AD, используйте редактор доменных политик –
gpmc.msc
). Перейдите в указанную выше секцию GPO и отредактируйте политику Deny log on through Remote Desktop Services.
Добавьте в политику встроенные локальные группу безопасности Local account and member of Administrators group и Local account. Обновите настройки локальных политик с помощью команды: gpupdate /force.

Запрещающая политика имеет приоритет над политикой Allow log on through Remote Desktop Services (Разрешить вход в систему через службу удаленных рабочих столов). Если пользователь или группа будет добавлен в обоих политиках, RDP доступ для него будет запрещен.
Теперь, если вы попытаетесь подключиться к компьютеру по RDP, появится ошибка:
To sign in remotely, you need the right to sign in through Remote Desktop Services. By default, members of the Remote Desktop Users group have this right. If the group you’re in doesn’t have this right, or if the right has been removed from the Remote Desktop Users group, you need to be granted this right manually.

Чтобы войти в систему удаленно, вам нужно право на вход через службы удаленных рабочих столов. По умолчанию такое право имеют члены группы Администраторы. Если у вашей группы нет этого права или оно было удалено для группы Администраторы, попросите предоставить его вам вручную.
Запрет сетевого доступа к компьютеру по сети
Вы можете запретить сетевой доступ к компьютеру под локальными учетными данными с помощью политики Deny access to this computer from the network (Отказать в доступе к этому компьютеру из сети).
Добавьте в политику Deny access to this computer from the network локальные группы Local account и Local account and member of Administrators group. Также стоит всегда запрещать анонимный доступ и доступ под гостевым аккаунтом.
Для доменной среды рекомендуется с помощью этой политики полностью запретить доступ к рабочим станциям и рядовым серверам домена под учетными записями из групп Domain Admins и Enterprise Administrators. Эти аккаунты должны использоваться только для доступа к контроллерам доменам. Тем самым вы уменьшите риски перехвата хэша административных аккаунтов и эскалации привилегий.

После применения политики вы не сможете удаленно подключиться к этому компьютеру по сети под любой локальной учетной записью. При попытке подключиться к сетевой папке или подключить сетевой диск с этого компьютера под локальной учетной записью, появится ошибка:
Microsoft Windows Network: Logon failure: the user has not been granted the requested logon type at this computers.
При попытке установить RDP сессию под учетной записью локального администратора (.administrator) появится сообщение об ошибке.
The system administrator has restricted the types of logon (network or interactive) that you may use. For assistance, contact your system administrator or technical support.

Системный администратор ограничил типы входа в систему (сетевой или интерактивный), которые можно использовать. Обратитесь за помощью к системному администратору или в службу технической поддержки.

Важно. Если вы примените эту политику к компьютеру, который находится в рабочей группе (не присоединен к домену Active Directory), вы сможете войти на такой компьютер только локально.
Запретить локальный вход в Windows
С помощью политики Deny log on locally (Запретить локальных вход) вы можете запретить и интерактивный вход на компьютер/сервер под локальными учетными записями. Перейдите в секцию GPO User Rights Assignment, отредактируйте политику Deny log on locally. Добавьте в нее нужную локальную группу безопасности.
Будьте особо внимательны с запрещающими политиками. При некорректной настройке, вы можете потерять доступ к компьютерам. В крайнем случае сбросить настройки локальной GPO можно так.

Теперь, если пользователь или администратор попытается авторизоваться на компьютере под локальной учетной записью, появится сообщение.
The sign-in method you are trying to use isn’t allowed. For more info, contact your network administrator.

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

- Remove From My Forums
-
Вопрос
-
Доброго времени суток, дамы и господа! Ну удаётся создать сетевую папку в windows server 2016 ни через консоль, ни в powershell; все попытки тщетно заканчиваются ошибкой 1332: «Системная ошибка 1332.
Сопоставление между именами пользователей и идентификаторами безопасности не было произведено.»
пример синтаксиса команд: net share Public=C:old /GRANT:Everyone,FULL»Everyone»
Все ответы
-
из гуя не пробовали сделать тоже самое?
The opinion expressed by me is not an official position of Microsoft
-
я это должен сделать дистанционно, поэтому к самому серверу подключаюсь через psexec вызывая сессию cmd или powershell. Это часть программы автоматизации, поэтому ручных действий и RDP не предусматривается
-
Sunny
Please remember to mark the replies as an answers if they help.
If you have feedback for TechNet Subscriber Support, contact
tnmff@microsoft.com -
Обратите внимание: поскольку веб-сайт не принадлежит Microsoft, ссылка может быть изменена без предварительного уведомления.
Это как?
Сегодня она указывает на справочный контент по исправлению ошибки, а завтра по ней вымогатель от REvil какой-нибудь скачается. И кому? Кто за инфраструктуру из сотен серверов отвечает? Товарищи из Шанхая! Что Вы вообще здесь
делаете?-
Изменено
8 июня 2021 г. 6:56
-
Изменено
-
Привет,
Просто хочу подтвердить текущую ситуацию.
Пожалуйста, дайте нам знать, если вам понадобится дополнительная помощь.
Наилучшие пожелания,
Sunny
Please remember to mark the replies as an answers if they help.
If you have feedback for TechNet Subscriber Support, contact
tnmff@microsoft.com -
Привет,
Просто хочу подтвердить текущую ситуацию.
Послушай, друг. Это форум для IT-профессионалов. П р о ф е с с и о н а л о в. Они знают, что делать.
Ваш роботизированный мусор в обсуждении совершенно лишний.
I have small application that attempts to get SID for a given user on Windows 7 64 bit. The application is compiled as 64 bit.
PSID Sid;
DWORD cbReferencedDomainName, cbSid;
LPTSTR ReferencedDomainName;
SID_NAME_USE eUse;
DWORD dwRc = 0;
printf("Lookup %sn",lpszAccountName);
cbReferencedDomainName = cbSid = 0;
if (LookupAccountName(NULL, lpszAccountName, 0, &cbSid,
0, &cbReferencedDomainName, &eUse)) {
printf("LookupAccountName passedn");
return 0;
}
dwRc = GetLastError();
printf("LookupAccountName RC (%d)n",dwRc);
I am passing the user name in uid@hostname format. The API fails for every user that’s present on the machine with GetLastError returning 1332 — «No mapping between account names and security IDs was done.». Please help.
asked Mar 13, 2014 at 9:17
![]()
5
A colleague and myself revisited this problem. We found that the problem was due to the Character Set used in the Visual Studio Project Settings. Visual Studio by default, sets character set to Use Unicode Character Set. However our application needs to use ASCII character set as our application needs to read input from command line. So the input read from command line was ASCII but we were passing that input to Wide character version of LookupAccountName API i.e. LookupAccountNameW. This caused API to return 1332 error code.
So we changed the Character Set to «Not Set» and recompiled the application. This ensured that correct form of the API, LookupAccountNamA, is used. This resolved the problem. I believe setting Character Set to «» will also solve the problem.

Hope this will be useful.
answered Mar 9, 2016 at 11:08
![]()
ShashiShashi
14.8k2 gold badges32 silver badges50 bronze badges
I have small application that attempts to get SID for a given user on Windows 7 64 bit. The application is compiled as 64 bit.
PSID Sid;
DWORD cbReferencedDomainName, cbSid;
LPTSTR ReferencedDomainName;
SID_NAME_USE eUse;
DWORD dwRc = 0;
printf("Lookup %sn",lpszAccountName);
cbReferencedDomainName = cbSid = 0;
if (LookupAccountName(NULL, lpszAccountName, 0, &cbSid,
0, &cbReferencedDomainName, &eUse)) {
printf("LookupAccountName passedn");
return 0;
}
dwRc = GetLastError();
printf("LookupAccountName RC (%d)n",dwRc);
I am passing the user name in uid@hostname format. The API fails for every user that’s present on the machine with GetLastError returning 1332 — «No mapping between account names and security IDs was done.». Please help.
asked Mar 13, 2014 at 9:17
![]()
5
A colleague and myself revisited this problem. We found that the problem was due to the Character Set used in the Visual Studio Project Settings. Visual Studio by default, sets character set to Use Unicode Character Set. However our application needs to use ASCII character set as our application needs to read input from command line. So the input read from command line was ASCII but we were passing that input to Wide character version of LookupAccountName API i.e. LookupAccountNameW. This caused API to return 1332 error code.
So we changed the Character Set to «Not Set» and recompiled the application. This ensured that correct form of the API, LookupAccountNamA, is used. This resolved the problem. I believe setting Character Set to «» will also solve the problem.

Hope this will be useful.
answered Mar 9, 2016 at 11:08
![]()
ShashiShashi
14.8k2 gold badges32 silver badges50 bronze badges
Вопрос:
У меня небольшое приложение, которое пытается получить SID для данного пользователя на 64-разрядной версии Windows 7. Приложение скомпилировано как 64 бит.
PSID Sid;
DWORD cbReferencedDomainName, cbSid;
LPTSTR ReferencedDomainName;
SID_NAME_USE eUse;
DWORD dwRc = 0;
printf("Lookup %sn",lpszAccountName);
cbReferencedDomainName = cbSid = 0;
if (LookupAccountName(NULL, lpszAccountName, 0, &cbSid,
0, &cbReferencedDomainName, &eUse)) {
printf("LookupAccountName passedn");
return 0;
}
dwRc = GetLastError();
printf("LookupAccountName RC (%d)n",dwRc);
Я передаю имя пользователя в формате uid @hostname. API терпит неудачу для каждого пользователя, присутствующего на машине, с возвратом GetLastError 1332 – “Не было сопоставления между именами учетных записей и идентификаторами безопасности”. Пожалуйста помоги.
Лучший ответ:
Мы с коллегой пересмотрели эту проблему. Мы обнаружили, что проблема связана с набором символов, который используется в настройках проекта Visual Studio. Visual Studio по умолчанию устанавливает набор символов для Use Unicode Character Set набора Use Unicode Character Set. Однако нашему приложению необходимо использовать набор символов ASCII, поскольку нашему приложению необходимо прочитать ввод из командной строки. Таким образом, вход считывается из командной строки был ASCII, но мы проходили этот вход Wide версии символьного LookupAccountName API т.е. LookupAccountNameW. Это заставило API вернуть код ошибки 1332.
Поэтому мы изменили набор символов на “Не задано” и перекомпилировали приложение. Это обеспечило правильную форму API, LookupAccountNamA. Это решило проблему. Я считаю, что установка Character Set на “” также решит проблему.

Надеюсь, это будет полезно.
Если вы недавно изменили имя пользователя своей учетной записи Windows и начали получать сообщение об ошибке, в котором говорится, что сопоставление между именами учетных записей и идентификаторами безопасности не выполнено, это руководство будет вам полезно. Вы можете решить эту проблему с изменением имени пользователя на компьютере с Windows 11/10 с помощью этого пошагового руководства.
Эта ошибка возникает в основном, когда вы неправильно изменили имя пользователя. Хотя изменить имя пользователя легко, есть некоторые последствия. Время от времени ваша система может не соответствовать изменению, которое является обязательным для продолжения использования обычного пользовательского интерфейса. Однако некоторые неправильные настройки могут быть причиной этой ошибки на вашем компьютере с Windows 11/10.
Примечание. Будет очень полезно, если вы запишите SID, упомянутый в сообщении об ошибке. Хотя это и не обязательно, запись SID позволит вам сэкономить время, которое вы будете изучать в будущем.
Сопоставление между именами учетных записей и идентификаторами безопасности не выполнялось.
Чтобы исправить Сопоставление между именами учетных записей и идентификаторами безопасности не выполнялось. ошибка на вашем компьютере с Windows, выполните следующие действия:
- Измените значение ExtensionDebugLevel.
- Подтвердите имя пользователя в редакторе реестра
- Создать новый профиль пользователя
Чтобы узнать больше об этих шагах, продолжайте читать.
1]Измените значение ExtensionDebugLevel.
ExtensionDebugLevel помогает контролировать уровень ведения журнала на управляемых компьютерах. По умолчанию он установлен в 0. Однако, если он изменится на что-то другое, есть вероятность получить такую ошибку на вашем компьютере. Поэтому вам необходимо проверить правильность данных Value или нет. Для этого сделайте следующее:
Нажмите Win + R, чтобы открыть окно «Выполнить».
Введите regedit> нажмите кнопку «Ввод»> выберите вариант «Да».
Перейдите по этому пути:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonGPExtensions{827D319E-6EAC-11D2-A4EA-00C04F79F83A}
Дважды щелкните значение REG_DWORD ExtensionDebugLevel.
Установите значение данных как 0.
Нажмите кнопку ОК.
Затем перезагрузите компьютер и проверьте, решает ли он проблему или нет.
2]Проверьте имя пользователя в редакторе реестра.
Если вы измените имя пользователя с Учетные записи пользователей панель, вы можете получить эту вышеупомянутую ошибку на своем компьютере с Windows 11/10. Иногда ваша система не обновляет имя пользователя в редакторе реестра, что является обязательным. В противном случае вы не сможете пользоваться папками Библиотеки (Документы, Музыка, Видео и т.д.) и получите такую ошибку.
Прежде чем начать, вам нужно знать SID, о котором мы говорили ранее. Если вы записали SID, вы можете перейти к следующей части. В противном случае выполните следующие действия, чтобы найти SID вашего профиля пользователя:
- Откройте окно командной строки или терминала Windows с повышенными привилегиями.
- Введите эту команду: список учетных записей пользователей wmic заполнен
- Найдите SID соответствующего профиля.
Выполните следующие шаги, чтобы проверить имя пользователя в редакторе реестра:
Найдите regedit в поле поиска на панели задач.
Нажмите на отдельный результат поиска.
Нажмите кнопку «Да», чтобы открыть редактор реестра.
Перейдите по этому пути:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList
Нажмите на SID, который вы получили ранее.
Дважды щелкните значение расширяемой строки ProfileImagePath.
Введите новое имя пользователя и нажмите кнопку ОК.
Перезагрузите компьютер.
3]Создайте новый профиль пользователя
Это последнее, что вы, возможно, захотите сделать, если ни одно из вышеупомянутых решений не помогло вам решить проблему. Вы можете использовать ручной метод или использовать сторонний инструмент, такой как Transwiz. Хотя это помогает вам перенести свой профиль с одного компьютера на другой, вы можете использовать то же самое для клонирования профиля.
Как исправить Не было сопоставления между именами учетных записей и идентификаторами безопасности?
Чтобы исправить ошибку «Как исправить, не было сопоставления между именами учетных записей и идентификаторами безопасности»; вам необходимо проверить правильность имени пользователя в файлах реестра. После этого вы можете изменить данные значения ExtensionDebugLevel в том же окне. Однако, если ничего не помогает, вам может потребоваться создать новый профиль пользователя.
Что означает Без сопоставления?
Отсутствие сопоставления означает, что в параметре объекта групповой политики указано неправильное имя пользователя. Это может произойти, если вы часто меняете имя пользователя на своем компьютере. Однако вы можете решить проблему, следуя вышеупомянутым решениям.
Это все! Надеюсь, это помогло.
Читать: Мастер профилей пользователей позволяет перенести полный профиль домена.