Deprecated: Creation of dynamic property Timber\Site::$pingback is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Site.php on line 180

Deprecated: Creation of dynamic property Timber\User::$name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/User.php on line 118

Deprecated: Creation of dynamic property Timber\Post::$has_disclaimer is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_meta_box_present is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_send_notification is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_modify_title_and_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_heading is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_blz_affiliation_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_content_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_speciali is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_metadesc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskeywords is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_keywordsynonyms is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_estimated-reading-time-minutes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_wordproof_timestamp is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$response_body is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_indexnow_last_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_8715f8a7243ffc76d091f619a53483c0 is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_time_8715f8a7243ffc76d091f619a53483c0 is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_d19d1e3f210e0ec44de7985e2d710c65 is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_time_d19d1e3f210e0ec44de7985e2d710c65 is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$newsletter_subject is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_newsletter_subject is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$newsletter_summary is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_newsletter_summary is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71
Incredibile, Windows OOBE è una Web app: ecco le prove

Incredibile, Windows OOBE è una Web app: ecco le prove

OOBE, ovvero la fase finale dell'installazione di Windows 11, è un'applicazione Web che usa HTML, CSS e JavaScript. Addirittura, c'è una console di sviluppo presente nell'installazione di Windows che permette di modificarne in profondità il funzionamento. Perché?

Al termine dell’installazione di Windows vera e propria, ne abbiamo spesso parlato, si apre una fase finale chiamata OOBE (Out of Box Experience). Si tratta di una procedura che, attraverso una serie di passaggi che si susseguono uno dopo l’altro, guida gli utenti nella configurazione iniziale del dispositivo Windows in uso.

Le richieste fondamentali presentate durante la fase OOBE sono la scelta della lingua e della regione, l’impostazione di un account utente, dell’accesso alla rete locale, le preferenze sulla privacy e una serie di personalizzazioni. Con le ultime versioni di Windows 10 e di Windows 11, OOBE è divenuta sempre più articolata. Anche troppo. Ad esempio con l’aggiunta di schermate che hanno più a che fare con gli aspetti legati al marketing che con la reale configurazione del sistema (si pensi alla promozione di Microsoft 365, di OneDrive, alle esortazioni volte all’uso di un account Microsoft). Attivando l’installazione non presidiata di Windows (unattended), è eventualmente possibile saltare tutta la parte OOBE e richiedere l’impostazione del sistema operativo in maniera del tutto automatica, secondo quanto riportato in un file di configurazione.

I segreti di OOBE: quali combinazioni di tasti si possono usare

Durante la fase OOBE è possibile premere la combinazione di tasti MAIUSC+F10 per accedere ad un prompt dei comandi, utile per modificare subito il comportamento di alcuni aspetti del sistema operativo. Abbiamo visto, ad esempio, come usare la finestra del terminale per installare Windows 11 senza connessione di rete ed evitare il requisito dell’account Microsoft.

Certamente meno conosciuta è la scorciatoia da tastiera CTRL+MAIUSC+F3 che, se utilizzata durante OOBE, riavvia il sistema nella cosiddetta modalità Audit. Si tratta di una modalità di funzionamento che lavora in parallelo con OOBE e che permette di configurare il sistema secondo le proprie esigenze prima della sua effettiva installazione.

La modalità Audit crea una sorta di “dispositivo modello” che l’utente può configurare per poi creare una versione del file ISO di Windows utilizzabile su qualunque macchina, indipendentemente dalla sua configurazione hardware. Pensate ai produttori di PC: in questo modo possono creare una versione personalizzata di Windows da distribuire su milioni di sistemi, riducendo al minimo il tempo richiesto per completare l’operazione. A valle dell’intervento si ottiene infatti un file install.wim personalizzato da inserire nel file ISO.

Il “nocciolo” del sistema è l’ottima utilità Microsoft Sysprep che permette di personalizzare a proprio piacimento il contenuto del supporto d’installazione del sistema.

OOBE è un’applicazione Web: ecco la scoperta davvero interessante

Se provate a premere MAIUSC+F10 durante l’installazione di Windows 11 quindi a digitare taskmgr, noterete che OOBE dipende direttamente dal componente di sistema WWAHost.exe: già questo suggerisce che l’intera fase finale della configurazione è di fatto un’applicazione Web.

Non solo. Con una semplice verifica, si può accertare che OOBE è chiamato “a basso livello” CloudExperienceHost ed è contenuto nella cartella \Windows\SystemApps: accedendo a tale cartella, ci si accorge che OOBE utilizza codice HTML, CSS e JavaScript. È tutto spiegato nel video pubblicato da Andrew Enderman su YouTube.

Usando un sistema di test, si può ad esempio scaricare la ISO di Windows 11 quindi estrarre il file \sources\install.wim. Aprendolo con la nota utilità 7-Zip, quindi portandosi nella sottocartella Windows\SystemApps, si può estrarre la directory Microsoft.Windows.CloudExperienceHost* e analizzarne nel dettaglio il contenuto. L’intera logica di funzionamento di OOBE è racchiusa nel file default.html.

Come fa notare Enderman, OOBE contiene un sacco di riferimenti a tecnologie legacy che Microsoft non usa più: divertendosi a “sfogliare” il contenuto della cartella, infatti, si notano espliciti riferimenti all’ormai defunto assistente digitale Cortana. Non solo, tra gli “Event listener” sviluppati in JavaScript e contenuti nella Web app OOBE ce n’è anche uno non documentato: CTRL + MAIUSC + J.

La console da sviluppatori nascosta in Windows OOBE ci lascia increduli

Il lavoro svolto da Enderman ha portato alla luce quella che di fatto è una console di sviluppo lasciata in un ambiente di produzione. Provate a premere la combinazione di tasti CTRL + MAIUSC + J durante la fase OOBE di Windows. Si aprirà una schermata a sfondo grigio che accetta in input una serie di comandi. Provate a digitare help e a premere il tasto Invio.

La nostra domanda è: ha davvero senso lasciare questa console, seppur abilmente celata, in una procedura d’installazione utilizzata su centinaia di milioni di sistemi in tutto il mondo?

Come si vede qui, quella che ci si trova davanti è una console JavaScript interattiva perfettamente funzionante, che consente a qualunque programmatore di interagire direttamente con la fase OOBE. È qualcosa di davvero incredibile!

Ed è allucinante che eventuali modifiche (Enderman si è addirittura divertito a modificare le condizioni di licenza d’uso di Windows 11 rendendolo goliardicamente un software copyleft…) sono immediatamente acquisite. Dopo un riavvio della macchina (ad esempio con shutdown /r /t 0) le si trovano automaticamente applicate.

Maggiori dettagli sulle logiche di funzionamento di OOBE sono disponibili a questo indirizzo.

Di nuovo, viene da chiedersi quale sia la ratio della scelta di Microsoft: impossibile, davvero, che i segreti di OOBE non emergessero, prima o poi…

Credit immagine in apertura: iStock.com – NguyenDucQuang

Ti consigliamo anche

Link copiato negli appunti