https://msdn.microsoft.com/pl-pl/library/tajniki-uslugi-wds-ang-windows-deployment-services-cz-vi-2

Tajniki usługi WDS (ang. Windows Deployment Services), cz. VI (1/2) ![Udostępnij na: Facebook](images/gg670867.udostepnij_fb(pl-pl,MSDN.10).png \\"Udostępnij na: Facebook\\")

Autor: Jacek Światowiak

Opublikowano: 2011-01-04

W poprzedniej części

W poprzedniej części pokazano, jak przygotowuje się pliki instalacji nienadzorowanych dla usługi WDS oraz procedurę przygotowywania komputera wzorcowego. Pora na połączenie wszystkich tych  komponentów w całość.

Uwaga informacyjna. Wszystkie omawiane zagadnienia bazują już na środowisku Windows 7 oraz Windows Server 2008 R2, choć są kompatybilne też dla poprzednich wersji, czyli Windows Vista oraz Windows Server 2008 i z pewnymi zmianami również dla Windows Server 2008 oraz Windows XP.

Zgodnie ze znanym schematem, należy przygotować plik przeznaczony dla procesu Windows PE. Dla systemów nowszych (Vista, 7, Windows Server 2008 oraz 2008 R2) proces ten związany jest z obrazem startowym (bootującym) – boot.wim.

Pozostałe przebiegi, głównie specialize oraz oobe, będą związane z obrazem instalacyjnym – install.wim

Rysunek 6.1. Przebiegi instalacyjne bazujące na Windows PE.

Dodawanie pliku instalacji nienadzorowanej dla klienta usługi WDS – dla instalacji obrazu Windows 7 (wersja 32-bitowa – platforma x86)

Przygotowałem, jak wspomniałem we wcześniejszych częściach artykułu, plik instalacji nienadzorowanej dla przebiegu WindowsPE (plik unattend.xml). Poniżej przedstawiam jego zawartość.

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="windowsPE">
        <component name="Microsoft-Windows-Setup" 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">
            <DiskConfiguration>
                <Disk wcm:action="add">
                    <CreatePartitions>
                        <CreatePartition wcm:action="add">
                            <Order>1</Order>
                            <Size>100</Size>
                            <Type>Primary</Type>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>2</Order>
                            <Type>Primary</Type>
                            <Size>15000</Size>
                        </CreatePartition>
                    </CreatePartitions>
                    <ModifyPartitions>
                        <ModifyPartition wcm:action="add">
                            <PartitionID>1</PartitionID>
                            <Order>1</Order>
                            <Format>NTFS</Format>
                            <Extend>false</Extend>
                            <Active>true</Active>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <PartitionID>2</PartitionID>
                            <Order>2</Order>
                            <Letter>C</Letter>
                            <Label>System</Label>
                            <Format>NTFS</Format>
                            <Extend>false</Extend>
                            <Active>false</Active>
                        </ModifyPartition>
                    </ModifyPartitions>
                    <DiskID>0</DiskID>
                    <WillWipeDisk>true</WillWipeDisk>
                </Disk>
            </DiskConfiguration>
            <WindowsDeploymentServices>
                <Login>
                    <Credentials>
                        <Domain>test.local</Domain>
                        <Username>Administrator</Username>
                        <Password>P@ssw0rd</Password>
                    </Credentials>
                </Login>
                <ImageSelection>
                    <InstallTo>
                        <DiskID>0</DiskID>
                        <PartitionID>2</PartitionID>
                    </InstallTo>
                </ImageSelection>
            </WindowsDeploymentServices>
        </component>
        <component name="Microsoft-Windows-International-Core-WinPE" 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">
            <SetupUILanguage>
                <UILanguage>pl-PL</UILanguage>
            </SetupUILanguage>
            <UILanguageFallback>en-US</UILanguageFallback>
            <InputLocale>pl-PL</InputLocale>
            <SystemLocale>pl-PL</SystemLocale>
            <UILanguage>pl-PL</UILanguage>
            <UserLocale>pl-PL</UserLocale>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="wim:c:/vmbox/install.wim#Windows 7 ULTIMATE" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

Kilka uwag do ww. pliku:

  • W sekcji <DiskConfiguration> – cały dysk dzielony jest na dwie partycje. Pierwsza,  wielkości 100 MB, przeznaczona jest do późniejszego wykorzystania przez bitlockera (formatowana na NTFS, typ primary, order 1, aktywna), druga – wielkości 15 GB (formatowana na NTFS, typ primary, order 2, nieaktywna z przypisaną literą C oraz etykietą System). Wstępnie cały dysk istniejący zostaje wyczyszczony – opcja <WillWipeDisk>.
  • W sekcji <WindowsDeploymentServices> – definiujemy poświadczenia służące do automatycznego podłączenia się do serwera WDS w celu pobrania obrazu instalacyjnego.
  • W sekcji <ImageSelection> – określamy, iż wybrany obraz będzie instalowany na partycji numer 2 (czyli w naszym przykładzie na dysku o literze C).
  • W sekcji <SetupUILanguage> dokonujemy wyboru języka instalacji dla Systemu Windows PE.

Plik najwygodniej zapisać w folderze \RemoteInstall\WdsClientUnattend serwera WDS. Tak przygotowany plik dodajemy w konfiguracji serwera WDS w zakładce Client. Rysunek 6.2 pochodzi z serwera WDS bazującego na Windows Server 2008 R2, ale dla systemu Windows Server 2008 oraz 2003 jest analogiczne.

Rysunek 6.2. Określanie domyślnego pliku podpowiedzi dla obrazu startowego typu x86.

Proces instalacji systemu Windows 7 z dodanym plikiem instalacji nienadzorowanej klienta usługi WDS (dla obrazu systemu Windows PE).

Teraz, po podłączeniu się do serwera WDS (przycisk F12 w momencie startu komputera), z listy obrazów startowych wybieramy nasz bazujący na Windows PE (tu w przykładzie wykorzystano zmodyfikowany obraz bazujący na Windows PE 3.0 o nazwie BOOT PL), może to być również obraz pochodzący z nośnika instalacyjnego Windows 7. Okno wyboru obrazu startowego przedstawia rysunek 6.3.

Rysunek 6.3. Okno wyboru zmodyfikowanego obrazu startowego.

Jeżeli do obrazu instalacyjnego został dodany pakiet językowy, będzie można teraz dokonać manualnego wyboru wersji językowej instalowanego systemu. Tu w przykładzie (rysunek 6.4) instalować będziemy system w polskiej wersji językowej. Taki pakiet językowy można dodać za pomocą narzędzia DISM pochodzącego z pakietu WAIK 2.0.

Rysunek 6.4. Okno wyboru obrazu instalacyjnego dla platformy x86 z opcją wyboru wersji językowej.

Nasz serwer WDS pokazany na rysunku 6.5 posiada kilka zainstalowanych obrazów instalacyjnych systemu Windows 7.

Rysunek 6.5. Okno listy obrazów instalacyjnych dla Windows 7.

Jak sprawdzić, które wersje językowe wspiera dany obraz instalacyjny? Należy kliknąć prawym przyciskiem myszy na danym obrazie instalacyjnym. Wybrać właściwości, potem zakładkę Version. W opcjach Language (default) określony jest główny język instalacyjny – najczęściej będzie to angielski, zaś w zakładce Languages (other) dostępna będzie lista zainstalowanych pakietów językowych danego obrazu instalacyjnego systemu. W przykładzie na rysunku 6.6 pokazano wygląd listy dostępnych języków dla danego obrazu instalacyjnego.

Rysunek 6.6. Właściwości obrazu instalacyjnego – opcja „Języki”.

 

Modyfikacje w przebiegach OOBE oraz specialize dla instalacji obrazu Windows 7 (wersja 32-bitowa – platforma x86).

Za pomocą omawianej wcześniej aplikacji WSIM (pochodzącej z pakietu WAIK lub OEM Preinstallation KIT) należy przygotować drugi plik instalacji nienadzorowanej, przeznaczony dla przebiegów OOBE oraz specialize. Wygląd okna „Plik odpowiedzi” aplikacji WSIM przedstawia rysunek 6.7.

Rysunek 6.7. Modyfikacje przebiegu OOBE i specialize.

Jeżeli tego nie zrobimy, to w fazie instalacyjnej system wyświetlać nam będzie poniższe okna konfiguracyjne (rysunki 6.8–6.15).

Rysunek 6.8. Instalator – wybór języka instalowanego systemu oraz języka procesu instalacyjnego.

Rysunek 6.9. Instalator – wybór ustawień regionalnych systemu.

Rysunek 6.10. Instalator – okno określania nazwy instalowanego komputera.

Rysunek 6.11. Instalator – okno określania hasła administratora oraz opcji przypominającej hasło.

Rysunek 6.12. Instalator – okno podawania klucza produktu.

Rysunek 6.13. Instalator – okno zatwierdzania umowy licencyjnej.

Rysunek 6.14. Instalator – okno określania ustawień automatycznej aktualizacji komputera.

Rysunek 6.15. Instalator – okno określania ustawień godziny, daty i strefy czasowej.

Aby tego uniknąć, przygotowany plik należy powiązać z odpowiednim obrazem instalacyjnym, tak jak pokazuje to rysunek 6.16 poniżej. Po lewej stronie rysunku widzimy obraz bez przypisanego obrazu instalacji nienadzorowanej. Po prawej stronie – po przypisaniu pliku instalacji nienadzorowanej.

Rysunek 6.16. Właściwości obrazu instalacyjnego bez oraz z przypisanym plikiem podpowiedzi.

Ostateczna zawartość pliku instalacji nienadzorowanej dla obrazu instalacyjnego – przebiegi:  specialize i OOBE – przedstawia się następująco:

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <servicing></servicing>
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-International-Core" 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">
            <InputLocale>pl-PL</InputLocale>
            <SystemLocale>pl-PL</SystemLocale>
            <UILanguage>pl-PL</UILanguage>
            <UILanguageFallback>en-US</UILanguageFallback>
            <UserLocale>pl-PL</UserLocale>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" 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">
            <Display>
                <ColorDepth>32</ColorDepth>
                <HorizontalResolution>1024</HorizontalResolution>
                <VerticalResolution>768</VerticalResolution>
                <RefreshRate>60</RefreshRate>
            </Display>
            <OEMInformation>
                <Manufacturer>Test Ltd.</Manufacturer>
                <Model>Komputer TESTOWY</Model>
                <SupportHours>8-16</SupportHours>
                <SupportPhone>+48 123 456 789</SupportPhone>
                <SupportURL>http://support.test.local</SupportURL>
            </OEMInformation>
            <UserAccounts>
                <AdministratorPassword>
                    <Value>UABAAHMAcwB3ADAAcgBkAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
                    <PlainText>false</PlainText>
                </AdministratorPassword>
                <LocalAccounts>
                    <LocalAccount wcm:action="add">
                        <Password>
                            <Value>UABAAHMAcwB3ADAAcgBkAFAAYQBzAHMAdwBvAHIAZAA=</Value>
                            <PlainText>false</PlainText>
                        </Password>
                        <Name>Jan.Kowalski</Name>
                        <DisplayName>Jan Kowalski</DisplayName>
                        <Description>Administrator zastepczy</Description>
                        <Group>Administrators</Group>
                    </LocalAccount>
                </LocalAccounts>
            </UserAccounts>
            <OOBE>
                <HideEULAPage>true</HideEULAPage>
                <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
                <NetworkLocation>Work</NetworkLocation>
                <ProtectYourPC>1</ProtectYourPC>
            </OOBE>
            <RegisteredOrganization>Test Ltd.</RegisteredOrganization>
            <RegisteredOwner>Administrator Test</RegisteredOwner>
            <TimeZone>Central European Standard Time</TimeZone>
        </component>
    </settings>
    <settings pass="specialize">
        <component name="Microsoft-Windows-UnattendedJoin" 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">
            <Identification>
                <Credentials>
                    <Domain>test.local</Domain>
                    <Username>Administrator</Username>
                    <Password>P@ssw0rd</Password>
                </Credentials>
                <JoinDomain>test.local</JoinDomain>
                <MachineObjectOU>OU=Komputery,dc=test,dc=local</MachineObjectOU>
            </Identification>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" 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">
            <ProductKey>AAAAA-BBBBB-CCCCC-DDDDD-EEEEE</ProductKey>
            <RegisteredOrganization>Test Ltd.</RegisteredOrganization>
            <RegisteredOwner>Administrator Test</RegisteredOwner>
            <TimeZone>Central European Standard Time</TimeZone>
            <ComputerName>%MACHINENAME%</ComputerName>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="wim:c:/vmbox/install.wim#Windows 7 ULTIMATE" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

Poniżej przedstawiam kilka uwag do przygotowanego pliku:

  • W sekcji <Microsoft-Windows-International-Core> określamy wersję językową instalowanego systemu – tu w przykładzie jezyk polski.
  • W sekcji <Display> określamy parametry ekranu (rozdzielczość, głębię koloru).
  • W sekcji <OEMInformation> dodamy sobie dodatkowe dane, które będą wyświetlane we właściwościach zainstalowanego systemu.
  • W sekcji <UserAccounts> oraz <localAccount> określamy dane użytkowników lokalnych, w tym hasło lokalnego administratora.
  • W sekcji <OOBE> ukrywamy okno akceptacji umowy licencyjnej oraz okno określania trybu automatycznej ochrony systemu.
  • W sekcji <Microsoft-Windows-UnattendedJoin> określamy sposób podłączenia komputera do domeny.
  • W sekcji <Microsoft-Windows-Shell-Setup> podajemy klucz produktu, nazwę komputera przy podłączeniu do domeny oraz określamy strefę czasową.

 

Uwaga informacyjna:

Jedynym parametrem, niestety ignorowanym, jest <NetworkLocation>Work</NetworkLocation> z sekcji OOBE, co skutkuje niestety (jednorazowym) pojawieniem się okna wyboru lokalizacji sieci po zalogowaniu się użytkownika końcowego.

 

Poniżej przedstawimy dodatkowo wygląd klasycznej i zmodyfikowanej zakładki System w Panelu sterowania dla systemu Windows 7 Ultimate.

Rysunek 6.17. Domyślny wygląd zakładki System w Panelu sterowania.

Rysunek 6.18. Zmodyfikowany wygląd zakładki System w Panelu sterowania.

 

Uwaga dodatkowa:

W omawianym procesie instalacji nienadzorowanej umożliwiono wybór obrazu instalacyjnego. Oczywiście w przebiegu Windows PE można również automatycznie wybrać typ obrazu przeznaczonego do instalacji. Okno wyboru obrazu nie będzie się wówczas pojawiać i cały proces instalacji będzie całkowicie zautomatyzowany.

 


          https://msdn.microsoft.com/pl-pl/library/tajniki-uslugi-wds-ang-windows-deployment-services-cz-vi-2