|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Проверка наличия ветки реестра |
|
VBS/WSH/JS - [решено] Проверка наличия ветки реестра
|
Новый участник Сообщения: 6 |
Профиль | Отправить PM | Цитировать Добрый День!
Только начинаю осваивать vbs язык, задачка вроде простая, но никак не получается. Необходимо найти ветку в реестре и если она есть, то внести изменения. Прошу помощи, за ранее спасибо Dim WshShell, objWMIService, verSoft, mkey2003, mkey2007, mkey2010 On Error Resume Next Set WshShell = WScript.CreateObject("WScript.Shell") mkey2003 = "HKCU\Software\Microsoft\Office\11.0\" mkey2007 = "HKCU\Software\Microsoft\Office\12.0\" mkey2010 = "HKCU\Software\Microsoft\Office\14.0\" If mkey2003 = True Then WshShell.RegWrite "HKCU\Software\Microsoft\Office\11.0\Outlook\" WshShell.RegWrite "HKCU\Software\Microsoft\Office\11.0\Outlook\Preferences\" WshShell.RegWrite "HKCU\Software\Microsoft\Office\11.0\Outlook\Preferences\DoAging", "1", "REG_DWORD" WshShell.RegWrite "HKCU\Software\Microsoft\Office\11.0\Outlook\Preferences\EveryDays", "35", "REG_DWORD" WshShell.RegWrite "HKCU\Software\Microsoft\Office\11.0\Outlook\Preferences\ArchivePeriod", "24", "REG_DWORD" WshShell.RegWrite "HKCU\Software\Microsoft\Office\11.0\Outlook\Preferences\ArchiveDelete", "0", "REG_DWORD" WshShell.RegWrite "HKCU\Software\Microsoft\Office\11.0\Outlook\Preferences\DeleteExpired", "0", "REG_DWORD" ElseIf mkey2007 = True Then WshShell.RegWrite "HKCU\Software\Microsoft\Office\12.0\Outlook\" WshShell.RegWrite "HKCU\Software\Microsoft\Office\12.0\Outlook\Preferences\" WshShell.RegWrite "HKCU\Software\Microsoft\Office\12.0\Outlook\Preferences\DoAging", "1", "REG_DWORD" WshShell.RegWrite "HKCU\Software\Microsoft\Office\12.0\Outlook\Preferences\EveryDays", "35", "REG_DWORD" WshShell.RegWrite "HKCU\Software\Microsoft\Office\12.0\Outlook\Preferences\ArchivePeriod", "24", "REG_DWORD" WshShell.RegWrite "HKCU\Software\Microsoft\Office\12.0\Outlook\Preferences\ArchiveDelete", "0", "REG_DWORD" WshShell.RegWrite "HKCU\Software\Microsoft\Office\12.0\Outlook\Preferences\DeleteExpired", "0", "REG_DWORD" ElseIf mkey2010 = True Then WshShell.RegWrite "HKCU\Software\Microsoft\Office\14.0\Outlook\" WshShell.RegWrite "HKCU\Software\Microsoft\Office\14.0\Outlook\Preferences\" WshShell.RegWrite "HKCU\Software\Microsoft\Office\14.0\Outlook\Preferences\DoAging", "1", "REG_DWORD" WshShell.RegWrite "HKCU\Software\Microsoft\Office\14.0\Outlook\Preferences\EveryDays", "35", "REG_DWORD" WshShell.RegWrite "HKCU\Software\Microsoft\Office\14.0\Outlook\Preferences\ArchivePeriod", "24", "REG_DWORD" WshShell.RegWrite "HKCU\Software\Microsoft\Office\14.0\Outlook\Preferences\ArchiveDelete", "0", "REG_DWORD" WshShell.RegWrite "HKCU\Software\Microsoft\Office\14.0\Outlook\Preferences\DeleteExpired", "0", "REG_DWORD" End If |
|
Отправлено: 18:43, 11-02-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата botkin1:
так и 12.0. |
|
Отправлено: 19:12, 11-02-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Вообще есть нормальный скрипт через WMI, который определяет версию Microsoft Office и нормально работает, но есть одно препятствие на ПЭВМ WMI - может быть не рабочий и следовательно изменения в реестр не запишет.
Поэтому пошли самым простым на наш взгляд способом ищем в реестра, вероятность наличия 2003 очень мала. И очень хочется понять, что не правильно |
Отправлено: 19:24, 11-02-2017 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата botkin1:
|
|
Отправлено: 20:05, 11-02-2017 | #4 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать "Не рабочий" - это значит служба работает, а при выполнении запроса выходит ошибка, либо ответ просто не получаешь.
И все таки хотелось понять почему не работает проверка условий? У меня предположение, что в таком виде и не будет работать так как проверяется не одно значение на несколько условий. |
|
Отправлено: 07:57, 12-02-2017 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата botkin1:
Цитата botkin1:
Я предполагаю, что Вы хотели нечто такое: mkey2003 = WshShell.RegRead("HKCU\Software\Microsoft\Office\11.0\") mkey2007 = WshShell.RegRead("HKCU\Software\Microsoft\Office\12.0\") mkey2010 = WshShell.RegRead("HKCU\Software\Microsoft\Office\14.0\") вместо того, что у Вас. Но, как я писал выше, данный алгоритм далеко не всегда отработает корректно. По целому ряду причин. |
||
Отправлено: 11:34, 12-02-2017 | #6 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Цитата:
Поставленная задача, как говорится "овчинка выделки не стоит", но руководство хочет. Вы все верно поняли, перепробовал все варианты, но опыта нет вот и застрял. Спасибо, Вам снова выручили |
|
Отправлено: 12:40, 12-02-2017 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - Проверка наличия процесса | botkin1 | Скриптовые языки администрирования Windows | 0 | 12-05-2016 07:33 | |
CMD/BAT - проверка наличия файлов | neprotiv | Скриптовые языки администрирования Windows | 0 | 04-04-2013 22:09 | |
экспорт ветки реестра фотошопа | koss | Хочу все знать | 6 | 03-07-2010 23:39 | |
Права на ветки реестра. | FerFel | Microsoft Windows NT/2000/2003 | 10 | 25-01-2010 19:44 | |
разрешения на ветки реестра | maxtravilov | Автоматическая установка Windows 2000/XP/2003 | 1 | 27-10-2005 21:44 |
|