|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Исправить значение параметра в реестре |
|
|
VBS/WSH/JS - [решено] Исправить значение параметра в реестре
|
Новый участник Сообщения: 10 |
Всем доброго времени суток!
Прошу помочь в написании посредством кода на VBScript. Необходимо внутри ветки реестра [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles] найти параметр “Leave on Server” и после чего проверить его значение, если оно равно dword:00000000 то выход, если нет то исправить это значение на dword:00000000 затем выход. Проблема в том, что название внутри папки может отличаться на разных компьютерах. (Например здесь Outlook\9375CFF0413111d3B88A00104B2A6676\00000006) Возможно, у кого-то уже есть аналогичный опыт, прошу поделиться. Буду признателен за помощь! |
|
Отправлено: 09:55, 21-05-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата JooDoo:
|
|
Отправлено: 11:05, 21-05-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Не нашли ни одного такого параметра — что делать. выход
Нашли несколько таких параметров — что делать. заменить везде на dword:00000000 затем выход |
Отправлено: 12:19, 21-05-2018 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать JooDoo, насколько я понимаю, нет никакой необходимости тыкаться по абсолютно всем подразделам HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles.
У Вас действительно настроено у пользователей по нескольку профилей в Microsoft Outlook? Единственный умолчальный профиль имеет типичное имя Outlook. Настройки учётных записей, адресной книги, личных папок хранятся в именованных подразделах раздела 9375CFF0413111d3B88A00104B2A6676. То есть, в общем случае достаточно пройтись только по нумерованным подразделам из HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676. Option Explicit Const HKEY_CURRENT_USER = &H80000001 Dim arrSubKeys Dim strSubKey Dim lngValue With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\default").Get("StdRegProv") If .EnumKey(HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676", arrSubKeys) = 0 Then For Each strSubKey In arrSubKeys If .GetDWORDValue(HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\" & strSubKey, "Leave on Server", lngValue) = 0 Then If lngValue <> 0 Then If .SetDWORDValue(HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\" & strSubKey, "Leave on Server", 0) = 0 Then WScript.Echo "Successfully set parameter [Leave on Server] of subkey [HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\" & strSubKey & "] to [0]." Else WScript.Echo "Failure set parameter [Leave on Server] of subkey [HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\" & strSubKey & "] to [0]." End If End If End If Next Else WScript.Echo "Can't enumerate subkeys on [HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676]." WScript.Quit 1 End If End With WScript.Quit 0 |
Отправлено: 00:34, 22-05-2018 | #4 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать У нас иногда профиль могут назвать другим именем и тогда Outlook поменяется на новое имя.
|
|
Отправлено: 16:42, 22-05-2018 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать JooDoo, выложите архив с файлом реестра с подобным именем профиля. То есть, всё содержимое реестра от раздела HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem и ниже.
|
Отправлено: 16:56, 22-05-2018 | #6 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Огромное тебе спасибо Iska, меня полностью устраивает работа данного скрипта. Проверил все работает замечательно.
Только я не понял почему если он может искать внутри раздела 9375CFF0413111d3B88A00104B2A6676, а если указать HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profile то нет? Если это сложно организовать, то вопрос можно закрыть буду использовать данный скрипт. Спасибо еще раз. |
Отправлено: 04:45, 23-05-2018 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата JooDoo:
Цитата JooDoo:
|
||
Отправлено: 06:00, 23-05-2018 | #8 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Вот мой архив реестра
|
Отправлено: 08:23, 23-05-2018 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Хмм… Ну, тут тоже ровно один профиль. Вот код, который будет править указанный параметр в профиле по умолчанию:
Option Explicit Const HKEY_CURRENT_USER = &H80000001 Dim arrSubKeys Dim strSubKey Dim strDefaultProfileName Dim lngValue With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\default").Get("StdRegProv") If .GetStringValue(HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles", "DefaultProfile", strDefaultProfileName) = 0 Then If .EnumKey(HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\" & strDefaultProfileName & "\9375CFF0413111d3B88A00104B2A6676", arrSubKeys) = 0 Then For Each strSubKey In arrSubKeys If .GetDWORDValue(HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\" & strDefaultProfileName & "\9375CFF0413111d3B88A00104B2A6676\" & strSubKey, "Leave on Server", lngValue) = 0 Then If lngValue <> 0 Then If .SetDWORDValue(HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\" & strDefaultProfileName & "\9375CFF0413111d3B88A00104B2A6676\" & strSubKey, "Leave on Server", 0) = 0 Then WScript.Echo "Successfully set parameter [Leave on Server] of subkey [HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\" & strDefaultProfileName & "\9375CFF0413111d3B88A00104B2A6676\" & strSubKey & "] to [0]." Else WScript.Echo "Failure set parameter [Leave on Server] of subkey [HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\" & strDefaultProfileName & "\9375CFF0413111d3B88A00104B2A6676\" & strSubKey & "] to [0]." End If End If End If Next Else WScript.Echo "Can't enumerate subkeys on [HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\" & strDefaultProfileName & "\9375CFF0413111d3B88A00104B2A6676]." WScript.Quit 2 End If Else WScript.Echo "Can't read parameter [DefaultProfile] from subkey [HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles]." WScript.Quit 1 End If End With WScript.Quit 0 |
Отправлено: 09:33, 23-05-2018 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Как получить значение параметра из реестра, добавить значение в текстовый файл etc.? | Dark Ange1 | Скриптовые языки администрирования Windows | 28 | 22-06-2022 14:37 | |
[решено] Заменить значение параметра в реестре по указанному пути | Alexander_88 | AutoIt | 3 | 15-07-2017 21:22 | |
Доступ - Не могу исправить значение параметра в реестре, отказано в доступе | Shindler_2010 | Microsoft Windows 7 | 6 | 25-09-2014 10:54 | |
CMD/BAT - [решено] Удаление параметра в реестре где значение переменная | RoNiBu | Скриптовые языки администрирования Windows | 8 | 24-02-2012 19:18 | |
Значение параметра в реестре WinME | Guest | Microsoft Windows 95/98/Me (архив) | 3 | 07-10-2004 15:26 |
|