Distribuire Windows To Go nell'organizzazione

Questo argomento contiene informazioni su come distribuire Windows To Go nell'organizzazione. Prima di iniziare la distribuzione, leggi gli argomenti Windows To Go: panoramica delle funzionalità e Preparare l'organizzazione per Windows To Go per assicurarti di avere l'hardware corretto ed essere pronto per completare la distribuzione. A questo punto puoi usare i passaggi descritti in questo argomento per avviare la distribuzione di Windows To Go.

Nota  

Questo argomento include cmdlet di esempio di Windows PowerShell che puoi usare per automatizzare alcune delle procedure descritte. Per altre informazioni, vedi Utilizzo di cmdlet.

 

Suggerimenti di distribuzione

Di seguito è riportato un elenco di elementi che è opportuno conoscere prima di avviare il processo di distribuzione:

  • Usa solo le unita USB consigliate per Windows To Go. L'uso di altre unità non è supportato. Controlla l'elenco in Considerazioni sull'Hardware per Windows To Go per le unità USB più recenti certificate per l'uso come unità Windows To Go.

  • Dopo aver eseguito il provisioning di una nuova area di lavoro, espelli sempre l'unità Windows To Go tramite il comando Rimozione sicura dell'hardware ed espulsione supporti che si trova nell'area di notifica o in Esplora risorse. La rimozione dell'unità dalla porta USB senza prima espellerla può danneggiare l'unità.

  • Quando esegui un'area di lavoro Windows To Go, arresta sempre l'area di lavoro prima di scollegare l'unità.

  • System Center 2012 Configuration Manager SP1 e versioni successive includono il supporto per il provisioning autonomo delle unità Windows To Go. Puoi scaricare la versione di valutazione di Configuration Manager da Microsoft TechNet Evaluation Center. Per altre informazioni su questa opzione di distribuzione, vedi Come eseguire il provisioning di Windows To Go in Configuration Manager.

  • Se prevedi di usare un duplicatore di unità USB per duplicare l'unità Windows To Go, non configurare l'aggiunta a un dominio offline o BitLocker nell'unità.

Passaggi di distribuzione di base

Se non usi un'immagine del sistema operativo personalizzata, l'area di lavoro Windows To Go iniziale non verrà aggiunta al dominio e non conterrà applicazioni. Questo avviene esattamente allo stesso modo di una nuova installazione di Windows su un computer desktop o un portatile. Quando pianifichi la distribuzione, devi sviluppare metodi per aggiungere le unità Windows To Go al dominio e installare le applicazioni standard necessarie agli utenti dell'organizzazione. Questi metodi saranno probabilmente simili a quelli usati per configurare computer desktop e portatili con privilegi di dominio e applicazioni. Questa sezione descrive le istruzioni per creare il corretto layout del disco nell'unità USB, applicare l'immagine del sistema operativo e le configurazioni specifiche di Windows To Go all'unità. I passaggi seguenti sono usati in scenari di distribuzione di piccole e grandi dimensioni di Windows To Go.

Al termine di questi passaggi, avrai a disposizione un'unità Windows To Go generica da distribuire agli utenti e personalizzare per il loro uso, se necessario. Questa unità è adatta anche per essere usata con i duplicatori di unità USB. Gli scenari di distribuzione specifici prevederanno più di questi passaggi di base, ma queste considerazioni aggiuntive sulla distribuzione sono simili alla distribuzione tradizionale di PC e possono essere incorporate nel piano di distribuzione Windows To Go. Per altre informazioni, vedi Opzioni di distribuzione di Windows.

Avviso  

Se prevedi di usare l'unità generica di Windows To Go come unità master in un duplicatore USB, l'unità non deve essere avviata. Se l'unità è stata avviata inavvertitamente, devi eseguire di nuovo il provisioning prima della duplicazione.

 

Creare l'area di lavoro Windows To Go

In questo passaggio viene creata l'immagine del sistema operativo che verrà usata nelle unità Windows To Go. Puoi usare la creazione guidata di Windows To Go o puoi eseguire questa operazione manualmente usando una combinazione di comandi Windows PowerShell e di strumenti della riga di comando.

Avviso  

Il metodo preferito per la creazione di una singola unità Windows To Go consiste nell'usare la creazione guidata di Windows To Go inclusa in Windows 10 Enterprise e Windows 10 Education.

 

Mt186418.wedge(it-it,VS.85).gifPer creare un'area di lavoro Windows To Go con la creazione guidata di Windows To Go

  1. Accedi al PC Windows con un account con privilegi di amministratore.

  2. Inserisci l'unità USB che vuoi usare come unità Windows To Go nel PC.

  3. Verifica che il percorso del file WIM (che può essere una condivisione di rete, un DVD o un'unità USB) sia accessibile e contenga un'immagine Windows 10 Enterprise o Windows 10 Education valida generalizzata usando Sysprep. Molti ambienti possono usare la stessa immagine per distribuzioni Windows To Go e desktop.

    Nota  

    Per altre informazioni sui file WIM, vedi Documentazione tecnica su Windows System Image Manager (Windows SIM). Per altre informazioni sull'utilizzo di Sysprep, vedi Panoramica di Sysprep.

     

  4. Tramite Cortana, cerca Windows To Go e quindi premi INVIO.. Se viene visualizzata la finestra di dialogo Controllo account utente, controlla che l'azione visualizzata sia quella desiderata e quindi fai clic su . Verrà visualizzata la Creazione guidata di Windows To Go.

  5. Nella pagina Scegliere l'unità che si desidera utilizzare seleziona l'unità che rappresenta l'unità USB precedentemente inserita, quindi fai clic su Avanti.

  6. Nella pagina Scegliere un'immagine di Windows fai clic su Aggiungi percorso di ricerca, cerca il percorso del file WIM e fai clic per selezionare la cartella. La procedura guidata visualizzerà le immagini installabili presenti nella cartella. Seleziona l'immagine Windows 10 Enterprise o Windows 10 Education che vuoi usare e quindi fai clic su Avanti.

  7. (Facoltativo) Nella pagina Imposta password di BitLocker (facoltativo) puoi selezionare Usa BitLocker con l'area di lavoro Windows To Go per crittografare l'unità Windows To Go. Se non vuoi crittografare l'unità, fai clic su Ignora. Se decidi di aggiungere la protezione BitLocker in un secondo momento, leggi le istruzioni in Abilitare la protezione BitLocker per l'unità Windows To Go.

    Avviso  

    Se prevedi di usare un duplicatore USB per creare più unità Windows To Go, non abilitare BitLocker. Le unità protette con BitLocker non devono essere duplicate.

     

    Se scegli di crittografare l'unità Windows To Go:

    • Digita una password che contenga almeno otto caratteri e sia conforme ai criteri di complessità password dell'organizzazione. Questa password verrà fornita prima dell'avvio del sistema operativo quindi i caratteri che usi devono essere interpretabili dal firmware. Alcuni firmware non supportano i caratteri non ASCII.

    • Digita di nuovo la password, quindi fai clic su Avanti.

      Importante  

      La password di ripristino di BitLocker verrà salvata nella raccolta di documenti del computer usato per creare automaticamente l'area di lavoro. Se l'organizzazione usa Servizi di dominio Active Directory per archiviare le password di ripristino, la password verrà salvata anche in Servizi di dominio Active Directory nell'account computer del computer usato per creare l'area di lavoro. Questa password verrà usata solo se devi ripristinare l'accesso all'unità perché la password di BitLocker specificata nel passaggio precedente non è disponibile, ad esempio se è stata persa o dimenticata. Per altre informazioni su BitLocker e Servizi di dominio Active Directory, vedi Considerazioni su Servizi di dominio Active Directory.

       

  8. Verifica che l'unità USB inserita sia quella corretta per il provisioning per Windows To Go, quindi fai clic su Crea per avviare il processo di creazione dell'area di lavoro Windows To Go.

    Avviso  

    L'unità USB identificata verrà riformattata durante il processo di provisioning di Windows To Go e tutti i dati sull'unità verranno cancellati.

     

  9. Attendi il completamento del processo di creazione che può richiedere da 20 a 30 minuti. Verrà visualizzata una pagina di completamento che indica quando l'area di lavoro Windows To Go è pronta per l'uso. Dalla pagina di completamento puoi configurare le opzioni di avvio Windows To Go per configurare il computer corrente come computer host Windows To Go.

L'area di lavoro Windows To Go ora è pronta per essere avviata. Ora puoi preparare un computer host usando le opzioni di avvio Windows To Go e avviare l'unità Windows To Go.

Comandi equivalenti di Windows PowerShell

I cmdlet di Windows PowerShell seguenti eseguono la stessa funzione della procedura precedente. Immetti ogni cmdlet su una singola riga, anche se le parole potrebbero tornare automaticamente a capo e quindi apparire su più righe a causa dei limiti di formattazione. Questa procedura può essere usata solo nei PC che eseguono Windows 10. Prima di iniziare, assicurati che solo l'unità USB di cui vuoi eseguire il provisioning come unità Windows To Go sia collegata al PC.

  1. Tramite Cortana, cerca powershell, fai clic con il pulsante destro del mouse su Windows PowerShell, quindi seleziona Esegui come amministratore.

  2. Nella sessione di Windows PowerShell digita i comandi seguenti per partizionare un disco MBR (Record di avvio principale, Master Boot Record) per l'uso con una partizione di sistema FAT32 e una partizione di sistema operativo formattata come NTFS. Questo layout del disco può supportare computer che usano firmware UEFI o BIOS:

    # The following command will set $Disk to all USB drives with >20 GB of storage
    
    $Disk = Get-Disk | Where-Object {$_.Path -match "USBSTOR" -and $_.Size -gt 20Gb -and -not $_.IsBoot }
    
    #Clear the disk. This will delete any data on the disk. (and will fail if the disk is not yet initialized. If that happens, simply continue with ‘New-Partition…) Validate that this is the correct disk that you want to completely erase.
    # To skip the confirmation prompt, append –confirm:$False
    Clear-Disk –InputObject $Disk[0] -RemoveData 
    
    # This command initializes a new MBR disk 
    Initialize-Disk –InputObject $Disk[0] -PartitionStyle MBR
    
    # This command creates a 350 MB system partition
    $SystemPartition = New-Partition –InputObject $Disk[0] -Size (350MB) -IsActive 
    
    # This formats the volume with a FAT32 Filesystem
    # To skip the confirmation dialog, append –Confirm:$False
    Format-Volume -NewFileSystemLabel "UFD-System" -FileSystem FAT32 `
    -Partition $SystemPartition
    
    # This command creates the Windows volume using the maximum space available on the drive. The Windows To Go drive should not be used for other file storage.
    $OSPartition = New-Partition –InputObject $Disk[0] -UseMaximumSize
    Format-Volume -NewFileSystemLabel "UFD-Windows" -FileSystem NTFS `
    -Partition $OSPartition
    
    # This command assigns drive letters to the new drive, the drive letters chosen should not already be in use.
    Set-Partition -InputObject $SystemPartition -NewDriveLetter "S"
    Set-Partition -InputObject $OSPartition -NewDriveLetter "W"
    
    # This command sets the NODEFAULTDRIVELETTER flag on the partition which prevents drive letters being assigned to either partition when inserted into a different computer.
    Set-Partition -InputObject $OSPartition -NoDefaultDriveLetter $TRUE
    
  3. Ora devi applicare l'immagine del sistema operativo che vuoi usare con Windows To Go alla partizione del sistema operativo appena creata nel disco (l'operazione potrebbe richiedere almeno 30 minuti, a seconda delle dimensioni dell'immagine e della velocità della connessione USB). Il comando seguente mostra come eseguire questa operazione usando lo strumento della riga di comando Gestione e manutenzione immagini distribuzione:

    Suggerimento  

    Il numero di indice deve essere impostato correttamente su un'immagine Enterprise valida nel file WIM.

     

    #The WIM file must contain a sysprep generalized image.
    dism /apply-image /imagefile:n:\imagefolder\deploymentimages\mywtgimage.wim /index:1 /applydir:W:\ 
    
  4. Ora usa lo strumento della riga di comando bcdboot per spostare i componenti di avvio necessari per la partizione del sistema nel disco. Questo consente di garantire che i componenti di avvio, le versioni del sistema operativo e le architetture corrispondano. Il parametro /f ALL indica che i componenti di avvio per UEFI e BIOS devono essere inseriti nella partizione di sistema del disco. L'esempio seguente illustra questo passaggio:

    W:\Windows\System32\bcdboot W:\Windows /f ALL /s S:
    
  5. Applica il criterio SAN—OFFLINE_INTERNAL - "4" per impedire che il sistema operativo metta automaticamente online qualsiasi disco connesso internamente. Questa operazione viene eseguita creando e salvando un file san_policy.xml nel disco. L'esempio seguente illustra questo passaggio:

    <?xml version='1.0' encoding='utf-8' standalone='yes'?>
    <unattend xmlns="urn:schemas-microsoft-com:unattend">
      <settings pass="offlineServicing">
        <component
            xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            language="neutral"
            name="Microsoft-Windows-PartitionManager"
            processorArchitecture="x86"
            publicKeyToken="31bf3856ad364e35"
            versionScope="nonSxS"
            >
          <SanPolicy>4</SanPolicy>
        </component>
       <component
            xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            language="neutral"
            name="Microsoft-Windows-PartitionManager"
            processorArchitecture="amd64"
            publicKeyToken="31bf3856ad364e35"
            versionScope="nonSxS"
            >
          <SanPolicy>4</SanPolicy>
        </component>
     </settings>
    </unattend>
    
  6. Posiziona il file san_policy.xml creato nel passaggio precedente nella directory radice della partizione Windows dell'unità Windows To Go (W: negli esempi precedenti) ed esegui il comando seguente:

    Dism.exe /Image:W:\ /Apply-Unattend:W:\san_policy.xml
    
  7. Crea un file di risposte (unattend.xml) che disabilita l'uso di Ambiente ripristino Windows con Windows To Go. Puoi usare l'esempio di codice seguente per creare un nuovo file di risposte o incollarlo in un file di risposte esistente:

    <?xml version="1.0" encoding="utf-8"?>
    <unattend xmlns="urn:schemas-microsoft-com:unattend">
        <settings pass="oobeSystem">
            <component name="Microsoft-Windows-WinRE-RecoveryAgent"
              processorArchitecture="x86"
              publicKeyToken="31bf3856ad364e35" language="neutral" 
              versionScope="nonSxS"
              xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" 
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                <UninstallWindowsRE>true</UninstallWindowsRE>
            </component>
           <component name="Microsoft-Windows-WinRE-RecoveryAgent"
              processorArchitecture="amd64"
              publicKeyToken="31bf3856ad364e35" language="neutral" 
              versionScope="nonSxS"
              xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" 
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                <UninstallWindowsRE>true</UninstallWindowsRE>
            </component>
        </settings>  
    </unattend>
    

    Dopo aver salvato il file di risposte, copia il file unattend.xml nella cartella Sysprep nell'unità Windows To Go (ad esempio, W:\Windows\System32\sysprep\)

    Importante  

    I file di installazione automatica vengono elaborati in base al loro percorso. Il programma di installazione posiziona un file di installazione automatica temporaneo nella cartella %systemroot%\panther che è il primo percorso in cui il programma di installazione controllerà le informazioni di installazione. Devi verificare che la cartella non contenga una versione precedente di un file unattend.xml per assicurarti che venga usato quello appena creato.

    Se non desideri avviare il dispositivo Windows To Go in questo computer e vuoi rimuoverlo per avviarlo in un altro PC, assicurati di usare l'opzione Rimozione sicura dell'hardware ed espulsione supporti per disconnettere in modo sicuro l'unità prima di rimuoverla fisicamente dal PC.

     

L'area di lavoro Windows To Go ora è pronta per essere avviata. Ora puoi preparare un computer host usando le opzioni di avvio Windows To Go per testare la configurazione dell'area di lavoro, configurare l'area di lavoro per l'aggiunta al dominio offline o abilitare la protezione BitLocker per l'unità Windows To Go.

Per preparare un computer host

I computer che eseguono Windows 8 e versioni successive possono essere configurati come computer host che usano automaticamente Windows To Go ogni volta che un'area di lavoro Windows To Go è disponibile all'avvio. Quando le opzioni di avvio Windows To Go sono abilitate in un computer host, Windows devierà l'avvio all'unità Windows To Go ogni volta che è collegata al computer. In questo modo è facile passare dal computer host all'area di lavoro Windows To Go.

Suggerimento  

Se userai un PC con Windows 7 computer host, vedi Suggerimenti per configurare le impostazioni del BIOS in modo che funzionino con Windows To Go per informazioni su come preparare il computer host.

 

Se desideri usare l'area di lavoro Windows To Go, arresta il computer, collega l'unità Windows To Go e accendi il computer. Per usare il computer host, arresta l'area di lavoro Windows To Go, scollega l'unità Windows To Go e accendi il computer.

Per impostare le opzioni di avvio Windows To Go per i computer host che eseguono Windows 10:

  1. Tramite Cortana, cerca Opzioni di avvio Windows To Go e quindi premi INVIO.

  2. Nella finestra di dialogo Opzioni di avvio Windows To Go seleziona e quindi fai clic su Salva modifiche per configurare il computer in modo che venga avviato dall'unità USB.

Per i computer host in cui viene eseguito Windows 8 o Windows 8.1:

  1. Premi il tasto WINDOWS+W, cerca Opzioni di avvio Windows To Go e quindi premi INVIO.
  2. Nella finestra di dialogo Opzioni di avvio Windows To Go seleziona e quindi fai clic su Salva modifiche per configurare il computer in modo che venga avviato dall'unità USB.

Puoi configurare i computer dell'organizzazione per l'avvio automatico dall'unità USB abilitando la seguente impostazione di Criteri di gruppo:

\\Computer Configuration\Administrative Templates\Windows Components\Portable Operating System\Windows To Go Default Startup Options

Dopo aver abilitato questa impostazione criterio, verrà eseguito l'avvio automatico di un'area di lavoro Windows To Go quando un'unità USB è connessa al computer all'avvio. Gli utenti non potranno usare le opzioni di avvio Windows To Go per cambiare questo comportamento. Se disabiliti questa impostazione criterio, l'avvio in Windows To Go quando è connessa un'unità USB non sarà abilitato, a meno che un utente non configuri l'opzione manualmente nel firmware. Se non configuri questa impostazione criterio, gli utenti membri del gruppo Administrators potranno abilitare o disabilitare l'avvio da un'unità USB usando la finestra di dialogo Opzioni di avvio Windows To Go.

Ora il computer host può essere avviato direttamente nell'area di lavoro Windows To Go quando viene inserita prima dell'avvio del computer. Puoi anche Configurare l'area di lavoro Windows To Go per l'aggiunta a un dominio offline e Abilitare la protezione BitLocker per l'unità Windows To Go.

Avviare l'area di lavoro Windows To Go

Dopo aver configurato il PC host per l'avvio da USB, puoi usare la procedura seguente per avviare l'area di lavoro Windows To Go:

Mt186418.wedge(it-it,VS.85).gifPer avviare l'area di lavoro

  1. Assicurati che il PC host non sia in uno stato di sospensione. Se il computer è in uno stato di sospensione, attiva la modalità di arresto o ibernazione.

  2. Inserisci l'unità Windows To Go direttamente in una porta USB 3.0 o USB 2.0 del PC. Non usare un hub USB o un extender.

  3. Accendi il PC. Se l'unità Windows To Go è protetta con BitLocker, ti verrà richiesto di immettere la password. In caso contrario, l'area di lavoro verrà avviata direttamente nell'area di lavoro Windows To Go.

Procedure di distribuzione avanzate

I passaggi seguenti vengono usati per distribuzioni avanzate in cui desideri avere maggiore controllo sulla configurazione delle unità Windows To Go e assicurarti che siano configurate nel modo corretto per l'accesso remoto alle risorse aziendali e siano protette con Crittografia unità BitLocker.

Configurare l'area di lavoro Windows To Go per l'accesso remoto

Per completare la distribuzione, è fondamentale assicurarsi che le aree di lavoro Windows To Go siano valide quando vengono usate non in locale. Uno dei principali vantaggi di Windows To Go è la possibilità per gli utenti di usare l'area di lavoro aggiunta al dominio gestito dall'azienda in un computer non gestito che è all'esterno della rete aziendale. Per abilitare questo tipo di utilizzo, in genere dovresti eseguire il provisioning dell'unità USB, come descritto nelle istruzioni di distribuzione di base, e poi aggiungere la configurazione per supportare l'aggiunta dell'area di lavoro al dominio, l'installazione delle applicazioni line-of-business e la configurazione della soluzione di connettività remota scelta, come ad esempio un client di rete privata virtuale o DirectAccess. Dopo aver eseguito queste configurazioni, l'utente può lavorare dall'area di lavoro usando un computer che non è in locale. La procedura seguente consente che di eseguire il provisioning delle aree di lavoro Windows To Go aggiunte al dominio per i lavoratori che non hanno accesso fisico alla rete aziendale.

Prerequisiti per lo scenario di accesso remoto

  • Un computer appartenente al dominio che esegue Windows 8 o versione successiva ed è configurato come computer host Windows To Go

  • Un'unità Windows To Go che non è stata avviata o aggiunta al dominio tramite impostazioni di installazione automatica.

  • Un account utente di dominio che abbia i diritti per aggiungere computer account al dominio e sia un membro del gruppo Administrators nel computer host Windows To Go

  • DirectAccess configurato nel dominio

Mt186418.wedge(it-it,VS.85).gifPer configurare l'area di lavoro Windows To Go per l'accesso remoto

  1. Avvia il computer host e accedi con un account utente con privilegi di aggiungere workstation al dominio e quindi esegui il comando seguente da un prompt dei comandi con privilegi elevati sostituendo i parametri segnaposto di esempio (indicati con <>) con quelli applicabili per il tuo ambiente:

    djoin /provision /domain <exampledomain.com> /machine <examplewindowstogo_workspace_name> /certtemplate <WorkstationAuthentication_template> /policynames <DirectAccess Client Policy: {GUID}> /savefile <C:\example\path\domainmetadatafile> /reuse   
    

    Nota  

    Il parametro /certtemplate supporta l'uso di modelli di certificato per la distribuzione di certificati per DirectAccess. Se l'organizzazione non usa modelli di certificato, puoi omettere questo parametro. Inoltre, se stai usando djoin.exe con controller di dominio basati su Windows Server 2008, aggiungi il commutatore /downlevel durante il provisioning. Per altre informazioni, vedi la Guida dettagliata all'aggiunta al dominio offline.

     

  2. Inserisci l'unità Windows To Go.

  3. Avvia un prompt dei comandi di Windows PowerShell con privilegi elevati facendo clic con il pulsante destro del mouse sul collegamento di Windows PowerShell nella barra delle applicazioni e quindi facendo clic su Esegui come amministratore.

  4. Dal prompt dei comandi di Windows PowerShell esegui:

    # The following command will set $Disk to all USB drives with >20 GB of storage
    
    $Disk = Get-Disk | Where-Object {$_.Path -match "USBSTOR" -and $_.Size -gt 20Gb -and -not $_.IsBoot }
    
    #Clear the disk. This will delete any data on the disk. (and will fail if the disk is not yet initialized. If that happens, simply continue with ‘New-Partition…) Validate that this is the correct disk that you want to completely erase.
    # To skip the confirmation prompt, append –confirm:$False
    Clear-Disk –InputObject $Disk[0] -RemoveData 
    
    # This command initializes a new MBR disk 
    Initialize-Disk –InputObject $Disk[0] -PartitionStyle MBR
    
    # This command creates a 350 MB system partition
    $SystemPartition = New-Partition –InputObject $Disk[0] -Size (350MB) -IsActive 
    
    # This formats the volume with a FAT32 Filesystem
    # To skip the confirmation dialog, append –Confirm:$False
    Format-Volume -NewFileSystemLabel "UFD-System" -FileSystem FAT32 `
    -Partition $SystemPartition
    
    # This command creates the Windows volume using the maximum space available on the drive. The Windows To Go drive should not be used for other file storage.
    $OSPartition = New-Partition –InputObject $Disk[0] -UseMaximumSize
    Format-Volume -NewFileSystemLabel "UFD-Windows" -FileSystem NTFS `
    -Partition $OSPartition
    
    # This command assigns drive letters to the new drive, the drive letters chosen should not already be in use.
    Set-Partition -InputObject $SystemPartition -NewDriveLetter "S"
    Set-Partition -InputObject $OSPartition -NewDriveLetter "W"
    
    # This command toggles the NODEFAULTDRIVELETTER flag on the partition which prevents drive letters being assigned to either partition when inserted into a different computer.
    Set-Partition -InputObject $OSPartition -NoDefaultDriveLetter $TRUE
    
  5. Ora devi applicare l'immagine del sistema operativo che vuoi usare con Windows To Go alla partizione del sistema operativo appena creata nel disco (l'operazione potrebbe richiedere almeno 30 minuti, a seconda delle dimensioni dell'immagine e della velocità della connessione USB). Il comando seguente mostra come eseguire questa operazione usando lo strumento della riga di comando Gestione e manutenzione immagini distribuzione:

    Suggerimento  

    Il numero di indice deve essere impostato correttamente su un'immagine Enterprise valida nel file WIM.

     

    #The WIM file must contain a sysprep generalized image.
    dism /apply-image /imagefile:n:\imagefolder\deploymentimages\mywtgimage.wim /index:1 /applydir:W:\ 
    
  6. Dopo aver completato questi comandi, esegui il comando seguente:

    djoin /requestodj /loadfile C:\example\path\domainmetadatafile /windowspath W:\Windows   
    
  7. Dovrai modificare il file unattend.xml per configurare le impostazioni di prima esecuzione (configurazione guidata). In questo esempio nascondiamo la pagina delle condizioni di licenza software Microsoft (EULA), configuriamo gli aggiornamenti automatici per installare automaticamente gli aggiornamenti importanti e consigliati e identifichiamo l'area di lavoro all'interno di una rete privata aziendale. Se necessario, puoi usare altre impostazioni di configurazione guidata che hai configurato per l'organizzazione. Per altre informazioni sulle impostazioni della configurazione guidata, vedi Configurazione guidata:

    <?xml version="1.0" encoding="utf-8"?>
    <unattend xmlns="urn:schemas-microsoft-com:unattend">
        <settings pass="oobeSystem">
            <component name="Microsoft-Windows-WinRE-RecoveryAgent"
              processorArchitecture="x86"
              publicKeyToken="31bf3856ad364e35" language="neutral" 
              versionScope="nonSxS"
              xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" 
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
               <UninstallWindowsRE>true</UninstallWindowsRE>
               <OOBE>
                  <HideEULAPage>true</HideEULAPage>
                  <ProtectYourPC>1</ProtectYourPC>
                  <NetworkLocation>Work</NetworkLocation>
                </OOBE>
             </component>
           <component name="Microsoft-Windows-WinRE-RecoveryAgent"
              processorArchitecture="amd64"
              publicKeyToken="31bf3856ad364e35" language="neutral" 
              versionScope="nonSxS"
              xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" 
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
               <UninstallWindowsRE>true</UninstallWindowsRE>
               <OOBE>
                  <HideEULAPage>true</HideEULAPage>
                  <ProtectYourPC>1</ProtectYourPC>
                  <NetworkLocation>Work</NetworkLocation>
               </OOBE>
    </component>
        </settings>  
    </unattend>
    
  8. Rimuovi in modo sicuro l'unità Windows To Go.

  9. Da un computer host, in locale o meno, avvia il computer e l'area di lavoro Windows To Go.

    1. Se in locale con un computer host con una connessione di rete diretta, accedi usando le credenziali di dominio.

    2. Se non in locale, accedi a una rete cablata o wireless con accesso a Internet e quindi esegui nuovamente l'accesso con le credenziali di dominio.

    Nota  

    A seconda della configurazione di DirectAccess potrebbe essere necessario inserire la smart card per accedere al dominio.

     

Ora dovresti essere in grado di accedere alle risorse di rete aziendali e lavorare dall'area di lavoro Windows To Go nello stesso modo in cui faresti dal computer desktop standard in locale.

Abilitare la protezione BitLocker per l'unità di Windows To Go

Abilitando BitLocker nell'unità Windows To Go, potrai assicurarti che i dati siano protetti da un uso non autorizzato e che, se l'unità Windows To Go viene smarrita o rubata, un utente non autorizzato non potrà ottenere facilmente i dati riservati o usare l'area di lavoro per accedere alle risorse protette dell'organizzazione. Quando BitLocker è abilitato, ogni volta che avvii l'unità Windows To Go, ti verrà richiesto di specificare la password di BitLocker per sbloccare l'unità. La procedura seguente illustra come abilitare BitLocker nell'unità Windows To Go:

Prerequisiti per abilitare uno scenario di BitLocker

  • Un'unità Windows To Go in cui è possibile eseguire il provisioning.

  • Un computer che esegue Windows® 8 configurato come computer host Windows To Go.

  • Esamina le seguenti impostazioni di Criteri di gruppo per la Crittografia unità BitLocker e modifica la configurazione in base alle esigenze:

    \Componenti di Windows\Crittografia unità BitLocker\Unità del sistema operativo\Richiedi autenticazione aggiuntiva all'avvio. Questo criterio consente di usare una protezione con chiave di tipo password con un'unità del sistema operativo. Questo criterio deve essere abilitato per configurare BitLocker nell'area di lavoro Windows To Go. Questa impostazione criterio ti consente di configurare se BitLocker richiede l'autenticazione aggiuntiva ogni volta che il computer viene avviato e se usi BitLocker con o senza un TPM (Trusted Platform Module). Abilita questa impostazione e seleziona la casella di controllo Consenti BitLocker senza un TPM compatibile e quindi abilità l'impostazione Configura utilizzo delle password per unità del sistema operativo.

    \Componenti di Windows\Crittografia unità BitLocker\Unità del sistema operativo\Configura utilizzo delle password per unità del sistema operativo. Questa impostazione criterio abilita le password per essere usate per sbloccare le unità del sistema operativo protette da BitLocker e fornisce i mezzi per configurare i requisiti di complessità e lunghezza delle password per le aree di lavoro Windows To Go. Affinché l'impostazione dei requisiti di complessità sia efficace, devi abilitare anche l'impostazione di Criteri di gruppo Le password devono essere conformi ai requisiti di complessità che si trova in Configurazione computer\Impostazioni di Windows\Impostazioni protezione\Criteri account\Criteri password\.

    \Componenti di Windows\Crittografia unità BitLocker\Unità del sistema operativo\Abilita l'uso dell'autenticazione BitLocker che richiede l'input da tastiera prima dell'avvio negli slate. Questa impostazione criterio consente agli utenti di abilitare le opzioni di autenticazione che richiedono l'input utente dall'ambiente prima dell'avvio anche se la piattaforma indica l'assenza di funzionalità di input prima dell'avvio. Se questa impostazione non è abilitata, le password non possono essere usate per sbloccare le unità del sistema operativo protette da BitLocker.

Puoi scegliere di abilitare la protezione BitLocker sulle unità Windows To Go prima di distribuirle agli utenti come parte del processo di provisioning o puoi consentire agli utenti finali di applicare di protezione BitLocker dopo aver preso possesso dell'unità. Viene fornita la procedura dettagliata per entrambi gli scenari.

L'attivazione di BitLocker durante il provisioning assicura che l'immagine del sistema operativo sia sempre protetta da BitLocker. Quando attivi BitLocker durante il processo di provisioning, puoi ridurre notevolmente il tempo necessario per crittografare l'unità abilitando BitLocker dopo aver configurato il disco e appena prima di applicare l'immagine. Se usi questo metodo, dovrai fornire agli utenti la propria password BitLocker quando gli assegnare la loro area di lavoro Windows To Go. Inoltre, devi richiedere agli utenti di avviare l'area di lavoro e modificare le password BitLocker il prima possibile. Questa operazione può essere eseguita con privilegi utente standard.

L'abilitazione di BitLocker dopo la distribuzione richiede che gli utenti attivino BitLocker. Ciò significa che le aree di lavoro Windows To Go non saranno protette finché l'utente non abilita BitLocker. Per abilitare BitLocker, sono necessari i diritti amministrativi nell'area di lavoro Windows To Go. Per altre informazioni su BitLocker, vedi Panoramica di BitLocker.

Chiavi di ripristino di BitLocker

Le chiavi di ripristino di BitLocker sono le chiavi che possono essere usate per sbloccare un'unità protetta con BitLocker se il metodo di sblocco tradizionale ha esito negativo. È consigliabile eseguire il backup delle chiavi di ripristino di BitLocker in Servizi di dominio Active Directory. Se non vuoi usare Servizi di dominio Active Directory per archiviare le chiavi di ripristino, puoi salvarle in un file o stamparle. La gestione delle chiavi di ripristino di BitLocker varia a seconda di quando viene abilitato BitLocker.

  • Se la protezione BitLocker viene abilitata durante il provisioning, le chiavi di ripristino di BitLocker verranno archiviate con l'account computer del computer usato per il provisioning delle unità. Se non viene usato il backup delle chiavi di ripristino in Servizi di dominio Active Directory, le chiavi di ripristino dovranno essere stampate o salvate su un file per ogni unità. L'amministratore IT deve tenere traccia di quali chiavi sono assegnate all'unità Windows To Go.

  • Avviso  

    Se BitLocker viene abilitato dopo la distribuzione, verrà eseguito il backup della chiave di ripristino in Servizi di dominio Active Directory con l'account computer dell'area di lavoro. Se non viene usato il backup delle chiavi di ripristino in Servizi di dominio Active Directory, le chiavi di ripristino possono essere stampate o salvate su un file dall'utente. Se l'amministratore IT vuole un registro centrale delle chiavi di ripristino, è necessario inserire un processo con cui l'utente fornisce la chiave al reparto IT.

     

Mt186418.wedge(it-it,VS.85).gifPer abilitare BitLocker durante il provisioning

  1. Avvia il computer host che esegue Windows 8.

  2. Inserisci l'unità Windows To Go.

  3. Avvia un prompt dei comandi di Windows PowerShell con privilegi elevati facendo clic con il pulsante destro del mouse sul collegamento di Windows PowerShell nella barra delle applicazioni e quindi facendo clic su Esegui come amministratore.

  4. Esegui il provisioning dell'unità Windows To Go usando i cmdlet seguenti:

    Nota  

    Se hai usato il metodo manuale per la creazione di un'area di lavoro, dovresti aver già eseguito il provisioning dell'unità Windows To Go. In tal caso, puoi continuare al passaggio successivo.

     

    # The following command will set $Disk to all USB drives with >20 GB of storage
    
    $Disk = Get-Disk | Where-Object {$_.Path -match "USBSTOR" -and $_.Size -gt 20Gb -and -not $_.IsBoot }
    
    #Clear the disk. This will delete any data on the disk. (and will fail if the disk is not yet initialized. If that happens, simply continue with ‘New-Partition…) Validate that this is the correct disk that you want to completely erase.
    # To skip the confirmation prompt, append –confirm:$False
    Clear-Disk –InputObject $Disk[0] -RemoveData 
    
    # This command initializes a new MBR disk 
    Initialize-Disk –InputObject $Disk[0] -PartitionStyle MBR
    
    # This command creates a 350 MB system partition
    $SystemPartition = New-Partition –InputObject $Disk[0] -Size (350MB) -IsActive 
    
    # This formats the volume with a FAT32 Filesystem
    # To skip the confirmation dialog, append –Confirm:$False
    Format-Volume -NewFileSystemLabel "UFD-System" -FileSystem FAT32 `
    -Partition $SystemPartition
    
    # This command creates the Windows volume using the maximum space available on the drive. The Windows To Go drive should not be used for other file storage.
    $OSPartition = New-Partition –InputObject $Disk[0] -UseMaximumSize
    Format-Volume -NewFileSystemLabel "UFD-Windows" -FileSystem NTFS `
    -Partition $OSPartition
    
    # This command assigns drive letters to the new drive, the drive letters chosen should not already be in use.
    Set-Partition -InputObject $SystemPartition -NewDriveLetter "S"
    Set-Partition -InputObject $OSPartition -NewDriveLetter "W"
    
    # This command toggles the NODEFAULTDRIVELETTER flag on the partition which prevents drive letters being assigned to either partition when inserted into a different computer.
    Set-Partition -InputObject $OSPartition -NoDefaultDriveLetter $TRUE
    

    Ora devi applicare l'immagine del sistema operativo che vuoi usare con Windows To Go alla partizione del sistema operativo appena creata nel disco (l'operazione potrebbe richiedere almeno 30 minuti, a seconda delle dimensioni dell'immagine e della velocità della connessione USB). Il comando seguente mostra come eseguire questa operazione usando lo strumento della riga di comando Gestione e manutenzione immagini distribuzione:

    Suggerimento  

    Il numero di indice deve essere impostato correttamente su un'immagine Enterprise valida nel file WIM.

     

    #The WIM file must contain a sysprep generalized image.
    dism /apply-image /imagefile:n:\imagefolder\deploymentimages\mywtgimage.wim /index:1 /applydir:W:\ 
    
  5. Nella stessa sessione di PowerShell usa il seguente cmdlet per aggiungere una chiave di ripristino all'unità:

    $BitlockerRecoveryProtector = Add-BitLockerKeyProtector W: -RecoveryPasswordProtector
    
  6. Usa il seguente cmdlet per salvare la chiave di ripristino in un file:

    #The BitLocker Recovery key is essential if for some reason you forget the BitLocker password
    #This recovery key can also be backed up into Active Directory using manage-bde.exe or the
    #PowerShell cmdlet Backup-BitLockerKeyProtector.
    $RecoveryPassword = $BitlockerRecoveryProtector.KeyProtector.RecoveryPassword
    $RecoveryPassword > WTG-Demo_Bitlocker_Recovery_Password.txt
    
  7. Quindi usa il seguente cmdlet per aggiungere la password come una stringa protetta. Se ometti la password, il cmdlet ti richiederà la password prima di continuare l'operazione:

    # Create a variable to store the password
    $spwd = ConvertTo-SecureString -String <password> -AsplainText –Force 
    Enable-BitLocker W: -PasswordProtector $spwd 
    

    Avviso  

    Per usare la crittografia di BitLocker solo per lo spazio usato nel disco, aggiungi il parametro –UsedSpaceOnly al cmdlet Enable-BitLocker. Quando i dati vengono aggiunti all'unità, BitLocker crittograferà lo spazio aggiuntivo. Con questo parametro velocizzi il processo di preparazione dato che una percentuale inferiore di disco richiederà la crittografia. Se ti trovi in una situazione critica in termini di tempo e non puoi attendere il completamento della crittografia, puoi rimuovere in modo sicuro l'unità Windows To Go durante il processo di crittografia. La prossima volta che inserirai l'unità in un computer, ti verrà richiesta la password di BitLocker. Il processo di crittografia continuerà dopo che è stata inserita la password. In questo caso, assicurati che gli utenti sappiano che BitLocker è ancora in esecuzione e che saranno in grado di usare l'area di lavoro mentre la crittografia completa in background.

     

  8. Copia la password di ripristino numerica e salvala in un file in un percorso sicuro. La password di ripristino sarà necessaria se la password viene persa o dimenticata.

    Avviso  

    Se l'impostazione di Criteri di gruppo Scegli modalità di ripristino delle unità rimovibili protette con BitLocker è stata configurata per eseguire il backup delle informazioni di ripristino in Servizi di dominio Active Directory, le informazioni di ripristino per l'unità verranno archiviate con l'account del computer host usato per applicare la chiave di ripristino.

    Se vuoi archiviare le informazioni di ripristino con l'account dell'area di lavoro Windows To Go, puoi attivare BitLocker dall'area di lavoro Windows To Go usando l'Installazione guidata di BitLocker dall'elemento del Pannello di controllo BitLocker Control Panel, come descritto in Per abilitare BitLocker dopo la distribuzione.

     

  9. Rimuovi in modo sicuro l'unità Windows To Go.

Le unità Windows To Go ora sono pronte per essere distribuite agli utenti e sono protette da BitLocker. Quando distribuisci l'unità, assicurati che gli utenti conoscano quanto segue:

  • La password iniziale di BitLocker che servirà per avviare le unità.

  • Stato della crittografia corrente.

  • Istruzioni per modificare la password di BitLocker dopo l'avvio iniziale.

  • Istruzioni su come recuperare la password di ripristino, se necessario. Può trattarsi di un processo del supporto tecnico, un sito per il recupero automatico della password o una persona da contattare.

Mt186418.wedge(it-it,VS.85).gifPer abilitare BitLocker dopo la distribuzione

  1. Inserisci l'unità Windows To Go nel computer host (che è attualmente spento) e quindi accendi il computer e avvia nell'area di lavoro Windows To Go

  2. Premi Windows logo key+W per aprire le Impostazioni di ricerca, digita BitLocker e quindi seleziona l'elemento per Crittografia unità BitLocker.

  3. Vengono visualizzate le unità nell'area di lavoro. Fai clic su Attiva BitLocker per l'unità C:. Viene visualizzata l'Installazione guidata di BitLocker.

  4. Completa i passaggi nell'Installazione guidata di BitLocker selezionando l'opzione di protezione della password.

Nota  

Se non hai configurato l'impostazione di Criteri di gruppo \Componenti di Windows\Crittografia unità BitLocker\Unità del sistema operativo\Richiedi autenticazione aggiuntiva all'avvio, per specificare Consenti BitLocker senza un TPM compatibile non potrai abilitare BitLocker dall'area di lavoro Windows To Go.

 

Script di esempio della distribuzione avanzata

Il seguente script di esempio supporta il provisioning di più unità Windows To Go e la configurazione di aggiunta al dominio offline.

Lo script di esempio crea un file di installazione automatica che semplifica il processo di distribuzione in modo che l'utilizzo iniziale dell'unità Windows To Go non richieda all'utente finale ulteriori informazioni sulla configurazione prima dell'avvio.

Prerequisiti per l'esecuzione dello script di esempio della distribuzione avanzata

  • Per eseguire questo script di esempio, devi aprire una sessione di Windows PowerShell con privilegi di amministratore da un computer appartenenti al dominio usando un account che dispone dell'autorizzazione per creare gli account di dominio.

  • Questo script richiede l'utilizzo dell'aggiunta al dominio offline poiché lo script non crea un account utente amministratore locale. Tuttavia, l'appartenenza a un dominio inserirà automaticamente "Domain admins" nel gruppo Administrators locale. Esamina i criteri di dominio. Se usi DirectAccess, dovrai modificare il comando djoin.exe per includere i parametri policynames e potenzialmente certtemplate.

  • Lo script deve usare le lettere di unità, pertanto puoi eseguire il provisioning di metà delle lettere di unità che disponi.

Per eseguire lo script di esempio della distribuzione avanzata

  1. Copia tutto il codice di esempio denominato "Script di esempio per il provisioning di più unità Windows To Go" in un file di script PowerShell (.ps1) .

  2. Apporta le modifiche necessarie per renderlo adatto alla tua distribuzione e salva il file.

  3. Configura i criteri di esecuzione di PowerShell. Per impostazione predefinita, i criteri di esecuzione di PowerShell sono impostati su Con restrizioni. Questo significa che gli script non verranno eseguiti finché non sono stati esplicitamente autorizzati. Per configurare i criteri di esecuzione di PowerShell per consentire di eseguire lo script, usa il comando seguente da un prompt dei comandi di PowerShell con privilegi elevati:

    Set-ExecutionPolicy RemoteSigned
    

    Il criterio di esecuzione RemoteSigned impedirà l'esecuzione nel computer degli script non firmati da Internet, ma consentirà l'esecuzione di script creati localmente. Per altre informazioni sui criteri di esecuzione, vedi Set-ExecutionPolicy.

    Suggerimento  

    Per visualizzare la Guida online per tutti i cmdlet di Windows PowerShell, indipendentemente dal fatto che sia installato o meno in locale, digita il cmdlet seguente, sostituendo <cmdlet-name> con il nome del cmdlet per cui vuoi visualizzare la Guida:

    Get-Help <cmdlet-name> -Online

    Con questo comando Windows PowerShell apre la versione online dell'argomento della Guida nel browser Internet predefinito.

     

Esempio di script per il provisioning di più unità Windows To Go

<#
.SYNOPSIS
Windows To Go multiple drive provisioning sample script.

.DESCRIPTION
This sample script will provision one or more Windows To Go drives, configure offline domain join (using random machine names) and provides an option for BitLocker encryption. To provide a seamless first boot experience, an unattend file is created that will set the first run (OOBE) settings to defaults. To improve performance of the script, copy your install image to a local location on the computer used for provisioning the drives.

.EXAMPLE
.\WTG_MultiProvision.ps1 -InstallWIMPath c:\companyImages\amd64_enterprise.wim
provision drives connected to your machine with the provided image.
#>
param (
    [parameter(Mandatory=$true)]
    [string]
    #Path to install wim.  If you have the full path to the wim or want to use a local file.
    $InstallWIMPath,

    [string]
    #Domain to which to join the Windows To Go workspaces.
    $DomainName
)


<#
  In order to set BitLocker Group Policies for our offline WTG image we need to create a Registry.pol file
  in the System32\GroupPolicy folder. This file requires binary editing, which is not possible in PowerShell
  directly so we have some C# code that we can use to add a type in our PowerShell instance that will write
  the data for us.
#>
$Source = @"
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace MS.PolicyFileEditor
{
    //The PolicyEntry represents the DWORD Registry Key/Value/Data entry that will
    //be written into the file.
    public class PolicyEntry
    {
        private List<byte> byteList;

        public string KeyName { get; set; }
        public string ValueName { get; set; }

        internal List<byte> DataBytes
        {
            get { return this.byteList; }
        }

        public PolicyEntry(
            string Key,
            string Value,
            uint data)
        {
            KeyName = Key;
            ValueName = Value;
            this.byteList = new List<byte>();
            byte[] arrBytes = BitConverter.GetBytes(data);
            if (BitConverter.IsLittleEndian == false) { Array.Reverse(arrBytes); }
            this.byteList.AddRange(arrBytes);
        }

        ~PolicyEntry()
        {
            this.byteList = null;
        }
    }

    public class PolicyFile
    {
        private Dictionary<string, PolicyEntry> entries;

        public List<PolicyEntry> Entries
        {
            get
            {
                List<PolicyEntry> policyList = new List<PolicyEntry>(entries.Values);
                return policyList;
            }
        }

        public PolicyFile()
        {
            this.entries = new Dictionary<string, PolicyEntry>(StringComparer.OrdinalIgnoreCase);
        }

        public void SetDWORDValue(string key, string value, uint data)
        {
            PolicyEntry entry = new PolicyEntry(key, value, data);
            this.entries[entry.KeyName + "\\" + entry.ValueName] = entry;
        }

        public void SaveFile(string file)
        {
            using (FileStream fs = new FileStream(file, FileMode.Create, FileAccess.Write))
            {
                fs.Write(new byte[] { 0x50, 0x52, 0x65, 0x67, 0x01, 0x00, 0x00, 0x00 }, 0, 8);
                byte[] openBracket = UnicodeEncoding.Unicode.GetBytes("[");
                byte[] closeBracket = UnicodeEncoding.Unicode.GetBytes("]");
                byte[] semicolon = UnicodeEncoding.Unicode.GetBytes(";");
                byte[] nullChar = new byte[] { 0, 0 };

                byte[] bytes;

                foreach (PolicyEntry entry in this.Entries)
                {
                    fs.Write(openBracket, 0, 2);
                    bytes = UnicodeEncoding.Unicode.GetBytes(entry.KeyName);
                    fs.Write(bytes, 0, bytes.Length);
                    fs.Write(nullChar, 0, 2);

                    fs.Write(semicolon, 0, 2);
                    bytes = UnicodeEncoding.Unicode.GetBytes(entry.ValueName);
                    fs.Write(bytes, 0, bytes.Length);
                    fs.Write(nullChar, 0, 2);

                    fs.Write(semicolon, 0, 2);
                    bytes = BitConverter.GetBytes(4);
                    if (BitConverter.IsLittleEndian == false) { Array.Reverse(bytes); }
                    fs.Write(bytes, 0, 4);

                    fs.Write(semicolon, 0, 2);
                    byte[] data = entry.DataBytes.ToArray();
                    bytes = BitConverter.GetBytes((uint)data.Length);
                    if (BitConverter.IsLittleEndian == false) { Array.Reverse(bytes); }
                    fs.Write(bytes, 0, 4);

                    fs.Write(semicolon, 0, 2);
                    fs.Write(data, 0, data.Length);
                    fs.Write(closeBracket, 0, 2);
                }
                fs.Close();
            }
        }
    }
}
"@

########################################################################
# Helper Functions
Function CreateUnattendFile {
param (
    [parameter(Mandatory=$true)]
    [string]
    $Arch
)

    if ( Test-Path "WtgUnattend.xml" ) {
      del .\WtgUnattend.xml
    }
    $unattendFile = New-Item "WtgUnattend.xml" -type File
    $fileContent = @"
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-Shell-Setup" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="$Arch" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <OOBE>
                <HideEULAPage>true</HideEULAPage>
                <ProtectYourPC>1</ProtectYourPC>
                <NetworkLocation>Work</NetworkLocation>
            </OOBE>
        </component>
        <component name="Microsoft-Windows-International-Core" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="$Arch">
          <InputLocale>en-US</InputLocale>
          <SystemLocale>en-US</SystemLocale>
          <UILanguage>en-US</UILanguage>
          <UserLocale>en-US</UserLocale>
        </component>
        <component name="Microsoft-Windows-WinRE-RecoveryAgent" processorArchitecture="$Arch" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <UninstallWindowsRE>true</UninstallWindowsRE>
        </component>
    </settings>
</unattend>
"@

    Set-Content $unattendFile $fileContent

    #return the file object
    $unattendFile 
}

Function CreateRegistryPolicyFile {

    $saveFileLocaiton = "" + (get-location) + "\registry.pol"

    $policyFile = New-Object MS.PolicyFileEditor.PolicyFile 
    $policyFile.SetDWORDValue("Software\Policies\Microsoft\FVE", "UseAdvancedStartup", 1)
    $policyFile.SetDWORDValue("Software\Policies\Microsoft\FVE", "EnableBDEWithNoTPM", 1)
    $policyFile.SetDWORDValue("Software\Policies\Microsoft\FVE", "UseTPM", 2)
    $policyFile.SetDWORDValue("Software\Policies\Microsoft\FVE", "UseTPMPIN", 2)
    $policyFile.SetDWORDValue("Software\Policies\Microsoft\FVE", "UseTPMKey", 2)
    $policyFile.SetDWORDValue("Software\Policies\Microsoft\FVE", "UseTPMKeyPIN", 2)
    $policyFile.SetDWORDValue("Software\Policies\Microsoft\FVE", "OSEnablePrebootInputProtectorsOnSlates", 1)
    $policyFile.SaveFile($saveFileLocaiton) 

    $saveFileLocaiton
}

########################################################################

if ( Test-Path $installWIMPath ){
  write-output "Image: $installWIMPath"
}
else{
  write-output "Unable to find image: $installWIMPath" "Exiting the script"
  exit
}

if ( (Get-WindowsImage -ImagePath $InstallWIMPath -Index 1).Architecture -eq 0 ){
    $Arch = "x86"
}
else{
    $Arch = "amd64"
}

$starttime = get-date

#Add type information for modifing the Registy Policy file
Add-Type -TypeDefinition $Source -Language CSharp  

#Create helper files
$unattendFile = CreateUnattendFile -Arch $Arch
$registryPolFilePath = CreateRegistryPolicyFile

$Disks = Get-Disk | Where-Object {$_.Path -match "USBSTOR" -and $_.Size -gt 20Gb -and -not $_.IsBoot }
if ($Disks -eq $null)
{
    Write-Output "No USB Disks found, exiting the script.  Please check that you have a device connected."
    exit
}

#We want to make sure that all non-boot connected USB drives are online, writeable and cleaned.
#This command will erase all data from all USB drives larger than 20Gb connected to your machine
#To automate this step you can add: -confirm:$False
Clear-Disk –InputObject $Disks -RemoveData -erroraction SilentlyContinue

# Currently the provisioning script needs drive letters (for dism and bcdboot.exe) and the script is more
# reliable when the main process determines all of the free drives and provides them to the sub-processes.
# Use a drive index starting at 1, since we need 2 free drives to proceed. (system & operating system)
$driveLetters =    68..90 | ForEach-Object { "$([char]$_):" } |
    Where-Object {
        (new-object System.IO.DriveInfo $_).DriveType -eq 'noRootdirectory'
    }
$driveIndex = 1

foreach ($disk in $Disks)
{

    if ( $driveIndex  -lt $driveLetters.count )
    {
        Start-Job -ScriptBlock {
            $installWIMPath = $args[0]
            $unattendFile = $args[1]
            $Disk = $args[2]
            $SystemDriveLetter = $args[3]
            $OSDriveLetter = $args[4]
            $DomainName = $args[5]
            $policyFilePath = $args[6]

            #For compatibility between UEFI and legacy BIOS we use MBR for the disk.
            Initialize-Disk –InputObject $Disk -PartitionStyle MBR

            #A short sleep between creating a new partition and formatting helps ensure the partition
            #is ready before formatting.
            $SystemPartition = New-Partition –InputObject $Disk -Size (350MB) -IsActive
            Sleep 1
            Format-Volume -Partition $SystemPartition -FileSystem FAT32 -NewFileSystemLabel "UFD-System" -confirm:$False | Out-Null

            $OSPartition = New-Partition –InputObject $Disk -UseMaximumSize
            Sleep 1
            Format-Volume -NewFileSystemLabel "UFD-Windows" -FileSystem NTFS -Partition $OSPartition -confirm:$False | Out-Null


            #The No default drive letter prevents other computers from displaying contents of the drive when connected as a Data drive.    
            Set-Partition -InputObject $OSPartition -NoDefaultDriveLetter $TRUE
            Set-Partition -InputObject $SystemPartition -NewDriveLetter $SystemDriveLetter 
            Set-Partition -InputObject $OSPartition -NewDriveLetter $OSDriveLetter 

            dism /apply-image /index:1 /applydir:${OSDriveLetter}:\ /imagefile:$InstallWIMPath
            if (!$?){
                write-output "DISM image application failed, exiting."
                exit
            }

            copy $unattendFile ${OSDriveLetter}:\Windows\System32\sysprep\unattend.xml

            #Create the directory for the Machine Registry Policy file, surpressing the output and any error
            #and copy the pre-created Registry.pol file to that location.
            write-output "Set BitLocker default policies for WindowsToGo"
            md ${OSDriveLetter}:\windows\System32\GroupPolicy\Machine | out-null
            copy $policyFilePath ${OSDriveLetter}:\windows\System32\GroupPolicy\Machine

            #modify the registry of the image to set SanPolicy.  This is also where you could set the default 
            #keyboard type for USB keyboards.
            write-output "Modify SAN Policy"
            reg load HKLM\PW-System ${OSDriveLetter}:\Windows\System32\config\SYSTEM > info.log
            reg add HKLM\PW-System\ControlSet001\Services\Partmgr\Parameters /v SanPolicy /d 4 /t REG_DWORD /f > info.log
            reg unload HKLM\PW-System > info.log

            #We're running bcdboot from the newly applied image so we know that the correct boot files for the architecture and operating system are used.
            #This will fail if we try to run an amd64 bcdboot.exe on x86.
            cmd /c "$OSDriveLetter`:\Windows\system32\bcdboot $OSDriveLetter`:\Windows /f ALL /s $SystemDriveLetter`:"
            if (!$?){
                write-output "BCDBOOT.exe failed, exiting script."
                exit
            }

            <#
               If a domain name was provided to the script, we will create a random computer name
               and perform an offline domain join for the device.  With this command we also supress the
               Add User OOBE screen.
            #>
            if ($DomainName)
            {
                #using get-random, we will create a random computer name for the drive. 
                $suffix = Get-Random
                $computername = "wtg-" + $suffix
                djoin /provision /domain $DomainName /savefile ${OSDriveLetter}:\tempBLOB.bin /reuse /machine $computername 
                djoin /requestodj /loadfile ${OSDriveLetter}:\tempBLOB.bin /windowspath  ${OSDriveLetter}:\windows > info.log
                del ${OSDriveLetter}:\tempBLOB.bin

                #add offline registry key to skip user account screen
                write-output "Add Offline Registry key for skipping UserAccount OOBE page."
                reg load HKLM\PW-Temp${OSDriveLetter}   ${OSDriveLetter}:\Windows\System32\config\SOFTWARE > info.log
                reg add HKLM\PW-Temp${OSDriveLetter}\Microsoft\Windows\CurrentVersion\Setup\OOBE /v UnattendCreatedUser /d 1 /t REG_DWORD > info.log
                reg unload HKLM\PW-Temp${OSDriveLetter} > info.log
            }

            try
            {
                Write-VolumeCache -DriveLetter ${OSDriveLetter}
                Write-Output "Disk is now ready to be removed."
            }
                catch [System.Management.Automation.CommandNotFoundException]
            {
                write-output "Flush Cache not supported, Be sure to safely remove the WTG device."
            }
 

       } -ArgumentList  @($installWIMPath, $unattendFile, $disk, $driveLetters[$driveIndex-1][0], $driveLetters[$driveIndex][0], $DomainName, $registryPolFilePath)
    }
    $driveIndex  = $driveIndex  + 2
}
#wait for all threads to finish
get-job | wait-job

#print output from all threads
get-job | receive-job

#delete the job objects
get-job | remove-job


#Cleanup helper files
del .\WtgUnattend.xml
del .\Registry.pol

$finishtime = get-date
$elapsedTime = new-timespan $starttime $finishtime
write-output "Provsioning completed in: $elapsedTime  (hh:mm:ss.000)"
write-output "" "Provisioning script complete."

Considerazioni sull'utilizzo di diversi layout di tastiera USB con Windows To Go

Prima di eseguire il provisioning dell'unità Windows To Go, è necessario considerare se l'area di lavoro verrà avviata in un computer collegato a una tastiera USB non inglese. Come descritto nell'articolo della Knowledge Base 927824, esiste un problema noto in cui l'ID Plug and Play fa erroneamente identificare la tastiera come una tastiera inglese da 101 tasti. Per evitare questo problema, puoi modificare lo script di provisioning per impostare l'override dei parametri della tastiera.

Nello script di provisioning di PowerShell, dopo aver applicato l'immagine, puoi aggiungere i comandi seguenti che imposteranno nel modo corretto le impostazioni della tastiera. L'esempio seguente usa il layout di tastiera giapponese:

            reg load HKLM\WTG-Keyboard ${OSDriveLetter}:\Windows\System32\config\SYSTEM > info.log
            reg add HKLM\WTG-Keyboard\ControlSet001\Services\i8042prt\Parameters /v LayerDriver /d JPN:kbd106dll /t REG_SZ /f
            reg add HKLM\WTG-Keyboard\ControlSet001\Services\i8042prt\Parameters /v OverrideKeyboardIdentifier /d PCAT_106KEY /t REG_SZ /f 
            reg add HKLM\WTG-Keyboard\ControlSet001\Services\i8042prt\Parameters /v OverrideKeyboardSubtype /d 2 /t REG_DWORD /f
            reg add HKLM\WTG-Keyboard\ControlSet001\Services\i8042prt\Parameters /v OverrideKeyboardType /d 7 /t REG_DWORD /f 
            reg unload HKLM\WTG-Keyboard

Argomenti correlati

Windows To Go: panoramica delle funzionalità

Forum su Windows 10

Preparare l'organizzazione per Windows To Go

Considerazioni sulla distribuzione per Windows To Go

Considerazioni sulla sicurezza e sulla protezione dei dati per Windows To Go

Panoramica di BitLocker