Windows Updates (autom. Neustart) und WU Treiber durchsuchen
Hallo,
wir haben per Gruppenrichtilinien festgelegt, dass sich die Client (XP + Win-7) die updates automatisch um 03:00 uhr jeden tag von usnerem WSUS -Server holen.
Das funktioniert auch (DC/AD - Controller = win 2008 server).
(1) Allerdings kommt es manchmal vor, dass sich die Updates installieren und dann automatisch neugestartet wird, ohne Beeinflussung durch den User.
SPrich ich war heute in einem Programm, hab darin gearbeitet und er fuhr plötzlich alles runter und startete den PC wegen Updates neu.
Woran liegt das bzw. haben wir eine Einstellung vergessen?
(2) Beim Anschließen neuer Geräte werden bei Win-7 ja die WIndows-Updates nach Treibern durchsucht. Ich meine, mal gehört zu haben, dass man die ebenfalls per Gruppenrichtlinie verhindern bzw. überspringen lassen kann. Weiß hier jemand den Pfad bzw. die Einstellung?
Danke im Voraus !
wir haben per Gruppenrichtilinien festgelegt, dass sich die Client (XP + Win-7) die updates automatisch um 03:00 uhr jeden tag von usnerem WSUS -Server holen.
Das funktioniert auch (DC/AD - Controller = win 2008 server).
(1) Allerdings kommt es manchmal vor, dass sich die Updates installieren und dann automatisch neugestartet wird, ohne Beeinflussung durch den User.
SPrich ich war heute in einem Programm, hab darin gearbeitet und er fuhr plötzlich alles runter und startete den PC wegen Updates neu.
Woran liegt das bzw. haben wir eine Einstellung vergessen?
(2) Beim Anschließen neuer Geräte werden bei Win-7 ja die WIndows-Updates nach Treibern durchsucht. Ich meine, mal gehört zu haben, dass man die ebenfalls per Gruppenrichtlinie verhindern bzw. überspringen lassen kann. Weiß hier jemand den Pfad bzw. die Einstellung?
Danke im Voraus !
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 158637
Url: https://administrator.de/forum/windows-updates-autom-neustart-und-wu-treiber-durchsuchen-158637.html
Ausgedruckt am: 23.12.2024 um 16:12 Uhr
11 Kommentare
Neuester Kommentar
Moin,
mit dem folgenden VB-Script auf dem Client mal checken, welche Einstellungen dort gelten:
mit dem folgenden VB-Script auf dem Client mal checken, welche Einstellungen dort gelten:
'--------------------------------------------
' Einstellungen für die automatischen Updates
' http://www.wsus.de/
' Version 1.05.04.1
'--------------------------------------------
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("Geben Sie hier den Namen oder die IP-Adresse des Computers ein, bei dem Sie die automatischen Update Einstellungen überprüfen möchten", "Autom. Update Client Einstellungen", 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 "Verbindungsfehler zum Computer:" & VBCRLF & VBCRLF & " " & strComputer & VBCRLF, vbCritical, "Verbindungsfehler"
WScript.Quit
End If
Resultmsg = "**** Einstellungen für die automatischen Updates ****" & 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 & "Einstellung ist nicht konfiguriert" & VBCRLF & VBCRLF
End If
strMsg = "Use WU 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 = " - WSUS 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 & "Einstellung ist nicht konfiguriert" & VBCRLF
End If
strMsg = " - WU 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
Else
Resultmsg = Resultmsg & strMsg & "Einstellung ist nicht konfiguriert" & VBCRLF
End If
Else
Resultmsg = Resultmsg & VBCRLF
End If
Else
Resultmsg = Resultmsg & strMsg & "Einstellung ist nicht konfiguriert" & VBCRLF
Resultmsg = Resultmsg & " - Client bezieht Updates von windowsupdate.microsoft.com" & VBCRLF
End If
strMsg = " - TargetGroup: "
strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate"
strValueName = "TargetGroup"
If RegValueExists(strKeyPath, strValueName) Then
oReg.GetStringValue HKLM,strKeyPath,strValueName,strValue
Resultmsg = Resultmsg & strMsg & strValue & VBCRLF & VBCRLF
Else
Resultmsg = Resultmsg & strMsg & "Einstellung ist nicht konfiguriert" & 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 = " - Geplanter Installationstag: "
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 & "Einstellung ist nicht konfiguriert" & VBCRLF
End If
strMsg = " - Geplante Installationszeit: "
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 Uhr" & VBCRLF
Else
Resultmsg = Resultmsg & strMsg & "Einstellung ist nicht konfiguriert" & VBCRLF
End If
Else
Resultmsg = Resultmsg & VBCRLF
End If
Else
Resultmsg = Resultmsg & strMsg & "Einstellung ist nicht konfiguriert" & VBCRLF
strMsg = " - Benutzerdefinierte Einstellung: "
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 = " - ScheduledInstallDay: "
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 & "Einstellung ist nicht konfiguriert" & VBCRLF
End If
strMsg = " - ScheduledInstallTime: "
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
Else
Resultmsg = Resultmsg & strMsg & "Einstellung ist nicht konfiguriert" & VBCRLF
End If
Else
Resultmsg = Resultmsg & VBCRLF
End If
Else
Resultmsg = Resultmsg & strMsg & "Keine Einstellungen vorhanden" & VBCRLF
End If
End If
strMsg = " - NoAUShutdownOption: "
strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate\AU"
strValueName = "NoAUShutdownOption"
If RegValueExists(strKeyPath, strValueName) Then
oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
Resultmsg = Resultmsg & strMsg & GetNoAUShutdownOption(dwValue) & VBCRLF & VBCRLF
Else
Resultmsg = Resultmsg & strMsg & "Einstellung ist nicht konfiguriert" & VBCRLF & VBCRLF
End If
strMsg = "AutoInstallMinorUpdates: "
strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate\AU"
strValueName = "AutoInstallMinorUpdates"
If RegValueExists(strKeyPath, strValueName) Then
oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
Resultmsg = Resultmsg & strMsg & GetAutoInstallMinorUpdates(dwValue) & VBCRLF & VBCRLF
Else
Resultmsg = Resultmsg & strMsg & "Einstellung ist nicht konfiguriert" & VBCRLF & VBCRLF
End If
strMsg = "DetectionFrequency: "
strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate\AU"
strValueName = "DetectionFrequency"
If RegValueExists(strKeyPath, strValueName) Then
oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
Resultmsg = Resultmsg & strMsg &"Alle " & dwValue &" Stunden nach Updates suchen"& VBCRLF
Else
Resultmsg = Resultmsg & strMsg & "Einstellung ist nicht konfiguriert"& VBCRLF
End If
strMsg = "RebootRelaunchTimeout: "
strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate\AU"
strValueName = "RebootRelaunchTimeout"
If RegValueExists(strKeyPath, strValueName) Then
oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
Resultmsg = Resultmsg & strMsg & dwValue &" Minuten warten, bevor zu einem Neustart aufgefordert wird"& VBCRLF
Else
Resultmsg = Resultmsg & strMsg & "Einstellung ist nicht konfiguriert" & VBCRLF
End If
strMsg = "RebootWarningTimeout: "
strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate\AU"
strValueName = "RebootWarningTimeout"
If RegValueExists(strKeyPath, strValueName) Then
oReg.GetDWORDValue HKLM,strKeyPath,strValueName,dwValue
Resultmsg = Resultmsg & strMsg & dwValue &" Minuten warten, bevor ein Neustart ausgeführt wird"& VBCRLF
Else
Resultmsg = Resultmsg & strMsg & "Einstellung ist nicht konfiguriert" & VBCRLF
End If
strMsg = "NoAutoRebootWithLoggedOnUsers: "
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
Else
Resultmsg = Resultmsg & strMsg & "Einstellung ist nicht konfiguriert" & VBCRLF
Resultmsg = Resultmsg & " - Default: Benutzern wird ein 5 Minuten Countdown gegeben" & VBCRLF
End If
strMsg = "RescheduleWaitTime: "
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 & "Deaktiviert im Wert der Einstellung: " & dwValue & VBCRLF & VBCRLF End If
If dwValue = "1" Then Resultmsg = Resultmsg & strMsg & dwValue &" Minute" & VBCRLF & VBCRLF End If
If dwValue > "1" and dwValue < "61" Then Resultmsg = Resultmsg & strMsg & dwValue &" Minuten" & VBCRLF & VBCRLF End If
If dwValue > "60" Then Resultmsg = Resultmsg & strMsg & "Ungültige Einstellung" & dwValue & VBCRLF & VBCRLF End If
Else
Resultmsg = Resultmsg & strMsg & "Einstellung ist nicht konfiguriert" & VBCRLF & VBCRLF
End If
Resultmsg = Resultmsg & "http://www.wsus.de" & VBCRLF & "Die Infoseite zu Windows Server Updates Services"
MsgBox Resultmsg,,strComputer
set oReg = nothing
Function GetNoAutoUpdate(Index)
Select Case Index
Case 0 GetNoAutoUpdate = "0 - Auto Update ist aktiviert per Policy"
Case 1 GetNoAutoUpdate = "1 - Auto Update ist deaktiviert per Policy"
Case Else GetNoAutoUpdate = "Fehler in diesem Wert"
End select
End Function
Function GetUseWUServer(Index)
Select Case Index
Case 0 GetUseWUServer = "0 - Client bezieht Updates von windowsupdate.microsoft.com"
Case 1 GetUseWUServer = "1 - Client bezieht Updates vom WSUS Server"
Case Else GetUseWUServer = "Fehler in diesem Wert"
End select
End Function
Function GetDay(Index)
Select Case Index
Case "0" GetDay = "Jeden Tag"
Case "1" GetDay = "Jeden Sonntag"
Case "2" GetDay = "Jeden Montag"
Case "3" GetDay = "Jeden Dienstag"
Case "4" GetDay = "Jeden Mittwoch"
Case "5" GetDay = "Jeden Donnerstag"
Case "6" GetDay = "Jeden Freitag"
Case "7" GetDay = "Jeden Samstag"
Case Else GetDay = "Fehler in diesem Wert"
End select
End Function
Function GetAUOptions(Index)
Select Case Index
Case "0" GetAUOptions = "0"
Case "1" GetAUOptions = "1 - Deaktiviert in den Benutzereinstellungen"
Case "2" GetAUOptions = "2 - Vor Download und Installation benachrichtigen."
Case "3" GetAUOptions = "3 - Autom. Downloaden, aber vor der Installation benachrichtigen."
Case "4" GetAUOptions = "4 - Autom. Downloaden und laut Zeitplan installieren."
Case "5" GetAUOptions = "5 - Lokalem Administrator ermöglichen, Einstellungen manuell zu konfigurieren."
case Else GetAUOptions = "Fehler in diesem Wert"
End select
End Function
Function GetNoAUShutdownOption(Index)
Select Case Index
Case 0 GetNoAUShutdownOption = "0 - 'Updates installieren und herunterfahren' wird angezeigt"
Case 1 GetNoAUShutdownOption = "1 - 'Updates installieren und herunterfahren' wird nicht angezeigt"
Case Else GetNoAUShutdownOption = "Fehler in diesem Wert"
End select
End Function
Function GetAutoInstallMinorUpdates(Index)
Select Case Index
Case 0 GetAutoInstallMinorUpdates = "0 - Automatische Updates nicht sofort installieren"
Case 1 GetAutoInstallMinorUpdates = "1 - Automatische Updates sofort installieren"
Case Else GetAutoInstallMinorUpdates = "Fehler in diesem Wert"
End select
End Function
Function GetNoAutoReboot(Index)
Select Case Index
Case "0" GetNoAutoReboot = "0 - Benutzern wird ein 5 Minuten Countdown gegeben"
Case "1" GetNoAutoReboot = "1 - Benutzer wird vor dem Restart benachrichtigt"
case Else GetNoAutoReboot = "Fehler in diesem Wert"
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
Das ist die richtige, steht da ja auch. Wie man das handhabt, ist jedem selbst überlassen, ich würde NIEMALS einen automatischen Neustart veranlassen. Beispiel: Jemand arbeitet am PC und bekommt ne Meldung, dass in zwei Stunden der PC neu gestartet wird. Schön, da hat er ja noch Zeit. Mal eben kurz nen Kaffee geholt und weitergearbeitet. Und dann hat er das mit dem Neustart auch schon vergessen. Am besten hat er dann die ganze Zeit in ner Datenbank gearbeitet. Viel Spaß!
Besser: Einstellung wählen, dass die Updates beim Herunterfahren installiert werden. Ggf. dauerts dann bei Vista oder 7 länger beim Hochfahren, je nach Umfang der Updates. Aber das ist im Vergleich zum obigen Beispiel absolut zu vernachlässigen.
Achja, was die Treiber angeht: Das sind meines Wissens optionale Updates, die kannst Du in der WSUS-Konsole deaktivieren.
Besser: Einstellung wählen, dass die Updates beim Herunterfahren installiert werden. Ggf. dauerts dann bei Vista oder 7 länger beim Hochfahren, je nach Umfang der Updates. Aber das ist im Vergleich zum obigen Beispiel absolut zu vernachlässigen.
Achja, was die Treiber angeht: Das sind meines Wissens optionale Updates, die kannst Du in der WSUS-Konsole deaktivieren.
Das man das mit GPO regeln kann, war mir neu, wüsste also auch nicht, wo das zu finden ist. Aber fein, dass Du es gefunden hast.
Alternative: WSUS-Konsole --> Optionen --> Produkte und Klassifizierungen --> Klassifizierungen --> Haken bei Treiber entfernen
Macht hier auch absolut Sinn, weil man sonst sehr viel mehr Plattenplatz auf dem WSUS braucht, wenn Treiber vorgehalten werden...
Dir auch ein schönes WE!
Alternative: WSUS-Konsole --> Optionen --> Produkte und Klassifizierungen --> Klassifizierungen --> Haken bei Treiber entfernen
Macht hier auch absolut Sinn, weil man sonst sehr viel mehr Plattenplatz auf dem WSUS braucht, wenn Treiber vorgehalten werden...
Dir auch ein schönes WE!