![]() |
запрос в реестр удаленной машины, и выполнение действия по условию
опять начал вспоминать батники.. тяжко..
имеем список машин, подключаемся к каждой последовательно, имя компа обозначается переменной %%i Далее собсно запрашиваем список юзеров на машине, чтоб найти меня for /f %%a in ('reg query \%%i\hku') do ( reg query "\%%i\%%a\Volatile Environment" и если находящийся в этой ветке ключ username =myname, то выполнить действие. Допустим, сменить дефолтную раскладку на англ для этого юзера. собсно вопрос, как? |
Код:
REG QUERY "\%%i\%%a\Volatile Environment" /v Username |find "Myname" >nul |
спасибо
Строку цикла 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 net use \\%1 /d - оно ниже. и в строке как вы описали, лог даёт - Код:
D:\Bats>for /F %a in ('reg query \%i\hku') do ( |
а не может-ли тут влиять как-то недоступность разделов кроме HKCU & HKLM на удаленной машине?
|
Попробуйте такой тестовый вариант с переменной:
Код:
@echo off Как отрабатывает?? Так же добавьте еще один слэш перед переменной и проверяйте: Код:
REG QUERY "\\%%i\%%a\Volatile Environment" /v Username |find "Myname" >nul |
Цитата:
%i %i Цитата:
Код:
D:\Bats>reg add "\\%i\HKU\.DEFAULT\Keyboard Layout\Preload" /V 1 /T REG_SZ Скрытый текст
Код:
@echo ON на каждую из 2х строку запросов |
Время: 11:47. |
Время: 11:47.
© OSzone.net 2001-