none
WSUS не отображает некоторые компьютеры RRS feed

  • Вопрос

  • добрый день

    есть проблема, некоторые компьютеры не отображаются в оснастке WSUS

    но если зайти на компьютер то видно что он обновляется со WSUS

    вопрос как такие невидимые компьютеры сделать видимыми.

    wsus 3.0 sp2

    server 2003 st R2 sp2


    Averin_Eugene
    23 марта 2010 г. 16:40

Ответы

  • Посмотрите вот тут - первый метод. Для автоматизации данной задачи существует следующий скрипт, созданный Торгейром Баккеном

    ' Folder that the script needs create/write access to, one file for
    ' each SusClientId will be created.
    sFolderPath = "\\server\share\folder"
    
    ' Path and name of file where the script will log the name
    ' of the computers where the SusClientId is deleted by the script.
    ' This script is for administrator information only, it's content is
    ' not used by the script in any way.
    ' Using _ as first character in the name will cause it to be
    ' listed first in Explorer
    sLogFilePath = sFolderPath & "\_ClientIdResetLog.txt"
    
    Const OpenAsASCII      =  0
    Const OverwriteIfExist = -1
    Const ForAppending = 8
    
    Set oShell = CreateObject("WScript.Shell")
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oWshNetwork = CreateObject("WScript.Network")
    
    sRegKey = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate"
    
    ' Suppress error in case values does not exist
    On Error Resume Next
    
    ' Check for registry marker
    sIDChecked = oShell.RegRead(sRegKey & "\ClientIdChecked")
    Err.Clear
    
    ' To be sure the script is run only once, test on marker
    If sIDChecked <> "yes" Then
    
       SusClientId = ""   ' init value
       sSusClientId = oShell.RegRead(sRegKey & "\SusClientId")
       If sSusClientId <> "" And oFSO.FolderExists(sFolderPath) Then
    
         sFilePath = sFolderPath & "\" & sSusClientId & ".txt"
    
         If oFSO.FileExists(sFilePath) Then
    
           ' Another computer is using the same SusClientId, we need to
           ' clear out the registry values.
    
           ' delete values
           oShell.RegDelete sRegKey & "\AccountDomainSid"
           oShell.RegDelete sRegKey & "\PingID"
           oShell.RegDelete sRegKey & "\SusClientId"
    
           ' Stop and start the Automatic updates service
           oShell.Run "%SystemRoot%\system32\net.exe stop wuauserv", 0, True
           oShell.Run "%SystemRoot%\system32\net.exe start wuauserv", 0, True
    
           ' Run wuauclt.exe with resetauthorization
           sCmd = _
              "%SystemRoot%\system32\wuauclt.exe /resetauthorization /detectnow"
           oShell.Run sCmd, 0, True
    
           ' Create entry in log file.
           ' If script is not able to open the file for write access, it
           ' will give up after 5 seconds (10 loops)
           bUpdLogFinished = False
           iLoops = 0
    
           On Error Resume Next
           Do
             Err.Clear
             ' Open for appending
             Set fLogFile = oFSO.OpenTextFile(sLogFilePath, ForAppending, True)
             If Err.Number <> 0 Then
               ' Was not able to open the log file for writing
               ' Waiting 1/2 a second before trying again
               WScript.Sleep 500
             Else
               fLogFile.WriteLine Now & ", " & oWshNetwork.ComputerName
               fLogFile.Close
               bUpdLogFinished = True
             End If
             iLoops = iLoops + 1
           Loop Until bUpdLogFinished Or iLoops > 10
    
         Else
           ' No other computer have reported this SusClientId, we need
           ' to create a text file in the common folder using the SusClientId
           ' as file name. Putting the computer name inside the file.
           Set f = oFSO.CreateTextFile(sFilePath, OverwriteIfExist, OpenAsASCII)
           f.WriteLine oWshNetwork.ComputerName
           f.Close
    
         End If
    
       End If
       On Error Resume Next
    
       ' Create registry marker
       oShell.RegWrite sRegKey & "\ClientIdChecked", "yes"
    
    End If 


    Все вышесказанное является моим личным мнением, не имеющим отношения к корпорации Майкрософт.
    Доклады на Techdays: http://www.techdays.ru/speaker/Vinokurov_YUrij.html
    25 марта 2010 г. 10:22
    Модератор

Все ответы

  • Посмотрите вот тут - первый метод. Для автоматизации данной задачи существует следующий скрипт, созданный Торгейром Баккеном

    ' Folder that the script needs create/write access to, one file for
    ' each SusClientId will be created.
    sFolderPath = "\\server\share\folder"
    
    ' Path and name of file where the script will log the name
    ' of the computers where the SusClientId is deleted by the script.
    ' This script is for administrator information only, it's content is
    ' not used by the script in any way.
    ' Using _ as first character in the name will cause it to be
    ' listed first in Explorer
    sLogFilePath = sFolderPath & "\_ClientIdResetLog.txt"
    
    Const OpenAsASCII      =  0
    Const OverwriteIfExist = -1
    Const ForAppending = 8
    
    Set oShell = CreateObject("WScript.Shell")
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oWshNetwork = CreateObject("WScript.Network")
    
    sRegKey = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate"
    
    ' Suppress error in case values does not exist
    On Error Resume Next
    
    ' Check for registry marker
    sIDChecked = oShell.RegRead(sRegKey & "\ClientIdChecked")
    Err.Clear
    
    ' To be sure the script is run only once, test on marker
    If sIDChecked <> "yes" Then
    
       SusClientId = ""   ' init value
       sSusClientId = oShell.RegRead(sRegKey & "\SusClientId")
       If sSusClientId <> "" And oFSO.FolderExists(sFolderPath) Then
    
         sFilePath = sFolderPath & "\" & sSusClientId & ".txt"
    
         If oFSO.FileExists(sFilePath) Then
    
           ' Another computer is using the same SusClientId, we need to
           ' clear out the registry values.
    
           ' delete values
           oShell.RegDelete sRegKey & "\AccountDomainSid"
           oShell.RegDelete sRegKey & "\PingID"
           oShell.RegDelete sRegKey & "\SusClientId"
    
           ' Stop and start the Automatic updates service
           oShell.Run "%SystemRoot%\system32\net.exe stop wuauserv", 0, True
           oShell.Run "%SystemRoot%\system32\net.exe start wuauserv", 0, True
    
           ' Run wuauclt.exe with resetauthorization
           sCmd = _
              "%SystemRoot%\system32\wuauclt.exe /resetauthorization /detectnow"
           oShell.Run sCmd, 0, True
    
           ' Create entry in log file.
           ' If script is not able to open the file for write access, it
           ' will give up after 5 seconds (10 loops)
           bUpdLogFinished = False
           iLoops = 0
    
           On Error Resume Next
           Do
             Err.Clear
             ' Open for appending
             Set fLogFile = oFSO.OpenTextFile(sLogFilePath, ForAppending, True)
             If Err.Number <> 0 Then
               ' Was not able to open the log file for writing
               ' Waiting 1/2 a second before trying again
               WScript.Sleep 500
             Else
               fLogFile.WriteLine Now & ", " & oWshNetwork.ComputerName
               fLogFile.Close
               bUpdLogFinished = True
             End If
             iLoops = iLoops + 1
           Loop Until bUpdLogFinished Or iLoops > 10
    
         Else
           ' No other computer have reported this SusClientId, we need
           ' to create a text file in the common folder using the SusClientId
           ' as file name. Putting the computer name inside the file.
           Set f = oFSO.CreateTextFile(sFilePath, OverwriteIfExist, OpenAsASCII)
           f.WriteLine oWshNetwork.ComputerName
           f.Close
    
         End If
    
       End If
       On Error Resume Next
    
       ' Create registry marker
       oShell.RegWrite sRegKey & "\ClientIdChecked", "yes"
    
    End If 


    Все вышесказанное является моим личным мнением, не имеющим отношения к корпорации Майкрософт.
    Доклады на Techdays: http://www.techdays.ru/speaker/Vinokurov_YUrij.html
    25 марта 2010 г. 10:22
    Модератор
  • а если вкратце что делает этот скрипт?
    Averin_Eugene
    26 марта 2010 г. 16:03
  • Если вкратце - удаляет ветки AccountDomainSid, PingID, SusClientId из раздела HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate, перезапускает службу Windows Update и переавторизовывает клиента на WSUS.

    Все вышесказанное является моим личным мнением, не имеющим отношения к корпорации Майкрософт.
    Доклады на Techdays: http://www.techdays.ru/speaker/Vinokurov_YUrij.html
    29 марта 2010 г. 5:53
    Модератор
  • понятно, тогда получается по хорошему нужно один раз на всех компьютерах запустить.


    Averin_Eugene
    29 марта 2010 г. 13:51
  • Собственно, потому и был предложен скрипт - запускаете его при помощи групповых политик на всех компьютерах одновременно - и нужда в беготне по рабочим станциям отпадает
    Все вышесказанное является моим личным мнением, не имеющим отношения к корпорации Майкрософт.
    Доклады на Techdays: http://www.techdays.ru/speaker/Vinokurov_YUrij.html
    30 марта 2010 г. 5:58
    Модератор
  • но ведь ГПО его получиться что будет отрабатывать постоянно. не будет ли это плохо? какждый раз при запуске компьютера или логоне пользователя
    Averin_Eugene
    30 марта 2010 г. 11:08
  • Прошу прощения, некорректно сформулировал. При помощи групповых политик распространяем этот скрипт на клиентские машины и уже затем, при помощи GPP создаем задачу однократного запуска

    Все вышесказанное является моим личным мнением, не имеющим отношения к корпорации Майкрософт.
    Доклады на Techdays: http://www.techdays.ru/speaker/Vinokurov_YUrij.html
    30 марта 2010 г. 11:16
    Модератор
  • Скажите, у Вас сервера/пк были установлены не из одного предварительно созданного образа?

     


    alexsc11
    6 апреля 2010 г. 3:57
    Отвечающий
  • скорее все с одного


    Averin_Eugene
    6 апреля 2010 г. 6:58
  • Как успехи? Получилось решить задачку предложенным методом?
    Все вышесказанное является моим личным мнением, не имеющим отношения к корпорации Майкрософт.
    Доклады на Techdays: http://www.techdays.ru/speaker/Vinokurov_YUrij.html
    7 апреля 2010 г. 6:39
    Модератор
  • добрый день.

    прошу прощение за задержку. пока не могу точно сообщить результат


    Averin_Eugene
    7 апреля 2010 г. 14:57
  • пока не получается.. возможно в скрипте что не так подставляю...


    Averin_Eugene
    8 апреля 2010 г. 14:00
  • Столкнулся с той же проблемой. Выполнил действия скрипта вручную, сработало. Так что, думаю, можно зачесть его как верный ответ :)
    15 апреля 2010 г. 7:05
  • согласен
    Averin_Eugene
    15 апреля 2010 г. 15:17