Отключение / выход из сетевой папки Windows без перезапуска службы рабочей станции

14

У меня работает файловый сервер (SMB), к которому я подключился в Explorer (Windows 7 Professional), посетив \\ 1.2.3.4 напрямую. Я вошел в систему как один пользователь, не сохраняя учетные данные, и теперь хочу выйти из системы (на самом деле я хочу сменить пользователя на другой, но в целом было бы полезно выйти из системы).

Я искал способы сделать это и нашел кучу информации, которая предлагает использовать некоторую форму net use \\1.2.3.4 /del:

Тем не менее, ничего из этого на самом деле, казалось, не работает для меня Я запускаю net use * /del, а затем использую, net useчтобы убедиться, что список пуст, и все же общий ресурс загадочным образом остается в проводнике, не подвержен влиянию, доступен и все еще использует предыдущий логин.

Еще одна вещь, которую я попробовал, но тоже не удалась, - это, например, net use \\1.2.3.4 /user:newusernameпереключение учетных данных. Тем не менее, даже когда net useотображался пустой список подключений , это все равно приводило к ошибке, в которой говорилось, что несколько подключений к одному и тому же ресурсу с разными пользователями недопустимы - почему были подключения, которые не отображались в net useсписке, для меня загадка.

Затем я нашел эту статью Как выйти из общей папки (microsoft.com), которая рекомендует:

  1. net use * /del (или любой другой сервер).
  2. Удалить учетные данные из диспетчера учетных данных.
  3. Перезапустите сервис рабочей станции.

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

Мой вопрос: это совсем не очень удобно, особенно когда мне приходится объяснять это менее технически подкованным пользователям. Хотя я, конечно, мог бы создать, например, пакетный скрипт для автоматизации всего процесса, существует ли реальный, правильный, последовательный способ сделать это, не требующий перезапуска служб (и, возможно, не задействующий командную строку, хотя лично я не не возражаете)

Кроме того, подвопрос: для меня странно, что подавляющее большинство ресурсов, которые я нашел по этому вопросу, не предлагало перезапускать рабочую станцию, и предлагаемый процесс использования net useодного, казалось, работал, по крайней мере, для других людей, которые разместили комментарии на эти посты. Является ли перезагрузка рабочей станции уникальной для меня и свидетельствует о какой-либо другой проблеме на моем компьютере, или она просто по какой-то причине была исключена из всех инструкций? Только в посте поддержки на microsoft.com были инструкции, которые рекомендовали этот шаг, и именно это помогло мне.

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


Другие вещи, которые я пробовал безрезультатно:

  • Закрытие всех окон Проводника до и после использования net useкоманд (как это было предложено в ответе Коди Браунса ), а также изменение настроек «отдельного окна для каждой папки» в надежде, что это было своего рода кэширование учетных данных для каждого процесса (также вдохновленное этим ответом) ,
  • Изменение настроек управления соединениями в домашней группе (предложено в ответе holmzi_online на посте microsoft.com).
  • Уничтожение всех процессов проводника (включая основной) и перезапуск проводника после net use * /del(предложено Робертом Гриром здесь , хотя эта проблема была связана с подключенными дисками).
Джейсон С
источник
1
@sttr Спасибо, но я не уверен, что вижу связь между этой и той статьей. Можете ли вы дать подсказку?
Джейсон С
Подсказка, что в режиме ABE каждый пользователь видит только те папки и файлы, на которые он имеет право. В противном случае пользователь должен быть самодостаточным для доступа к ресурсам и без необходимости ввода пароля. Если «сервером» является Windows 7, тогда посмотрите slickit.ca/2009/07/webdav-on-windows-7.html
STTR
1
@STTR Спасибо. Как скрытие папок от неавторизованных пользователей или настройка сервера WebDAV помогают выйти из общего ресурса SMB, к которому можно ввести \\ address?
Джейсон C
1
@STTR Вопрос, как следует из названия, как выйти из общей папки (SMB, которую Windows использует для «общих папок») без перезапуска службы рабочей станции (см. Также «Я вошел как один пользователь, без сохранения учетных данных, а теперь хотят выйти» ). Я не добавляю WebDAV на свои серверы, а также не могу добавлять сервисы WebDAV на серверы, над которыми у меня нет контроля, и я не понимаю, как это решает проблему удобного выхода из системы. Знаете ли вы, как выйти из общей папки?
Джейсон С

Ответы:

1

2) Вы не одиноки в этом вопросе. Большинство людей, вероятно, никогда не сталкиваются с этим, потому что у них есть только один пользователь и / или несколько пользователей, но все с одинаковым паролем. Я, кажется, испытываю это все время. Я предполагаю, что это потому, что у меня одно и то же имя пользователя на нескольких компьютерах, но с разными паролями ... (Я не в домене; ноутбук - это Windows 8.1 с серверами на базе Windows и Linux ..)

(из памяти) Если я открою корневой ресурс компьютера, такой как \ raspi, до доступа к заблокированному общему ресурсу, например \ raspi \ private, у меня возникнет эта проблема. Похоже, что сначала выполняется соединение с использованием общего / открытого ресурса, а затем оно сохраняется.

Что касается 1), мне нужно только закрыть окна Проводника и (иногда командные строки), которые получили доступ к этой общей папке. Мне никогда не приходилось перезапускать сервис рабочей станции.

Но это может работать для меня, потому что я всегда говорю Windows "запускать окна папок в отдельном процессе" ..

Просто мысль..

Коди Браун
источник
Благодарность!! Я действительно надеялся, что ваше предложение закрыть окна проводника будет простым исправлением (у меня также есть отдельные процессы для окон папок), возможно, некоторые кэшированные учетные данные для каждого процесса. К сожалению, это не сработало, как и отключение отдельных процессов для каждого окна. Я также не увидел каких-либо изменений в поведении, если попытался получить доступ к \\ 1.2.3.4 \ Share первым вместо корня (также нет разницы в доступе по имени хоста, а не по IP). Я тоже не в домене, а использую серверы на базе Windows и Linux. Что-то сохраняет учетные данные или соединения, но я не знаю что.
Джейсон С
Еще один момент данных: независимо от настроек процесса для каждой папки, уничтожение всех процессов проводника (включая основной) и перезапуск проводника также не имели никакого эффекта, что меня удивило.
Джейсон С
Я собираюсь немного поэкспериментировать со своей средой, чтобы проверить это больше, и подумал ... Ваши окна (проводник, командная строка и т. Д.) Все повышены или все нет, верно? Я был разочарован много раз, когда я не осознавал или забыл, что одно из моих приложений было повышено .. Это делает некоторые странные вещи с сетевыми ресурсами ...
Коди Браун
Учетная запись, которую я использовал, является администратором, и все поднято. Я создал новую учетную запись без прав администратора и оттуда протестировал поведение без изменений.
Джейсон С
1

Я получил это, сделав следующее:

  1. Бегать net use * /delete
  2. Очистите учетные данные (например, у меня 172.26.190.129, а дата создания сегодня, только она)
  3. Отключить «локальное подключение» (Панель управления \ Сеть и Интернет \ Net Connect \ Local Connect)
  4. Подождите немного (я не знаю почему, но я думаю, что это может сломать некоторые ссылки с моего Win7 на Ubuntu и очистить кеш)
  5. Включите "локальное подключение" и все заработало ..
Сейя Цай
источник
2
Что вы подразумеваете под «Очистить учетные данные» и как вы это делаете?
Калимо
«Очистить учетные данные» здесь совершенно неясно.
Джонатан Вуд
0

Это может быть длинный выстрел, но вы подождали достаточно долго после использования net use * /d? Насколько я знаю, даже после удаления общего ресурса Windows сохраняет сеанс открытым, если есть открытые дескрипторы (окно проводника и т. Д.). И даже после закрытия этих маркеров существует период ожидания, в течение которого он повторно подключит общий ресурс. По умолчанию кажется 10-15 минут. Вы можете сократить это в реестре.

См. Https://blogs.msdn.microsoft.com/oldnewthing/20110223-00/?p=11413.

Однако, похоже, что KeepConn больше не используется в более новых версиях Windows. См. «Таймер простоя соединения» на этой странице: http://blogs.msdn.com/b/openspecification/archive/2013/03/19/cifs-and-smb-timeouts-in-windows.aspx

Stimm
источник
0

Пуск -> Панель управления -> Учетные записи пользователей и безопасность семьи -> Учетные записи пользователей -> Управление учетными данными.

Разверните один из ваших «учетных данных Windows», а затем нажмите «Удалить из хранилища».

Пуск -> Панель управления

Панель управления -> Учетные записи пользователей и безопасность семьи

Учетные записи пользователей и безопасность семьи -> Учетные записи пользователей

Аккаунты пользователей -> Управление вашими учетными данными

Выйти

да

Виктор
источник
-1
net use * /del
net stop Workstation /Y
cmdkey /delete:<resourcename>
net start Workstation
net start browser

Способ 2: использовать несколько имен NetBIOS для одного компьютера:

reg add "HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters" /v OptionalNames /t REG_MULTI_SZ /d "NetBIOSName01\0 NetBIOSName02\0 NetBIOSName03\0"

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

net use L: \\NetBIOSName01 /user:<username01> <password01> /P:Yes
net use M: \\NetBIOSName02 /user:<username02> <password02> /P:Yes
net use N: \\NetBIOSName03 /user:<username03> <password03> /P:Yes

Редактировать %windir%\system32\drivers\etc\lmhostsи добавлять

<Server IP>  NetBIOSName01            #PRE
<Server IP>  NetBIOSName02            #PRE
<Server IP>  NetBIOSName03            #PRE
<Server IP>  <OriginalNetBIOSname>            #PRE

во всех сетевых рабочих станциях

Все пользователи будут подключаться к его ресурсам.

STTR
источник
Согласно заголовку вопроса, это не отвечает на вопрос.
Даниэль Б
Спасибо, но это перезапускает службу рабочей станции. Я упоминал об этом в вопросе, но уже знаю, что могу автоматизировать перезапуск с помощью скрипта. На самом деле, я разместил примерно такой же набор команд на superuser.com/a/883606/245945 . То, что я на самом деле ищу, подробно описано, где я написал «вопрос» и «подвопрос» жирным шрифтом в своем посте.
Джейсон С
@JasonC Первоначальная причина всех этих действий Системная ошибка 1219?
STTR
@STTR Первоначальная причина - желание выйти без перезапуска служб. Результаты моих попыток описаны в моем посте.
Джейсон C
@STTR Спасибо. Обновление интересно, и я ценю ваше время, но мне неясно, о связи. Я не пытаюсь сопоставить диски или войти в систему с несколькими пользователями одновременно. Я просто пытаюсь выйти из общего ресурса, к которому первоначально обращались, перейдя по адресу \\ address. Не обязательно даже переключать пользователей. Возможно, я просто отхожу от компьютера и не хочу оставлять общий ресурс в системе. Как вход в систему, поскольку несколько пользователей с нескольких общих дисков помогают выходить из общей папки без перезапуска служб?
Джейсон С