Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Настройка локально сети и прокси (http://forum.oszone.net/showthread.php?t=350852)

lancom 13-03-2022 09:13 2981572

Настройка локально сети и прокси
 
Здравствуйте. Есть очень интересная задача. Нужно настроить порядка 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 учётные записи, то он прописывает эти данные в Администраторскую учётку, а в пользовательскую нет. Хотя запущен в пользовательской. Вот пример того что я наваял: Ссылка на Я.диск

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

NickM 13-03-2022 09:50 2981574

Цитата:

Цитата lancom
но никак не разберусь как сделать выбор интерфейса. »

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

@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

Цитата:

Цитата lancom
Установить Доверенный корневой сертификат. Он есть как файлом сертификата так »

В таком случае удобней воспользоваться утилитой certmgr и установить сертификат в хранилище ROOT локального компьютера.

NickM 13-03-2022 10:08 2981575

Цитата:

Цитата lancom
Нужно настроить порядка 300 компов в разных школах на новый интернет. »

А вообще, конечно же, Вам лучше поднять и настроить "DHCP" сервер, и не затевать раздачу ручных сетевых настроек.
Как вариант, настроить "SAMBA-DC" сервер и администрировать такое кол-во АРМ станет намного удобней.

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

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

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

lancom 13-03-2022 10:24 2981577

Код:

@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 2981579

Цитата:

Цитата lancom
Я не 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 2981584

А можно какой нибудь командой отображать какой интерфейс он настраивает? Так как активных может быть 2 но ОС показывает в трее тот на котором есть интернет. И не совсем понятно какой интерфейс настраивает скрипт.

NickM 13-03-2022 13:45 2981588

Цитата:

Цитата lancom
А можно какой-нибудь командой отображать какой интерфейс он настраивает? »

Можно, добавьте, в нужное Вам место, как было предложено изначально - отображение активного сетевого интерфейса:
Код:

echo.%%a
Цитата:

Цитата lancom
Так как активных может быть 2 но ОС показывает в трее тот на котором есть интернет. И не совсем понятно какой интерфейс настраивает скрипт. »

В переменной %%a окажется последний перечисленный активный сетевой интерфейс.
Замечу, что именно об этом и было сказано изначально:
Цитата:

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

lancom 13-03-2022 14:04 2981589

А что нужно изменить в моем скрипте, чтоб прокси прописывался на все учётные записи компьютера.
Код:

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 2981591

Полагаю, что можно/ следует перечислить ветки в:
Код:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\
где считать SID пользователей, которые уже в дальнейшем и использовать, для Своих задач, в ветке пользователей:
Код:

HKEY_USERS

NickM 13-03-2022 14:56 2981594

Например, вот один из вариантов считывания 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 2981595

Я понял. Вот пример того то у меня получается на данном этапе:
Код:

@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 2981598

Цитата:

Цитата lancom
Я понял. Вот пример того то у меня получается на данном этапе: »

Т.е. Вы добились желаемого?

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

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

2. Для чего:
Код:

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

3. Вместо
Код:

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

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

lancom 13-03-2022 18:33 2981604

Хотелось бы через роутеры. И даже настроены некоторые Но последнии требования от Ростелека противоречат моим желаниям. Они начинают требовать вывода на отдельный ip каждого компьютера в школе. Хотя по мне это полный бред.

NickM 13-03-2022 19:37 2981610

Цитата:

Цитата lancom
Они начинают требовать вывода на отдельный ip каждого компьютера в школе. »

Кто? Техники, те кто настраивает?

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

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


Время: 17:19.

Время: 17:19.
© OSzone.net 2001-