Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - запрос в реестр удаленной машины, и выполнение действия по условию

Ответить
Настройки темы
CMD/BAT - запрос в реестр удаленной машины, и выполнение действия по условию

Ветеран


Сообщения: 2594
Благодарности: 247

Профиль | Отправить PM | Цитировать


опять начал вспоминать батники.. тяжко..

имеем список машин, подключаемся к каждой последовательно, имя компа обозначается переменной %%i
Далее собсно запрашиваем список юзеров на машине, чтоб найти меня
for /f %%a in ('reg query \%%i\hku') do (
reg query "\%%i\%%a\Volatile Environment"
и если находящийся в этой ветке ключ username =myname,
то выполнить действие. Допустим, сменить дефолтную раскладку на англ для этого юзера.

собсно вопрос, как?

Отправлено: 16:01, 22-02-2018

 

Аватара для Казбек

Ветеран


Сообщения: 5380
Благодарности: 1874

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
REG QUERY "\%%i\%%a\Volatile Environment" /v Username  |find "Myname" >nul 
if not errorlevel 1 echo выполнить действие
echo выполнить действие - замените на желаемое действие

-------
Кто реку перешел, тому росы бояться ни к чему


Отправлено: 18:10, 22-02-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 2594
Благодарности: 247

Профиль | Отправить PM | Цитировать


спасибо
Строку цикла for при таком разделителе уже не надо? Я что-то синтаксис не понял.

да, а почему переменную не подменяет именем машины?

В батнике
Код: Выделить весь код
reg add "\%%i\HKEY_USERS\.DEFAULT\Keyboard Layout\Preload" /V 1 /T REG_SZ /F /D 00000409
В логе -
Код: Выделить весь код
D:\Bats>reg add "\%i\HKEY_USERS\.DEFAULT\Keyboard Layout\Preload" /V 1 /T REG_SZ /F /D 00000409
ERROR: Invalid key name.
Type "REG ADD /?" for usage.
хотя в строке выше имя машины прекрасно ресолвится, и между этими строками нет отмены переменной
net use \\%1 /d
- оно ниже.

и в строке как вы описали, лог даёт -
Код: Выделить весь код
D:\Bats>for /F %a in ('reg query \%i\hku') do (
REG QUERY "\%i\%a\Volatile Environment" /v Username    | find "myname"   1>nul

 if not errorlevel 1 reg add "\%i\%a\Keyboard Layout\Preload" /V 1 /T REG_SZ /F /D 00000409
)
ERROR: Invalid key name.
Type "REG QUERY /?" for usage.

Последний раз редактировалось bredych, 27-02-2018 в 15:02.


Отправлено: 15:10, 26-02-2018 | #3


Ветеран


Сообщения: 2594
Благодарности: 247

Профиль | Отправить PM | Цитировать


а не может-ли тут влиять как-то недоступность разделов кроме HKCU & HKLM на удаленной машине?

Отправлено: 14:31, 28-02-2018 | #4


Аватара для Казбек

Ветеран


Сообщения: 5380
Благодарности: 1874

Профиль | Отправить PM | Цитировать


Попробуйте такой тестовый вариант с переменной:
Код: Выделить весь код
@echo off
set file=c:\regcomplist.txt
for /f "Tokens=*" %%g in (%file%) do (
echo %%g>> c:\regquery.txt
reg query "\\%%g\HKU\Volatile Environment">> c:\regquery.txt
echo.>> c:\regquery.txt
echo.>> c:\regquery.txt
)
c:\regcomplist.txt - писок ваших ПК
Как отрабатывает??

Так же добавьте еще один слэш перед переменной и проверяйте:
Код: Выделить весь код
REG QUERY "\\%%i\%%a\Volatile Environment" /v Username  |find "Myname" >nul

-------
Кто реку перешел, тому росы бояться ни к чему


Отправлено: 09:53, 01-03-2018 | #5


Ветеран


Сообщения: 2594
Благодарности: 247

Профиль | Отправить PM | Цитировать


Цитата Казбек:
c:\regcomplist.txt - писок ваших ПК
Как отрабатывает?? »
у нас в принципе по паролю доступ даёт, но аналогичный код выдаёт

%i


%i

Цитата Казбек:
добавьте еще один слэш перед переменной и проверяйте: »
Код: Выделить весь код
D:\Bats>reg add "\\%i\HKU\.DEFAULT\Keyboard Layout\Preload" /V 1 /T REG_SZ
 /D 00000409 /F
ERROR: The network path was not found.

D:\Bats>pause
Press any key to continue . . .

D:\Bats>for /F %a in ('reg query \\%i\hku') do (
REG QUERY "\\%i\%a\Volatile Environment" /v Username    | find "myname"   1>nul

 if not errorlevel 1 reg add "\\%i\%a\Keyboard Layout\Preload" /V 1 /T REG_SZ /D
 00000409 /F
)
ERROR: The network path was not found.
...

D:\Bats>for /F %a in ('reg query \\%i\hku') do (
REG QUERY "\\%i\%a\Volatile Environment" /v Username    | find "myname"   1>nul

 if not errorlevel 1 reg add "\\%i\%a\Keyboard Layout\Preload" /V 1 /T REG_SZ /D
 00000409 /F
)
ERROR: The network path was not found.

D:\bats\Bats>pause
Press any key to continue . . .

D:\bats\Bats>QUERY "\\%i\%a\Volatile Environment" /v Username    | find "myname
"   1>nul
Invalid parameter(s)
QUERY { PROCESS | SESSION | TERMSERVER | USER }
апд

Скрытый текст

Код: Выделить весь код
@echo ON

set DomainUser=kontora\myuser
set /P DomainPassword=password...
set FILELOG=%~n0.log
set PCLIST=AD3.txt
if exist %FILELOG% set PCLIST=%FILELOG%
for /f "tokens=*" %%i in (%FILELIST%) do call :ENGLISH %%i
goto RETURN


:ENGLISH

rem echo %%i>> D:\bats\regquery.txt
rem reg query "\\%%i\HKU\Volatile Environment">> D:\bats\regquery.txt
rem echo.>> D:\bats\regquery.txt
rem echo.>> D:\bats\regquery.txt


reg add "\\%%i\HKU\.DEFAULT\Keyboard Layout\Preload" /V 1 /T REG_SZ  /D 00000409 /F
pause
for /f %%a in ('reg query \\%%i\hku') do ( REG QUERY "\\%%i\%%a\Volatile Environment" /v Username  |find "myuser" >nul 
if not errorlevel 1 reg add "\\%%i\%%a\Keyboard Layout\Preload" /V 1 /T REG_SZ /D 00000409 /F
)
pause


:return
ERROR: The network path was not found.
на каждую из 2х строку запросов

Последний раз редактировалось bredych, 05-03-2018 в 17:04.


Отправлено: 17:55, 01-03-2018 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - запрос в реестр удаленной машины, и выполнение действия по условию

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - сделать дамп с удаленной машины через cmd + программа id12398046@vk Скриптовые языки администрирования Windows 0 02-03-2017 19:12
WMI - [решено] Копирование файла с удаленной машины iving Скриптовые языки администрирования Windows 4 15-01-2012 00:59
VBS/WSH/JS - [решено] Выполнение скриптов на удаленной машине... в частности js RUVATA Скриптовые языки администрирования Windows 12 15-10-2010 12:20
Разное - Мак адрес удаленной машины __sa__nya Microsoft Windows 2000/XP 2 04-08-2008 14:51
Доступ - Автоматический ввод пароля для доступа к папке удаленной машины AlexSystems Microsoft Windows 2000/XP 8 25-01-2007 15:04




 
Переход