none
Переименование сетевого интерфейса RRS feed

Все ответы

  • Code Snippet

    netsh interface set interface name = "Local Area Connection OldName" newname = "Local Area Connection NewName"

     

     

    13 августа 2008 г. 10:56
  •  

    Тогда поправка в начальные условия.

    Неизвестно текущее имя интерфейса и надо независимо от того как они у кого названы переименовать в новое.

    Т.е. команда по выводу текущего имени и результат передать в ту строку, которую Вы указали (в netsh)

    13 августа 2008 г. 11:35

  • Такой вариант. При условии, что только один адаптер. Или %name% будет иметь значение последнего из списка в `ipconfig`
      
    =======

    @echo off 
    setlocal

    for /f "tokens=*" %%i in ('ipconfig ^| findstr - Ethernet') do set "name=%%i"
    set "name=%name:~0,-21%"

    netsh interface set interface name="%name%" newname="NewName"

    13 августа 2008 г. 16:44
  • Мой вариант:

     

    strComputer = "."
    NewName="NewName"
    set wshShell= wscript.CreateObject("Wscript.Shell")
    Set objWMIService = GetObject _
    ("winmgmts:\\" & strComputer & "\root\microsoft\homenet")
    Set colItems = objWMIService.ExecQuery("Select * from HNet_Connection")
    For Each objItem in colItems
    if (objItem.IsLANConnection) then
    wshShell.Run("netsh interface set interface name = " &chr(34)&objItem.Name &chr(34)& " newname = " & chr(34)&NewName&chr(34))
    end if
    Next

     

    Скрипт работает в рамках одной сессии. Т.е. сменив имя адаптера, требуется перезагрузка для повторной смены

    13 августа 2008 г. 16:53
  •  dmirk написано:

    Мой вариант:

     

    strComputer = "."
    NewName="NewName"
    set wshShell= wscript.CreateObject("Wscript.Shell")
    Set objWMIService = GetObject _
    ("winmgmts:\\" & strComputer & "\root\microsoft\homenet")
    Set colItems = objWMIService.ExecQuery("Select * from HNet_Connection")
    For Each objItem in colItems
    if (objItem.IsLANConnection) then
    wshShell.Run("netsh interface set interface name = " &chr(34)&objItem.Name &chr(34)& " newname = " & chr(34)&NewName&chr(34))
    end if
    Next

     

    Скрипт работает в рамках одной сессии. Т.е. сменив имя адаптера, требуется перезагрузка для повторной смены

     

    Спасибо.

    А как сюда добавить еще строки по изменению параметров TCP\IP

    \типа

    netsh interface ip add dns lan 192.168.1.1 index=1
    netsh interface ip add dns lan 192.168.1.1 index=2
    netsh interface ip add dns lan 192.168.1.1 index=3
    netsh interface ip add wins lan 192.168.1.1 index=1
    netsh interface ip add wins lan 192.168.1.1 index=2

    ну и любые иные ....

    Чтобы выполнить все в одном скрипте и команды выполнялись бы последовательно (следующая по завершении предыдущей)

    14 августа 2008 г. 9:18
  • В этом случае вместо Run следует запускать через Exec, у которого есть код возврата.

    Т.е. скрипт будет выглядеть примерно следующим образом:

     

    Code Snippet

    strComputer = "."
    NewName="NewName"
    set wshShell= wscript.CreateObject("Wscript.Shell")
    Set objWMIService = GetObject _
    ("winmgmts:\\" & strComputer & "\root\microsoft\homenet")
    Set colItems = objWMIService.ExecQuery("Select * from HNet_Connection")
    For Each objItem in colItems
    if (objItem.IsLANConnection) then
    Set ExecResult = wshShell.Exec("netsh interface set interface name = " &chr(34)&objItem.Name &chr(34)& " newname = " & chr(34)&NewName&chr(34))
    'ждем когда выполнится
    Do While ExecResult.Status = 0
       WScript.Sleep 100
    Loop

    'После завершения переходим к следующей

    Set ExecResult = wshShell.Exec("netsh interface ip add dns lan 192.168.1.1 index=1")

    'ждем когда выполнится
    Do While ExecResult.Status = 0
       WScript.Sleep 100
    Loop

    ' и т.д.
    end if
    Next

     

     

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

    Решение конечно не оптимальное, но в контексте обсуждаемой темы самое наглядное Smile

    14 августа 2008 г. 15:31
  • Если Вам неизвестно имя сетевого подключения, а Вам нужно изменить DNS-адреса, вот мой универсальный метод:

    @echo off
    set NETWORK=
    for /f "tokens=2 delims==" %%a in ('wmic path Win32_networkadapter where ^"NetConnectionStatus^=2^" get NetConnectionID /value') do if not defined NETWORK set NETWORK=%%a
    echo %NETWORK%
    netsh interface set interface name="%NETWORK%" newname="Internet"
    netsh interface ip set dns "Internet" static 8.8.8.8
    netsh interface ip add dns "Internet" 8.8.4.4
    pause

    • Предложено в качестве ответа 2cool.ru 18 января 2018 г. 16:51