вторник, 25 марта 2014 г.

Скрипт для удобного управления Windows Updates

В некоторых случаях, в административных целях, групповой политикой может быть заблокирована консоль установки обновлений Windows. Обладая правами локального администратора на хосте, можно временно её разблокировать, до следующего применения политики. Для этого нужно отредактировать параметры реестра:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoWindowsUpdate"=dword:00000000
"NoAutoUpdate"=dword:00000000


По данной ссылке можно скачать HTA-приложение(с использованием VBScript-а) для управление обновлениями Windows на локальном компьютере в обход стандартной консоли:WUManager.hta


Для успешной установки обновлений обязательно понадобится запуск приложения с повышенными привилегиями, особенно на Windows 8 и выше(не спасает даже полное отключение Контроля учётных записей).
Также стоит отметить, что все манипуляции с обновлениями можно произвести запуская программу только на локальной машине. Для удаленных хостов доступен только режим просмотра, и ещё нужно не забыть открыть необходимые порты фаервола для WMI запросов.

Внимание! Если при запуске скачанного hta-файла вы получаете предупреждение безопасности от Windows, зайдите в свойства файла и нажмите "Разблокировать", иначе скрипты будут отрабатывать некорректно.

пятница, 21 марта 2014 г.

VBScript: определение версии браузера Internet Explorer

Код примера на Visual Basic Script:


Set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
ieversion = objFSO.GetFileVersion(WshShell.ExpandEnvironmentStrings("%ProgramFiles%") & "\Internet Explorer\IExplore.exe")
MsgBox "Current IE version is " & ieversion
MsgBox "Current IE major version is " & Split(ieversion,".")(0)


Первый MessageBox выводит полное(вплоть до сборки) значение версии, находящееся в переменной "ieversion".
Второй MessageBox выводит мажорную версию браузера. Достигается это путем разбора строки "ieversion" с помощью функции "Split". А сам номер мажорной версии оказывается в нулевом элементе полученного массива: " Split(ieversion,".")(0) "

четверг, 20 марта 2014 г.

VBScript: использование текущих переменных среды Windows

Для получения значения переменной среды ОС Windows, используя код Visual Basic скрипта, можно воспользоваться следующим примером:


Set WshShell = WScript.CreateObject("WScript.Shell")
v = WshShell.ExpandEnvironmentStrings("%SystemRoot%")
MsgBox v


Здесь мы получаем значение переменной "SystemRoot". Полный список назначенных переменных среды можно просмотреть набрав в консоли команду "SET".