Показать полную графическую версию : [решено] Настройка локально сети и прокси
Здравствуйте. Есть очень интересная задача. Нужно настроить порядка 300 копов в разных школах на новый интернет. По новы требованиям ЕСПД от Ростелекома, нужно настраивать каждый комп по отдельности. В настройку входит статичный ip, прокси и сертификат.
Есть огромное желание реализовать это посредством BAT-ника. Нужно следующее:
1. Перечисление всех доступных сетевых интерфейсов с выбором желаемого.
2. Прописать на выбранном сетевом интерфейсе ip, маску, шлюз, 2 днс. Причем последний сегмент ip должен вводиться ручками в скрипте.
3. Прописать прокси сервер.
4. Установить Доверенный корневой сертификат. Он есть как файлом сертификата так и msi пакетом. Можно использовать любой вариант. Единственное я не нашёл если возможность убрать подтверждение о добавление сертификата.
Я нашел в соседней теме как прописать настройки сети, но никак не разберусь как сделать выбор интерфейса.
set /p settings="Введите IP-адрес:"
set IFACE="Подключение по локальной сети"
netsh interface ip set address "Подключение по локальной сети" static 192.168.8.%settings% 255.255.255.0 192.168.8.10 0
Для сертификата и прокси я собрал sfx архив. Но у него есть недостаток. Если в системе 2 учётные записи, то он прописывает эти данные в Администраторскую учётку, а в пользовательскую нет. Хотя запущен в пользовательской. Вот пример того что я наваял: Ссылка на Я.диск (https://disk.yandex.ru/d/BI4gtI-smYh5xQ)
Дальше мне не хватает серого вещества поэтому прошу помощи.
но никак не разберусь как сделать выбор интерфейса. »
Например, можно перечислить/ узнать активные сетевые адаптеры, в случае единственного записать его наименование в переменную, после задать ему настройки/ параметры:
@echo off
setlocal enabledelayedexpansion
echo.###Active LAN connection###
for /f "tokens=2 delims==" %%a in ('wmic path Win32_networkadapter where ^"NetConnectionStatus^=2^" get NetConnectionID /value') do echo.%%a
Установить Доверенный корневой сертификат. Он есть как файлом сертификата так »
В таком случае удобней воспользоваться (https://docs.microsoft.com/en-us/windows-hardware/drivers/install/using-certmgr-to-install-test-certificates-on-a-test-computer) утилитой certmgr (https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/certmgr) и установить сертификат в хранилище ROOT локального компьютера.
Нужно настроить порядка 300 компов в разных школах на новый интернет. »
А вообще, конечно же, Вам лучше поднять и настроить "DHCP" сервер, и не затевать раздачу ручных сетевых настроек.
Как вариант, настроить "SAMBA-DC" сервер и администрировать такое кол-во АРМ станет намного удобней.
По указанию прокси - в случае командного сценария, задавать можно, например, с помощью прямой записи в реестр (https://winitpro.ru/index.php/2015/02/25/nastrojka-internet-explorer-s-pomoshhyu-gruppovyx-politik-v-windows-2012/).
И да, 300 АРМ, это количество больше допустимого одного сегмента сети, как Вы будете разделять сегменты сети, устанавливать роутер?
Насколько помню, школам выдаётся фиксированное кол-во доступных "виртуальных" IP-адресов, но это конечно же не проблема, адресацию можно вести и Свою, локальную.
@echo off
setlocal enabledelayedexpansion
echo.###Active LAN connection###
for /f "tokens=2 delims==" %%a in ('wmic path Win32_networkadapter where ^"NetConnectionStatus^=2^" get NetConnectionID /value') do echo.%%a
set /p settings="Введите IP-адрес:"
set IFACE="Подключение по локальной сети"
netsh interface ip set address "Подключение по локальной сети" static 192.168.8.%settings% 255.255.255.0 192.168.8.10 0
Я не овем понял какая переменная идёт в использование?
ПК находятся в разных учебных заведениях.
Я не cовем понял какая переменная идёт в использование? »
То был просто пример, для понимания.
С переменной будет так (здесь следует учитывать, что активных соединений, в некоторых случаях, может быть более одного):
@echo off
setlocal enabledelayedexpansion
for /f "tokens=2 delims==" %%a in ('wmic path Win32_networkadapter where ^"NetConnectionStatus^=2^" get NetConnectionID /value') do set ActLANConn=%%a
set /p settings="Введите IP-адрес:"
set IFACE="Подключение по локальной сети"
netsh interface ip set address "%ActLANConn%" static 192.168.8.%settings% 255.255.255.0 192.168.8.10 0
А можно какой нибудь командой отображать какой интерфейс он настраивает? Так как активных может быть 2 но ОС показывает в трее тот на котором есть интернет. И не совсем понятно какой интерфейс настраивает скрипт.
А можно какой-нибудь командой отображать какой интерфейс он настраивает? »
Можно, добавьте, в нужное Вам место, как было предложено изначально - отображение активного сетевого интерфейса:
echo.%%a
Так как активных может быть 2 но ОС показывает в трее тот на котором есть интернет. И не совсем понятно какой интерфейс настраивает скрипт. »
В переменной %%a окажется последний перечисленный активный сетевой интерфейс.
Замечу, что именно об этом и было сказано изначально:
в случае единственного записать его наименование в переменную, после задать ему настройки/ параметры:
Хотя, кончено, два и более активных сетевых интерфейса в системе это скорее исключение/ редкий случай, тем более в школе.
А что нужно изменить в моем скрипте, чтоб прокси прописывался на все учётные записи компьютера.
Echo ProxyServer:
echo 1. Vklu4enie proxy
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0x00000001 /f
echo 2. Zapret na ispolzovanie dla localnoy seti
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyOverride /t REG_SZ /d "<local>" /f
echo 3. Ukazanie adresa i porta proxy
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d 10.0.62.52:3128 /f
Полагаю, что можно/ следует перечислить ветки в:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\
где считать SID пользователей, которые уже в дальнейшем и использовать, для Своих задач, в ветке пользователей:
HKEY_USERS
Например, вот один из вариантов считывания SID пользователей, а после получение значения "ProxyEnable" каждого пользователя:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=7 delims='\'" %%i in ('reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList"') do (
echo.%%i > %temp%\tmp.tmp
for %%? in (%temp%\tmp.tmp) do ( set /a strlen=%%~z? - 3 )
if !strlen! NEQ 8 (
echo.%%i
for /F "tokens=3" %%j in ('reg query "HKEY_USERS\%%i\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyEnable" 2^> nul') do (
echo.%%j
)
)
)
pause
Я понял. Вот пример того то у меня получается на данном этапе:
@echo off
color 0b
setlocal enabledelayedexpansion
echo Привет. Это мастер настройки ESPD от Ростелекома.
for /f "tokens=2 delims==" %%a in ('wmic path Win32_networkadapter where ^"NetConnectionStatus^=2^" get NetConnectionID /value') do set ActLANConn=%%a
echo Настраиваем: %ActLANConn%
set /p settings="Введите IP-адрес:"
netsh interface ip set address "%ActLANConn%" static 10.62.36.%settings% 255.255.255.0 10.62.36.1 0
netsh interface ip set dnsservers "%ActLANConn%" static 95.167.167.95 primary
netsh interface ip add dnsservers "%ActLANConn%" 95.167.167.96 index=2
echo Локальная сеть настроена.
echo Добавляю сертификат.
CertMgr.exe /add rt.crt /s /r localMachine root /all
echo Включение прокси сервера.
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0x00000001 /f
echo Запрет на использовние прокси для локальной сети.
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyOverride /t REG_SZ /d "<local>" /f
echo Установка используемого прокси сервера и порта.
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d 10.0.62.52:3128 /f
rundll32 user32.dll,UpdatePerUserSystemParameters
gpupdate /force
echo Готово.
Я понял. Вот пример того то у меня получается на данном этапе: »
Т.е. Вы добились желаемого?
Возможно конкретно данного сценария могу возникнуть некоторые вопросы:
1. Чтобы задать/ изменить сетевые настройки потребуются административные права, и если текущий пользователь таковым не является, то после повышения прав ветвь "HKCU" будет ссылаться на администратора.
Т.е. можно рассмотреть выше предложенный вариант для обхода и задания настроек для всех пользователей;
2. Для чего:
gpupdate /force
Вы никаких групповых политик не задаёте/ не изменяете;
3. Вместо
rundll32 user32.dll,UpdatePerUserSystemParameters
после всех внесённых изменений конечно же лучше выполнять перезагрузку;
4. Как и говорилось выше - возможно и не стоит изменять сетевые настройки на виртуальные адреса, возможно может оказаться достаточно сертификата и указания прокси, а уже локальный шлюз/ роутер настроить на шлюз оборудования провайдера.
Хотелось бы через роутеры. И даже настроены некоторые Но последнии требования от Ростелека противоречат моим желаниям. Они начинают требовать вывода на отдельный ip каждого компьютера в школе. Хотя по мне это полный бред.
Они начинают требовать вывода на отдельный ip каждого компьютера в школе. »
Кто? Техники, те кто настраивает?
Эти ребята кроме как вбить вручную АйПи и установить из инсталлера сертификат ничего и не умеют.
Например, как настроить DHCP на роутере и раздавать только прокси, или как настроить Linux-based систему - для них это неподъёмная задача.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.