Войти

Показать полную графическую версию : Вытащить значения из реестров нескольких компов


mulrus
08-04-2015, 13:35
Есть задача. Надо с компов в сети собрать инфу по установленной версии одной проги на каждом.

Надыбал один скрипт:

@echo off
setlocal enableextensions enabledelayedexpansion

>"D:\1.txt" (
>nul chcp 1251

for /f "usebackq delims=" %%i in (
`reg.exe query "\\192.168.56.1\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Mo yaProga"`
) do for /f "usebackq tokens=3*" %%j in (
`reg.exe query "%%~i" /v "DisplayVersion" 2^>nul ^| find.exe /i "DisplayVersion"`
) do echo %%~j %%k|findstr.exe /i /v /r /c:"^Microsoft Visual C++ .* False$"

>nul chcp 866
)

endlocal
exit /b 0


В результате появляется файлик 1.txt c нужным мне значением, НО

1. Как сделать так, чтобы просто в какую нибудь переменную вбить через проблем IP-адреса компов по которым будет прогоняться скрипт?
2. Ну и получить результат в файл списком видка
192.168.56.1 - [Значение]
192.168.56.2 - [Значение]
.....и.т.д.

Elven
08-04-2015, 15:56
вроде приблизительно как-то так
@echo off
setlocal enableextensions enabledelayedexpansion

>"D:\1.txt" (
>nul chcp 1251

for /f "delims=," %%c in ("192.168.56.1,192.168.56.2") do (
for /f "usebackq delims=" %%i in (
`reg.exe query "\\%%с\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\M oyaProga"`
) do for /f "usebackq tokens=3*" %%j in (
`reg.exe query "%%~i" /v "DisplayVersion" 2^>nul ^| find.exe /i "DisplayVersion"`
) do echo %%c %%~j %%k|findstr.exe /i /v /r /c:"^Microsoft Visual C++ .* False$"
)
>nul chcp 866
)

endlocal
exit /b 0

mulrus
08-04-2015, 16:11
Запустил, но сначала ругается вот так
http://aparen1.narod.ru/reg1.PNG

Потом тупо решил сам reg.exe скопировать рядом с батником, теперь ругается так.
http://aparen1.narod.ru/reg2.PNG

Ну и на худой конец System32, тоже как-то не айс
http://aparen1.narod.ru/reg3.PNG

Если включить echo, то там непонятно что подставляется в адрес вместо IP-шника
http://aparen1.narod.ru/reg4.PNG


Причина в том, что где-то русская "%%с" была. Но почему-то строка только одна в файл выводится
192.168.56.1 4.1.1.0




© OSzone.net 2001-2012