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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Исправить значение параметра в реестре

Ответить
Настройки темы
VBS/WSH/JS - [решено] Исправить значение параметра в реестре

Новый участник


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

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


Всем доброго времени суток!

Прошу помочь в написании посредством кода на 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

 

Новый участник


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

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


Большое спасибо еще раз, теперь все супер то что я и хотел получить в результате.
Вопрос закрыт всем удачи!!!

Отправлено: 10:06, 23-05-2018 | #11



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

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


Ветеран


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

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


Но на вопрос-то Вы не ответили — будет ли этого достаточно?

Ладно… Вот Вам на всякий случай ещё один код, который пытается перебирать все подразделы в …\Profiles, а не только указанный как умолчальный:
Код: Выделить весь код
Option Explicit

Const HKEY_CURRENT_USER = &H80000001

Dim arrSubKeysProfiles
Dim strSubKeyProfile

Dim arrSubKeysEntries
Dim strSubKeyEntry

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", arrSubKeysProfiles) = 0 Then
		For Each strSubKeyProfile In arrSubKeysProfiles
			If .EnumKey(HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\" & strSubKeyProfile & "\9375CFF0413111d3B88A00104B2A6676", arrSubKeysEntries) = 0 Then
				For Each strSubKeyEntry In arrSubKeysEntries
					If .GetDWORDValue(HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\" & strSubKeyProfile & "\9375CFF0413111d3B88A00104B2A6676\" & strSubKeyEntry, "Leave on Server", lngValue) = 0 Then
						If lngValue <> 0 Then
							If .SetDWORDValue(HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\" & strSubKeyProfile & "\9375CFF0413111d3B88A00104B2A6676\" & strSubKeyEntry, "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\" & strSubKeyProfile & "\9375CFF0413111d3B88A00104B2A6676\" & strSubKeyEntry & "] to [0]."
							Else
								WScript.Echo "Failure set parameter [Leave on Server] of subkey [HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\" & strSubKeyProfile & "\9375CFF0413111d3B88A00104B2A6676\" & strSubKeyEntry & "] 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\" & strSubKeyProfile & "\9375CFF0413111d3B88A00104B2A6676]."
				WScript.Quit 2
			End If
		Next
	Else
		WScript.Echo "Can't enumerate subkeys on [HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles]."
		WScript.Quit 1
	End If
End With

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:33, 23-05-2018 | #12


Новый участник


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

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


Первый скрипт наверно более актуальный для меня, так как исправляет по умолчанию в профиле. Второй актуален если будут использовать два и более профилей. У нас такого пока нет.
Буду его использовать как шаблон для написания других задач подобного типа.

Отправлено: 04:48, 24-05-2018 | #13


Ветеран


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

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


Цитата JooDoo:
так как исправляет по умолчанию в профиле. »
Наоборот — «в профиле по умолчанию» (или «в умолчальном профиле», хоть это и не вполне по-русски). Слова «по умолчанию» относится к «профиль», а не к «исправляет».

Отправлено: 05:05, 24-05-2018 | #14



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Исправить значение параметра в реестре

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход