Windows To Go workspace is an enterprise feature of Windows® 8 that enables users to boot Windows from a USB-connected external drive. Windows To Go drives can use the same image that enterprises use for their desktops and laptops, and can be managed the same way. Offering a new mobility option, Windows To Go workspace is not intended to replace desktops or laptops, or supplant other mobility offerings.
In this guide we are creating the operating system image that will be used on the Windows To Go drive. The preferred method for creating a single WTG device is to use the Windows To Go Creator Wizard. Alternatively you can do this manually using a combination of Windows PowerShell and command-line tools.
! Note
The Windows To Go creator wizard is only available on Windows 8 Enterprise clients.
The following Windows PowerShell cmdlets perform the same function as the preceding procedure. Enter each cmdlet on a single line, even though they may appear word-wrapped across several lines here because of formatting constraints. Ensure that only the USB drive you want to provision as a WTG device is connected.
#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 machine.
Set-Partition -InputObject $OSPartition -NoDefaultDriveLetter $TRUE
dism /apply-image /imagefile:n:\imagefolder\deploymentimages\mywtgimage.WIM /index:1 /applydir:W:\
Be sure to specify a WIM file that contains a sysprep generalized image.
W:\Windows\System32\bcdboot W:\Windows /f ALL /s S:
<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="offlineServicing">
<component
xmlns:wcm="http://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>
processorArchitecture="amd64"
</settings>
</unattend>
Dism.exe /Image:W:\ /Apply-Unattend:W:\san_policy.xml
<?xml version="1.0" encoding="utf-8"?>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-WinRE-RecoveryAgent"
publicKeyToken="31bf3856ad364e35" language="neutral"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<UninstallWindowsRE>true</UninstallWindowsRE>
Note
Setup unattend files are processed based on their location. Setup will place a temporary unattend file into the %systemroot%\panther folder which is the first location that setup will check for installation information. You should make sure that folder does not contain a previous version of an unattend.xml file to ensure that the one you just created is used. If you do not wish to boot your Windows To Go device on this machine and want to remove it to boot on another machine, be sure to use the Safely remove hardware option to safely disconnect the device before physically removing the device.
Richard Mueller edited Revision 50. Comment: Replaced RGB values with color names in HTML to restore colors
Richard Mueller edited Revision 49. Comment: Removed (en-US) from title, added tags
Michael Raymond [MSFT] edited Revision 48. Comment: Using a non-enterprise image will not corrupt the device or the host machine. You will however not be able to roam which is why we do not support using non-enterprise SKU's.
Michael Raymond [MSFT] edited Revision 46. Comment: WindowsToGo deployments require a Windows 8 Enterprise image.
Patris_70 edited Revision 39. Comment: added en-US title
Knuckle-Dragger edited Revision 38. Comment: added full name as seen in start when searching, bolded selection.
Knuckle-Dragger edited Revision 37. Comment: added some quotes
Zoltán Horváth edited Revision 35. Comment: punctuation
FZB edited Revision 7. Comment: space
What's the reason between using this method vs. using imagex?
and this differs from prior Win7 VHD boot in what ways? would be helpful to understand the progression if any
@scott "DISM" is already built in to windows 8 installer whereas ImageX belongs to WAIK.
@Dale this is booting from USB not vhd
If you do not intend to use Bitlocker, you can skip the first 350 partition S: but then don't forget to set the W: partition active.
@Alex I added a link to the UFEI. It seems that the UFEI partition offers some degree protection to the windows partition
@JoeyDj
Do you mean sanpolicy=3, I do not see 4 in sanpolicy reference? is this new value for Windows 8?
@Gautam This is contributed by troy I'm currently researching on policy 4 as well
Can someone simplify this procedure to make it easy enough as installing a Windows8 CP on your desktop/Notebook?
dism fails for me.
Error: 13
The data is invalid.
Happens if I use the .wim off the DVD or the custom reset .wim I created.
And the errors from the log:
Error DISM DISM WIM Provider: PID=3568 TID=4056 base\ntsetup\opktools\dism\providers\wimprovider\dll\wimmanager.cpp:1052 - CWimManager::Apply(hr:0x8007000d)
Error DISM DISM WIM Provider: PID=3568 TID=4056 base\ntsetup\opktools\dism\providers\wimprovider\dll\wimmanager.cpp:4193 - CWimManager::InternalCmdApply(hr:0x8007000d)
Error DISM DISM WIM Provider: PID=3568 TID=4056 Error executing command - CWimManager::InternalExecuteCmd(hr:0x8007000d)
Error DISM DISM WIM Provider: PID=3568 TID=4056 base\ntsetup\opktools\dism\providers\wimprovider\dll\wimmanager.cpp:1925 - CWimManager::ExecuteCmdLine(hr:0x8007000d)
Error DISM DISM.EXE: WimManager processed the command line but failed. HRESULT=8007000D
Nevermind! I managed to leave out the assign letter=W
Realized that when I was looking at the Computer in Explorer and only saw the S directory. Duh!