Raidenwolf Posted March 30, 2004 Share Posted March 30, 2004 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.aspThe 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 More sharing options...
IcemanND Posted March 30, 2004 Share Posted March 30, 2004 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 More sharing options...
Raidenwolf Posted March 31, 2004 Author Share Posted March 31, 2004 ICemanndThanks 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 boardThanksname AUBehave.vbs '------------------' AUBehave.vbs ver 2.8 17-Nov-2003' Check Automatic Update settings' http://www.susserver.com/'------------------On Error Resume NextSet objWshNet = CreateObject("Wscript.Network")const HKCU = &H80000001const HKLM = &H80000002strDefComputer = lcase(objWshNet.ComputerName)Set oArgs = WScript.ArgumentsIf 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 IfIf strComputer = "" Then WScript.QuitEnd ifstrComputer = lcase(strComputer)if left(strComputer,2)="\\" then strComputer=right(strComputer,(len(strComputer)-2))end ifSet 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.QuitEnd IfResultmsg = "Automatic Update Settings " & VBCRLF & VBCRLFstrMsg = "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 & VBCRLFElse Resultmsg = Resultmsg & strMsg & "Setting Not Configured in Policy" & VBCRLF & VBCRLFEnd IfstrMsg = "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 IfElse Resultmsg = Resultmsg & strMsg & "Setting Not Configured in Policy" & VBCRLF Resultmsg = Resultmsg & " - Client will download updates from windowsupdate.microsoft.com" & VBCRLF & VBCRLFEnd IfstrMsg = "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 IfElse 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 IfEnd IfstrMsg = "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 & VBCRLFElse Resultmsg = Resultmsg & strMsg & "Setting Not Configured in Policy" & VBCRLF Resultmsg = Resultmsg & " - Default action: Users will be given a 5 minute countdown" & VBCRLF & VBCRLFEnd IfstrMsg = "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 IfElse Resultmsg = Resultmsg & strMsg & "Setting Not Configured in Policy" & VBCRLF Resultmsg = Resultmsg & " - Any missed scheduled installations will be rescheduled to a later time" & VBCRLF & VBCRLFEnd IfstrMsg = "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 & VBCRLFElse Resultmsg = Resultmsg & strMsg & "Setting Not present" & VBCRLF & VBCRLFEnd IfResultmsg = 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,,strComputerset oReg = nothingFunction 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 selectEnd FunctionFunction 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 selectEnd FunctionFunction 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 selectEnd FunctionFunction 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 selectEnd FunctionFunction 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 selectEnd FunctionFunction 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 selectEnd FunctionFunction 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 IfEnd FunctionFunction RegKeyExists(sRegKey) sRegKey = Trim(sRegKey) If oReg.EnumValues(HKLM, sRegKey, aValueNames, aValueTypes) = 0 Then RegKeyExists = True Else RegKeyExists = False End IfEnd Function Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now