ivisor
05-01-2016, 15:34
Хочу написать батник, который будет сбрасывать счетчик Аутлук Экспресса и не давать ему сжимать содержимое.
Для этого нужно при запуске системы обнулять:
[HKCU\Identities\%DefaultUserID%\Software\Microsoft\Outlook Express\5.0]
"Compact Check Count"=dword:00000000
%DefaultUserID% пользователя я получаю успешно, а вот ни прочитать значение параметра "Compact Check Count" ни записать его не могу.
Чтение из командной строки:
Reg QUERY "HKCU\Identities\{6AFFFC1F-16A3-4D85-AAC3-B5113277F9F4}\Software\Microsoft\Outlook Express\5.0" /V "Compact Check Count"
Выдает ошибку "недопустимые параметры командной строки"
Reg QUERY "HKCU\Identities\{6AFFFC1F-16A3-4D85-AAC3-B5113277F9F4}\Software\Microsoft\Outlook Express\5.0" /V Compact Check Count
Выдает ВСЕ параметры и вложенные ключи
С Reg QUERY видимо проблема в том что в пути ключа есть пробел: "... Outlook Express ...", т.к. параметры ключей без пробела читаются успешно
Запись из командной строки:
Reg ADD "HKCU\Identities\{6AFFFC1F-16A3-4D85-AAC3-B5113277F9F4}\Software\Microsoft\Outlook Express\5.0" /V "Compact Check Count" /T REG_DWORD /D 0 /F
Выдает ошибку "Слишком много параметров в командной строке"
Reg ADD "HKCU\Identities\{6AFFFC1F-16A3-4D85-AAC3-B5113277F9F4}\Software\Microsoft\Outlook Express\5.0" /V Compact Check Count /T REG_DWORD /D 0 /F
Выдает "Операция успешно завершена", но данные параметра Compact Check Count остаются неизменными
Подскажите пожалуйста что делать и в какую сторону?
Вот текст батника (на всякий случай):
@echo off
rem ----------------------------------------------------------------------------------------------------------
rem Сброс счетчика Outlook Express
rem
rem HKCU\Identities\[UserID]\Software\Microsoft\Outlook Express\5.0\
rem Compact Check Count =0
rem ----------------------------------------------------------------------------------------------------------
rem ----------------------------------------------------------------------------------------------------------
rem получим sid по имени текущего пользователя
rem ----------------------------------------------------------------------------------------------------------
set "exec=wmic useraccount where name="%username%" get sid /value"
echo %exec%
for /f %%i in (' "%exec%" ') do 1>nul set "%%i"
echo ----------------------------------------------------------------------------------------------------------
echo sid=%sid%
echo ----------------------------------------------------------------------------------------------------------
rem ----------------------------------------------------------------------------------------------------------
rem получим Default User ID по sid пользователя
rem ----------------------------------------------------------------------------------------------------------
echo Reg QUERY HKEY_USERS\%sid%\Identities\ /v "Default User ID"
Reg QUERY HKEY_USERS\%sid%\Identities\ /v "Default User ID"
rem ----------------------------------------------------------------------------------------------------------
set "exec=Reg QUERY HKEY_USERS\%sid%\Identities\ /v "Default User ID""
For /F "Tokens=5" %%i In (' "%exec%" ') Do set DefaultUserID=%%i
echo ----------------------------------------------------------------------------------------------------------
Echo Default User ID = %DefaultUserID%
echo ----------------------------------------------------------------------------------------------------------
rem ----------------------------------------------------------------------------------------------------------
rem обнулим значение параметра Compact Check Count
rem ----------------------------------------------------------------------------------------------------------
set Key="HKEY_CURRENT_USER\Identities\%DefaultUserID%\Software\Microsoft\Outlook Express\5.0\"
set ParName=Compact Check Count
Echo Reg ADD %Key% /v %ParName% /t REG_DWORD /d 0 /f
Reg ADD %Key% /v %ParName% /t REG_DWORD /d 0/f
Для этого нужно при запуске системы обнулять:
[HKCU\Identities\%DefaultUserID%\Software\Microsoft\Outlook Express\5.0]
"Compact Check Count"=dword:00000000
%DefaultUserID% пользователя я получаю успешно, а вот ни прочитать значение параметра "Compact Check Count" ни записать его не могу.
Чтение из командной строки:
Reg QUERY "HKCU\Identities\{6AFFFC1F-16A3-4D85-AAC3-B5113277F9F4}\Software\Microsoft\Outlook Express\5.0" /V "Compact Check Count"
Выдает ошибку "недопустимые параметры командной строки"
Reg QUERY "HKCU\Identities\{6AFFFC1F-16A3-4D85-AAC3-B5113277F9F4}\Software\Microsoft\Outlook Express\5.0" /V Compact Check Count
Выдает ВСЕ параметры и вложенные ключи
С Reg QUERY видимо проблема в том что в пути ключа есть пробел: "... Outlook Express ...", т.к. параметры ключей без пробела читаются успешно
Запись из командной строки:
Reg ADD "HKCU\Identities\{6AFFFC1F-16A3-4D85-AAC3-B5113277F9F4}\Software\Microsoft\Outlook Express\5.0" /V "Compact Check Count" /T REG_DWORD /D 0 /F
Выдает ошибку "Слишком много параметров в командной строке"
Reg ADD "HKCU\Identities\{6AFFFC1F-16A3-4D85-AAC3-B5113277F9F4}\Software\Microsoft\Outlook Express\5.0" /V Compact Check Count /T REG_DWORD /D 0 /F
Выдает "Операция успешно завершена", но данные параметра Compact Check Count остаются неизменными
Подскажите пожалуйста что делать и в какую сторону?
Вот текст батника (на всякий случай):
@echo off
rem ----------------------------------------------------------------------------------------------------------
rem Сброс счетчика Outlook Express
rem
rem HKCU\Identities\[UserID]\Software\Microsoft\Outlook Express\5.0\
rem Compact Check Count =0
rem ----------------------------------------------------------------------------------------------------------
rem ----------------------------------------------------------------------------------------------------------
rem получим sid по имени текущего пользователя
rem ----------------------------------------------------------------------------------------------------------
set "exec=wmic useraccount where name="%username%" get sid /value"
echo %exec%
for /f %%i in (' "%exec%" ') do 1>nul set "%%i"
echo ----------------------------------------------------------------------------------------------------------
echo sid=%sid%
echo ----------------------------------------------------------------------------------------------------------
rem ----------------------------------------------------------------------------------------------------------
rem получим Default User ID по sid пользователя
rem ----------------------------------------------------------------------------------------------------------
echo Reg QUERY HKEY_USERS\%sid%\Identities\ /v "Default User ID"
Reg QUERY HKEY_USERS\%sid%\Identities\ /v "Default User ID"
rem ----------------------------------------------------------------------------------------------------------
set "exec=Reg QUERY HKEY_USERS\%sid%\Identities\ /v "Default User ID""
For /F "Tokens=5" %%i In (' "%exec%" ') Do set DefaultUserID=%%i
echo ----------------------------------------------------------------------------------------------------------
Echo Default User ID = %DefaultUserID%
echo ----------------------------------------------------------------------------------------------------------
rem ----------------------------------------------------------------------------------------------------------
rem обнулим значение параметра Compact Check Count
rem ----------------------------------------------------------------------------------------------------------
set Key="HKEY_CURRENT_USER\Identities\%DefaultUserID%\Software\Microsoft\Outlook Express\5.0\"
set ParName=Compact Check Count
Echo Reg ADD %Key% /v %ParName% /t REG_DWORD /d 0 /f
Reg ADD %Key% /v %ParName% /t REG_DWORD /d 0/f