Windows 10 множественное подключение к серверу или к общим ресурсам одним пользователем

Обновлено: 01.07.2024

Представим, что нам нужно обеспечить подключение множества пользователей с одного компьютера (клиента) к общим сетевым ресурсам на сервере . Для решения будем использовать утилиту net и команду net use .

На первый взгляд может показаться, что net use обладает ограничением на одновременное количество подключений к одному серверу:

> net use * \\10.11.108.25\test /user:testuser %password%

Drive Z: is now connected to \\10.11.108.25\test.

The command completed successfully.

> net use * \\10.11.108.25\test /user:testuser2 %password%

System error 1219 has occurred.

Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed. Disconnect all previous connections to the server or shared resource and try again.

Как мы видим из листинга, соединение с сетевым ресурсом test смог установить только первый пользователь testuser . Грустно :(

Однако данное ограничение можно обойти. Отправляемся в C:\windows\system32\drivers\etc и редактируем файл hosts (нам будут нужны права администратора). Добавляем в файл пары с разными host names и одним и тем же IP адресом нашего сервера:

Таким образом мы получим возможность создавать паралельные сессии, прописывая в команде net use разные имена хостов, вместо IP:

> net use * \\srv1\test /user:testuser %password%

Drive Z: is now connected to \\srv1\test.

The command completed successfully.

> net use * \\srv2\test /user:testuser2 %password%

Drive Y: is now connected to \\srv2\test.

The command completed successfully.

Проверяем установлинные соединения:

OK Z: \\srv1\test Microsoft Windows Network

OK Y: \\srv2\test Microsoft Windows Network

The command completed successfully.

Если при подключении к сетевому ресурсу мы будем монтировать сетевые диски, то количество возможных соединений будет ограничено набором свободных букв латинского алфавита. Чтобы преодолеть и это ограничение, просто убираем * из команды net use :

> net use \\srv1\test /user:testuser %password%

Теперь можно создавать большое количество соединений. Для быстроты добавления записей в файл hosts можно воспользоваться циклом for /L в командной строке. Например, добавим 100 записей (запускаем cmd под администратором и сменяем диркеторию из которой будем выполнять команду с C:\windows\system32 на любую другую ):

>FOR /L %I IN (1,1,100) DO ECHO 10.11.108.25 SRV%I >> C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS

Речь пойдет об ошибке подключения к сетевому ресурсу в windows, а именно:

Множественное подключение к серверу или разделяемым ресурсам одним пользователем с использованием более одного имени пользователя не разрешено. отключите все предыдущие подключения к серверу или разделяемым ресурсам и повторите.

Возникает она в случае, если вы подключены к общему ресурсу с одними учетными данными и пытаетесь подключиться к другому ресурсу на том же сервере но с другими учетными данными, а сервер (в моем случае Samba) настроен в режиме security = USER.

Немного подробнее о security = USER

Пример security устанавливает "security mode bit" в репликах к smbd в момент согласования протокола, тем самым включая или отключая режим безопасности. Клиенты, основываясь на этой информации, определяют нужно ли (и если да то как) передавать серверу имя пользователя и пароль.

При security = USER, клиент должен сначала произвести вход (logon), с существующим именем пользователя и паролем (имя может быть транслировано с помощью параметра username map). Шифрованные пароли (см. encrypted passwords) также могут быть использованы в этом режиме.

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

Есть одна ошибка в Windows для рабочих групп (Windows for Workgroups, WfWg), которая имеет отношение к этому параметру. При работе в режиме USER или SERVER, клиенты Windows для рабочих групп игнорируют имя пользователя и пароль, указываемые в диалоге для доступа к ресурсу. "Благодаря" этому практически невозможно присоединиться к сервису Samba пользователем, отличным от того, с правами которого произведен вход в Windows.

Решение проблемы

Гениально простое решение предлагает нам M$: подключиться к серверу не по имени, а по IP. Действительно просто и замечательно работает :)

Итак мы подключены к \\server\share1 под именем user1 и хотим подключиться к \\server\share2 как user2. Для этого заходим на сервер по IP, например \\192.168.0.1\share2 и подключаемся как user2. Все прекрасно работает.

Этого вполне достаточно для того чтобы зайти на не доступный пользователю ресурс под админом. Если требуется более 2 юзеров при доступе к серверу, то стоит подумать о security = SHARE в самбе или о способе 2 от M$ - создать в DNS алиасы для сервера и ходить к нему под разными именами.

Используется Windows 2008 R2. На нашем сервере мы получаем эту ошибку: «Множественные подключения к серверу или общему ресурсу одним и тем же пользователем с использованием более одного имени пользователя не разрешены. Отключите все предыдущие подключения к серверу или общему ресурсу и попробуйте еще раз». при попытке сопоставить диск в командной строке. Однако на удаленном компьютере нет открытых окон проводника, и на удаленном компьютере ничего не отображается, когда я выполняю «чистое использование».

Почему Windows думает, что что-то подключено, когда "net use" сообщает, что для него нет открытых дисков или папок?

Как заставить Win перестать думать, что что-то подключено, без перезапуска?

Это работает, но если я вставлю

Это дает ошибку. Почему это могло быть?

Даже если вы удалите общую папку через net use * /del , на стороне сервера все равно будет соединение.

Чтобы обойти эту проблему, которую Microsoft создала по дизайну , вы должны сопоставить диск таким образом, чтобы Windows думала, что это еще один общий ресурс на другом сервере. Самый простой способ сделать это - использовать DNS-псевдонимы или IP-адреса. В вашем случае, если ваше первое сопоставление использует IP-адрес, например \\IP\Share с вашими текущими учетными данными, вы должны использовать что-то вроде \\ServerName\Share password /user:Domain\Username , это должно создать новый общий ресурс с новыми учетными данными.

Microsoft называет такое поведение дизайном . я называю это просто глупым дизайном.

В Windows 10 я решил эту проблему с помощью диспетчера учетных данных Windows. Я нашел несколько учетных данных для устройства NAS, с которым у меня возникли проблемы. После удаления обеих учетных данных я смог без проблем получить доступ к подключенным сетевым дискам NAS.

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

Credential Manager - Windows Credentials

Загрузите диспетчер учетных данных (самый простой способ - это, возможно, просто найти его в меню «Пуск»), посмотрите, есть ли какие-либо учетные данные Windows для вашего сетевого ресурса, и попробуйте удалить / обновить их.

«Множественные подключения к серверу или общему ресурсу одним и тем же пользователем с использованием более одного имени пользователя не разрешены. Отключите все предыдущие подключения к серверу или общему ресурсу и повторите попытку».

Помимо метода с использованием команды "NET USE", я нашел другой способ с веб-страницы

Лучше устранить ограничение подключения Windows, отредактировав файл hosts, который находится в каталоге «C: \ Windows \ System32 \ Drivers \ etc».

Например, IP-адрес моего маршрутизатора 192.168.1.1, а его USB-накопитель имеет три общие папки: \ user1, \ user2 и \ user3, которые разделены для трех пользователей, тогда мы можем добавить следующие три строки в файл hosts,

После перезагрузки ПК мы можем подключить папку \ user1 для пользователя №1, \ user2 для пользователя №2 и \ user3 для пользователя №3 одновременно в проводнике Windows, то есть

Если мы введем имя маршрутизатора как \\ server1 в поле индикации папки проводника, он отобразит все общие папки USB-накопителя маршрутизатора в правой панели проводника и sever1 в разделе «Сеть» на левой панели проводника, тогда пользователь №1 может доступ к общей папке \ user1.

Используя этот метод, мы также можем использовать команду «NET USE» для выполнения этих действий.

Вот альтернатива Powershell ответу.

net use \\<host> /delete самый быстрый и целевой (не влияет на другие соединения), но во многих случаях он не работает по одной из многих причин.

net stop workstation , предложенный @DaveInCaz, в некоторых случаях может помочь.

Если все не удается, перезапустите службу LanmanWorkstation, вы можете использовать этот сценарий:

Недостаточно перезапустить службу рабочей станции (например, из консоли services.msc)
Возможно, службу необходимо отключить на короткое время. Если вы выполняете этот перезапуск из сценария, возможно, лучше добавить задержку в 1 секунду.

В случаях, когда net use \\<host> /delete не работает, потому что другая программа все еще использует этот общий ресурс, вы можете идентифицировать такую ​​программу и удалить дескриптор блокировки, не закрывая его. Используйте Sysinternals Process Explorer, нажмите Ctrl + F для поиска и введите имя хост-машины, владеющей таким общим ресурсом. Щелкните каждый результат, окно программы за диалогом поиска переместится к дескриптору найденной программы. Щелкните этот маркер правой кнопкой мыши и выберите "Закрыть ручку". (или просто закройте такую ​​программу, если можете). Это работает только в обычных случаях, когда действительно есть программа, блокирующая отключение общего ресурса. Не в тех странных случаях, когда он заблокирован без причины.

повышенная учетная запись имеет собственную среду. Это приводит к неожиданному поведению.
Если вы выполните команду net use в консоли cmd / PS с повышенными привилегиями, это не повлияет на то, какого пользователя Windows Explorer будет использовать для доступа к общему ресурсу.
И наоборот, если вы запустите программу из общего ресурса, и программа запросит и получит повышенный доступ, эта программа потеряет соединение с этим общим ресурсом и любыми файлами, которые могут потребоваться для запуска. Вам необходимо запустить net use из cmd / PS с повышенными привилегиями, чтобы создать подключение к общему ресурсу с повышенными правами.

У меня есть машина под управлением Ubuntu с Samba, которую я использую для обмена данными с компьютерами Windows моей семьи в нашей локальной сети. В настоящее время они имеют доступ к общей папке для фильмов / музыки / и т.д. С одним пользователем.

Я хочу подключить их к другому общему ресурсу от имени другого пользователя (например, пользователя "goytacaz").

Когда я пытаюсь подключиться к этому новому общему ресурсу, Windows выдает "Ошибка 1219" и жалуется на множественные подключения одного и того же пользователя.

Как заставить мой компьютер принимать несколько подключений одним и тем же пользователем?

Над самбой? Там не должно быть никаких проблем; если имя пользователя и пароль верны, оба соединения должны выполняться правильно.

Вам необходимо отключить первое соединение, прежде чем вы сможете восстановить соединение. Есть два способа сделать это:

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

Используйте команду net use /delete из командной оболочки Windows (Пуск -> Выполнить -> cmd; в командной строке введите команду; может потребоваться указать имя общего ресурса).

Обновление 3: Документ MS, указанный выше, предлагает эти два обходных пути для подключения к серверу в качестве отдельных пользователей. Основная идея заключается в том, чтобы заставить Windows думать, что она подключается к другому серверу, используя другое имя.

Используйте IP-адрес сервера при подключении со вторым именем пользователя. (Используйте \\ServerName\sharename при подключении в качестве первого пользователя, но используйте \\X.X.X.X\sharename при подключении в качестве второго пользователя.)

Создайте один или несколько псевдонимов DNS для сервера, который будет использоваться при подключении со вторым (третьим, четвертым . ) именем пользователя. (Используйте \\ServerName\sharename при подключении в качестве первого пользователя, но используйте \\ServerAlias1\sharename при подключении в качестве второго пользователя, \\ServerAlias2\sharename при подключении в качестве третьего пользователя и т.д.)

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