Разрешить другим пользователям сети использовать подключение к интернету данного компьютера скрипт

Обновлено: 06.07.2024

Я могу сделать это вручную, щелкнув правой кнопкой мыши сетевое соединение, открыв вкладку «Общий доступ» и установив флажок «Разрешить другим пользователям сети подключаться через интернет-соединение на этом компьютере».

Теперь мне нужно автоматизировать эту задачу. Для этого есть инструмент командной строки или командлет Powershell?

Вот чистое решение PowerShell (должно выполняться с правами администратора):

Сборка с помощью build.cmd

Зарегистрируйте COM-библиотеку HNetCfg : regsvr32 hnetcfg.dll (это стандартная библиотека, расположенная в %WINDIR%\System32 )

Использование командной строки

Откройте командную строку как администратор

cd в каталог icsmanager (или icsmanager-master , если вы загрузили почтовый).

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

Это должно включить ICS.

Использование Powershell

Модуль импорта IcsManager.dll

Список сетевых подключений:

Запустите общий доступ к подключению к Интернету:

Enable-ICS "Соединение с общим доступом" "Домашнее соединение"

Остановить общий доступ к подключению к Интернету:

Отказ от ответственности: я еще не тестировал инструмент. Используйте его на свой страх и риск. Не стесняйтесь открывать вопрос на GitHub, если что-то не работает. Тяговые запросы также приветствуются.

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

Запустите в командной строке (cmd) от имени администратора:

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

Перезагрузитесь, прежде чем пытаться что-либо.

Насколько я помню, это было довольно жалко и много netsh-вызовов, где это было необходимо, но в итоге это сработало .

Следующее должно работать

К сожалению, нет такой команды cmd для Windows 7 или более, поэтому я использовал эту функцию Visual Basic, чтобы сделать это:

Обратите внимание, что "" "" обязательно. Повеселись.

Исходя из того, что я прочитал, если те, кто писал, сказали, что netsh не работает, начиная с 7 и выше, это неправильно. Теперь, если речь идет строго о « netsh routing », я думаю, вы могли бы быть правы, но это работает - я собираюсь показать содержимое созданного мной пакетного файла, который работает на Windows 8.1. Вместо того, чтобы получать обычные комментарии и фрагменты информации, я постараюсь помочь тем, кто обладает полной информацией.

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

Насколько мне известно, я думаю, что это должно работать как для Windows 7, так и для 8.

Теперь, поскольку тема была о решении для командной строки, это содержимое пакетного файла о том, как настроить виртуальный беспроводной адаптер и готов к работе.

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

Совместное использование файла .bat:

Я буду более чем счастлив ответить на вопросы по этому поводу, потому что будут некоторые уникальные ситуации, и я хотел бы помочь, так как мне пришлось собрать воедино то, что я нашел выше.

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

Полезная информация об администрировании пользовательских и серверных ОС Windows.


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


telnet 192.168.215.158 7778

Вот текст скрипта:

В последних строчках скрипта запрещается и снова разрешается общий доступ для обоих адаптеров. Если это сделать только для одного (основного), то у меня возникала ошибка 0x80040201. А в этом случае ошибки нет.

А тут я описал как этот скрипт можно запускать при включении компьютера.

Это костыль, однако вариантов решения проблем с созданием бриджа и пропаданием интернета я пока не нашёл.

(РЕШЕНО) Общий доступ к подключению к Интернету пропадает при перезагрузке (Windows 10) : 10 комментариев

неужели нету более нормального варианта ?

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

создать параметр DWORD32 в реестре по пути:
Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedAccess

Всем привет! Спасибо за подсказочку!
Снимать вручную и ставить галочку раз месяц тоже решение проблемы:)
Но так гораздо лучше!

Хороший скрипт, спасибо помог. Но как убрать окошко об успешном выполнении скрипта. с кнопкой ок.

1. Создать параметр DWORD32 (и для 64 bit) в реестре по пути:
Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\SharedAccess
EnableRebootPersistConnection = 1

2.Службы
Общий доступ к подключению к Интернету (ICS)
Обязательно поставить (если не стоит) Тип запуска: АВТОМАТИЧЕСКИ
3. Перезагрузиться

не работает на свежей десятке

Я могу сделать это вручную, щелкнув правой кнопкой мыши сетевое соединение, открыв вкладку «Общий доступ» и установив флажок «Разрешить другим пользователям сети подключаться через интернет-соединение на этом компьютере».

Теперь мне нужно автоматизировать эту задачу. Для этого есть инструмент командной строки или командлет Powershell?

Не могу попробовать это сейчас, но вы можете попробовать запустить Process Monitor и указать его в своем реестре. Посмотрите, какие ключи / значения меняются, когда вы переключаете и применяете настройку, а затем пишите свой скрипт соответственно. Связанный вопрос / информация о StackOverflow: программно включить общий доступ к подключению к Интернету

Вот чистое решение PowerShell (должно выполняться с правами администратора):

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

Призыв EnableSharing вызывает это исключение, даже если я запускаю PowerShell от имени администратора: исключение: исключение, вызывающее «EnableSharing» с аргументом «1»: «Событию не удалось вызвать ни одного из подписчиков (исключение из HRESULT: 0x80040201) "-> Исключение было сгенерировано целью вызова. -> Событие не смогло вызвать ни одного из подписчиков (Исключение из HRESULT: 0x80040201) Попробуйте запустить regsvr32 hnetcfg.dll от имени администратора вручную. Интересно: что означает «включить публичный интерфейс на адаптере»? В более новых версиях Powershell .SharingType теперь является .SharingConnectionType

Построить, запустив build.cmd

Зарегистрируйте HNetCfg библиотеку COM: regsvr32 hnetcfg.dll (это стандартная библиотека, расположенная по адресу %WINDIR%\System32 )

Использование командной строки

Откройте командную строку как администратор

cd в icsmanager каталог (или icsmanager-master если вы скачали zip).

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

Это должно включить ICS.

Использование Powershell

Модуль импорта IcsManager.dll

Список сетевых подключений:

Запустите общий доступ к подключению к Интернету:

Enable-ICS "Соединение с общим доступом" "Домашнее соединение"

Остановить общий доступ к подключению к Интернету:

Отказ от ответственности: я еще не тестировал инструмент. Используйте его на свой страх и риск. Не стесняйтесь открывать вопрос на GitHub, если что-то не работает. Тяговые запросы также приветствуются.

Ухоженная. При этом используется внешний двоичный файл с именем NETCONLib; откуда это? Что оно делает? Ага. Это оболочка класса COM для «библиотеки типов NetCon 1.0», включенной в Windows. @JacobKrall, да, он находится по адресу C:\Windows\System32\hnetcfg.dll . Похоже, это будет делать именно то, что я хочу - я попробую.

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

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

  1. Получить IPMONTR.DLL и IPPROMON.DLL с 2003 или из XP
  2. Скопируйте их в WINDOWS \ SYSTEM32

Запустите в командной строке (cmd) от имени администратора:

netsh add helper ipmontr.dll
netsh add helper ippromon.dll

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

Перезагрузитесь, прежде чем пытаться что-либо.

Законно ли копировать файлы из XP, если у меня нет лицензии XP? Пробовал это на Windows 7 64bit. Скопировал файлы из XP 64 бит. Запуск от имени администратора. Ошибки: The following helper DLL cannot be loaded: IPMONTR.DLL. The following helper DLL cannot be loaded: IPPROMON.DLL. Я тоже попробовал «добавить помощника», и мне жаль подтверждать, что он не работает для 64-битных систем. Что касается законности пересадки dll, на которую вы имеете право в обеих ОС, это неясно. У вас нет права изменять файлы Windows, но копирование их, возможно, не разрешено в лицензии XP (меня поразит, что Microsoft могла предвидеть это заранее). В ответе следует упомянуть, что он не работает для 64-битной Windows. Также отметьте, что файлы должны быть скопированы из XP 32-bit. @utapyngo: Нельзя быть уверенным, что на самом деле нет способа заставить эту работу работать на 64-битной версии. Согласно моим исследованиям, проблема в том, что нужно скопировать больше dll, чем эти два, но полный анализ проблемы требует больше времени, чем я могу дать.

Бывший мой коллега делал это через собственный инструмент Windows netsh. Поскольку я никогда не делал этого сам, я могу порекомендовать вам взглянуть на документацию по Microsoft netsh .

Насколько я помню, это было довольно жалко и много netsh-вызовов, где это было необходимо, но в итоге это сработало .

Это можно было сделать netsh routing в Windows XP, но в Windows 7 они удалили эту команду. Вот почему я спрашиваю только о Windows 7.

Следующее должно работать

Это можно было сделать netsh routing в Windows XP, но в Windows 7 они удалили эту команду. Вот почему я спрашиваю только о Windows 7.

К сожалению, нет такой команды cmd для Windows 7 или более, поэтому я использовал эту функцию Visual Basic, чтобы сделать это:

Обратите внимание, что "" "" обязательно. Повеселись.

Исходя из того, что я прочитал, если те, кто написал netsh , не работают, начиная с 7 и выше, это неправильно. Теперь, если речь идет строго о « netsh routing », я думаю, вы могли бы быть правы, но это работает - я собираюсь показать содержимое созданного мной пакетного файла, который работает на Windows 8.1. Вместо того, чтобы получать обычные комментарии и фрагменты информации, я постараюсь помочь тем, у кого есть полная информация.

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

  1. Откройте «Сетевые подключения», нажав кнопку «Пуск» Изображение кнопки «Пуск», а затем нажмите «Панель управления». В поле поиска введите адаптер, а затем в разделе Центр управления сетями и общим доступом щелкните Просмотр сетевых подключений.

  2. Щелкните правой кнопкой мыши соединение, которым вы хотите поделиться, и выберите Свойства. Требуется разрешение администратора. Если вас попросят ввести пароль администратора или подтверждение, введите пароль или предоставьте подтверждение.

  3. Перейдите на вкладку «Общий доступ» и установите флажок «Разрешить другим пользователям сети подключаться через этот компьютер к интернет-соединению».

  1. Откройте «Свойства обозревателя», нажав кнопку «Пуск» Изображение кнопки «Пуск», выберите «Панель управления», «Сеть и Интернет», а затем нажмите «Свойства обозревателя».

  2. Перейдите на вкладку «Подключения» и нажмите «Никогда не набирать соединение».

  3. Нажмите Настройки локальной сети.

  4. В диалоговом окне «Параметры локальной сети» в разделе «Автоматическая настройка» снимите флажки «Автоматически определять параметры» и «Использовать сценарий автоматической настройки».

  5. В разделе Прокси-сервер снимите флажок Использовать прокси-сервер для вашей локальной сети и нажмите кнопку ОК.

Насколько мне известно, я думаю, что это должно работать как для Windows 7, так и для 8.

Теперь, поскольку тема была о решении для командной строки, это содержимое пакетного файла о том, как настроить виртуальный беспроводной адаптер и готов к работе.

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

Совместное использование файла .bat:

Я буду более чем счастлив ответить на вопросы по этому поводу, потому что будут некоторые уникальные ситуации, и я хотел бы помочь, так как мне пришлось собрать воедино то, что я нашел выше.

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

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

Теперь мне нужно автоматизировать эту задачу. Есть ли инструмент командной строки или командлет Powershell для выполнения этого?

Создайте, запустив build.cmd

Зарегистрируйте библиотеку COM HNetCfg : regsvr32 hnetcfg.dll (это стандартная библиотека, расположенная в %WINDIR%\System32 )

Использование командной строки

Откройте командную строку как администратор

cd в каталог icsmanager (или icsmanager-master , если вы загрузили zip).

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

Это должно включить ICS.

Использование Powershell

Перечислите сетевые подключения:

Запустите общий доступ к подключению Интернета:

Включить-ICS «Подключение к общему ресурсу» «Домашнее подключение»

Остановить общий доступ к подключению Интернета:

Отказ от ответственности: я еще не тестировал инструмент. Используйте его на свой страх и риск. Не стесняйтесь открывать проблему в GitHub, если что-то не работает. Запросы на подбор также приветствуются.

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

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

  1. Получите IPMONTR.DLL и IPPROMON.DLL с 2003 года или XP.
  2. Скопируйте их в WINDOWS \ SYSTEM32

Запустить в командной строке (cmd) в качестве администратора:

netsh add helper ipmontr.dll
netsh add helper ippromon.dll

Вам также может потребоваться настроить службу маршрутизации и удаленного доступа на автоматический запуск.

Перезагрузитесь, прежде чем пытаться что-либо сделать.

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

Как я помню, это было довольно много и много вызовов netsh, где это необходимо, но это сработало в конце .

Следующее должно работать

К сожалению, такой команды cmd для Windows 7 и более нет, поэтому я использовал эту функцию Visual Basic для ее выполнения:

Обратите внимание, что требуется "" "". Получайте удовольствие.

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

  1. Откройте «Сетевые подключения», нажав кнопку «Пуск» Изображение кнопки «Пуск», а затем «Панель управления». В поле поиска введите адаптер, а затем в разделе Центр управления сетями и общим доступом щелкните Просмотр сетевых подключений.

  2. Щелкните правой кнопкой мыши соединение, которое вы хотите предоставить, и нажмите «Свойства». Требуется разрешение администратора. Если вам будет предложено ввести пароль администратора или подтверждение, введите пароль или подайте подтверждение.

  3. Перейдите на вкладку «Общий доступ», а затем выберите Разрешить другим пользователям сети подключение через подключение к Интернету этого компьютера.

  1. Откройте «Свойства обозревателя», нажав кнопку «Пуск» Рисунок кнопки «Пуск», «Панель управления», «Сеть и Интернет», а затем «Свойства обозревателя».

  2. Перейдите на вкладку «Подключения» и нажмите «Никогда не набирать соединение».

  3. Выберите настройки локальной сети.

  4. В диалоговом окне «Параметры локальной сети» («Локальная сеть») в разделе «Автоматическая настройка» снимите флажки «Автоматически определять параметры» и «Использовать сценарии автоматической настройки».

  5. В разделе «Прокси-сервер» снимите флажок «Использовать прокси-сервер для вашей локальной сети» и нажмите «ОК».

Насколько мне известно, я думаю, что это должно работать как для Windows 7, так и для 8.

Теперь, когда речь шла о решении командной строки, это содержимое пакетного файла, как настроить виртуальный беспроводной адаптер, готовый к работе.

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

Файл совместного использования соединений .bat:

Я буду более чем счастлив ответить на вопросы об этом, потому что будут какие-то уникальные ситуации, и я хотел бы помочь, так как мне пришлось собрать вместе то, что я нашел выше.

Но для того, чтобы довести это до перспективы, это работает в Windows 8.1, используя Ethernet-соединение, в ноутбук, который подключается к виртуальному адаптеру. Он может работать так же хорошо, если вы пытаетесь использовать беспроводное соединение источника.

date

13.04.2021

directory

PowerShell, Windows 10

comments

комментария 3

Служба Internet Connection Sharing (ICS) в Windows позволяет предоставить общий доступ к интернет подключению на вашем компьютере другим компьютерам в локальной сети (через Wi-Fi или Ethernet). Благодаря этому все компьютеры в локальной сети могут выходить в Интернет через интернет подключение на одном компьютере (компьютер может быть подключен к интернету: через 4G/LTE модем, прямое кабельное подключение через второй сетевой адаптер, спутниковое подключение, PPPoE, VPN подключение и т.д.). В этом случае данный компьютер Windows с двумя сетевыми интерфейсами, подключенными к разным сетям, будет выступать в качестве шлюза для доступа в Интернет других компьютеров. Служба ICS при этом выполняет функции трансляции адресов (NAT) и DHCP сервера.

Общий доступ к сетевому подключению в Windows включается в свойствах сетевого адаптера на вкладке Доступ -> Общий доступ к подключению к Интернету -> Разрешить другим пользователям сети использовать подключение к Интернету данного компьютера (Allow other network users to connect through this computer’s Internet connection).

windows 10 Разрешить другим пользователям сети использовать подключение к Интернету данного компьютера

В современных билдах Windows 10 есть один неприятный недостаток – после перезагрузки компьютера с общим сетевым подключением, у других компьютеров в локальной LAN/Wi-Fi сети пропадает доступ в Интернет.

Дело в том, что в современных билдах Windows 10, если через общее сетевое подключение не идет трафик, то служба Internet Connection Sharing отключается через 4 минуты, и не перезапускается автоматически.Чтобы восстановить общий доступ к Интернету, нужно снять и еще повторно включить галку общего доступа в свойства сетевого адаптера, через который Windows подключена к Интернету.

Чтобы служба общего доступа к интернету автоматически включалась после перезагрузки Windows 10, нужно включить специальный параметр реестра EnableRebootPersistConnection типа DWORD в ветке HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedAccess и значением 1.

Проще всего создать параметр реестра следующей командой PowerShell:

New-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\SharedAccess -Name EnableRebootPersistConnection -Value 1 -PropertyType dword

параметр реестра EnableRebootPersistConnection

Затем нужно установить автоматический запуск для службы Internet Connection Sharing ( SharedAccess ). Можно изменить тип запуска службы с Manual на Automatic через консоль services.msc или с помощью PowerShell:

Set-Service SharedAccess –startuptype automatic –passthru

автоматический запускл службы SharedAccess

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

$NetShareObject = New-Object -ComObject HNetCfg.HNetShare
$list = New-Object System.Collections.Generic.List[System.Object]
foreach( $connection in $NetShareObject.EnumEveryConnection )$config = $NetShareObject.INetSharingConfigurationForINetConnection( $connection )
if( $config.SharingEnabled -eq 1 )$type = $config.SharingConnectionType
$list.Add( @($type,$config) )
$config.DisableSharing( )
>
>
Start-Sleep 1
foreach( $array in $list )$array[1].EnableSharing($array[0])
>

Этот PowerShell скрипт можно запускать автоматически через задание планировщика Windows при загрузке компьютера.

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