venerdì 3 novembre 2023

Windows 11: Microsoft StagingTool

Microsoft ha pubblicato per errore uno strumento, ad uso interno, che può essere utilizzato per sbloccare funzionalità nascoste presenti in Windows 11.
Il pasticcio è avvenuto durante l'ultimo Bug Bash (Agosto 2023), evento organizzato da Microsoft e dedicato alla caccia di bug all'interno del sistema operativo a cui possono partecipare gli iscritti ai canali di Windows Insider, in cui l'azienda di Redmond ha condiviso per errore un utility chiamata StagingTool. Durante l'evento Microsoft voleva che gli utenti cinesi testassero una nuova funzione di accesso senza password e offriva istruzioni sull'uso e il download di StagingTool.exe per abilitare la funzione.

Sebbene Microsoft abbia successivamente reso indisponibile lo strumento, esso è stato ampiamente diffuso tra gli appassionati di Windows.

Quando vengono sviluppate nuove funzionalità del sistema operativo, Microsoft le aggiunge alle build di anteprima pubbliche di Windows in uno stato nascosto e disabilitato. Tali funzionalità possono essere attivate quando necessario, ad esempio per eseguire test pubblici o interni. Per anni, gli appassionati di Windows hanno cercato le funzionalità nascoste nelle nuove build di Insider Preview e hanno utilizzato strumenti specializzati di terze parti, come ViveTool, per attivarle e dare un'occhiata in anteprima alle novità future.

L'esistenza del tool StagingTool è stata rilevata per la prima volta dall'investigatore di Windows XenoPanther, ma lo strumento non era mai stato reso pubblico.

Come utilizzare StagingTool

StagingTool è un programma a riga di comando che consente di abilitare le funzionalità nascoste, altrimenti note come funzionalità Moment, in Windows 11. 
Per poter abilitare una funzionalità nascosta, è necessario conoscere il suo ID numerico, utilizzato internamente dagli sviluppatori Microsoft.

É possibile trovare nuovi ID di funzionalità e il nome della funzionalità associata analizzando i simboli di debug (PDB) di Windows 11 che vengono rilasciati insieme alle nuove build di anteprima. È possibile utilizzare uno strumento chiamato ViVeTool GUI Feature Scanner per trovare nuovi ID di funzionalità nelle build di anteprima.

Una volta ottenuto l'ID di una funzione nascosta che si desidera testare, è possibile utilizzare StagingTool di Microsoft per attivarla o disattivarla.
Per utilizzare StagingTool, è necessario disporre di privilegi amministrativi, quindi lo strumento deve essere eseguito da un prompt dei comandi elevato in una console, come il Prompt dei comandi o il Terminale di Windows.
StagingTool include un file di aiuto incorporato che può essere visualizzato immettendo il comando StagingTool.exe /?, che visualizza il seguente testo di aiuto:

StagingTool [version 10.0.25910.1000 (WinBuild.160101.0800)] 

    [StagingTool.exe] Controls the feature configurations for this device

       Usage: StagingTool.exe [/enable  <featureId>]
                              [/disable <featureId>]
                              [/query   [featureId]]
                              [/reset   <featureId>]
                              [/testmode]
                              [/setvariant <featureId> <variantId> [payload]]
                              [/serialize]

                              [/setlkg]
                              [/restorelkg]
                              [/trace <featureId1> [<featureId2> ... <featureIdN>]]
                              [/setbootconfigs <jsonFile> <registryPath>]

       /enable          Enable the specified feature
       /disable         Disable the specified feature
       /query           Query the specified feature (or all features, if featureId
                        is omitted) for enablement and variant information
         /v                 Optional parameter to also print ImageDefault and ImageOverride features

       /reset           Reset the specified feature to its default state
         <featureId>        Specifies a feature by its feature Id
                            Example: Enable features with Id 1
                                StagingTool.exe /enable 1

       /testmode        Used in conjunction with /enable /disable /reset
                        Applied feature configs will revert after reboot

       /telemetry       Used in conjunction with /enable /disable /reset
                        Enables sending additional telemetry

       /setvariant      Select a feature variant to use (note: the feature must be
                        enabled for variants to be expressed). Use /query to list
                        configured variants.

         <featureId>        Specifies a feature by its feature Id
         <variantId>        Specifies a feature variant by id.

         [payload]          (Optional) Unsigned int payload for the variant
                            (for variants that support fixed payload)

       /serialize       Rather than apply changes to the local machine, use this
                        option to print out (in reg.exe/hex format) a new config
                        with all of the requested changes. This can be used for
                        offline updates to VHDs prior to first boot.

       /setlkg          Set Boot time feature override states as LKG Configurations
       /restorelkg      Restore Boot time LKG configurations states Feature Configurations


       /trace           Realtime ETW trace for the specified feature(s) usage in code
                        E.g. enable trace for the feature with ID 1235441: StagingTool.exe /trace 1235441

       /?                Show command usage



StagingTool
FIG 1 - StagingTool

Prima di procedere all'attivazione di una funzione è necessario ricordare che si tratta di funzioni sperimentali ancora in fase di sviluppo che, pertanto, potrebbero causare l'instabilità del sistema Windows 11. Un buon approccio potrebbe essere quello di testare le nuove funzionalità in una macchina virtuale in modo tale da poter tornare facilmente a un'istantanea precedente se qualcosa va storto.

Tramite il comando StagingTool.exe /query è possibile visualizzare un elenco degli ID delle funzionalità disponibili e il loro stato (abilitate/disabilitate). Tuttavia, questo comando elenca solo i numeri degli ID delle funzioni e un link interno di Microsoft alle informazioni sull'esperimento, il che non è molto utile.
Per scoprire a che funzionalità fa riferimento un particolare ID si può tentare una ricerca tramite web: spesso gli utenti esperti condividono le nuove funzionalità nascoste.

Per abilitare una funzionalità nascosta si utilizza il comando 
StagingTool.exe /enable <ID funzione>
Ad esempio, per abilitare la funzione con ID 40025975 si usa il comando
StagingTool.exe /enable  40025975

In maniera analoga, per disattivare una funzione si usa il comando
StagingTool.exe /disable <ID funzione>
Ad esempio
StagingTool.exe /disable 40025975

In alcuni casi è necessario riavviare Windows 11 dopo aver attivato o disattivato una nuova funzione.
Molti altri comandi di StagingTool sono destinati a un uso più avanzato, come ad abilitare varianti di funzioni, payload specifici o la telemetria.

Due comandi interessanti sono gli argomenti della riga di comando /serialize e /trace.

L'opzione trace esegue il debug di una funzione abilitata utilizzando Event Tracing for Windows (ETW), mentre l'opzione serialize crea una nuova configurazione per abilitare/disabilitare le funzioni tramite il Registro di sistema come aggiornamenti offline dei VHD.

Dai seguenti link è possibile scaricare il tool StagingTool



Nessun commento:

Posta un commento

I messaggi sono soggetti a moderazione da parte dell'amministratore prima della loro pubblicazione.