# encoding: ascii
# api: powershell
# title: WSUS-Settings.ps1
# description: As written will manually apply all settings associated with a local WSUS server.  Ideal for use when you need to force a non-domain system to point to a domain based WSUS server.
# version: 1.0
# type: script
# author: Kenneth C Mazie
# license: CC0
# x-poshcode-id: 2567
# x-archived: 2017-02-10T15:49:49
# x-published: 2012-03-16T10:25:00
#
#
#==================================================================================================
#              File Name : WSUS-Settings.ps1
#        Original Author : Kenneth C. Mazie (kcmjr at kcmjr.com)
#            Description : As written will manually apply all settings associated with a local
#                        :  WSUS server.  Ideal for use when you need to force a non-domain system
#                        :  to point to a domain based WSUS server.
#
#                  Notes : Normal operation is with no command line options. This PowerShell script
#                        :  was the result of an export of a system registry after being joined to 
#                        :  a domain and receiveing all WSUS settings from the domain policy.  
#                        :  Settings "should" mimic those found in the domain policy at:
#                        :  "Computer Configuration\Policies\Administrative Templates\Windows Components\Windows Update"
#                        :  On any domain member systems.  If the required parent keys do not exist
#                        :  it will create them.
#                        :
#                        :  The script will set ONE target group and ONE computer at a time.  It
#                        :  is intended to run locally either manually or as a startup script. 
#                        :  Primary settings are set as variables, the rest are set in the script body.
#                        :
#               Warnings : None
#                        :
#	               Legal : Public Domain.  Modify and redistribute freely.  No rights reserved.
#              	         : SCRIPT PROVIDED "AS IS" WITHOUT WARRANTIES OR GUARANTEES OF ANY KIND.
#                        : USE AT YOUR OWN RISK. NO TECHNICAL SUPPORT PROVIDED.
#                        : 
#                Credits : None
#                        : 
#         Last Update by : Kenneth C. Mazie 
#        Version History : v1.0 - 02-19-09 - Original 
#         Change History : v1.1 - 
#
#==================================================================================================

Clear-Host

#--[ Windows Update Server Info ]--
$TargetGroup = "Computers"
$WUServer = "http://192.168.1.10"
$WUStatusServer = "http://192.168.1.10"
#-[ NOTE: all other settings should be set below ]--

#--[ Setup Windows Updates ]--
Write-Host -backgroundColor white -foregroundcolor blue -object "Setting WSUS Parameters..."

if(!( Test-Path 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate' ))
{
      New-Item 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate' -force
}
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate' -name 'ElevateNonAdmins' -value '1' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate' -name 'AcceptTrustedPublisherCerts' -value '1' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate' -name 'TargetGroupEnabled' -value '1' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate' -name 'TargetGroup' -value $TargetGroup -propertyType "String" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate' -name 'WUServer' -value $WUServer -propertyType "String" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate' -name 'WUStatusServer' -value $WUStatusServer -propertyType "String" -force

if(!( Test-Path 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' ))
{
      New-Item 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -force
}
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'NoAutoRebootWithLoggedOnUsers' -value '1' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'NoAUShutdownOption' -value '0' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'NoAUAsDefaultShutdownOption' -value '0' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'DetectionFrequencyEnabled' -value '1' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'DetectionFrequency' -value '22' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'AutoInstallMinorUpdates' -value '1' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'RebootWarningTimeoutEnabled' -value '1' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'RebootWarningTimeout' -value '5' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'RebootRelaunchTimeoutEnabled' -value '1' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'RebootRelaunchTimeout' -value '30' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'IncludeRecommendedUpdates' -value '22' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'AUPowerManagement' -value '0' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'NoAutoUpdate' -value '0' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'AUOptions' -value '4' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'ScheduledInstallDay' -value '4' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'ScheduledInstallTime' -value '3' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'UseWUServer' -value '1' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'RescheduleWaitTimeEnabled' -value '1' -propertyType "DWord" -force
New-ItemProperty 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -name 'RescheduleWaitTime' -value '1' -propertyType "DWord" -force

Write-Host -backgroundColor white -foregroundcolor blue -object "Completed..."
