[Цитировать]

    mat.86
  • 14134
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 225
  • Репутация:1

    [+] [-]
Пытаюсь сделать батник который бы вытаскивал информацию из реестра о ip адресе сетевой карты.
Первый вариант такой
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\{33303D36-0D03-4C8E-A82E-7C5C29A5AE0E}"^|Find /I "DefaultGateway"`) Do Echo %%J>>text.txt
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\{33303D36-0D03-4C8E-A82E-7C5C29A5AE0E}"^|Find /I "SubnetMask"`) Do Echo %%J>>text.txt
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\{33303D36-0D03-4C8E-A82E-7C5C29A5AE0E}"^|Find /I "IPAddress"`) Do Echo %%J>>text.txt
Но папка {33303D36-0D03-4C8E-A82E-7C5C29A5AE0E} на каждом пк разная, как сделать чтобы искались во всех подпапках?

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 2 месяца
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
mat.86
@echo off
For /F "usebackq" %%a In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces"`) Do (
  For /F "UseBackQ Tokens=2*" %%b In (`Reg Query "%%a"^|Find /I "SubnetMask"`) Do (
    >text.txt Echo %%c
    For /F "UseBackQ Tokens=2*" %%b In (`Reg Query "%%a"^|Find /I "DefaultGateway"`) Do >>text.txt Echo %%c
    For /F "UseBackQ Tokens=2*" %%b In (`Reg Query "%%a"^|Find /I "IPAddress"`) Do >>text.txt Echo %%c
  )
)
Пришлось только поменять порядок вывода, что-бы не выводилась лишняя информация

[Цитировать]

    mat.86
  • 14134
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 225
  • Репутация:1

    [+] [-]
Ander_73, добавил ключ S вроде сработал
nikzzzz, выводит информацию только из нижнего каталога. Между DefaultGateway и IPAddress выводит такую строчку
¦Ё¬ ўлў®¤  Є®¬ ­¤ ­  нЄа ­ (ECHO) ®вЄ«о祭.


Последний раз редактировалось: mat.86 (2019-07-26 15:57), всего редактировалось 1 раз

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 2 месяца
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
mat.86
68959выводит информацию только из нижнего каталога.
Тогда задачу не понял.
@echo off
For /F "usebackq" %%a In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces"`) Do (
    For /F "UseBackQ Tokens=2*" %%b In (`Reg Query "%%a"^|Find /I "SubnetMask"`) Do >text.txt Echo;%%c
    For /F "UseBackQ Tokens=2*" %%b In (`Reg Query "%%a"^|Find /I "DefaultGateway"`) Do >>text.txt Echo;%%c
    For /F "UseBackQ Tokens=2*" %%b In (`Reg Query "%%a"^|Find /I "IPAddress"`) Do >>text.txt Echo;%%c
)

[Цитировать]

    mat.86
  • 14134
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 225
  • Репутация:1

    [+] [-]
Задача вообще такая: вытягивать информацию об ip-адресе из под windows PE, например перед переустановкой системы.
И выводить ее в таком виде:
-----------------------------------------------------------------------
название сетевой1
ip-адрес
маска подсети
шлюз
днс
группа
мак адрес (если он менялся)
-----------------------------------------------------------------------
название сетевой2
ip-адрес
маска подсети
шлюз
днс
группа
мак адрес (если он менялся)
-----------------------------------------------------------------------
и далее

[Цитировать]

    mat.86
  • 14134
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 225
  • Репутация:1

    [+] [-]
Давно уже хотел что то подобное сделать. Обратился к знакомому программисту который меня всегда выручал, но он перешел полностью на линукс. Посоветовал мне батник написать. Я всегда вручную это делал, пути я наизусть знаю, но для удобства пользования windows pe, хотелось бы сделать утилиту

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 2 месяца
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
mat.86
А чем не устраивает "ipconfig /all" ?l

[Цитировать]

    mat.86
  • 14134
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 225
  • Репутация:1

    [+] [-]
Да хотел чтобы подключаться к другой системе из windows pe через runscanner

[Цитировать]

    mat.86
  • 14134
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 225
  • Репутация:1

    [+] [-]
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces" /s^|Find /I "IPAddress"`) Do Echo %%J>>text.txt
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces" /s^|Find /I "SubnetMask"`) Do Echo %%J>>text.txt
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces" /s^|Find /I "DefaultGateway"`) Do Echo %%J>>text.txt
вот так все ищет, но получается каша, помогите подвести под такой вид:
-----------------------------------------------------------------------
название сетевой1
ip-адрес
маска подсети
шлюз
днс
группа
мак адрес (если он менялся)
-----------------------------------------------------------------------
название сетевой2
ip-адрес
маска подсети
шлюз
днс
группа
мак адрес (если он менялся)
-----------------------------------------------------------------------
и далее

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 2 месяца
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
68966HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces
68966Да хотел чтобы подключаться к другой системе из windows pe, теперь понимаю что эти команды не натравляются на файлы реестра на другом диске
Если для себя, можно просто из-под WinPe сохранить ветку реестра гостевой системы в reg файл, не слишком красиво, но вполне достаточно.

[Цитировать]

    mat.86
  • 14134
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 225
  • Репутация:1

    [+] [-]
Я всегда вручную это делал, пути наизусть знаю, но для удобства пользования windows pe, хотелось бы сделать утилиту.
А через runscaner не будет работать?

[Цитировать]

    mat.86
  • 14134
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 225
  • Репутация:1

    [+] [-]
я хотел с windows pe вытягивать информацию с другого windows который в данный момент не запущен, перенаправляя батник по средствам утилиты runscaner, которая умеет перенаправлять на другой реестр.
Но через runscaner не получается перенаправить. Я не знаю есть ли команда чтобы вытащить информацию прямо из файла реестра который лежит обычно по пути "c:\windows\system32\config\system" файл system без расширения

[Цитировать]

    mat.86
  • 14134
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 225
  • Репутация:1

    [+] [-]
Вот так более нормально выводит
for /f "usebackq tokens=8 delims=\" %%A in (`reg query "HKLM\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces" /se #`) do call :PROCESS "%%A"
goto :EOF
:PROCESS
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1"^|Findstr /l "IPAddress"`) Do Echo %%J>>text.txt
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1"^|Findstr /l "SubnetMask"`) Do Echo %%J>>text.txt
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1"^|Findstr /l "DefaultGateway"`) Do Echo %%J>>text.txt
echo ->>text.txt
echo ----------------------------------------------->>text.txt
echo ->>text.txt
echo ->>text.txt
goto :EOF
выводятся значения и не точных имен, из-за этого наверно каша. Например команда поиска "IPAddress" выводит и DhcpIPAddress. Можно ли это исключить?

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 2 месяца
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
mat.86,
68983Я не знаю есть ли команда чтобы вытащить информацию прямо из файла реестра который лежит обычно по пути "c:\windows\system32\config\system"
Да в общем не проблема, подключается куст
reg  load  hklm\tmp-system c:\windows\system32\config\system
Из hklm\tmp-system вытаскивается нужная инфа, далее куст отключается
reg  unload hklm\tmp-system

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 2 месяца
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
mat.86,
68985Например команда поиска "IPAddress" выводит и DhcpIPAddress. Можно ли это исключить?
Добавьте пробел
Findstr /l " IPAddress"

Страница 1 из 5


Показать сообщения:    

Текущее время: 29-Мар 09:45

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы