none
Замена основого шлюза в домене RRS feed

  • Общие обсуждения

  • Доброго времени суток.

    Стоит задача: всем пользователям AD поменять в настройках сетевой карты (единственной) адрес основного шлюза. IP, маску, DNS оставить неизменными. 

    DHCP поднимать не вариант. Ставим IP руками. 

    Смотрю в сторону  запуска скрипта через Logon, но не могу найти толковую команду, которая не сбросила бы IP, маску, DNS.

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

    10 февраля 2021 г. 14:41

Все ответы

  • Если вы ставите пользователям IP руками и не хотите использовать DHCP, то почему бы также руками им и не поменять на новые значения?

    От DHCP по религиозным соображениям отказываетесь?

    10 февраля 2021 г. 17:34
  • пользователи под своими правами могут менять настройки ip?

    добавьте логирование в лог и/или запускайте скрипты через startup и/или тестируйте их локально и/или используйте powershell

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


    The opinion expressed by me is not an official position of Microsoft

    10 февраля 2021 г. 22:24
    Модератор
  • если все так плохо c DHCP я бы смотрел в сторону утилиты pcexex Макрка Русиновича - удаленная командная строка, под которую можно написать ботник, который пробежится по всем компам и запустит на них какую-то команду вроде netsh по смене ip

    Утилита PsExec и удаленное управление системами | Windows для системных администраторов (winitpro.ru)

    Как изменить IP адрес компьютера из пакетного файла | pcnetwork | adminstuff (microsin.net)

    11 февраля 2021 г. 18:52
  • Всё гораздо проще: или подключаемся к каждому компу отдельно через Powershell (wmi должен быть включён), или пишим скрипт подключающийся к каждому компу в домене и выполняем команду:

    Set-NetIPAddress -InterfaceAlias Ethernet0 -AddressFamily IPv4 -IPAddress 192.168.100.2 -PrefixLength 24 -DefaultGateway 192.168.100.1

    IPAddress пишите тот же что и был, DefaultGateway новый

    11 февраля 2021 г. 19:57
  • Добрый день,

      Можно запилить смену дефолтного шлюза скриптом Powershell через GPO примерно так (стырено и подправлено отсюда)

    #variables
    # задаем маску IP локальной сети (первая часть адреса)
    $ipaddressmask='192.168'
    $index = get-netipaddress | where-object {$_.IPAddress -match $ipaddressmask} | select -ExpandProperty InterfaceIndex
    
    $gateway = get-netroute -DestinationPrefix '0.0.0.0/0' | select -ExpandProperty NextHop
    $oldroute = '1.1.1.1'
    $newroute = '2.2.2.2'
    $destination = '0.0.0.0/0'
    
    #Start Changing the Gateway if needed
    
    Function Swap-Gateway() {
    
    remove-netroute -interfaceindex $index -NextHop $oldroute -confirm:$false
    new-netroute -interfaceindex $index -NextHop $newroute -destinationprefix $destination -confirm:$false
    sleep 3
    
    }
    
    if ($gateway -eq $oldroute) {
    
    Swap-Gateway
    
    }
    

    12 февраля 2021 г. 6:43
  • Добрый день,

      Можно запилить смену дефолтного шлюза скриптом Powershell через GPO примерно так (стырено и подправлено отсюда)

    #variables
    # задаем маску IP локальной сети (первая часть адреса)
    $ipaddressmask='192.168'
    $index = get-netipaddress | where-object {$_.IPAddress -match $ipaddressmask} | select -ExpandProperty InterfaceIndex
    
    $gateway = get-netroute -DestinationPrefix '0.0.0.0/0' | select -ExpandProperty NextHop
    $oldroute = '1.1.1.1'
    $newroute = '2.2.2.2'
    $destination = '0.0.0.0/0'
    
    #Start Changing the Gateway if needed
    
    Function Swap-Gateway() {
    
    remove-netroute -interfaceindex $index -NextHop $oldroute -confirm:$false
    new-netroute -interfaceindex $index -NextHop $newroute -destinationprefix $destination -confirm:$false
    sleep 3
    
    }
    
    if ($gateway -eq $oldroute) {
    
    Swap-Gateway
    
    }
    

    Я так понимаю, что в этом скрипте для запуска через GPO необходимо поменять только :

    1. $ipaddressmask='192.168' на свою. (например $ipaddressmask='192.168.5')

    2. $oldroute = '1.1.1.1' вместо "1.1.1.1" пишем адрес старого шлюза по умолчанию у пользователей.

    3.  $newroute = '2.2.2.2' вместо "2.2.2.2" пишем адрес нового шлюза по умолчанию для пользователей. 

    Все ли верно? ничего не пропустил? 

    не совсем понимаю цель указания 0.0.0.0/0 в DestinationPrefix '0.0.0.0/0' и $destination = '0.0.0.0/0'

    12 февраля 2021 г. 9:51

  • не совсем понимаю цель указания 0.0.0.0/0 в DestinationPrefix '0.0.0.0/0' и $destination = '0.0.0.0/0'

    0.0.0.0/0 это интернет, чтобы всё ходило в интернет и существует "шлюз по умолчанию".
    12 февраля 2021 г. 10:13

  • 1. $ipaddressmask='192.168' на свою. (например $ipaddressmask='192.168.5')

    2. $oldroute = '1.1.1.1' вместо "1.1.1.1" пишем адрес старого шлюза по умолчанию у пользователей.

    3.  $newroute = '2.2.2.2' вместо "2.2.2.2" пишем адрес нового шлюза по умолчанию для пользователей. 

    Все ли верно? ничего не пропустил? 

    не совсем понимаю цель указания 0.0.0.0/0 в DestinationPrefix '0.0.0.0/0' и $destination = '0.0.0.0/0'

    1. Можно и так и так. Цель - определить правильный адаптер, если их несколько.

    2. Да

    3. Да

    4. Это маршрут по умолчанию для всех сетей

    12 февраля 2021 г. 10:35
  • спасибо вам большое! 

    скрипт локально на компьютере вроде как работает. Буду заводить GPO. 

    12 февраля 2021 г. 11:06
  • спасибо вам большое! 

    скрипт локально на компьютере вроде как работает. Буду заводить GPO. 

    на Windows 10 скрип запускается, на Windows 7 пишет:

    PS D:\> ./Безымянный1.ps1
    Имя "get-netipaddress" не распознано как имя командлета, функции, файла скрипта или выполняемой программы. Проверьте пр
    авильность написания имени, а также наличие и правильность пути, после чего повторите попытку.
    D:\Безымянный1.ps1:4 знак:26
    + $index = get-netipaddress <<<<  | where-object {$_.IPAddress -match $ipaddressmask} | select -ExpandProperty Interfac
    eIndex
        + CategoryInfo          : ObjectNotFound: (get-netipaddress:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException
    
    Имя "get-netroute" не распознано как имя командлета, функции, файла скрипта или выполняемой программы. Проверьте правил
    ьность написания имени, а также наличие и правильность пути, после чего повторите попытку.
    D:\Безымянный1.ps1:6 знак:24
    + $gateway = get-netroute <<<<  -DestinationPrefix '0.0.0.0/0' | select -ExpandProperty NextHop
        + CategoryInfo          : ObjectNotFound: (get-netroute:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException

    12 февраля 2021 г. 12:08
  • попробуйте вначале скрипта добавить

    Import-Module NetTCPIP
    также убедитесь, что он есть на ПК с Windows 7 (C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\NetTCPIP\NetTCPIP.psd1)

    12 февраля 2021 г. 12:20
  • powershell 2 и windows 7 не поддерживаются, но powershell 2 вы можете без проблем обновить до 5 версии, что крайне рекоммендую сделать

    The opinion expressed by me is not an official position of Microsoft

    12 февраля 2021 г. 13:56
    Модератор
  • Прошу помочь с обновлением PowerShell на компьютерах AD. Есть ли способ? 

    Спасибо

    18 февраля 2021 г. 9:51
  • Upgrading existing Windows PowerShell - ссылка
    18 февраля 2021 г. 10:48
  • ссылка на текущий топик?
    нужен какой-то скрипт для запуска через тот GPO по обновлению PowerShell на компах юзеров? Есть ли такое? Или может через WSUS это делается? 
    18 февраля 2021 г. 10:54
  • упс, не сработала кнопка..

    правильная ссылка.

    18 февраля 2021 г. 12:01
  • .msu 5.1 версии PowerShell скачал, с ними скрипты powershell. Как запустить тихую установку этих пакетов на компьютерах в AD через GPO?
    18 февраля 2021 г. 12:19