WSUS pour Poste local

Forcer WSUS pour les postes hors domaine :

Lorsqu’un serveur WSUS gère les mises à jour de Windows, il est important de le spécifier dans la configuration de votre version de master.

Selon les best practice de Wisper 360, il est recommandé de laisser les scripts d’intégration au domaine s’exécuter après le déploiement des VM.

Pour appliquer cette configuration, il vous suffit d'ajouter les clés de registre suivantes sur la version Master de Windows :

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate][HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
"WUServer"="http://192.168.0.x"
"WUStatusServer"="http://192.168.0.x"

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

Il est effectivement laborieux de faire cela manuellement, donc je vous propose le script suivant :

###############################################     ##     ## 
############# WSUS hors domaine : #############      ##   ##
###############################################     #########
                                                   ### ### ###
                                                 ###############
                                                ## ########### ##
                                                ## ##       ## ##
                                                 #  #### ####  #
                                                 
# Assemblies #

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Win32")
# Assemblies #

# Functions #

# WindowsUpdate #


do {
Read-Host "Quelle est l'ip ou le nom DNS du WSUS ? `n" -OutVariable wsus | Out-Null
}
while (!$wsus)

Read-Host "Quelle est le port d'utilisation du WSUS ? (si laissé, port par défaut 8530 ) `n" -OutVariable wsusport | Out-Null

if (!$wsusport){
    $wsusport = 8530
}

$RegLocalMachine = "SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"

$reg = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey( $RegLocalMachine, "true" )

$reg.SetValue( "WUServer", "http://$wsus`:$wsusport", [Microsoft.Win32.RegistryValueKind]::String)
$reg.SetValue( "WUStatusServer", "http://$wsus`:$wsusport", [Microsoft.Win32.RegistryValueKind]::String)
$reg.Close()
# WindowsUpdate #

# WindowsUpdateAU #

$RegLocalMachine = "SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU"

$reg1 = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey( $RegLocalMachine, "true" )

$reg1.SetValue( "UseWUServer", "1", [Microsoft.Win32.RegistryValueKind]::DWord)
$reg1.SetValue( "IncludeRecommendedUpdates", "1", [Microsoft.Win32.RegistryValueKind]::DWord)
$reg1.SetValue( "NoAutoUpdate", "0", [Microsoft.Win32.RegistryValueKind]::DWord)
$reg1.SetValue( "AUOptions", "2", [Microsoft.Win32.RegistryValueKind]::DWord)
$reg1.SetValue( "ScheduledInstallDay", "0", [Microsoft.Win32.RegistryValueKind]::DWord)
$reg1.SetValue( "ScheduledInstallTime", "10", [Microsoft.Win32.RegistryValueKind]::DWord)
$reg1.Close()

# WindowsUpdateAU #
###############################################    ### #  # #
############# WSUS hors domaine : #############    ##  #  #\#
###############################################    #   #  # #

Il ne vous reste plus qu'à vérifier dans "regedit.exe" ou en lançant une mise à jour.