Condividi tramite


Personalizzare l'immagine di Validation OS usando GenImage (Avanzato)

GenImage offre un'interfaccia della riga di comando flessibile e altamente personalizzabile per produrre immagini per il sistema operativo di validazione adatte esattamente ai tuoi scenari. Validation OS Image Builder usa GenImage, ma crea un livello di astrazione per un flusso di lavoro comodo -- ma in qualche modo limitato -- basato sull'interfaccia utente. GenImage è in grado di eseguire molte più operazioni rispetto a quelle esposte nell'interfaccia utente di Validation OS Image Builder e in questa sezione vengono fornite informazioni dettagliate sulle sfumature della generazione di un'immagine del sistema operativo di convalida completamente personalizzabile.

Nota

  • Le immagini completamente personalizzate indicano che l'immagine del sistema operativo di convalida creata usando un elenco arbitrario di pacchetti di personalizzazione può comportare un sistema operativo non funzionante.

  • GenImage non genererà un modello di soluzione di Visual Studio.

Processo complessivo

Il processo complessivo per creare un'immagine del sistema operativo di convalida è la seguente:

  1. Montare il file ISO di Validation OS in una posizione specifica nel file system del PC del tecnico.

  2. Avvia un prompt dei comandi con privilegi elevati e naviga alla cartella <ISO_ROOT>:\cabs;

  3. [Facoltativo] aggiungere i driver all'immagine del sistema operativo di convalida;

  4. [Facoltativo] creare un file di configurazione delle funzionalità personalizzato;

  5. [Facoltativo] aggiungere le funzionalità o i pacchetti su richiesta desiderati all'immagine del sistema operativo di convalida;

  6. [Facoltativo] impostare/sostituire le chiavi del Registro di sistema nell'immagine del sistema operativo di convalida;

  7. [Facoltativo] includere file binari o applicazioni personalizzati nell'immagine del sistema operativo di convalida;

  8. [Facoltativo] impostare il fuso orario dell'immagine del sistema operativo di convalida;

Pacchetti di funzionalità predefiniti

L'ISO del sistema operativo di convalida contiene definizioni predefinite del pacchetto di funzionalità nella cartella <ISO_ROOT>:\GenImage\configs. Questi .pkg file possono essere aperti in un editor di testo per esaminarne il contenuto. La sezione superiore di questi file contiene altre informazioni sulla funzionalità specifica.

Creazione di un pacchetto di funzionalità personalizzato

Se le definizioni del pacchetto di funzionalità predefinite fornite nell'ISO del sistema operativo di convalida non sono appropriate per uno scenario specifico, un pacchetto di funzionalità personalizzato può essere facilmente definito seguendo lo stesso formato descrittivo dei file .pkg predefiniti:

  1. Qualsiasi elemento dopo un # viene considerato un commento.

  2. Una riga per il nome del pacchetto senza l'estensione di file (.cab). Questi taxi risiedono in <ISO_ROOT>:\cabs\neutral e con pacchetti di lingua corrispondenti in <ISO_ROOT>:\cabs\en-us (se appropriato).

  3. Alcuni file .cab si trovano in sottocartelle sotto <ISO_ROOT>:\cabs, ad esempio <ISO_ROOT>:\cabs\Experimental. La struttura di queste directory segue lo stesso modello della directory radice e i file di .cab vengono inseriti nelle sottocartelle neutral o en-us. Per fare riferimento a questi pacchetti in un pacchetto di funzionalità personalizzato, specificare semplicemente il nome della sottodirectory dopo il nome del pacchetto separato da uno spazio e racchiuso tra parentesi quadre. Ad esempio: Microsoft-WinVOS-PnP-Settings-Package [Experimental]

  4. Riferimento a un'altra definizione di funzionalità da includere usando il formato +include <package_name>.<ext>.

    I pacchetti inclusi possono trovarsi nella stessa directory del file di definizione del pacchetto personalizzato oppure possono essere uno dei file .pkg forniti come parte dell'ISO del sistema operativo di convalida sotto <ISO_ROOT>:\GenImage\configs.

Nota

Non è necessario specificare un percorso di file per i pacchetti inclusi. Non includere la versione wow64 del pacchetto. GenImage includerà automaticamente la versione wow del pacchetto, se esistente.

  1. Quando si esegue GenImage, l'opzione -packagepath deve essere impostata sulla directory cabs per consentire a GenImage di iniettare automaticamente pacchetti specifici, indipendentemente dal fatto che i pacchetti si trovino in una sottocartella o nella radice della directory cabs.

Esempio di pacchetto di funzionalità personalizzato:

# Feature: Example
# Description: All packages are located in subdirectories
#
Microsoft-OneCore-TAEF-Package  [Test]
Microsoft-WinVOS-PnP-Settings-Package [Experimental]

Nota

Se un pacchetto (.cab) viene elencato più volte tramite una voce duplicata nel file o tramite una definizione di funzionalità inclusa, GenImage applicherà questo pacchetto una sola volta.

Importante

Alcune funzionalità hanno dipendenze tra pacchetti (cab-to-cab), ovvero l'immagine del sistema operativo di convalida generata non funzionerà a meno che non siano inclusi tutti i pacchetti necessari. Queste dipendenze non sono applicabili da GenImage, quindi è possibile generare un'immagine del sistema operativo di convalida non funzionale o parzialmente funzionale quando si usano definizioni di funzionalità personalizzate.

Specificare l'immagine di base (-ImagePath e -ImageFile)

Il parametro della riga di comando -ImageFile: può essere usato per specificare il nome dell'immagine del sistema operativo di convalida di base.

Quando si lavora con il file ISO del sistema operativo di convalida fornito, questo parametro può essere tralasciato poiché GenImage, per impostazione predefinita, utilizzerà ValidationOS.wim.

Il parametro della riga di comando -ImagePath: può essere usato per fornire il percorso dell'immagine del sistema operativo di convalida di base.

Quando si utilizza il file ISO del Validation OS fornito, è possibile ignorare questo parametro poiché GenImage, per impostazione predefinita, utilizzerà la radice di montaggio dell'ISO.

Funzioni incluse (-PackagesList:)

L'argomento della riga di comando -PackagesList: consente l'uso di una o più funzionalità predefinite o personalizzate fornendo il percorso del file di configurazione.

Quando si specificano più file .pkg, utilizzate più volte questo parametro:

-PackagesList:<file1> -PackagesList:<file2> [...]

oppure usare la sintassi seguente:

-PackagesList:"<file1>,<file2>[,...]"

Quando si usa il secondo formato, assicurarsi che l'elenco delimitato da virgole sia racchiuso tra virgolette doppie.

-PackageList e '-PkgLst: sono alias per -PackagesList:

GenImage cercherà il pacchetto su richiesta in <ISO_ROOT>:\cabs\neutral e <ISO_ROOT>:\cabs\en-us, a meno che non venga sovrascritto dal parametro della riga di comando -PackagePath:.

Inclusione di pacchetti su richiesta senza usare definizioni di funzionalità (-Packages:)

Il parametro della riga di comando -Packages: può essere usato per fornire un elenco delimitato da virgole di nomi di pacchetti su richiesta da includere nell'immagine personalizzata del sistema operativo di convalida. L'elenco deve essere racchiuso tra virgolette doppie.

L'aggiunta delle varianti wow64 dei pacchetti verrà comunque presa in considerazione da GenImage, non è necessario specificarli usando il parametro -Packages:.

A causa della lunghezza dei nomi dei pacchetti, è facile creare una riga di comando molto lunga usando il parametro -Packages:, quindi è consigliabile creare una definizione di funzionalità personalizzata per l'aggiunta di più pacchetti. Per informazioni dettagliate sulle definizioni di funzionalità personalizzate, vedere Creazione di un pacchetto di funzionalità personalizzato.

Ignorare il percorso predefinito del pacchetto (-PackagePath)

Il parametro della riga di comando -PackagePath: può essere usato per fornire il percorso ai pacchetti del sistema operativo di convalida su richiesta. Nel percorso specificato devono esistere una directory neutrale e una directory en-us contenenti i rispettivi file dei pacchetti su richiesta (incluse le versioni wow, se appropriato).

Quando si esegue GenImage dall'ISO del sistema operativo di convalida, questo parametro può essere ignorato, perché GenImage verrà impostato per impostazione predefinita su <ISO_ROOT>:\cabs.

Aggiungere i driver .inf all'immagine del sistema operativo di Validation (-Drivers: / -DriversOnly)

Il parametro -Drivers: della riga di comando può essere usato per fornire il percorso verso un repository di driver specifico per il dispositivo. GenImage aggiungerà in modo ricorsivo tutti i driver nel percorso specificato.

Se i driver sono strutturati in <WinVOS_Root>\Drivers\<my_device>,, il parametro della riga di comando -HW:<my_device> può essere usato come collegamento per includere tali driver. Per altri dettagli su WinVOS_Root, vedere "Specifica del percorso dell'immagine del sistema operativo di convalida personalizzata".

Quando i driver sono inclusi nell'immagine personalizzata del sistema operativo di convalida, GenImage aggiungerà automaticamente il pacchetto funzionale <ISO_ROOT>\GenImage\configs\usb.pkg per garantire che i driver di classe base funzionino. Tuttavia, l'uso dell'opzione della riga di comando -SkipDeviceFeatures sostituirà questo comportamento.

L'uso dell'opzione della riga di comando -DriversOnly consente l'aggiunta di driver senza includere funzionalità o singoli pacchetti.

Selezione della destinazione di avvio dell'immagine del sistema operativo di convalida (-x)

L'immagine WIM del sistema operativo di convalida personalizzata può essere generata in due diversi scenari di utilizzo: applicare l'immagine direttamente al disco rigido interno di un dispositivo di destinazione (avvio da C:) o usare il file wim generato per sostituire boot.wim in un'unità USB WinPE (avvio da X:).

Per supportare entrambi gli scenari, il file ValidationOS.wim di base incluso nella radice dell'ISO contiene due partizioni: la partizione 1 viene usata per il ripristino su C:, e la partizione 2 per supportare gli scenari di avvio da USB (boot da X:).

Per impostazione predefinita, GenImage produrrà ValidationOS.wim da recuperare sul disco rigido interno di un computer di destinazione (avvio da C:).

Il parametro della riga di comando -x può essere usato per generare un'immagine che supporta l'unità USB per l'avvio da X: scenario.

Nota: -usb è un alias del parametro -x.

Inclusione di file personalizzati nell'immagine (-AddedSW e -AddedSWTargetDir)

Tutti i file nel percorso specificato per il parametro della riga di comando -AddedSW: verranno copiati nell'immagine personalizzata del sistema operativo di convalida. Per impostazione predefinita, il contenuto di questo percorso verrà copiato in <WIM_ROOT>:\Programs\<folder>, dove cartella è il nome della cartella da includere. Ad esempio, -AddedSW:D:\Test\MyFiles verrà copiato in <WIM_ROOT>:\Programs\MyFiles.

-AddedSW possono essere definiti più volte per indicare posizioni diverse.

Il parametro della riga di comando -AddedSWTargetDir: può essere usato per sovrascrivere la posizione di destinazione all'interno dell'immagine personalizzata del Sistema Operativo di Convalida.

L'opzione della riga di comando -NoPackages può essere usata per post-elaborare un'immagine OS di validazione già personalizzata e aggiungere file come un passaggio separato.

Modifica del Registro di sistema (-RegistryImport:)

Il parametro della riga di comando -RegistryImport: può essere usato per applicare un file standard dell'editor del Registro di sistema di Windows versione 5.00 .reg all'immagine personalizzata del sistema operativo di convalida.

L'opzione della riga di comando -NoPackages può essere usata per elaborare un'immagine del sistema operativo di validazione già personalizzata e personalizzare il registro in un passaggio separato.

Modifica del fuso orario (-TimeZone:)

Il parametro della riga di comando -TimeZone: può essere usato per modificare il fuso orario dell'immagine personalizzata del sistema operativo di convalida. La stringa specificata deve essere un fuso orario di Windows valido. In caso contrario, GenImage avrà esito negativo.

Specifica il percorso dell'immagine personalizzata del sistema operativo di convalida (-OutPath: / -WinVOS_Root:)

Quando si esegue GenImage dall'ISO del sistema operativo di convalida montato, per impostazione predefinita verrà generato l'output (e tutto il contenuto intermedio) nella directory C:\WinVOS\out\<date>-<time> (ad esempio, C:\WinVOS\out\240116-1242). Questo comportamento può essere modificato, ma usando il -OutPath: o i parametri della riga di comando -WinVOS_Root:. La differenza tra questi due è la seguente:

-OutPath: specificherà il percorso di output esatto, quindi il WIM del sistema operativo di convalida personalizzato e tutto il contenuto intermedio saranno creati in questa directory.

Importante

L'uso dello stesso -OutPath: per un'esecuzione successiva di GenImage può comportare effetti collaterali imprevisti.

-WinVOS_Root: creerà una sottocartella denominata out\<date>-<time> nella directory specificata.

Mancia

L'uso di -WinVOS_Root: è preferibile invece di usare -OutPath: per evitare problemi con conflitti di file temporanei o file .wim lasciati montati.

Per impostazione predefinita, GenImage userà -OutPath: per montare il WIM per l'elaborazione. Il parametro della riga di comando -MountDir: può essere utilizzato per sovrascrivere la posizione di questo punto di montaggio intermedio.

Pulizia dei WIM montati potenzialmente bloccati (-CleanUp)

Se GenImage viene interrotto o un WIM montato è bloccato, è possibile usare il parametro della riga di comando -CleanUp per tentare una pulizia automatica.

Questo parametro può essere usato solo autonomamente.

Ignorare la conferma dell'elaborazione delle immagini (-NoWait)

Il parametro della riga di comando -NoWait può essere usato per ignorare la conferma dopo aver visualizzato l'opzione di generazione dell'immagine e procedere con l'elaborazione dell'immagine.

Output dettagliato

Il parametro della riga di comando -v può essere usato per modificare il livello di log di GenImage in dettagliato.

L'uso di questa opzione genererà un sacco di output ed è consigliabile reindirizzare lo standard in un file.

Mostra l'uso dello script

Il parametro della riga di comando -h può essere usato per visualizzare informazioni sull'utilizzo dello script.

-? e -help sono alias per -h

Esempi di GenImage

Supponendo che l'ISO del Validation OS sia montato in J:, ecco alcuni esempi per generare WIM personalizzati del sistema operativo di convalida.

Aggiungere funzionalità multimediali senza driver usando le impostazioni predefinite ISO

J:\GenImage>GenImage.cmd -PackagesList:J:\GenImage\configs\multimedia.pkg

Aggiungi funzionalità multimediali e funzionalità Wi-Fi con driver che usano le impostazioni predefinite ISO, ignorando la conferma.

Supponendo che i driver vengano inseriti in D:\Drivers\MyDevice

J:\GenImage>GenImage.cmd -PackagesList:J:\GenImage\configs\multimedia.pkg -PackagesList:J:\GenImage\configs\wifi.pkg -drivers:D:\Drivers\MyDevice -NoWait

... o ...

J:\GenImage>GenImage.cmd -PackagesList:"J:\GenImage\configs\multimedia.pkg,J:\GenImage\configs\wifi.pkg" -drivers:D:\Drivers\MyDevice -NoWait

Aggiungere la funzionalità di approvvigionamento senza driver usando un WIM precedentemente personalizzato

J:\GenImage>GenImage.cmd -PackagesList:J:\GenImage\configs\provisioning.pkg -ImagePath:C:\WinVOS\out\240116-1530

Aggiungere la funzionalità di debug con i driver e includere Python

Supponendo che Python venga estratto in D:\Staging\Python e i driver vengano inseriti in D:\Drivers\MyDevice

J:\GenImage>GenImage.cmd -PackagesList:J:\GenImage\configs\debug.pkg -ImagePath:J:\ -Drivers:D:\Drivers\MyDevice -AddedSW:D:\Staging\Python

Uso completo di GenImage.cmd

GenImage.cmd è altamente personalizzabile per supportare diversi scenari personalizzati. Di seguito è riportato l'elenco completo dei parametri necessari, insieme ad alcuni esempi di utilizzo:

            [-Packages:|-PackagesList:|-DriversOnly|-NoPackages]
            [-Drivers:|-HW]
            [-WinVOS_Root:] [-MountDir:]
            [-wim|-vhd|-vhdx] [-usb|-x] [-inc]
            [-TimeZone:]
            [-AddedSW: [-AddedSWTargetDir:]]
            [-RegistryImport:] [-StartupCommand:]
            [-NoWait] [-v]
            NOTE: Running From ISO: [YES]
            -?|-h|-help This screen

-ImageFile:                             <file_name> File name of the image file to be processes.
                                        Defaults to ValidationOS.wim
                                        -wim, -vhd and -vhdx are ignored

-ImagePath:<file_path>                  Path to the image file to be processed.
                                        Default/Current: [J:\]

-PackagePath:<path>                     Path to the cab files to be added to the image.
                                        Defaults to J:\cab or J:\Packages

                                        Neutral and localized packages are placed into their respective
                                        folders under "cab": "neutral" and "en-us".

-OutPath:<path>                         Location of the generated image
                                        Default/Current: [C:\WinVOS\out\240116-1640]

-Packages:<list>                        Comma or space separated list of packages.
                                        Use double quotes around the list.

-PackagesList|PackageList|PkgLst:<file> Use a text file to specify which 
                                        packages will be added to the image
                                        One package name per line, use # for comments

-NoPackages                             Do not include any packages

-DriversOnly                            Do not include any packages, add drivers only
                                        Requires specifying either -Drivers or -HW, but not both

-Drivers:<path>                         Path to drivers
                                        If neither -HW nor -Drivers are not specified
                                        no drivers will be added to the image.
                                        If -HW was used defaults to C:\WinVOS\Drivers\%HW%

-HW:<hardware>                          Hardware variant used for driver installation.
                                        If neither -HW nor -Drivers are specified, no
                                        drivers will be added to the image.

                                        The value specified for this parameter will be appended
                                        to [C:\WinVOS\Drivers]

-SkipDeviceFeatures                     Do NOT automatically include USB support when
                                        drivers are added to the image

-WinVOS_Root:<path>                     Root of the directory structure to process
                                        Default/Current: [C:\WinVOS]

-MountDir:<path>                        Path to mount the image to for processing
                                        Default/Current: C:\WinVOS\out\240116-1640\mnt

-wim                                    Assume the image is a wim file
                                        This is default extension unless -ImageFile, -vhd(x) are specified.

-vhd|-vhdx                              Assume the image is a vhdx file
                                        .wim is default extension unless -ImageFile is specified.

-usb|-x                                 Assume USB boot and set the image index to 2 during mount
                                        Default image index is 1

-TimeZone:<time zone>                   Sets the time zone of the image to the specified value.
                                        NOTE: The validity of this setting is not checked.

-AddedSW:<path>                         Files and folders under path will be copied into the
                                        generated image.

                                        Default target location is \Programs, can be overriden with
                                        -AddedSWTargetDir

-AddedSWTargetDir:<path>                Target - in image - path to copy the contents specified by AddedSW.
                                        Default is \Programs

-RegistryImport:<file>                  Path the a .reg file to be imported into the generated image.
                                        This file can multiple hives under HKLM. Supported hives:
                                        COMPONENTS DEFAULT DRIVERS SAM SECURITY SOFTWARE SYSTEM

-StartupCommand:<file>                  Path the an executablefile to be used as the ValidationOS Shell
                                        On boot this file will be executed first. If the file does not spawn
                                        a new CMD window, the shell will be this new executable.

-inc|-incremental                       Do not restore the package from backup

-CleanUp                                Clean up lingering mounted images.
                                        Will attempt to clean up the mounted into /MountDir.
                                        If /MountDir is not specified it will attempt to clean up
                                        any corrupted and/or prevously mounted images.

                                        NOTE: Not using /MountDir with /Cleanup is a drastic cleaup tactic.

-NoWait                                 Don't pause after displaying image generation settings.

-v                                      Verbose logging

Examples:

* Add all packages in the default "cab" folder under the default package path [J:\cabs] to the default image
  file [ValidationOS.wim] under the default path [J:\] without including drivers:

    GenImage

* Add all packages under the "cab" folder to a ValidationOS.wim and include the drivers for "SP6"

    GenImage -ImageFile:ValidationOS.wim -ImagePath:C:\WinVOS\release\25108.1001.220429-1329\amd64fre -HW:SP6

* Add packages specified in custom.pkg under the "cab" folder to a ValidationOS.vhdx without including drivers:

    GenImage -ImagePath:C:\WinVOS\release\25108.1001.220429-1329\amd64fre -vhdx -PackagesList:custom.pkg

* Incrementally add "Microsoft-WinVOS-NetFx45-Package" to ValidationOS.wim. The package is located in "cab" under the specified image path folder.

    GenImage -inc -ImageFile:ValidationOS.wim -ImagePath:C:\WinVOS\release\25108.1001.220429-1329\amd64fre -Packages:"Microsoft-WinVOS-NetFx45-Package" 

Nota sull'uso della versione corrispondente del set di strumenti dism per la creazione di immagini

Quando si esegue GenImage.cmd dall'ISO montato, lo script preferisce usare il dism.exe fornito nell'ISO insieme a GenImage.cmd. Questa è la versione consigliata di dism per qualsiasi attività di manipolazione delle immagini perché corrisponde alla versione dello strumento usata per creare i pacchetti ValidationOS.wim forniti e facoltativi.

(Sperimentale) Aggiungere il supporto WWAN

Attenzione

Si tratta di una funzionalità sperimentale con supporto molto limitato.

Validation OS ha introdotto il supporto iniziale per WWAN, per fornire l'interazione con il modem tramite i comandi AT.

È necessario aggiungere due pacchetti alla composizione dell'immagine: Microsoft-WinVOS-WWAN-Package e Microsoft-WinVOS-PnP-Settings.

Questo scenario non è supportato da GenImage, ovvero i pacchetti devono essere applicati usando dism.exe fornito nell'ISO del sistema operativo di convalida. Si assicuri di utilizzare dism.exe da <ISO_ROOT>:\GenImage\Tools\DISM\%PROCESSOR_ARCHITECTURE%, dove PROCESSOR_ARCHITECTURE è l'architettura del processore del computer del tecnico (ad esempio, AMD64).