La storia si ripete. Talvolta accade che un aggiornamento distribuito da un qualsiasi vendor provochi la comparsa di una schermata blu o comunque impedisca il corretto avvio di Windows. Se sono tanti i sistemi a presentare lo stesso identico comportamento e Windows non si avvia, di solito ciò che viene suggerito è accedere al menu di avvio avanzato al boot della macchina quindi correggere manualmente la problematica usando il Prompt dei comandi. In alternativa si può avviare il PC in modalità provvisoria e procedere da lì per applicare gli interventi risolutivi.
L’abbiamo visto nel caso dell’incidente occorso sui sistemi che usano software CrowdStrike: il 19 luglio 2024 migliaia di sistemi Windows utilizzati in ambito business ed enterprise hanno cessato di funzionare, impattando negativamente sulla continuità operativa delle aziende. Non si tratta però di un caso isolato: in passato si sono susseguite molteplici spiacevoli situazioni, del tutto simili. Spesso un aggiornamento sfortunato, che ha superato i controlli di qualità pur risultando imperfetto, arriva sui sistemi degli utenti finali e, nei casi più gravi, può impedirne il normale avvio. È successo, in passato, nel caso di tante soluzioni per la sicurezza informatica o comunque di software che agiscono a basso livello sul sistema.
E se vi dicessimo che gli amministratori IT hanno a disposizione una leva per intervenire rapidamente sulla configurazione dei sistemi Windows che non si avviano più, senza dover modificare manualmente la configurazione di ogni singola macchina?
Come cambiare la configurazione di più sistemi Windows che non si avviano, in un colpo solo
I problemi che impediscono il boot di Windows di solito possono essere risolti rimuovendo o sostituendo dei file oppure rinominando qualche cartella. Lo abbiamo visto nel caso di CrowdStrike, l’abbiamo imparato nel caso di altri software di utilizzo comune.
Gli amministratori IT, una volta verificato che un certo intervento sulla configurazione di Windows, a livello di file system, permette di ripristinare il corretto avvio del sistema, possono usare un’immagine WinPE e disporne l’avvio tramite PXE (Preboot Execution Environment).
WinPE è una versione leggera di Windows usata per installare, distribuire e riparare versioni complete di Windows. È un sistema operativo minimalista che fornisce un ambiente di pre-installazione per il sistema operativo Microsoft e supporta una serie di funzionalità di base necessarie per la manutenzione e il recupero delle installazioni di Windows.
Usare un’immagine WinPE consente agli amministratori di sistema di eseguire operazioni di manutenzione e recupero senza necessitare del sistema operativo completo installato sul disco rigido del computer. È possibile avviare un computer Windows con problemi all’avvio usando WinPE per correggere problemi di sistema, eseguire strumenti diagnostici, ripristinare dati, applicare aggiornamenti di sistema o reinstallare completamente il sistema operativo.
Il già citato PXE è uno standard per l’avvio dei computer utilizzando la rete. Grazie a PXE, un sistema può avviarsi tramite una rete, senza usare hard disk, unità SSD, supporti CD/DVD e chiavette USB.
Ecco quindi che l’accoppiata WinPE più PXE ci sembra la soluzione migliore per correggere in massa problemi all’avvio di una batteria di PC Windows. Si pensi ai molteplici sistemi aziendali che dovessero lamentare lo stesso identico problema in fase di boot.
La procedura nella pratica con WinPE e PXE
Per creare un’immagine WinPE avviabile tramite PXE e utilizzarla per correggere problemi di avvio su più PC Windows, l’amministratore deve seguire una serie di passaggi, che riassumiamo nel seguito.
1. Installare Windows ADK (Assessment and Deployment Kit) e l’add-on WinPE per ADK.
2. Creare un’immagine WinPE personalizzata:
– Aprire Deployment and Imaging Tools Environment come amministratore.
– Creare una copia di lavoro di WinPE:
copype amd64 C:\WinPE_amd64
3. Montare l’immagine WinPE:
dism /Mount-Image /ImageFile:"C:\WinPE_amd64\media\sources\boot.wim" /index:1 /MountDir:"C:\WinPE_amd64\mount"
4. Aggiungere i driver e i pacchetti necessari all’immagine appena montata. Esempio:
dism /Image:C:\WinPE_amd64\mount /Add-Package /PackagePath:C:\path\to\package.cab
5. Modificare il file startnet.cmd
per includere i comandi correttivi:
– Aprire C:\WinPE_amd64\mount\Windows\System32\startnet.cmd
– Aggiungere i comandi necessari per la correzione
Il trucco è proprio questo: startnet.cmd
è un file eseguito subito all’avvio di WinPE: è quindi possibile sfruttarne il contenuto per disporre le modifiche da applicare automaticamente su ciascun sistema che non si avvia più e, ad esempio, mostra una schermata blu.
Un esempio di file startnet.cmd
modificato:
@echo off wpeinit rem Imposta il percorso di log set LOGPATH=X:\Windows\Temp\repair_log.txt echo Inizio della procedura di riparazione > %LOGPATH% rem Esegui chkdsk sul disco di sistema echo Esecuzione di chkdsk... >> %LOGPATH% chkdsk c: /f /r >> %LOGPATH% 2>&1 rem Esegui sfc /scannow echo Esecuzione di sfc /scannow... >> %LOGPATH% sfc /scannow >> %LOGPATH% 2>&1 rem Esegui DISM per riparare l'immagine di Windows echo Esecuzione di DISM... >> %LOGPATH% dism /Image:C:\ /Cleanup-Image /RestoreHealth >> %LOGPATH% 2>&1 rem Aggiungi qui altri comandi di riparazione specifici se necessario rem Qui si possono effettuare interventi a livello di file system rem i.e. rinominare file e cartelle oppure sostituire elementi echo Procedura di riparazione completata >> %LOGPATH% rem Riavvia il sistema shutdown /r /t 10
6. Smontare e salvare l’immagine:
dism /Unmount-Image /MountDir:"C:\WinPE_amd64\mount" /Commit
7. Configurare un server PXE (ad esempio, utilizzando Windows Deployment Services) per distribuire l’immagine WinPE.
Esistono comunque numerosi tool open source che consentono di allestire molto semplicemente un server PXE in rete. Ecco una tabella riassuntiva con alcuni nomi interessanti (di alcuni di essi abbiamo parlato nelle pagine de IlSoftware.it):
Software | Facilità d’uso | Funzionalità | Personalizzazione | Sistemi supportati |
---|---|---|---|---|
FOG Project | ★★★☆☆ | ★★★★★ | ★★★★☆ | Windows, Linux, macOS |
Serva | ★★★★★ | ★★★☆☆ | ★★☆☆☆ | Windows |
iPXE | ★★☆☆☆ | ★★★★★ | ★★★★★ | Multipiattaforma |
Tiny PXE | ★★★★☆ | ★★★☆☆ | ★★☆☆☆ | Windows |
LTSP | ★★★☆☆ | ★★★★☆ | ★★★★☆ | Linux |
8. Affinché i problemi siano automaticamente corretti su tutti i PC aziendali, è ovviamente indispensabile che ciascuno di essi sia configurato a livello di BIOS/UEFI per consentire il boot via PXE. Diversamente la correzione automatica non potrà avvenire perché il caricamento di WinPE non avverrà a partire dal server configurato.
Credit immagine in apertura: Copilot Designer