Spesso quando,  prima dell'installazione di un pacchetto di aggiornamento, ci si sofferma a leggere l'elenco dei file che verranno aggiornati per la propria versione di sistema operativo, ci si trova davanti ad un elenco di questo tipo:

clip_image001[4]

Come è possibile notare dalla figura, per ciascun file che è sostituito esiste sia una versione GDR, che una versione QFE identificabili dalla colonna “Service branch”.

Questo è dovuto al fatto che esistono due differenti tipologie di aggiornamenti, tipicamente definite come branch dagli sviluppatori Microsoft, che sono le General Distribution (GDR) e le Quick Fix Engineering (QFE).

GDR (General Distribution) - Un binario identificato come GDR, contiene solo gli aggiornamenti di sicurezza che sono stati eseguiti sul file, includendo i cambiamenti necessari per l'update in rilascio e quelli relativi alla precedenti security hotfix che aggiornavano lo stesso file. Questo tipo di aggiornamenti vengono rilasciati attraverso Windows Update.

QFE (Quick Fix Engineering) - Un binario identificato come QFE contiene sia gli aggiornamenti di sicurezza e sia gli aggiornamenti funzionali, includendo tutti i cambiamenti per l'update in rilascio e tutti quelli relativi alle precedenti security hotfix e bug hotfix. Con Windows Vista e Windows Server 2008, le QFE sono state rinominate in LDR (Limited Distribution Release).

Per chiarire ulteriormente la differenza, possiamo fare riferimento al seguente schema:

clip_image003[4]

Se, dunque, per un ipotetico binario pippo.sys abbiamo installato la versione GDR – Security Hotfix #3, le correzioni introdotte con l’Hotfix #2 non saranno presenti.

Alla luce di quanto appena detto, la seguente domanda sarebbe più che lecita:

“ho trovato l’articolo KB XYZ (QFE – Hotfix #2) che rispecchia esattamente il problema che io sto riscontrando, ma il numero di build indicato per I file che l’update andrà ad installare è più vecchio di quello attualmente installato sulla mia macchina attraverso l’hotfix relativa all’articolo KB ABC (GDR – Security Hotfix #3). Come mai il mio problema risulta ancora presente anche dopo l’installazione della KB ABC?”

Il problema è ancora presente perché il security update (GDR) introdotto attraverso l’articolo KB ABC, sebbene più recente in termini di build, non include la correzione rilasciata con l’articolo KB XYZ che appartiene alla branch delle QFE.

Come identificare la versione di un binario installato


Windows XP o Windows Server 2003

Supponiamo di voler identificare a quale branch appartiene il nostro solito file pippo.sys, possiamo seguire la seguente procedura:

  1. Fare clic sul pulsante Start, scegliere Search.
  2. Nella casella Nome del file o parte del nome digitare il nome del file (pippo.sys nel nostro esempio), quindi scegliere Search.
  3. Nel riquadro dei risultati della ricerca, fare clic con il pulsante destro del mouse sul file, quindi scegliere Properties.
  4. Nella scheda Version, fare clic su File Version nell'area Other version information

Otterremo una finestra di questo tipo:

clip_image004[4]

Dalle seguenti due tabelle possiamo identificare a quale branch appartiene il binario e quale sarà la versione installata in automatico da Windows Update

Windows Server 2003

Version

Description

srv03_rtm.mmmmmm-nnnn

Questo formato indica che il file proviene dalla versione originale del prodotto e che non è stato aggiornato da un aggiornamento della protezione, un aggiornamento critico, un aggiornamento, un aggiornamento cumulativo, un driver, un feature pack o un hotfix. Gli aggiornamenti della protezione, gli aggiornamenti critici, gli aggiornamenti, gli aggiornamenti cumulativi, i driver e i feature pack sostituiranno il file con una versione GDR.

srv03_spx_gdr.mmmmmm-nnnn

Questo formato indica che il file proviene da un aggiornamento della protezione, un aggiornamento critico, un aggiornamento, un aggiornamento cumulativo, un driver o un feature pack e che non è stato aggiornato da un hotfix. Si tratta della build basata su SPx. Gli aggiornamenti della protezione, gli aggiornamenti critici, gli aggiornamenti, gli aggiornamenti cumulativi, i driver e i feature pack sostituiranno il file con una versione GDR.

srv03_spx_rtm.mmmmmm-nnnn

Questo formato indica che il file proviene da SPx e non è stato aggiornato da un aggiornamento della protezione, un aggiornamento critico, un aggiornamento, un aggiornamento cumulativo, un driver, un feature pack o un hotfix. Gli aggiornamenti della protezione, gli aggiornamenti critici, gli aggiornamenti, gli aggiornamenti cumulativi, i driver e i feature pack sostituiranno il file con una versione GDR.

srv03_spx_qfe.mmmmmm-nnnn

Questo formato indica che il file proviene da un hotfix. Si tratta della build basata su SPx. Gli aggiornamenti della protezione, gli aggiornamenti critici, gli aggiornamenti, gli aggiornamenti cumulativi, i driver e i feature pack sostituiranno il file con una versione hotfix che include anche la correzione GDR.

Windows XP

Version

Description

xpclient.mmmmmm-nnnn

Questo formato indica che il file proviene dalla versione originale del prodotto e che non è stato aggiornato da un aggiornamento della protezione, un aggiornamento critico, un aggiornamento, un aggiornamento cumulativo, un driver, un feature pack o un hotfix. Gli aggiornamenti della protezione, gli aggiornamenti critici, gli aggiornamenti, gli aggiornamenti cumulativi, i driver e i feature pack sostituiranno il file con una versione GDR.

xpsp_spx_gdr.mmmmmm-nnnn

Questo formato indica che il file proviene da un aggiornamento della protezione, un aggiornamento critico, un aggiornamento, un aggiornamento cumulativo, un driver o un feature pack e che non è stato aggiornato da un hotfix. Gli aggiornamenti della protezione, gli aggiornamenti critici, gli aggiornamenti, gli aggiornamenti cumulativi, i driver e i feature pack sostituiranno il file con una versione GDR.

xpspx.mmmmmm-nnnn

Questo formato indica che il file proviene da un hotfix. Gli aggiornamenti della protezione, gli aggiornamenti critici, gli aggiornamenti, gli aggiornamenti cumulativi, i driver e i feature pack sostituiranno il file con una versione hotfix che include anche la correzione GDR.

xpspxrtm.mmmmmm-nnnn

Questo formato indica che il file proviene da SPx e non è stato aggiornato da un aggiornamento della protezione, un aggiornamento critico, un aggiornamento, un aggiornamento cumulativo, un driver, un feature pack o un hotfix. Gli aggiornamenti della protezione, gli aggiornamenti critici, gli aggiornamenti, gli aggiornamenti cumulativi, i driver e i feature pack sostituiranno il file con una versione GDR.

xpclnt_qfe.mmmmmm-nnnn

Questo formato indica che il file proviene da un hotfix. Gli aggiornamenti della protezione, gli aggiornamenti critici, gli aggiornamenti, gli aggiornamenti cumulativi, i driver e i feature pack sostituiranno il file con una versione hotfix che include anche la correzione GDR.

xpsp.mmmmmm-nnnn

Questo formato indica che il file proviene da un hotfix pre-SP3. Per poter installare questo file è necessario disporre del Service Pack 2. Gli aggiornamenti della protezione, gli aggiornamenti critici, gli aggiornamenti, gli aggiornamenti cumulativi, i driver e i feature pack sostituiranno il file con una versione hotfix che include anche la correzione GDR.

Nell’esempio riportato sopra, la versione è: srv01_sp2_rtm-070216-1710 ovvero il file è stato installato con il service pack 2. Un eventuale aggiornamento sostituirà il binario con la relativa versione GDR.

Windows Vista o Windows Server 2008

Analogamente a quanto visto in precedenza, supponiamo di voler determinare la versione del driver Win32k.sys:

  1. Fare clic sul pulsante Start e dal Search immettere il nome del file (Win32k.sys nel nostro caso)
  2. Nel riquadro dei risultati della ricerca, fare clic con il pulsante destro del mouse sul file, quindi scegliere Properties.
  3. Identificare la voce File Version, nella scheda Details

Otterremo un risultato di questo tipo:

clip_image005[4]

Per identificare la versione, possiamo fare riferimento alla seguente tabella:

Version

Product

Level

Service Branch

6.0.600 0 . 16 xxx

Windows Vista

RTM

GDR

6.0.600 0 . 20 xxx

Windows Vista

RTM

LDR

6.0.600 1 . 18 xxx

Windows Vista and Windows Server 2008

SP1

GDR

6.0.600 1 . 22 xxx

Windows Vista and Windows Server 2008

SP1

LDR

6.0.600 2 . 18 xxx

Windows Vista and Windows Server 2008

SP2

GDR

6.0.600 2 . 22 xxx

Windows Vista and Windows Server 2008

SP2

LDR

Nel nostro esempio la versione è 6.0.6000.22416. Questo è dunque un file di Windows Vista ed appartiene alla branch GDR.

Come forzare l'installazione di una versione QFE/LDR

Windows XP o Windows Server 2003

Attraverso lo switch /B possiamo specificare la branch da cui l’update verrà installato, che sostituisce la scelta predefinita che sarebbe stata effettuata dall’update.exe
Questo significa che se di default il programma di update installerebbe il binario dal branch GDR, noi possiamo forzare l’installazione della relativa QFE.
Esempio, per una hotfix relativa al service pack 2 possiamo digitare:

WindowsServer2003.WindowsXP-KB999999-x64-ENU.exe /b:SP2QFE

Questo farà in modo che venga installata la versione QFE dell’hotfix specificata.
Lo switch /B non può essere utilizzato per installare la versione GDR di un binario che appartiene già al ramo QFE.
L’unico modo per tornare alla branch GDR, partendo da una QFE, è quello di rimuovere tutti gli update QFE o installare l’ultimo service pack disponibile.

Windows Vista o Windows Server 2008

Possiamo seguire I seguenti passi per forzare l’installazione di una LDR in Windows Vista e Windows Server 2008:

  1. C:\> Expand -f:* <path del file .msu relativo all’update> <folder che conterrà l’espansione del file msu>
  2. C:\> Expand -f:* <path del file KB#.cab contenuto nella cartella di espansione del file msu> <folder che conterrà l’espansione del cab>
  3. C:\> pkgmgr /ip /m:<folder che conterrà l’espansione del cab> \update-bf.mum

Riferimenti utili

 

Mattia Tocco
Senior Support Engineer
Microsoft Enterprise Platform Support