Войти

Показать полную графическую версию : [решено] Проверка значения ключа реестра.


RomanLis
07-09-2012, 12:26
Здравствуйте!

Часто работаю с разными компьютерами, и приходится для удобства на всех запускать такой вот reg-файл (Для отключения постоянных запросов UAC):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"ConsentPromptBehaviorAdmin"=dword:00000000

Собственно вопрос - можно ли сделать проверку в батнике, которая бы смотрела значение этого ключа, и если оно равно 1 - запускала бы этот файл?

Спасибо!

gora
07-09-2012, 12:47
@Echo Off
Set sw="HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
Set prmtr=ConsentPromptBehaviorAdmin
For /F "tokens=2*" %%j In ('Reg Query %sw% /v %prmtr% ^| Find /I "%prmtr%"') Do Set type=%%j& Set val=%%k
If "%val%"=="0x1" Reg Add %sw% /v "%prmtr%" /t %type% /d "0x0" /f

Foreigner
07-09-2012, 12:54
@echo off
setlocal

set "regpath=hklm\software\microsoft\windows\currentversion\policies\system"

for /f "tokens=3" %%i in (' reg query "%regpath%" /v "consentpromptbehavioradmin" ') do set /a "value=%%i"

if "%value%"=="1" (

reg add "%regpath%" /v "consentpromptbehavioradmin" /t reg_dword /d 0 /f

)

Iska
07-09-2012, 12:58
Собственно вопрос - можно ли сделать проверку в батнике, которая бы смотрела значение этого ключа, и если оно равно 1 - запускала бы этот файл? »
Можно, но не нужно.

gora
07-09-2012, 12:59
Зачем проверка? Если при любом раскладе должен быть установлен параметр со значением 1? »
dword:00000000 »Ему нужен 0, а проверка действительно не нужна. :) Если он конечно не собирается в дальнейшем восстанавливать исходное значение ключа, что не исключено.

Foreigner
07-09-2012, 13:04
Ему нужен 0, а проверка действительно не нужна. »

Я прочел еще раз задание и исправил ответ. Все таки проверка нужна. А вдруг там 0х05, как у меня например.

RomanLis
07-09-2012, 13:14
Спасибо!

Проверка нужна для того, чтобы каждый раз не подтверждать добавление записи. В конечном счёте, чтобы не запускать вручную от имени администратора батник, сделал так:

set "regpath=hklm\software\microsoft\windows\currentversion\policies\system"
for /f "tokens=3" %%i in (' reg query "%regpath%" /v "consentpromptbehavioradmin" ') do set /a "value=%%i"
if "%value%"=="1" (Others\Automated\UAC_Disable.reg)

Идеально, всем спасибо :)




© OSzone.net 2001-2012