Назад | Перейти на главную страницу

Пытаюсь автоматизировать задачи сервера, застрял на сборе критически важной информации об обновлении из WSUS

Я задал этот вопрос в Stack Overflow, но они сказали, что мне здесь повезет больше. Я использую VBScript для автоматизации многих серверных задач, я просто проверяю, выполнила ли команда сборки сервера свою работу до того, как сервер действительно будет использован.

Одна из моих задач, которые мне нужно сделать, это Проверьте наличие критических обновлений. Кажется, это было бы достаточно просто, но у меня МНОГО проблем с этим. Я не знаком с WSUS, никогда не имел дела с этим, но мне нужно с ним общаться.

Вот что у меня в vbscript для этого типа логики

'Microsoft Magic
Set updateSession = CreateObject("Microsoft.Update.Session")
Set updateSearcher = updateSession.CreateupdateSearcher()
Set searchResult = updateSearcher.Search("IsAssigned=1 and isHidden=0 and IsInstalled=0 and Type='Software'")
'End Microsoft Magic
If Err.Number <> 0 Then ' If errors
  objResult.Text = "FAIL. Cannot connect to WSUS. Error: " & Err.Number
  Err.Clear
Else ' No Errors'
    If searchResult.Updates.Count <> 0 Then ' If Updates were found
      For i = 0 to searchResult.Updates.Count - 1 'Just count the number of updates
         count = count + 1
      Next
      objResult.Text = "FAIL. There are " & count & " updates that need to be installed"
    Else
      objResult.Text = "PASS. All updates are installed"
    End If

  If NOT len(objResult.Text) Then 'Just in case searchResult produces an error
    objResult.Text = "FAIL. Could not query Windows Update Server"
  End If
End If

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

ПОТЕРПЕТЬ ПОРАЖЕНИЕ. Не удалось запросить сервер обновления Windows

Итак, происходит то, что он не подключается к Центру обновления Windows - объект «Microsoft.Update.Session» использует агент обновления Windows для управления тем, обрабатываются ли обновления обновлением Windows или WSUS, но иногда это просто не так. не делаю этого, и у меня нет объяснений или даже того, что я могу сделать.

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

Какие-либо предложения? Если потребуется, я могу предоставить дополнительную информацию для ясности.

Логика выглядит неплохо; ему необходимо пройти через все операторы if-else, чтобы добраться до текста «FAIL. Не удалось запросить сервер обновления Windows».

Сначала подумайте, удалите последний оператор if и посмотрите, есть ли у вас распечатка. Похоже, он перезаписывает ваш вывод.

После этого я бы также попробовал установить isInstalled = 1, чтобы убедиться, что он правильно читает магию MS.