Procedure consigliate di Windows Server Update Services

Questo articolo fornisce suggerimenti per evitare configurazioni con prestazioni ridotte a causa delle limitazioni di progettazione o configurazione in WSUS.

Versione originale del prodotto: Configuration Manager (Current Branch), Windows Server Update Services
Numero della Knowledge Base originale: 4490414

Limiti di capacità

Anche se WSUS può supportare 100.000 client per server (150.000 client quando si usa Configuration Manager), non è consigliabile avvicinarsi a questo limite.

Considerare invece l'utilizzo di una configurazione di 2-4 server che condividono lo stesso database di SQL Server. In questo modo si avrà la sicurezza dei numeri. Se un server si arresta, non rovinerà immediatamente il tuo fine settimana perché nessun client può eseguire aggiornamenti, mentre devi essere aggiornato contro l'ultimo exploit 0-day.

Lo scenario di database condiviso impedisce anche una tempesta di analisi.

Una tempesta di analisi può verificarsi quando molti client modificano i server WSUS e tali server non condividono un database. WSUS tiene traccia dell'attività nel database, in modo che entrambi sappiano cosa è cambiato dall'ultima analisi del client, e invierà solo i metadati che vengono aggiornati da allora.

Se i client passano a un server WSUS diverso che utilizza un database diverso, ogni singolo client dovrà eseguire un'analisi completa. Un'analisi completa può comportare trasferimenti di metadati di grandi dimensioni. In questi scenari possono verificarsi trasferimenti superiori a 1 GB per client, soprattutto se il server WSUS non viene gestito correttamente. Può generare un carico sufficiente per causare errori quando i client comunicano con un'istanza di WSUS. In questo caso i client ritentano ripetutamente.

La condivisione di un database significa che quando un client passa a un'altra istanza di WSUS che utilizza lo stesso database, la penalità di analisi non si verifica. L'aumento di carico non è la penalità più grande che si paga per il passaggio da un database all'altro.

Le analisi client di Configuration Manager sono più esigenti su WSUS rispetto agli Aggiornamenti automatici autonomi. Poiché viene incluso anche il controllo di conformità, Configuration Manager richiede analisi con criteri che restituiranno tutti gli aggiornamenti che si trovano in qualsiasi stato, tranne rifiutato.

Quando l'agente Aggiornamenti automatici analizza il sistema o si seleziona Verifica disponibilità aggiornamenti nel Pannello di controllo, l'agente invia i criteri per recuperare solo gli aggiornamenti approvati per l'installazione. I metadati restituiti saranno in genere inferiori rispetto a quando l'analisi viene avviata da Configuration Manager. L'agente di aggiornamento memorizza i dati nella cache e le richieste di analisi successive restituiranno i dati dalla cache del client.

Disabilitare il riciclo e configurare i limiti di memoria

WSUS implementa una cache interna che recupera i metadati di aggiornamento dal database. Questa operazione è un processo intensivo che richiede molta memoria. Può causare il riciclo del pool di applicazioni IIS che ospita WSUS (noto come WSUSPool) quando supera i limiti di memoria privata e virtuale predefiniti.

Quando il pool viene riciclato, la cache viene rimossa e deve essere ricompilata. Non è un grande problema quando i client sono sottoposti ad analisi differenziali. Ma se si finisce in uno scenario di tempesta di analisi, il pool verrà riciclato costantemente. Di conseguenza i client riceveranno errori quando si effettuano richieste di analisi, ad esempio gli errori HTTP 503.

È consigliabile aumentare la Lunghezza coda predefinita e disabilitare sia il limite di memoria virtuale che di quella privata impostandoli su 0. IIS implementa un riciclo automatico del pool di applicazioni ogni 29 ore, ping e timeout di inattività, che devono essere tutti disabilitati. Queste impostazioni si trovano in IIS Manager>Pool di applicazioni> scegli WsusPool e fai clic su Impostazioni avanzate nel riquadro a destra di Gestione IIS.

Ecco un riepilogo delle modifiche consigliate e uno screenshot correlato. Per ulteriori informazioni, vedere Pianificare gli aggiornamenti software in Configuration Manager.

Nome dell'impostazione Valore
Lunghezza coda 2000 (rispetto al valore predefinito 1000)
Timeout di inattività (minuti) 0 (rispetto al valore predefinito 20)
Ping abilitato False (dal valore predefinito True)
Limite di memoria privata (KB) 0 (senza limiti, rispetto al valore predefinito 1.843.200 KB)
Intervallo di tempo regolare (minuti) 0 (per evitare un riciclo e modificato rispetto al valore predefinito 1740)

Screenshot delle impostazioni nella finestra Impostazioni avanzate.

In un ambiente con circa 17.000 aggiornamenti memorizzati nella cache, potrebbero essere necessari più di 24 GB di memoria man mano che la cache viene creata, fino a quando non si stabilizza (a circa 14 GB).

Verificare se la compressione è abilitata (se si desidera risparmiare larghezza di banda)

WSUS utilizza un tipo di compressione denominato codifica Xpress. Implementa la compressione sui metadati di aggiornamento e può comportare un notevole risparmio di larghezza di banda.

La codifica Xpress è abilitata in ApplicationHost.config di IIS con questa riga sotto l'elemento <httpCompression> e in un'impostazione del Registro di sistema:

  • ApplicationHost.Config

                  <scheme name="xpress" doStaticCompression="false" doDynamicCompression="true" dll="C:\Program Files\Update Services\WebServices\suscomp.dll" staticCompressionLevel="10" dynamicCompressionLevel="0" />

  • Chiave del Registro di sistema

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup\IIsDynamicCompression

Se entrambi non sono presenti, è possibile abilitare la codifica eseguendo questo comando e riavviando il pool di applicazioni WsusPool in IIS.

cscript "%programfiles%\update services\setup\DynamicCompression.vbs" /enable "%programfiles%\Update Services\WebServices\suscomp.dll"

La codifica Xpress aggiungerà un certo sovraccarico della CPU e può essere disabilitata se la larghezza di banda non rappresenta un problema, ma lo è l'utilizzo della CPU. Il comando seguente la disattiva.

cscript "%programfiles%\update services\setup\DynamicCompression.vbs" /disable

Configurare prodotti e categorie

Quando si configura WSUS, è preferibile scegliere solo i prodotti e le categorie che si intende distribuire. È sempre possibile sincronizzare categorie e prodotti necessari in un secondo momento. Aggiungerli quando non è prevista la distribuzione contribuisce ad aumentare le dimensioni dei metadati e il sovraccarico sui server di WSUS.

Disabilitare gli aggiornamenti Itanium e altri aggiornamenti non necessari

Non dovrebbe costituire più un problema da molto tempo, perché Windows Server 2008 R2 è stata l'ultima versione a supportare Itanium. È tuttavia utile riportarlo.

Personalizza e utilizza questo script nell'ambiente per rifiutare gli aggiornamenti dell'architettura Itanium. Lo script può anche rifiutare gli aggiornamenti che contengono i termini anteprima o beta nel titolo dell'aggiornamento.

Ciò porta a una maggiore reattività della console WSUS, ma non influisce sull'analisi client.

Rifiutare gli aggiornamenti sostituiti ed eseguire la manutenzione

Una delle operazioni più importanti da eseguire per migliorare l'esecuzione di WSUS. Conservare più a lungo del necessario gli aggiornamenti che vengono sostituiti (ad esempio, dopo averne terminato la distribuzione) è la causa principale dei problemi di prestazioni di WSUS. È corretto mantenerli se sono ancora in fase di distribuzione. Una volta svolta la funzione, vanno rimossi.

Per informazioni sul rifiuto degli aggiornamenti sostituiti e di altri elementi di manutenzione WSUS, consultare l'articolo Guida completa alla manutenzione di Microsoft WSUS e del componente SUP di Configuration Manager.

WSUS con configurazione SSL

Per impostazione predefinita, WSUS non è configurato per utilizzare SSL per la comunicazione client. Il primo passaggio successivo all'installazione consiste nel configurare SSL in WSUS per garantire la sicurezza tra le comunicazioni server-client.

È necessario effettuare una delle operazioni seguenti:

  • Creare un certificato autofirmato. Non è la soluzione ideale perché ogni client dovrebbe considerare attendibile questo certificato.
  • Ottenerne uno da un provider di certificati di terze parti.
  • Ottenerne uno dall'infrastruttura di certificazione interna.

Il certificato deve avere il nome breve del server, il nome FQDN e i nomi SAN (alias) utilizzati.

Dopo aver installato il certificato, è necessario aggiornare i Criteri di gruppo (o le impostazioni di Configurazione dei client per gli aggiornamenti software in Configuration Manager) per usare l'indirizzo e la porta SSL del server WSUS. La porta è in genere 8531 o 443.

Ad esempio, configurare GPO Specificare la posizione del servizio di aggiornamento Microsoft Intranet a <https://wsus.contoso.com:8531>.

Per iniziare, vedere Proteggere WSUS con il protocollo Secure Sockets Layer.

Configurare le esclusioni antivirus

Informazioni sugli aggiornamenti cumulativi e i rollup mensili

È possibile incontrare i termini Rollup mensili e Aggiornamento cumulativo applicati agli aggiornamenti del sistema operativo Windows. Sono utilizzati in modo intercambiabile. Gli aggiornamenti rollup si riferiscono agli aggiornamenti pubblicati per Windows 7, Windows 8.1, Windows Server 2008 R2 e Windows Server 2012 R2, che sono solo parzialmente cumulativi.

Per ulteriori informazioni, vedere i seguenti post:

Con Windows 10 e Windows Server 2016, gli aggiornamenti sono stati cumulativi dall'inizio:

"Cumulativo" indica che: viene installata la versione di rilascio del sistema operativo e si deve applicare solo l'aggiornamento cumulativo più recente per avere tutte le patch. Per i sistemi operativi meno recenti, questi aggiornamenti non sono ancora disponibili, anche se è la direzione che stiamo prendendo.

Per Windows 7 e Windows 8.1, significa che dopo l'installazione dell'ultimo rollup mensile saranno comunque necessari altri aggiornamenti. Ecco un esempio per Windows 7 e Windows Server 2008 R2 su ciò che serve per avere un sistema con completo di patch.

La tabella seguente contiene l'elenco dei rollup mensili e degli aggiornamenti cumulativi di Windows. È possibile trovarle anche cercando Versione <Windows> Cronologia aggiornamenti.

Versione di Windows Update
Windows 7 SP1 e Windows Server 2008 R2 SP1 Cronologia degli aggiornamenti di Windows 7 SP1 e Windows Server 2008 R2 SP1
Windows 8.1 and Windows Server 2012 R2 Cronologia degli aggiornamenti di Windows 8.1 e Windows Server 2012 R2
Windows 10 e Windows Server 2016 Cronologia degli aggiornamenti di Windows 10 e Windows Server
Windows Server 2019 Cronologia degli aggiornamenti di Windows 10 e Windows Server 2019

Un altro punto da considerare è che non tutti gli aggiornamenti vengono pubblicati in modo che siano sincronizzati automaticamente con WSUS. Ad esempio, gli aggiornamenti cumulativi della settimana C e D sono aggiornamenti di anteprima e non vengono sincronizzati con WSUS, ma devono essere importati manualmente. Consultare la sezione Aggiornamenti qualitativi mensili della frequenza di manutenzione degli aggiornamenti di Windows 10.

Utilizzare PowerShell per connettersi a un server WSUS

Ecco un esempio di codice per iniziare a utilizzare PowerShell e l'API WSUS. Può essere eseguito dove è installata la console di amministrazione di WSUS.

[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
$WSUSServer = 'WSUS'
# This is your WSUS Server Name
$Port = 8530
# This is 8531 when SSL is enabled
$UseSSL = $False
#This is $True when SSL is enabled
Try
{
    $Wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer($WSUSServer,$UseSSL,$Port)
}
Catch
{
    Write-Warning "$($WSUSServer)<$($Port)>: $($_)"
    Break
}

Riferimenti