Freigeben über


Windows To Go – chcesz?

Pisalem kiedys o Windows To Go, i od tego czasu zmienilo sie tyle, ze sam jestem aktywnym uzytkownikiem tej funkcjonalnosci. Krótko podsumowujac dotychczasowe doswiadczenie, napisze tylko: podoba mi sie. Pewnie, gdybym nie mial takiej mozliwosci jakos poradzilbym sobie inaczej, ale skoro mam – jestem zadowolony. Dziala, sprawdza sie, Office 2013 smiga... czego chciec wiecej?

Do zmian dotyczacych WTG, które zaszly przez ostatnie miesiace, dodac mozna jeszcze jedna: istnieje wiecej oficjalnie wspieranych urzadzen. Bo choc niemal kazdy odpowiednio duzy pendrive jest fizycznie zdolny do obsluzenia Windows To Go, to jednak wsparcie otrzymuja tylko te, które sa odpowiednio wydajne. Tak naprawde, myslac o pendrive do WTG, raczej nalezy traktowac go jako opakowany w postac pendrive dysk SSD niz jako typowa pamiec flash. Róznica predkosci potrafi byc znaczaca i choc nie przyszlo mi dotad do glowy sprawdzic tego samodzielnie, to widzialem "screenshoty", na których ciagly transfer wynosil okolo 200MB/s.

Jak pewnie czesc z Was wie, w tym tygodniu, w Redmond odbywa sie MVP Summit – coroczna konferencja, w ramach której pasjonaci technologii Microsoft pompowani sa nowa wiedza i róznymi innymi rzeczami. Jak zapewne wie inna czesc z Was – jestem jednym z ekspertów w programie Springboard Technical Experts Panel. I zlozenie jednego faktu z drugim sprawilo, ze dostalem nowy, ladny i superszybki pendrive DataTraveler Workspace. I choc bardzo mnie to ucieszylo, to jednak dwa pendrive z WTG, to troche za duzo. Dlatego mam propozycje: moze ktos chce taki pendrive? Oddam w dobre rece temu, kto:

  • Pobierze z portalu Springboard dziewiecdziesieciodniowa wersje ewaluacyjna Windows 8 Enterprise x64
  • Zapisze ja w pliku C:\WTG\Win8Eval.iso
  • W komentarzu do niniejszego wpisu pierwszy opublikuje skrypt (preferowany PowerShell), który uruchomiony na swiezo zainstalowanym Windows 8 Enterprise x64 zawierajacym plik C:\WTG\Win8Eval.iso sprawi, ze wetkniety w port USB DataTraveler Workspace stanie sie dyskiem Windows To Go, zabezpieczonym przy pomocy BitLockera z haslem "TechNet". Mozna dla uproszczenia zalozyc, ze w komputerze jest tylko jeden dysk twardy skonfigurowany domyslnie podczas instalacji Windows 8.

Ktos chetny? Zapraszam :)

I jeszcze tak zwany drobny druk:

  1. Po raz kolejny podkreslam, ze nie jestem w zaden formalny sposób zwiazany z Microsoft. To co tu pisze i jaki konkursy wymyslam, to czysta prywata. Pendrive dostalem w prezencie i chetnie przekaze go komus, kto go potrzebuje i potrafi cos w Windows 8 "wystrugac".
  2. Komentarze do bloga sa moderowane, co oznacza, ze calkiem sporo skryptów moze zostac przeslanych a zaden sie nie pojawi online. Jak je zatwierdze, to nagle bedzie ich na przyklad dziesiec na raz. Oznacza to, ze ktos moze nic nie widziec, opublikowac swój skrypt a potem dowiedziec sie, ze wcale nie byl pierwszy.
  3. Wygra ten skrypt, który ocenie jako wystarczajaco dobry. Ostateczna weryfikacja poprawnosci rozwiazania bedzie przetestowanie go na systemie opisanym wczesniej. Jezeli powstanie dzialajacy dysk WTG, to pewnie skrypt jest OK.
  4. Skrypt uruchamiac bede z uprawnieniami administracyjnymi.
  5. Zakladam, ze Windows 8 ma wbudowane sterowniki pozwalajace na prace na moim sprzecie.
  6. Istniejaca na pendrive zawartosc nie jest dla mnie istotna i moze zostac usunieta przez skrypt, jezeli jego autor ma taka potrzebe.
  7. Powstaly dysk WTG nie musi byc aktywowany ani skonfigurowany. Stan, w którym po zabootowaniu wyswietla sie kreator instalacji, jest dla mnie akceptowalny pod warunkiem, ze koncowy uzytkownik moze sobie "doklikac" instalacje do konca na dowolnym wspieranym przez Windows 8 x64 komputerze majacym lacznosc z Internetem.
  8. Konfiguracja srodowiska nie bedzie zawierala celowych utrudnien (na przyklad nie wylacze obslugi USB w polisach) ale i nie zamierzam w zaden sposób jej zmieniac tylko po to, zeby stworzyc skryptowi dogodne warunki, bez których costam nie zadziala.
  9. Nie planuje odwolywania mojego mini-konkursu, ale zastrzegam sobie do tego prawo. A nuz pendrive spali sie w czasie testów? Albo wydarzy sie cos innego, czego nie potrafie teraz przewidziec?
  10. Komentarze postaram sie regularnie akceptowac, ale ewentualne przeslane rozwiazania sprawdze najwczesniej za pare dni. Niestety moja doba tez ma tylko 24h...

Powodzenia!

Autor: Grzegorz Tworek [MVP]

PS Z komentarzy widze, ze wymagane haslo BitLockera moze byc zbyt proste. Zgadzam sie na inne, chocby takie jak "TechNet123".

Comments

  • Anonymous
    January 01, 2003
    Hasło na BitLocker to TechNet123, bo TechNet nie spełnia wymagań ;). $Disk = Get-Disk | Where-Object {$.Path -match "USBSTOR" -and $.Size -gt 20Gb -and -not $_.IsBoot } Clear-Disk –InputObject $Disk[0] -RemoveData -Confirm:$false Initialize-Disk –InputObject $Disk[0] -PartitionStyle MBR $SystemPartition = New-Partition –InputObject $Disk[0] -Size (350MB) -IsActive Format-Volume -NewFileSystemLabel "UFD-System" -FileSystem FAT32 -Partition $SystemPartition -Confirm:$false $OSPartition = New-Partition –InputObject $Disk[0] -UseMaximumSize Format-Volume -NewFileSystemLabel "UFD-Windows" -FileSystem NTFS -Partition $OSPartition -Confirm:$false Set-Partition -InputObject $SystemPartition -NewDriveLetter "S" Set-Partition -InputObject $OSPartition -NewDriveLetter "W" Set-Partition -InputObject $OSPartition -NoDefaultDriveLetter $TRUE Mount-DiskImage -ImagePath "C:WTGWin8Eval.iso" $IsoDriveLetter = (Get-DiskImage -ImagePath "C:WTGWin8Eval.iso" | Get-Volume).DriveLetter dism /apply-image /imagefile:"$($IsoDriveLetter):sourcesinstall.wim" /index:1 /applydir:W: Dismount-DiskImage -ImagePath C:WTGWin8Eval.iso W:WindowsSystem32bcdboot W:Windows /f ALL /s S: $spwd = ConvertTo-SecureString -String "TechNet123" -AsplainText –Force Enable-BitLocker W: -PasswordProtector $spwd –UsedSpaceOnly

  • Anonymous
    January 01, 2003
    @Mateusz: Polecam się na przyszłość! @AdrSzw: Jako żywo ani śladu po nim nie ma... Myślisz, że zostałby uznany za wystarczająco dobry? :)

  • Anonymous
    January 01, 2003
    Ojjj zapomniałem widzę włączyć BitLockera - umknęło mi :) Ale Łukasz nie zapomniał :)

  • Anonymous
    January 01, 2003
    Nie ma czasu - nie ma pendrive... ;>

  • Anonymous
    January 01, 2003
    @Mateusz: Uznałem, że hasło TechNet to tak naprawdę mój błąd i zmieniłem w twoim skrypcie na TechNet123. Malutki minusik za to, że nie wyłapałeś tego, ale bez wpływu na wynik. Twój skrypt ma jednak inną istotną wadę: założyłeś, że zamontowane ISO pojawi się pod literką D:. Uruchomiłem twój skrypt i okazało się, że u mnie nie jest to D:, bo D: jest zajęte przez napęd optyczny. Skrypt nie zadziałał. Jak napisałem - nie będę utrudniał, ale konfiguracji komputera zmieniać nic "pod skrypt" też nie chcę. Z żalem uznaję skrypt za nie dość dobry. @Łukasz.Kałużny: skrypt zadziałał. Niewielka różnica w postaci $IsoDriveLetter okazała się znacząca i subiektywnie uznałem, że to jest pierwsze (i jedyne) wystarczająco dobre rozwiązanie, co oznacza że pendrive leci do Ciebie. Pozostałe rozwiązania również mają problem z literką w poleceniu DISM a poza tym nie mają szyfrowania BitLockerem. A przy Windows To Go, to naprawdę istotna rzecz. Dlatego również nie mogę ich uznać za dość dobre. Jednoosobowe jury zamyka posiedzenie nie przewidując procedury odwoławczej ;) Dziękuję uczestnikom za rywalizację na niezłym poziomie i zapraszam w przyszłości do kolejnych zabaw!

  • Anonymous
    January 01, 2003
    $Disk = Get-Disk | Where-Object {$.Path -match "USBSTOR" -and $.Size -gt 20Gb -and -not $_.IsBoot } Clear-Disk –InputObject $Disk[0] -RemoveData Initialize-Disk –InputObject $Disk[0] -PartitionStyle MBR $Systemn = New-Partition –InputObject $Disk[0] -Size (350MB) -IsActive Format-Volume -NewFileSystemLabel "UFD-System" -FileSystem FAT32 -Partition $System $OSPart = New-Partition –InputObject $Disk[0] -UseMaximumSize Format-Volume -NewFileSystemLabel "UFD-Windows" -FileSystem NTFS -Partition $OSPart Set-Partition -InputObject $System -NewDriveLetter "N" Set-Partition -InputObject $OSPart -NewDriveLetter "O" Set-Partition -InputObject $OSPart -NoDefaultDriveLetter $TRUE Mount-DiskImage -ImagePath "C:WTGWin8Eval.iso" dism /apply-image /imagefile:e:I:sourcesinstall.WIM /index:1 /applydir c:WindowsSystem32bcdboot o:Windows /f ALL /s N: Dismount-DiskImage -ImagePath "C:WTGWin8Eval.iso"

  • Anonymous
    January 01, 2003
    Wcześniej wkradły mi się 2 drobne błędy... Teraz powinno być lepiej :) $Disk = Get-Disk | Where-Object {$.Path -match "USBSTOR" -and $.Size -gt 20Gb -and -not $_.IsBoot } Clear-Disk –InputObject $Disk[0] -RemoveData Initialize-Disk –InputObject $Disk[0] -PartitionStyle MBR $Systemn = New-Partition –InputObject $Disk[0] -Size (350MB) -IsActive Format-Volume -NewFileSystemLabel "UFD-System" -FileSystem FAT32 -Partition $System $OSPart = New-Partition –InputObject $Disk[0] -UseMaximumSize Format-Volume -NewFileSystemLabel "UFD-Windows" -FileSystem NTFS -Partition $OSPart Set-Partition -InputObject $System -NewDriveLetter "N" Set-Partition -InputObject $OSPart -NewDriveLetter "O" Set-Partition -InputObject $OSPart -NoDefaultDriveLetter $TRUE Mount-DiskImage -ImagePath "C:WTGWin8Eval.iso" dism /apply-image /imagefile:e:sourcesinstall.WIM /index:1 /applydir:O: c:WindowsSystem32bcdboot o:Windows /f ALL /s N: Dismount-DiskImage -ImagePath "C:WTGWin8Eval.iso"

  • Anonymous
    February 24, 2013
    ehh, gdybym mial troszkevwiecej czasu to bym cos wystrugał , pendrive *** ! :)

  • Anonymous
    February 24, 2013
    $Disk = Get-Disk | Where-Object {$.Path -match "USBSTOR" -and $.Size -gt 20Gb -and -not $_.IsBoot } Clear-Disk –InputObject $Disk[0] -RemoveData Initialize-Disk –InputObject $Disk[0] -PartitionStyle MBR $Systemn = New-Partition –InputObject $Disk[0] -Size (350MB) -IsActive Format-Volume -NewFileSystemLabel "UFD-System" -FileSystem FAT32 -Partition $System $OSPart = New-Partition –InputObject $Disk[0] -UseMaximumSize Format-Volume -NewFileSystemLabel "UFD-Windows" -FileSystem NTFS -Partition $OSPart Set-Partition -InputObject $System -NewDriveLetter "N" Set-Partition -InputObject $OSPart -NewDriveLetter "O" Set-Partition -InputObject $OSPart -NoDefaultDriveLetter $TRUE Mount-DiskImage -ImagePath "C:WTGWin8Eval.iso" dism /apply-image /imagefile:e:I:sourcesinstall.WIM /index:1 /applydir c:WindowsSystem32bcdboot o:Windows /f ALL /s N: Dismount-DiskImage -ImagePath "C:WTGWin8Eval.iso"

  • Anonymous
    February 24, 2013
    Wysyłam ponownie bo po pierwszym wysłaniu nie otrzymałem info, że zostało przesłane. W dużej części wsparłem się źródłami z technet technet.microsoft.com/.../hh832022.aspx Co prawda nie testowane na pendrive, bo takowego nie mam, ale zadziałało u mnie na wirtualnym dysku. #Początek #Montowanie obrazu ISO Mount-DiskImage -ImagePath "C:WTGWin8Eval.iso" #W tym kroku można by było określić, który konkretnie nas pendrive/dysk USB interesuje. $Disk = Get-Disk | Where-Object {$.Size -gt 25Gb -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 -Confirm:$false

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 -Confirm:$false

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 -Confirm:$false

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 dism /apply-image /imagefile:D:sourcesinstall.wim /index:1 /applydir:W: W:WindowsSystem32bcdboot W:Windows /f ALL /s S: $BitlockerrecoveryProtection = Add-BitLockerKeyProtector W: -RecoveryPasswordProtector $RecoveryPassword = $BitlockerRecoveryProtector.KeyProtector.RecoveryPassword $RecoveryPassword > C:WTGWTG-Demo_Bitlocker_Recovery_Password.txt $spwd = ConvertTo-SecureString -String TechNet -AsplainText –Force Enable-BitLocker W: -PasswordProtector $spwd #Koniec

  • Anonymous
    February 24, 2013
    Ja swoj koncze - jeszcze z 15minut i mysle ze bedzie ok

  • Anonymous
    February 25, 2013
    Grzegorz, jeżeli mój skrypt jest z hasłem "TechNet", to mam go poprawić czy to jest akceptowalne przez Ciebie? Rozumiem, że i u Ciebie może z hasłem "TechNet" nie zadziałać, ze względu, że hasło jest zbyt krótkie.

  • Anonymous
    March 01, 2013
    Zgubiło mnie to, że w wirtualnej maszynie nie miałem napędu optycznego. W pamięci mi umknęło, że gdy montujemy iso w Windows 8, nie montuje on do fizycznego napędu, tylko tworzy nową instancję. Cóż. Ja to zapamiętam teraz, a Łukaszowi gratuluję. Ukłon w stronę Grzesia. Za chęć zorganizowania takiego konkursu. Dziękuję.

  • Anonymous
    March 03, 2013
    PS wyglada na to ze moj skrypt nie zostal opublikowany a wydaje mi sie ze byl nieco wczesniej no coz :) brak odwolania to brak odwolania