Jump to content

Software Update Services aka SUS


Recommended Posts

Hello to all,

I did a quick search for this topic on previous post but had no luck. I hope someone has successfully run into this problem and solved it or maybe knows of a site that has some answers.

We run a Novell shop so we have only standalone Windows servers no PDC no active directory. Windows servers are solely used for IIS and SQL, in general people do not connect directly to these servers.

I have built a win2k server fully patched and installed Software Update Services (SUS10SP1.exe) on it which basically installed the service at http://x.x.x.x/autoupdate/administration/en/default.asp

The server setup is just fine. It downloads the windows updates automatically and stores them locally then I can select which updates are approved so that our workstations can automatically install them. The server acts fine, it does everything it is expected to.

My problem (and it seems to be a common one) is that we were using the windows update module after installing SP4 to go to windowsupdate.microsoft.com.

And I've tried to change that by adjusting local policy and also changing the registry.

I've tried regedit to force where the systems get there updates using a registry edit.

reg file ==========================================

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]

"RescheduleWaitTime"=dword:00000004

"NoAutoRebootWithLoggedOnUsers"=dword:00000001

"NoAutoUpdate"=dword:00000000

"AUOptions"=dword:00000004

"ScheduledInstallDay"=dword:00000000

"ScheduledInstallTime"=dword:00000012

"UseWUServer"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]

"WUServer"="http://x.x.x.x/"

"WUStatusServer"="http://x.x.x.x/"

reg file =======================================

I have also went to www.susserver.com and followed several pieces of advice with no real success.

Well that was long winded and almost said nothing, but please reply if you are interested and I will elaborate on anything I can.

Thanks

Carlos

Link to comment
Share on other sites


Here's what I use to set up mine:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
"WUServer"="http://updateservice.mycompany.com"
"WUStatusServer"="http://updateservice.mycompany.com"

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
"AUOptions"=dword:00000004
"NoAutoUpdate"=dword:00000000
"RescheduleWaitTime"=dword:00000001
"ScheduledInstallDay"=dword:00000000
"ScheduledInstallTime"=dword:00000001
"UseWUServer"=dword:00000001

Windows 2k sp1 or 2, and XP without SP need the automatic update service installed first, 2k sp3+ and XP sp1 do not.

Link to comment
Share on other sites

ICemannd

Thanks

Actually, we have pretty much the same reg edit except our times are different.

I did notice I entered this incorrectly

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]

"WUServer"="http://x.x.x.x/"

"WUStatusServer"="http://x.x.x.x/"

I should not have had the last slashes in "="http://x.x.x.x/"

Anyway I now have installed this and have tested against a vb script that tells me my setting are correct except austate still comes in as "detect pending"

Back do the drawing board

Thanks

name AUBehave.vbs

'------------------
' AUBehave.vbs   ver 2.8  17-Nov-2003
' Check Automatic Update settings
' http://www.susserver.com/
'------------------
On Error Resume Next

Set objWshNet = CreateObject("Wscript.Network")

const HKCU = &H80000001
const HKLM = &H80000002

strDefComputer = lcase(objWshNet.ComputerName)

Set oArgs = WScript.Arguments
If oArgs.Count = 0 Then
strComputer = InputBox("Enter the Name or IP Address for a computer to check its Automatic Update settings", "AUBehave - Read Auto Update settings", strDefComputer)
Else
strComputer = oArgs(0)
End If

If strComputer = "" Then
WScript.Quit
End if

strComputer = lcase(strComputer)
if left(strComputer,2)="\\" then
strComputer=right(strComputer,(len(strComputer)-2))
end if

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

If Err.Number <> 0 Then
msgbox "Connection Error to computer:" & VBCRLF & VBCRLF & "     " & strComputer & VBCRLF, vbCritical, "Connection Error"
WScript.Quit
End If

Resultmsg = "Automatic Update Settings                  " & VBCRLF & VBCRLF

strMsg = "No Auto Update:  "
strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate\AU"
strValueName = "NoAutoUpdate"
If RegValueExists(strKeyPath, strValueName) Then
oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
Resultmsg = Resultmsg & strMsg & GetNoAutoUpdate(dwValue) & VBCRLF & VBCRLF
Else
Resultmsg = Resultmsg & strMsg & "Setting Not Configured in Policy" & VBCRLF & VBCRLF
End If

strMsg = "Use SUS Server:  "
strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate\AU"
strValueName = "UseWUServer"
If RegValueExists(strKeyPath, strValueName) Then
oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
Resultmsg = Resultmsg & strMsg & GetUseWUServer(dwValue) & VBCRLF

If dwValue = "1" Then
 strMsg = "  - SUS Server:  "
 strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate"
 strValueName = "WUServer"
 If RegValueExists(strKeyPath, strValueName) Then
  oReg.GetStringValue HKLM,strKeyPath,strValueName,strValue
  Resultmsg = Resultmsg & strMsg & strValue & VBCRLF
 Else
  Resultmsg = Resultmsg & strMsg & "Setting Not Configured in Policy" & VBCRLF
 End If

 strMsg = "  - SUS Status Server:  "
 strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate"
 strValueName = "WUStatusServer"
 If RegValueExists(strKeyPath, strValueName) Then
  oReg.GetStringValue HKLM,strKeyPath,strValueName,strValue
  Resultmsg = Resultmsg & strMsg & strValue & VBCRLF & VBCRLF
 Else
  Resultmsg = Resultmsg & strMsg & "Setting Not Configured in Policy" & VBCRLF & VBCRLF
 End If
Else
 Resultmsg = Resultmsg & VBCRLF
End If
Else
Resultmsg = Resultmsg & strMsg & "Setting Not Configured in Policy" & VBCRLF
Resultmsg = Resultmsg & "  - Client will download updates from windowsupdate.microsoft.com" & VBCRLF & VBCRLF
End If

strMsg = "AU Options:  "
strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate\AU"
strValueName = "AUOptions"
If RegValueExists(strKeyPath, strValueName) Then
oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
Resultmsg = Resultmsg & strMsg & GetAUOptions(dwValue) & VBCRLF

If dwValue = "4" Then
 strMsg = "  - Scheduled Install Day:  "
 strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate\AU"
 strValueName = "ScheduledInstallDay"
 If RegValueExists(strKeyPath, strValueName) Then
  oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
  Resultmsg = Resultmsg & strMsg & getday(dwValue) & VBCRLF
 Else
  Resultmsg = Resultmsg & strMsg & "Setting Not Configured in Policy" & VBCRLF
 End If

 strMsg = "  - Scheduled Install Time:  "
 strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate\AU"
 strValueName = "ScheduledInstallTime"
 If RegValueExists(strKeyPath, strValueName) Then
  oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
  Resultmsg = Resultmsg & strMsg & dwValue &":00" & VBCRLF & VBCRLF
 Else
  Resultmsg = Resultmsg & strMsg & "Setting Not Configured in Policy" & VBCRLF
 End If
Else
  Resultmsg = Resultmsg & VBCRLF
End If

Else
Resultmsg = Resultmsg & strMsg & "Setting Not Configured in Policy" & VBCRLF
strMsg = "  - User controlled setting:  "
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update"
strValueName = "AUOptions"
If RegValueExists(strKeyPath, strValueName) Then
 oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
 Resultmsg = Resultmsg & strMsg & GetAUOptions(dwValue) & VBCRLF

 If dwValue = "4" Then
  strMsg = "    - Scheduled Install Day:  "
  strKeyPath = "Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update"
  strValueName = "ScheduledInstallDay"
  If RegValueExists(strKeyPath, strValueName) Then
   oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
   Resultmsg = Resultmsg & strMsg & getday(dwValue) & VBCRLF
  Else
   Resultmsg = Resultmsg & strMsg & "Setting Not Configured" & VBCRLF
  End If

  strMsg = "    - Scheduled Install Time:  "
  strKeyPath = "Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update"
  strValueName = "ScheduledInstallTime"
  If RegValueExists(strKeyPath, strValueName) Then
   oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
   Resultmsg = Resultmsg & strMsg & dwValue &":00" & VBCRLF & VBCRLF
  Else
   Resultmsg = Resultmsg & strMsg & "Setting Not Configured" & VBCRLF & VBCRLF
  End If
 Else
   Resultmsg = Resultmsg & VBCRLF
 End If

Else
 Resultmsg = Resultmsg & strMsg & "Setting Not present" & VBCRLF & VBCRLF
End If
End If

strMsg = "No Auto Reboot with Logged on Users:  "
strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate\AU"
strValueName = "NoAutoRebootWithLoggedOnUsers"
If RegValueExists(strKeyPath, strValueName) Then
oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
Resultmsg = Resultmsg & strMsg & GetNoAutoReboot(dwValue) & VBCRLF & VBCRLF
Else
Resultmsg = Resultmsg & strMsg & "Setting Not Configured in Policy" & VBCRLF
Resultmsg = Resultmsg & "  - Default action: Users will be given a 5 minute countdown" & VBCRLF & VBCRLF
End If

strMsg = "Reschedule Wait Time:  "
strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate\AU"
strValueName = "RescheduleWaitTime"
If RegValueExists(strKeyPath, strValueName) Then
oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
If dwValue = "0" Then Resultmsg = Resultmsg & strMsg & "Disabled by setting value: " & dwValue & VBCRLF & VBCRLF End If
If dwValue = "1" Then Resultmsg = Resultmsg & strMsg & dwValue &" minute" & VBCRLF & "  - Any missed scheduled installation will occur after startup" & VBCRLF & VBCRLF End If
If dwValue > "1" and dwValue < "61" Then Resultmsg = Resultmsg & strMsg & dwValue &" minutes" & VBCRLF & "  - Any missed scheduled installation will occur after startup" & VBCRLF & VBCRLF End If
If dwValue > "60" Then Resultmsg = Resultmsg & strMsg & "Invalid setting" & VBCRLF & "  - Value is outside of expected range for this setting: " & dwValue & VBCRLF & VBCRLF End If
Else
Resultmsg = Resultmsg & strMsg & "Setting Not Configured in Policy" & VBCRLF
Resultmsg = Resultmsg & "  - Any missed scheduled installations will be rescheduled to a later time" & VBCRLF & VBCRLF
End If

strMsg = "AU State:  "
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update"
strValueName = "AUState"
If RegValueExists(strKeyPath, strValueName) Then
oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
Resultmsg = Resultmsg & strMsg & GetAUState(dwValue) & VBCRLF & VBCRLF
Else
Resultmsg = Resultmsg & strMsg & "Setting Not present" & VBCRLF & VBCRLF
End If

Resultmsg = Resultmsg & "AUBehave utility is under development, check back for updates and report errors.  Thankyou." & VBCRLF & "http://www.SUSserver.com/ ~ Take control of your Windows Updates"


MsgBox Resultmsg,,strComputer

set oReg = nothing


Function GetNoAutoUpdate(Index)
Select Case Index
 Case 0 GetNoAutoUpdate = "0 - Auto Updates are Enabled by Policy"
 Case 1 GetNoAutoUpdate = "1 - Auto Updates are Disabled by Policy"
 Case Else GetNoAutoUpdate = "Error in this value"
End select
End Function

Function GetUseWUServer(Index)
Select Case Index
 Case 0 GetUseWUServer = "0 - Client will download updates from windowsupdate.microsoft.com"
 Case 1 GetUseWUServer = "1 - Client will connect to your SUS Server"
 Case Else GetUseWUServer = "Error in this value"
End select
End Function

Function GetDay(Index)
Select Case Index
 Case "0" GetDay = "Every Day"
 Case "1" GetDay = "Every Sunday"
 Case "2" GetDay = "Every Monday"
 Case "3" GetDay = "Every Tuesday"
 Case "4" GetDay = "Every Wednesday"
 Case "5" GetDay = "Every Thursday"
 Case "6" GetDay = "Every Friday"
 Case "7" GetDay = "Every Saturday"
 Case Else GetDay = "Error in this value"
End select
End Function

Function GetAUOptions(Index)
Select Case Index
 Case "0" GetAUOptions = "0"
 Case "1" GetAUOptions = "1 - Disabled in User Settings"
 Case "2" GetAUOptions = "2 - Notify Admin-priv user of a pending update waiting to be downloaded. User will initate the download."
 Case "3" GetAUOptions = "3 - Automatically downloads updates and notify Admin-priv user of pending installation."
 Case "4" GetAUOptions = "4 - Automatically downloads updates. Installation will occur on the scheduled day & time."
 case Else GetAUOptions = "Error in this value"
End select
End Function

Function GetNoAutoReboot(Index)
Select Case Index
 Case "0" GetNoAutoReboot = "Disabled - Users will be given a 5 minute countdown"
 Case "1" GetNoAutoReboot = "Enabled - Users will be prompted before restart"
 case Else GetNoAutoReboot = "Error in this value"
End select
End Function

Function GetAUState(Index)
Select Case Index
 Case "0" GetAUState = "0 - Initial 24 hour timeout (AU Wizard will wait)"
 Case "1" GetAUState = "1 - Waiting for user to run AU wizard from System Tray"
 Case "2" GetAUState = "2 - Detect pending"
 Case "3" GetAUState = "3 - Download pending (waiting for user to accept pre-download prompt)"
 Case "4" GetAUState = "4 - Download in progress"
 Case "5" GetAUState = "5 - Install pending"
 Case "6" GetAUState = "6 - Install complete"
 Case "7" GetAUState = "7 - Disabled"
 Case "8" GetAUState = "8 - Reboot pending (Reboot was declined)"
 Case Else GetAUState = "Error in this value"
End select
End Function

Function RegValueExists(sRegKey, sRegValue)
 sRegKey = Trim(sRegKey)
 sRegValue = LCase(Trim(sRegValue))
 ' init value
 RegValueExists = False
 If oReg.EnumValues(HKLM, sRegKey, aValueNames, aValueTypes) = 0 Then
   If Not IsNull(aValueNames) Then
     For i = 0 To UBound(aValueNames)
       If LCase(aValueNames(i)) = sRegValue Then
         RegValueExists = True
       End If
     Next
   End If
 End If
End Function

Function RegKeyExists(sRegKey)
 sRegKey = Trim(sRegKey)
 If oReg.EnumValues(HKLM, sRegKey, aValueNames, aValueTypes) = 0 Then
   RegKeyExists = True
 Else
   RegKeyExists = False
 End If
End Function

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...