Войти

Показать полную графическую версию : [решено] Настройка локально сети и прокси


lancom
13-03-2022, 09:13
Здравствуйте. Есть очень интересная задача. Нужно настроить порядка 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)

Дальше мне не хватает серого вещества поэтому прошу помощи.

NickM
13-03-2022, 09:50
но никак не разберусь как сделать выбор интерфейса. »
Например, можно перечислить/ узнать активные сетевые адаптеры, в случае единственного записать его наименование в переменную, после задать ему настройки/ параметры:
@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 локального компьютера.

NickM
13-03-2022, 10:08
Нужно настроить порядка 300 компов в разных школах на новый интернет. »
А вообще, конечно же, Вам лучше поднять и настроить "DHCP" сервер, и не затевать раздачу ручных сетевых настроек.
Как вариант, настроить "SAMBA-DC" сервер и администрировать такое кол-во АРМ станет намного удобней.

По указанию прокси - в случае командного сценария, задавать можно, например, с помощью прямой записи в реестр (https://winitpro.ru/index.php/2015/02/25/nastrojka-internet-explorer-s-pomoshhyu-gruppovyx-politik-v-windows-2012/).

И да, 300 АРМ, это количество больше допустимого одного сегмента сети, как Вы будете разделять сегменты сети, устанавливать роутер?

Насколько помню, школам выдаётся фиксированное кол-во доступных "виртуальных" IP-адресов, но это конечно же не проблема, адресацию можно вести и Свою, локальную.

lancom
13-03-2022, 10:24
@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
Я не овем понял какая переменная идёт в использование?

ПК находятся в разных учебных заведениях.

NickM
13-03-2022, 10:42
Я не 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

lancom
13-03-2022, 12:01
А можно какой нибудь командой отображать какой интерфейс он настраивает? Так как активных может быть 2 но ОС показывает в трее тот на котором есть интернет. И не совсем понятно какой интерфейс настраивает скрипт.

NickM
13-03-2022, 13:45
А можно какой-нибудь командой отображать какой интерфейс он настраивает? »
Можно, добавьте, в нужное Вам место, как было предложено изначально - отображение активного сетевого интерфейса:
echo.%%a

Так как активных может быть 2 но ОС показывает в трее тот на котором есть интернет. И не совсем понятно какой интерфейс настраивает скрипт. »
В переменной %%a окажется последний перечисленный активный сетевой интерфейс.
Замечу, что именно об этом и было сказано изначально:
в случае единственного записать его наименование в переменную, после задать ему настройки/ параметры:

Хотя, кончено, два и более активных сетевых интерфейса в системе это скорее исключение/ редкий случай, тем более в школе.

lancom
13-03-2022, 14:04
А что нужно изменить в моем скрипте, чтоб прокси прописывался на все учётные записи компьютера.
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

NickM
13-03-2022, 14:20
Полагаю, что можно/ следует перечислить ветки в:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\
где считать SID пользователей, которые уже в дальнейшем и использовать, для Своих задач, в ветке пользователей:
HKEY_USERS

NickM
13-03-2022, 14:56
Например, вот один из вариантов считывания 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

lancom
13-03-2022, 16:11
Я понял. Вот пример того то у меня получается на данном этапе:
@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 Готово.

NickM
13-03-2022, 16:45
Я понял. Вот пример того то у меня получается на данном этапе: »
Т.е. Вы добились желаемого?

Возможно конкретно данного сценария могу возникнуть некоторые вопросы:

1. Чтобы задать/ изменить сетевые настройки потребуются административные права, и если текущий пользователь таковым не является, то после повышения прав ветвь "HKCU" будет ссылаться на администратора.
Т.е. можно рассмотреть выше предложенный вариант для обхода и задания настроек для всех пользователей;

2. Для чего:
gpupdate /force
Вы никаких групповых политик не задаёте/ не изменяете;

3. Вместо
rundll32 user32.dll,UpdatePerUserSystemParameters
после всех внесённых изменений конечно же лучше выполнять перезагрузку;

4. Как и говорилось выше - возможно и не стоит изменять сетевые настройки на виртуальные адреса, возможно может оказаться достаточно сертификата и указания прокси, а уже локальный шлюз/ роутер настроить на шлюз оборудования провайдера.

lancom
13-03-2022, 18:33
Хотелось бы через роутеры. И даже настроены некоторые Но последнии требования от Ростелека противоречат моим желаниям. Они начинают требовать вывода на отдельный ip каждого компьютера в школе. Хотя по мне это полный бред.

NickM
13-03-2022, 19:37
Они начинают требовать вывода на отдельный ip каждого компьютера в школе. »
Кто? Техники, те кто настраивает?

Эти ребята кроме как вбить вручную АйПи и установить из инсталлера сертификат ничего и не умеют.

Например, как настроить DHCP на роутере и раздавать только прокси, или как настроить Linux-based систему - для них это неподъёмная задача.




© OSzone.net 2001-2012