Почему общая папка Windows то открывается, то нет — разбор Kerberos, NTLM и учётных данных

· Обновлено: · · Windows, SMB, Kerberos, NTLM, Общие папки, Расследование сбоев

История изменений (первая версия, опубликована 8 Sep 2026)
Первая публикация

«Вчера открывалось.» «Проводник открывает, а приложение нет.» «Перезагрузка помогла.» Проблемы с общими папками становятся труднее расследовать, когда попытки выглядят одинаковыми.

Даже когда вы считаете, что открываете ту же общую папку, Windows может выполнять разные операции, если различаются имя назначения, учётная запись исполнения или существующие подключения. Найти эти различия — отправная точка расследования.

Этот диагностический справочник собирает команды, которые выполнять, как читать их результаты и куда смотреть дальше, а не назначает причину по одному симптому. О самих протоколах см. NTLM и Kerberos с схемами. О проектировании приложений см. Сетевые диски и UNC-пути: типичные ловушки ── как бизнес-приложению работать с файловым сервером (общей папкой).

1. Начните здесь: вывод и указатель по симптомам

Расследуйте в таком порядке: Можно ли достичь? → Кто подключился? → Какие требования к проверке подлинности и защите? → Разрешена ли этому субъекту операция? Фиксируйте эти условия в одном формате для успешных и неуспешных попыток. Симптом — вход, а не подтверждённая причина.

Симптом Что проверить первым Соответствующий раздел
Имена и IP ведут себя по-разному Фактический IP назначения и требования к проверке подлинности по имени Достижимость, Kerberos
Успешен только проводник Субъект исполнения приложения, сеанс и операция Контекст исполнения
Доступ как будто без пароля Учётная запись, которую на самом деле принял сервер Учётные данные
Смена пользователя не удаётся или появляется ошибка 1219 Существующие подключения к тому же серверу Конфликты подключений
Помогает перезагрузка или выход из системы Различия состояния до и после смены Перезагрузки
Сбой только на обновлённых ПК, отдельных ПК или NAS Действующие настройки подписи, гостя и NTLM Требования защиты
Открытие работает, сохранение нет Права и ошибки фактической операции Авторизация и приложения
Переход от симптомов к свидетельствамВыберите кандидатов по симптому, сравните свидетельства успешных и неуспешных попыток и затем выберите исправление.Выбрать симптомСравнить успех и сбойСузить кандидатов журналамиСменить одно и перепроверить

Рис. 1: Симптомы используйте как вход в расследование, а исправления выбирайте только после проверки свидетельств.

Область — общие папки SMB 2/3 на Windows 11 и Windows Server по обычным подключениям TCP 445. Примеры PowerShell рассчитаны на Windows PowerShell 5.1. Это материал среднего уровня для администраторов и разработчиков, но читатели без доступа к администрированию сервера всё равно могут начать со сбора сведений на стороне клиента.

Различайте домены AD, общие папки Windows в рабочей группе и учётные записи, специфичные для NAS. Статья охватывает обычный AD Kerberos и привычные конфигурации локальных учётных записей; SMB over QUIC, проверка подлинности, специфичная для Azure Files, и отдельные конфигурации IAKerb или LocalKDC вне области. При DFS также фиксируйте конечный целевой сервер. Настройки и значения по умолчанию основаны на официальной документации, проверенной 8 сентября 2026 года; фактическая конфигурация важнее предположений по имени ОС.

Сначала подтвердите, какие учётные записи общая папка настроена принимать. AD централизованно управляет учётными записями организации, а локальные учётные записи принадлежат отдельным ПК. NAS может использовать собственные учётные записи или присоединяться к AD. Не выводите Kerberos из корпоративной LAN и NTLM из того, что сервер — NAS; спросите администратора о конфигурации проверки подлинности.123

Учётная запись для входа на общую папку Приоритет расследования
Учётная запись домена AD После проверки достижимости смотрите имена, SPN и билеты, затем журналы проверки подлинности
Локальная учётная запись файлового сервера Windows Начните с учётных данных и пустых паролей, существующих подключений и требований защиты
Учётная запись, специфичная для NAS Проверьте настройки учётных записей и журналы проверки подлинности NAS вместе с гостевым доступом, подписью и ограничениями NTLM
Неизвестно Сохраните записи на стороне клиента и проверьте учётную запись, которую принял сервер

То, состоит ли ПК в домене, и какие учётные данные использовало это подключение, тоже разные вопросы. В примерах ниже CORP\alice — учётная запись домена, а FILESRV01\alice — локальная учётная запись файлового сервера. Наличие пользователя с тем же именем на вашем ПК не обязательно даёт этому пользователю те же права на сервере.45

На схеме сплошная линия обозначает отношение, которое выполняется всегда, а пунктирная — условное отношение (условия указаны в пояснении к каждому отношению на странице сведений). Полный список отношений (всего 19, с доказательствами и степенью уверенности) и определения основных понятий собраны на странице сведений карты знаний (на японском). Данные: JSON-LD / Turtle

2. Разделите этапы, скрытые за «не подключается»

Открытие файла включает установление связи, согласование требований SMB, проверку подлинности сеанса, подключение к общей папке и файловую операцию. Успешная проверка подлинности не даёт доступа к общей папке или файлу. Сообщение о том, что сетевой путь не найден, может даже быть связано с отклонённым гостевым доступом. Не диагностируйте сбой DNS по одному этому сообщению.67

Этапы до открытия общего файлаДостижимость, согласование SMB, проверка подлинности, подключение к общей папке и файловые операции могут сбоить отдельно.Разрешение имён и TCPСогласование требований SMBSESSION_SETUP: проверка подлинностиTREE_CONNECT: общая папкаCREATE и другие файловые операции

Рис. 2: Успех на одном этапе не доказывает успех на следующем.

Здесь успех означает выполнение задуманной операции над задуманным файлом. Увидеть ПК в представлении «Сеть» проводника, увидеть список общих папок и прочитать конкретный файл — не одно и то же. Фиксируйте фактический сбойный UNC-путь и операцию, а не только то, виден ли список.

3. Соберите свидетельства до перезагрузки или смены настроек

Удаление подключений или билетов в начале убирает состояние, которое вы хотели сравнить. Сначала зафиксируйте время, UNC-путь, пользователя, ОС и существующие подключения на клиенте. Следующие команды осматривают состояние. При расследовании сбоя службы не считайте результаты этого интерактивного терминала результатами самой службы.489

Get-Date -Format o
whoami /user
whoami /groups
Get-CimInstance Win32_OperatingSystem |
    Select-Object Caption, Version, BuildNumber
net use
cmdkey /list
klist

Также соберите следующее, где есть право запрашивать подключения SMB. Результат «доступ запрещён» значит «запрос выполнить не удалось», а не «подключений нет». Результаты, собранные повторно от имени администратора, помечайте этим контекстом исполнения. Молчаливое повышение всего расследования может сменить сравниваемый сеанс входа.410

Get-SmbConnection | Format-List *
Свидетельство Что устанавливает Чего само по себе не устанавливает
whoami Локальный субъект исполнения команды Учётную запись, которую приняла удалённая общая папка
net use Подключения и сопоставления общих папок, видимые в этом контексте Состояние подключения в другом сеансе
cmdkey /list Цели с сохранёнными учётными данными Использовались ли эти учётные данные в этот раз
Get-SmbConnection Установленные подключения, учётные данные и связанные свойства Полную историю неудачного подключения или однозначный протокол проверки подлинности
klist Билеты в целевом сеансе входа Протокол проверки подлинности, который использовало это подключение SMB

В Get-SmbConnection смотрите Credential наряду с UserName. Локальный субъект входа и учётные данные, использованные для подключения к общей папке, могут различаться. Сравнение ServerName, ShareName, UserName и Credential между успешными и неуспешными попытками помогает установить, сравниваете ли вы одно и то же подключение.4

Сохранённые сведения против активного состоянияОсматривайте сохранённые учётные данные, подключения SMB и билеты Kerberos отдельно.Зафиксировать в одно времяСохранённые учётные данныеУстановленные подключения SMBКэш билетовСопоставить фактическое использование с журналами

Рис. 3: Отличайте то, что сохранено, от того, что фактически использовало расследуемое подключение.

В этих выводах есть имена пользователей, внутренние имена серверов, IP-адреса и подобное. Ограничьте доступ к собранным записям. Перед внешней передачей анонимизируйте их, сохранив связи, нужные для сравнения. Публиковать пароли, хеши или сами билеты не нужно.

4. Сначала проверьте разрешение имён и TCP 445

Следующее — активный тест достижимости, выполняемый на клиенте. Замените имя сервера фактическим именем подключения. Разрешение имён и достижимость TCP фиксируйте отдельно.11

$Server = 'filesrv01.corp.example.com'
Resolve-DnsName -Name $Server
Test-NetConnection -ComputerName $Server -Port 445 -InformationLevel Detailed

Если TcpTestSucceeded равен False, на этом этапе расследуйте достижимость раньше проверки подлинности. Проверьте IP назначения, VPN и маршрутизацию, брандмауэры клиента и сервера и конечную точку прослушивания сервера. Успешный или неуспешный ping — не успешное или неуспешное подключение TCP 445. Обратно, успешная достижимость TCP оставляет непроверенными имя общей папки, проверку подлинности, подпись и права.11

Как читать тест TCP-подключенияНеуспешный тест TCP 445 ведёт к расследованию достижимости; успешный — к SMB и последующим этапам.НетДаПроверить TCP 445Удалось?Проверить назначение, маршрут, блокировкуПроверить SMB, проверку подлинности, доступ

Рис. 4: Успех TCP — свидетельство, что можно переходить к следующему этапу, а не то, что проверка подлинности удалась.

Когда имя и IP ведут себя по-разному, сравните RemoteAddress и результаты разрешения имён. Короткое имя, FQDN и псевдоним не обязательно ведут к одному IP. Даже когда ведут, требования к проверке подлинности в следующем разделе остаются отдельными. Если смена имени как будто исправляет проблему, зафиксируйте, что изменилось.

5. Когда имена и IP различаются, проверьте предпосылки Kerberos

5.1. Один IP не значит одну проверку подлинности

По умолчанию Windows не пытается Kerberos, когда имя цели — IP-адрес. Исключения можно настроить через TryIPSPN и SPN на основе IP, но стандартный подход этого справочника — установить правильное DNS-имя и идентификатор службы. Успех по IP — свидетельство для сравнения разрешения имён, проверки подлинности и существующих подключений; он не демонстрирует постоянное исправление.12

Требования к проверке подлинности зависят от имени подключенияДля целей-имён хоста проверьте требования Kerberos по имени и учитывайте поведение по умолчанию не пытаться Kerberos для целей-адресов.Запись цели в UNC-путиИмя хоста или FQDNIP-адресПроверить SPN для этого имениПо умолчанию попытки Kerberos нет

Рис. 5: Даже когда два имени указывают одно устройство, смена имени подключения меняет условия проверки подлинности.

Kerberos запрашивает билеты по идентификатору службы, который называют SPN. Разрешить DNS-псевдоним и правильно проверить подлинность службы под этим псевдонимом — разные вещи. Кроме того, не каждый сбой Kerberos приводит к откату на NTLM. Фактическими журналами отличайте, возможен ли откат, не удалась ли проверка подлинности и не ограничен ли NTLM.131

5.2. Отделите получение билета от принятия сервером

В среде AD администраторам следует осмотреть регистрацию SPN для имени, которым подключаются. Следующие запросы только на чтение — для административной машины, которая может запрашивать AD. Подтвердите, что нужные средства и права чтения каталога доступны.14

setspn -Q cifs/filesrv01.corp.example.com
setspn -Q HOST/filesrv01.corp.example.com

Отсутствие явной регистрации cifs/... само по себе не доказывает, что SPN нет. Для учётных записей компьютеров SPN HOST может подменять классы служб вроде cifs. Обратно, найти регистрацию не исключает проблем вроде принадлежности учётной записи, отличной от фактической учётной записи службы, или дублирующих регистраций. Администраторы AD должны проверить принадлежность до смены регистраций; не добавляйте SPN механически только потому, что запрос не нашёл совпадения.14

Что устанавливают проверки SPN и билетаРазрешение SPN, получение билета и принятие файловым сервером — отдельные проверки.Владелец SPN и подмена HOSTМожно ли получить билет?Принимается ли он для фактической проверки подлинности SMB?Сопоставить с журналами на стороне сервера

Рис. 6: Получение билета не гарантирует, что файловый сервер его примет.

После сохранения исходного состояния может понадобиться попробовать klist get cifs/filesrv01.corp.example.com. Это активный тест, который запрашивает билет и меняет кэш. Если не удаётся, расследуйте достижимость DC, синхронизацию времени, имена и SPN. Если удаётся, доступ SMB всё равно не гарантирован. Не применяйте результаты билета интерактивного пользователя к проблеме, которая возникает в службе.81

Для NAS без домена или проверки подлинности локальными учётными записями сначала смотрите методы проверки подлинности и настройки учётных записей, которые поддерживает общая папка, а не начинайте с починки SPN AD. Даже в средах с более новыми функциями проверки подлинности предпочитайте записи подключений предположениям по именам продуктов.

6. Проводник успешен, а приложение нет

6.1. Совпадения имени пользователя недостаточно

Сравните учётную запись исполнения, сеанс входа, повышение, UNC-путь и операцию. Служба работает в другом сеансе, чем интерактивный вход, даже когда настроена той же учётной записью пользователя. Сопоставления букв дисков тоже ограничены сеансами входа, поэтому сначала отличайте Z:\data от \\server\share\data. Переход на UNC-путь решает проблему буквы диска; он не даёт заодно проверку подлинности или права.10

Проводник и служба используют разные контекстыДаже на одном ПК сравнивайте интерактивный вход и вход службы как отдельные сеансы со своими учётными данными.Один ПКИнтерактивный входВход службыПодключения и доступ в этом сеансеПодключения и доступ в другом сеансе

Рис. 7: Один ПК и имя пользователя не обязательно разделяют одно состояние подключения.

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

6.2. Учётные записи служб и типы входа задач

Когда служба использует учётные данные по умолчанию, LocalSystem предъявляет по сети учётные данные компьютера, а LocalService — анонимные. Для доступа LocalSystem к общей папке домена соответствующие права принадлежат фактически используемому субъекту, например учётной записи компьютера, а не интерактивному пользователю. Реализации с явными учётными данными или олицетворением требуют своих проверок.1516

Локальные привилегии против удалённого субъектаС сетевыми учётными данными по умолчанию LocalSystem и LocalService предъявляют разных субъектов.Учётные данные службы по умолчаниюLocalSystemLocalServiceУчётные данные компьютераАнонимные учётные данные

Рис. 8: Обширные локальные привилегии не делают службу интерактивным пользователем на удалённой общей папке.

В Планировщике заданий смотрите тип входа наряду с именем учётной записи. TASK_LOGON_S4U не хранит пароль и не даёт доступа к сети или зашифрованным файлам. Не предполагайте, что задача, настроенная не хранить пароль, имеет те же условия, что обычный интерактивный вход. Настраивайте бизнес-процессы с подходящей учётной записью службы, типом входа и правами с наименьшими привилегиями, а не полагайтесь на то, что кто-то сначала откроет общую папку в проводнике.17

7. Различайте четыре смысла «пароль не требуется»

Отсутствие запроса — не свидетельство доступа без проверки подлинности. Могут использоваться текущие учётные данные входа, сохранённые учётные данные или уже установленный сеанс SMB. Запись в cmdkey /list сама по себе не устанавливает, что подключение её использовало.49

Что наблюдаете Что проверить
Пароль не вводили Проверили ли подлинность подключения учётные данные входа или сохранённые учётные данные
Проверка подлинности была раньше, а запроса в этот раз нет Повторно ли используется существующий сеанс SMB
У удалённой локальной учётной записи нет пароля Применяется ли ограничение пустого пароля
Общая папка принимает подключение как гостя Совместим ли гостевой доступ с требованиями подписи и шифрования
Что значит отсутствие запроса пароляНе выводите доступ без проверки подлинности из интерфейса; различайте учётные данные, существующий сеанс, пустой пароль и гостевой доступ.Запрос пароля не появляетсяПроверить субъекта, которого на самом деле принялиУчётные данные или существующий сеансУчётная запись с пустым паролемГость

Рис. 9: Одинаково выглядящие интерфейсы могут скрывать разные механизмы проверки подлинности.

Когда файловый сервер работает под Windows и включена политика, ограничивающая локальные учётные записи с пустыми паролями консольным входом, обычные сетевые входы этими учётными записями ограничены. Это отдельно от настройки, разрешающей гостевой доступ. Если говорят, что пользователь с пустым паролем раньше подключался, сначала на сервере проверьте, действительно ли эта учётная запись прошла проверку подлинности того подключения. Вместо отключения ограничения как первого ответа рассмотрите подходящую учётную запись с паролем для доступа к общей папке.23

Если вы администрируете файловый сервер Windows, выполните следующее в сеансе PowerShell администратора на этом сервере, пока доступ работает. Не путайте Get-SmbConnection, выполняемый на клиенте, с Get-SmbSession, выполняемым на сервере, который принимает подключение.18

Get-SmbSession |
    Select-Object SessionId, ClientComputerName, ClientUserName, NumOpens

Используйте ClientComputerName и время попытки, чтобы найти соответствующий сеанс, затем осмотрите ClientUserName. Это описывает сейчас установленные сеансы SMB; это не объясняет более раннее неудачное подключение и не определяет, использовались Kerberos или NTLM. Если у одного клиента несколько сеансов, также сопоставляйте времена операций приложения и записи, специфичные для SMB. Если подключение уже закрыто, переходите к журналам в разделе 12.18

8. Ошибка 1219 и сбои при смене пользователя

Ошибка 1219 указывает на конфликт нескольких подключений к одному серверу под разными именами пользователей. Существующие подключения к этому серверу важны даже когда имена общих папок различаются. Сначала используйте net use и Get-SmbConnection, чтобы осмотреть подключения к целевому серверу. До смены учётных данных определите открытые файлы и приложения, которые используют эти подключения.1920

Учётные данные могут конфликтовать между разными общими папкамиДобавление подключения под другим пользователем из того же контекста подключения к тому же серверу может конфликтовать, даже если имя общей папки другое.Уже подключены к серверу как пользователь AПодключиться к другой общей папке как пользователь BКонфликт учётных данных: 1219Осмотреть существующие подключения по серверу

Рис. 10: Смотрите сервер и учётные данные вместе, а не только имя общей папки.

Следующее меняет состояние подключения. Только после остановки использования цели и получения согласия на влияние следует отключить и заново подключить конкретное подключение, которое вы определили. Замените примеры имён сервера, общей папки и учётной записи. * запрашивает интерактивный ввод пароля; не ставьте пароль прямо в командную строку.5

net use "\\filesrv01.corp.example.com\data" /delete
net use "\\filesrv01.corp.example.com\data" /user:CORP\alice * /persistent:no

Отключение одной общей папки может оставить подключения к другим общим папкам или использованиям на том же сервере. Осмотрите список снова и очищайте только нужные подключения для целевого сервера. Не делайте net use * /delete или бесконечное избегание конфликтов псевдонимами и IP стандартным исправлением. Затем проверьте, что фактическое приложение подключается задуманными учётными данными.

9. Когда помогает перезагрузка, спросите, что изменилось

Поскольку перезагрузка меняет несколько условий, одно улучшение не может указать одну причину. Следующая таблица даёт измерения для сравнения, а не гарантию, что действие сбрасывает точно и только названную область.489

Действие или сведения На что смотреть при сравнении
Перезапуск приложения Состояние приложения меняется, но подключения к общим папкам на уровне ОС могут остаться
Отключение и повторное подключение целевой общей папки Проверьте, повторяются ли подключение и проверка подлинности и остаются ли другие подключения
Выход из системы или перезагрузка ОС Меняются несколько условий, включая сеансы, приложения и сеть
Сохранённые учётные данные Отдельно от установленных подключений; их регистрация обычно переживает перезагрузку ОС
Как читать успешный обход через перезагрузкуПерезагрузка меняет несколько условий, поэтому одно улучшение не может указать одну причину.Перезагрузка восстановила доступСостояние приложенияСостояние подключения и входаСеть и другое состояниеНужны свидетельства до и после

Рис. 11: Перезагрузка может восстановить работу, не доказав причину.

Рассмотрите гипотетический пример, в котором успешная попытка повторно использовала подключение SMB под другой учётной записью, а неуспешная требовала новой проверки подлинности. Расследование должно целиться в незадуманные учётные данные и причину сбоя новой проверки подлинности, а не в саму перезагрузку. Выравнивание меток времени, имён подключений, контекстов исполнения и принятых учётных записей по обоим исходам делает следующий шаг конкретным.

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

klist purge меняет состояние, удаляя билеты. Он не нацелен на подключение, которое не использует Kerberos, и может затронуть другие службы в том же сеансе входа. Избегайте «просто очистить» до сохранения свидетельств.8

10. Сбои после обновлений или только на части ПК

10.1. Не смешивайте подпись, гостевой доступ и блокировку NTLM

Подпись SMB защищает от подделки сообщений; это отдельная настройка от того, использует ли проверка подлинности Kerberos или NTLM. Специальный справочник Microsoft по подписи SMB указывает, что Windows 11 24H2 Pro, Enterprise и Education по умолчанию требуют входящую и исходящую подпись, а Windows Server 2025 — исходящую. Проверяйте выпуск и действующую конфигурацию, а не только имя ОС.7

Для Home этот справочник говорит, что подпись не требуется, тогда как список изменений Windows 11 24H2 включает Home среди выпусков, которые требуют подпись по умолчанию. Документы поэтому расходятся. Вместо того чтобы отмахиваться от подписи как неважной на Home, командами ниже осмотрите расследуемый компьютер.721

Требования защиты SMB, которые осматривать отдельноПротоколы проверки подлинности, подпись SMB и гостевой доступ — разные настройки, каждую из которых нужно проверить.Осмотреть действующую политикуРазрешения Kerberos и NTLMТребование подписи SMBРазрешение гостевого доступа

Рис. 12: Проверка одной настройки не устанавливает, что остальные требования выполнены.

Гостевой доступ не поддерживает обычную подпись или шифрование SMB. Следовательно, одного разрешения гостей может не хватить, если подпись всё ещё требуется. Предпочитайте настраивать на NAS учётные записи с проверкой подлинности и подпись. Не считайте отключение подписи или установку SMB1 лёгким обходом.3

10.2. Читайте фактическую конфигурацию, а не только значения по умолчанию

Соберите следующее в сеансе PowerShell администратора на клиенте. Это чтение конфигурации; отличайте его от фиксации состояния подключения интерактивного пользователя.722

$config = Get-SmbClientConfiguration
$config | Format-List RequireSecuritySignature, EnableInsecureGuestLogons
if ($config.PSObject.Properties['BlockNTLM']) {
    $config | Format-List BlockNTLM
} else {
    'Свойство BlockNTLM на этой системе недоступно.'
}

RequireSecuritySignature: False значит, что подпись не требуется; это не доказывает, что каждое подключение без подписи. Если BlockNTLM нет на более старой системе, это не доказывает отсутствие других политик ограничения NTLM. Блокировка NTLM клиента SMB доступна начиная с Windows 11 24H2 и Windows Server 2025, и её также можно задать для отдельных подключений к общим папкам. Осматривайте параметры подключения приложения и политики организации наряду с глобальными настройками.722

Глобальные настройки не определяют всё подключениеКроме значений по умолчанию ОС проверяйте политики организации, параметры подключения и требования сервера.Значения по умолчанию ОС и выпускаФактические требования подключенияПолитика организации и параметры подключенияВозможности и требования сервераПроверить журналы на причину отклонения

Рис. 13: Совпадение по времени с обновлением — подсказка; к выводу приходите через действующие настройки и журналы отклонения.

Вывод NTLM из употребления, удаление NTLMv1 и политика, отклоняющая NTLM, — не одна проблема. О миграции протокола и общеорганизационном аудите см. Аудит и миграция при выводе NTLM. Здесь сосредоточьтесь на требовании, которое отклонило это подключение.

11. Проверка подлинности успешна, а открытие или сохранение нет

Для общей папки Windows проверяйте и права общей папки, и права на лежащие в основе папки и файлы. Оба должны разрешать одну операцию одному субъекту. Осматривайте членство в группах, записи запрета и наследование; добавление Everyone не значит, что любой доступ должен удаваться. Проверяйте действующий доступ по фактическому пути на сервере и субъекту, которого сервер на самом деле принял.23

Проверка подлинности отличается от авторизацииДаже после успешной проверки подлинности и права общей папки, и права файла должны разрешать запрошенную операцию.Субъект, прошедший проверку подлинностиПрава общей папкиПрава лежащего в основе файлаВыполнить задуманную операцию

Рис. 14: Установление субъекта и решение, что этому субъекту можно делать, — отдельные шаги.

Просмотр папки, чтение файла, создание, перезапись, переименование и удаление — разные операции. Для приложения, которое сохраняет, создавая временный файл и заменяя исходный, успешного чтения недостаточно. Помимо проверки подлинности и прав расследуйте нарушения совместного доступа, ёмкость, пути или файлы, которые исчезли, по исходной ошибке.24

File.Exists в .NET также возвращает false при условиях вроде недостаточных прав. Проверьте, основано ли сообщение приложения «файл не существует» только на этом возвращаемом значении. Диагностический код должен записывать исключения операции, которую вам на самом деле нужно выполнить.25

$Path = '\\filesrv01.corp.example.com\data\sample.txt'
try {
    Get-Item -LiteralPath $Path -ErrorAction Stop |
        Select-Object FullName, Length, LastWriteTime
} catch {
    $_.Exception.GetType().FullName
    'HRESULT=0x{0:X8}' -f $_.Exception.HResult
    $_.Exception.Message
}

Это проверяет получение метаданных, а не успешное чтение или запись содержимого. Чтобы проверить фактический I/O, воспроизведите задуманную операцию на тестовом файле после проверки авторизации и влияния. Сохранение ошибок вместо преобразования всех их в «файл не найден» также облегчает следующее расследование.

12. Сопоставляйте журналы, чтобы сузить причину

12.1. Различайте клиент, файловый сервер и DC

На клиенте в просмотре событий осмотрите Microsoft-Windows-SMBClient/Connectivity и Microsoft-Windows-SMBClient/Security. На файловом сервере Windows события безопасности 4624 для успешного входа и 4625 для неуспешного могут помочь, когда аудит включён. Для сетевых входов SMB проверяйте тип входа 3. На NAS используйте журналы проверки подлинности и общих папок, специфичные для продукта.262728

Тип входа 3 в событии 4624 не специфичен для SMB. Даже когда время, источник и учётная запись совпадают, одно событие не идентифицирует общую папку или сеанс SMB. Сопоставляйте его с Get-SmbConnection, журналами, специфичными для SMB, и при необходимости трассировкой.27426

Сопоставление журналов из трёх местСопоставляйте журналы клиента, файлового сервера и при необходимости DC по времени и сведениям о подключении.Клиент: журналы SMBClientСопоставить время, источник и учётную записьФайловый сервер: журналы проверки подлинностиDC: билеты и проверка учётных данныхЧитать как свидетельства одной попытки

Рис. 15: Без совпадения места и времени можно принять журналы постороннего подключения за причину.

Выполните следующее на файловом сервере Windows, с правом читать журнал безопасности. Зафиксируйте время непосредственно перед расследуемой попыткой и попросите администратора подтвердить, что нужный аудит успеха и сбоя включён. Этот пример извлекает последние десять минут и использует имена полей XML, а не локализованный текст сообщений или позиции полей.2728

$Start = (Get-Date).AddMinutes(-10)
Get-WinEvent -FilterHashtable @{
    LogName = 'Security'; Id = 4624, 4625; StartTime = $Start
} -ErrorAction Stop | ForEach-Object {
    $event = $_
    $xml = [xml]$event.ToXml()
    $fields = @{}
    foreach ($item in $xml.Event.EventData.Data) {
        $fields[$item.Name] = [string]$item.'#text'
    }
    if ($fields['LogonType'] -eq '3') {
        [pscustomobject]@{
            Time = $event.TimeCreated
            EventId = $event.Id
            User = $fields['TargetUserName']
            Domain = $fields['TargetDomainName']
            SourceIp = $fields['IpAddress']
            Authentication = $fields['AuthenticationPackageName']
            Status = $fields['Status']
            SubStatus = $fields['SubStatus']
            LogonId = $fields['TargetLogonId']
        }
    }
} | Format-List

Для 4624 читайте целевую учётную запись нового входа, а не Subject, который сообщил о событии. В 4625 целевое имя пользователя — имя, которое пытались, а не принятый субъект. Для причины сбоя читайте Status и SubStatus вместе. Если AuthenticationPackageName говорит только Negotiate, этого одного недостаточно, чтобы установить, использовались Kerberos или NTLM.2728

12.2. Когда журналов нет или есть только билет

Отсутствие события не доказывает, что проверки подлинности не было. Проверьте аудит, права чтения, расхождение часов, тот ли сервер вы осматриваете, повторное использование существующего сеанса и сбой до проверки подлинности. Повторное использование существующего подключения SMB не порождает новый 4624 каждый раз, когда открывают файл.274

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

Рис. 16: Отсутствующая запись не эквивалентна тому, что операция никогда не происходила.

В средах AD событие DC 4769 помогает идентифицировать запросы служебных билетов Kerberos, а 4776 — проверку учётных данных NTLM. Одна выдача билета не доказывает использование или принятие файловым сервером, а один 4776 не идентифицирует SMB как целевую службу. Сочетайте время, источник, целевую учётную запись и записи на стороне сервера. Если неоднозначность остаётся, попросите администратора собрать узко ограниченную трассировку.2930

13. После исправления проверьте надёжную работу

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

От одной успешной попытки к проверке повторенияПосле одной смены снова проверьте исходные условия сбоя и условия повторного подключения.Свидетельства, указывающие причинуОдно целевое исправлениеПроверить исходное приложение и операциюПерепроверить после повторного подключения или перезагрузкиЗафиксировать различия и результаты

Рис. 17: Проверяйте успех в исходных условиях сбоя, а не только одну успешную попытку в проводнике.

Заметки расследования Что сохранить
Среда ОС клиента и сервера, выпуск, сборка и AD против проверки подлинности, специфичной для NAS
Условия воспроизведения Время и часовой пояс, UNC-путь, IP назначения, приложение, субъект, повышение и операция
Свидетельства Исходная ошибка, существующие подключения, использованные учётные данные и связанные события
Исправление Одна смена, её причина, влияние и процедура отката
Проверка Результаты той же операции, включая выход из системы, перезагрузку или повторное подключение VPN, где уместно

Статья не может однозначно указать причину каждой реализации или сетевой конфигурации. Тем не менее знание на каком этапе сбой, какие условия отличались от успеха и что остаётся непроверенным делает следующее расследование конкретным. Не останавливайтесь на «перезагрузка помогает». Проверьте, что задуманный субъект подключается задуманным путём.

Справочные ссылки

  1. Microsoft Learn, Kerberos authentication troubleshooting guidance. Проверка имён, времени, DC и ошибок.  2 3

  2. Microsoft Learn, Accounts: Limit local account use of blank passwords to console logon only. Ограничение локальных учётных записей с пустыми паролями.  2

  3. Microsoft Learn, Insecure guest logons in SMB2 and SMB3. Гостевой доступ и ограничения подписи и шифрования.  2 3

  4. Microsoft Learn, Get-SmbConnection. Запрос установленных подключений SMB и учётных данных.  2 3 4 5 6 7 8

  5. Microsoft Learn, Net use. Удаление указанного подключения и запрос пароля.  2

  6. Microsoft Learn, SMB troubleshooting guidance. Отправные точки расследования обмена SMB и сбоев. 

  7. Microsoft Learn, Control SMB signing behavior. Требования к подписи и значения по умолчанию по ОС и выпуску.  2 3 4 5

  8. Microsoft Learn, klist. Просмотр, получение и удаление билетов — разные операции.  2 3 4

  9. Microsoft Learn, cmdkey. Управление сохранёнными учётными данными.  2 3

  10. Microsoft Learn, Services and Redirected Drives / Mapped drives are not available from an elevated prompt. Сеансы входа и сопоставления дисков для служб и повышенных процессов.  2

  11. Microsoft Learn, Test-NetConnection. Диагностика портов TCP и назначений.  2

  12. Microsoft Learn, Configuring Kerberos over IP. Поведение по умолчанию для цели-адреса и исключительные конфигурации. 

  13. Microsoft Learn, Service principal names. SPN как идентификаторы служб. 

  14. Microsoft Learn, setspn. Запросы SPN и подмена HOST для классов служб.  2

  15. Microsoft Learn, LocalSystem Account. Учётные данные компьютера, предъявляемые удалённым серверам. 

  16. Microsoft Learn, LocalService Account. Анонимные сетевые учётные данные. 

  17. Microsoft Learn, TASK_LOGON_TYPE enumeration. Ограничения сетевого доступа входа S4U. 

  18. Microsoft Learn, Get-SmbSession. Запрос установленных сеансов SMB и учётных записей клиентов на файловом сервере.  2

  19. Microsoft Learn, System Error Codes (1000–1299). Определение ERROR_SESSION_CREDENTIAL_CONFLICT. 

  20. Microsoft Learn, Cannot use different credentials for a network share. Подключения к одному серверу с разными учётными данными. 

  21. Microsoft Learn, What’s new in Windows 11, version 24H2 for IT pros. Изменения требований к подписи SMB по умолчанию. Обратите внимание на расхождение о Home со специальным справочником по подписи SMB. 

  22. Microsoft Learn, Block NTLM connections on SMB. Глобальная и поканальная блокировка NTLM.  2

  23. Microsoft Learn, Access control overview. Субъекты, права, наследование и действующий доступ. Microsoft Learn, SMB share and NTFS permissions

  24. Microsoft Learn, File Security and Access Rights. Права доступа для отдельных файловых операций. 

  25. Microsoft Learn, File.Exists. Возврат false при сбоях доступа. 

  26. Microsoft Learn, SMB troubleshooting guidance. Журналы событий SMB и дальнейшее расследование.  2

  27. Microsoft Learn, 4624: An account was successfully logged on. Запись новых входов и пакетов проверки подлинности.  2 3 4 5

  28. Microsoft Learn, 4625: An account failed to log on. Предпринятые учётные записи, Status и SubStatus.  2 3

  29. Microsoft Learn, 4769: A Kerberos service ticket was requested. Запросы служебных билетов на DC. 

  30. Microsoft Learn, 4776: The computer attempted to validate the credentials for an account. Записи проверки учётных данных NTLM. 

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

Эти страницы показывают тему статьи в более широком контексте услуг и решений.

Статья напрямую связана со следующими услугами.

Частые вопросы

Вопросы, которые часто возникают при консультациях по теме статьи.

Если после перезагрузки доступ к общей папке восстанавливается, значит ли это, что виноват кэш?
Нет. Перезагрузка меняет вместе приложение, сеансы входа, подключения SMB, состояние сети и другие условия. До перезагрузки зафиксируйте назначение, субъекта исполнения, существующие подключения, билеты и ошибки, затем сравните с успешной попыткой. Сохранённые учётные данные и уже установленные подключения SMB — разные вещи.
Почему общую папку можно открыть по IP, но не по имени сервера?
Сначала проверьте, приводят ли обе формы к одному и тому же IP назначения. Даже когда да, условия проверки подлинности различаются: Windows по умолчанию не пытается Kerberos для цели-адреса. Разрешение имён расследуйте отдельно от SPN и проверки подлинности. Успех по IP сам по себе не постоянное исправление.
Почему проводник открывает общую папку, а приложение нет?
Могут различаться учётная запись исполнения, сеанс входа, повышение, учётные данные или запрашиваемая операция. Служба работает в другом сеансе, чем интерактивный вход. Совпадение имён пользователей не устанавливает равные условия, поэтому смотрите сам сбойный процесс и записи проверки подлинности на стороне сервера.
Если подключение идёт без запроса пароля, значит ли это гостевой доступ?
Отсутствия запроса недостаточно, чтобы сказать. Подключение может использовать текущие учётные данные входа, сохранённые учётные данные или уже установленное подключение SMB. Локальная учётная запись с пустым паролем и гостевое подключение тоже разные вещи. Проверьте, какую учётную запись сервер на самом деле принял.
Если klist показывает билет cifs, SMB подключён через Kerberos?
Наличие билета и его использование для расследуемого подключения SMB — разные факты. Сопоставьте журналы на стороне сервера со временем подключения, источником и учётной записью. klist get запрашивает билет; это не пассивное наблюдение исходного состояния.

Об авторе

Страница с профилем автора статьи.

Го Комура

Представитель KomuraSoft LLC

Специализируется на разработке программного обеспечения для Windows, техническом консалтинге и расследовании сбоев, особенно в проектах с унаследованными системами и трудно воспроизводимыми ошибками.

Публичные ссылки

Вернуться в блог