Включить / отключить обновление Windows из VBScript - PullRequest
3 голосов
/ 17 ноября 2008

Мне нужно отключить службу обновления Windows из моей установки. Я уже использую vbscript, чтобы сделать что-то, поэтому я хотел бы сделать это в vbscript.

Мои знания vbscript (или любого другого языка сценариев) очень ограничены, так что ... кто-нибудь может мне помочь с этим? Я действительно ценю это!

Спасибо.

Ответы [ 3 ]

7 голосов
/ 18 ноября 2008

Спасибо Томалак и Патрик Кафф. Я действительно ценю твою помощь. Я думаю, что это может быть хорошим и полным ответом.

Метод 1: предотвращает автоматический запуск службы «Автоматическое обновление» при загрузке машины.

strComputer = "."  'could be any computer, not just the local one '
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colServiceList = objWMIService.ExecQuery _
("Select * from Win32_Service where Name = 'wuauserv'")

For Each objService in colServiceList
  objService.ChangeStartMode("Disabled")
Next

Способ 2: изменение конфигурации «Автоматическое обновление» с «Автоматически» на «Отключение автоматического обновления». (MSDN перечисляет другие константы NotificationLevel )

Const AU_DISABLED = 1

Set objAutoUpdate = CreateObject("Microsoft.Update.AutoUpdate")
Set objSettings = objAutoUpdate.Settings

objSettings.NotificationLevel = AU_DISABLED
objSettings.Save

В обоих случаях вы не будете получать автоматические обновления. С методом 1 не запускается, а с методом 2 служба все еще работает, просто ничего не делая.

Вы можете сделать обе эти вещи через графический интерфейс:

  • Метод 1: Администрирование \ Службы \ Автоматические обновления, измените «Тип запуска» с «Автоматически» на «Отключено».
  • Способ 2: Панель управления \ Автоматическое обновление, выберите «Отключить автоматическое обновление».
2 голосов
/ 17 ноября 2008

Спасибо, Томалак.

Я также обнаружил, что:

Const SCHEDULED_INSTALLATION = 1

Set objAutoUpdate = CreateObject("Microsoft.Update.AutoUpdate")
Set objSettings = objAutoUpdate.Settings

objSettings.NotificationLevel = SCHEDULED_INSTALLATION
objSettings.Save

Это ссылка: http://www.microsoft.com/technet/scriptcenter/resources/tales/sg0705.mspx

2 голосов
/ 17 ноября 2008

Если вы хотите использовать VBScript, используйте WMI:

strComputer = "."  'could be any computer, not just the local one '
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colServiceList = objWMIService.ExecQuery _
("Select * from Win32_Service where Name = 'wuauserv'")

For Each objService in colServiceList
  objService.ChangeStartMode("Disabled")
Next

Просмотрите документацию WMI Win32_Service Class , чтобы узнать, что еще может быть выполнимо.

Проще было бы использовать sc.exe:

sc config wuauserv start=auto

Вот выдержка из того, что sc.exe может сделать:

C:\>sc config
Modifies a service entry in the registry and Service Database.
SYNTAX:
sc <server> config [service name] <option1> <option2>...
CONFIG OPTIONS:
NOTE: The option name includes the equal sign.
 type= <own|share|interact|kernel|filesys|rec|adapt>
 start= <boot|system|auto|demand|disabled>
 error= <normal|severe|critical|ignore>
 binPath= <BinaryPathName>
 group= <LoadOrderGroup>
 tag= <yes|no>
 depend= <Dependencies(separated by / (forward slash))>
 obj= <AccountName|ObjectName>
 DisplayName= <display name>
 password= <password>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...