В этой и последующих статьях я планируют описать процедуру подготовки дистрибутива ОС Microsoft Windows Thin PC для работы совместно с VDI инфраструктурой на базе VMware Horizon View и VMware Mirage. VMware Mirage предлагается использовать в качестве средства для централизованной установки Thin PC на ПК, а также обновления образа по мере выхода новых версий.
Одним из способов организации доступа к VDI инфраструктуре является переделывание имеющихся в организации ПК в тонкие клиенты. Среди вариантов присутствуют как коммерческие решения, вроде Dell Wyse PC Extender или Igel Universal Desktop Converter, так и открытые/бесплатные решения, например, Thinstation. Все они строятся на базе ОС Linux с дополнительным ПО, позволяющим создавать и модифицировать образ ОС, а также централизованно управлять, обновлять тонкие клиенты. Но еще одним интересным вариантом является Microsoft Windows Thin PC.
Thin PC строится на базе ОС Microsoft Windows Embedded Standard 7 (Microsoft Windows Thin PC). Данная ОС доступна для загрузки корпоративным пользователям, оформившим подписку Microsoft VDA (что обязательно в тех случаях, когда вы планируете запускать в VDI клиентские ОС Windows).
Thin PC может устанавливаться на любой Intel x86 совместимый компьютер, удовлетворяющий следующим аппаратным требованиям:
Поскольку для распространения Thin PC планируется использовать VMware Mirage, то нам потребуется эталонный компьютер, на которой можно будет установить Thin PC, выполнить ряд настроек, оптимизирующих работу ОС, установить дополнительные компоненты, вроде, клиента VMware Horizon Client и Mirage Client. Ряд настроек я рекомендую выполнить заранее, например, добавить в дистрибутив Thin PC необходимые обновления ОС и драйверы, и только после этого установить его на эталонный компьютер.
Подготовка дистрибутива включает в себя следующие шаги:
Загрузите дистрибутив Windows ThinPC. Также рекомендую загрузить пакет Windows Embedded Standard 7 Service Pack 1 Toolkit с сайта https://www.microsoft.com/en-us/download/details.aspx?id=11887 (по ссылке можно загрузить Evaluation версию Windows Embedded, сам Toolkit находится в архиве, разбитом на 8 частей), содержащего огромное количество драйверов и дополнительных пакетов, которые могут пригодиться при подготовке образа.
При желании, вы также можете загрузить языковой пакет для различных языков по ссылке: https://www.microsoft.com/en-us/download/details.aspx?id=26215
На рабочей станции создайте структуру каталогов для хранения дистрибутива, монтирования образов ОС, драйверов, дистрибутивов приложений и т.д.:
Образ операционной системы (системный диск) хранится в файле-образа X:\sources\install.wim на установочном носителе. В данный образ могут должны быть интегрированы необходимые драйверы и обновления ОС, которые будут автоматически установлены при развертывании ОС на целевые устройства.
Подробнее о процедуре интеграции драйверов можно прочитать в статье (https://technet.microsoft.com/ru-ru/library/dd744355(v=ws.10).aspx).
Подробнее о процедуре интеграции пакетов обновлений можно прочитать в статье (https://technet.microsoft.com/ru-ru/library/dd744559(v=ws.10).aspx)
Одним из способов организации доступа к VDI инфраструктуре является переделывание имеющихся в организации ПК в тонкие клиенты. Среди вариантов присутствуют как коммерческие решения, вроде Dell Wyse PC Extender или Igel Universal Desktop Converter, так и открытые/бесплатные решения, например, Thinstation. Все они строятся на базе ОС Linux с дополнительным ПО, позволяющим создавать и модифицировать образ ОС, а также централизованно управлять, обновлять тонкие клиенты. Но еще одним интересным вариантом является Microsoft Windows Thin PC.
Thin PC строится на базе ОС Microsoft Windows Embedded Standard 7 (Microsoft Windows Thin PC). Данная ОС доступна для загрузки корпоративным пользователям, оформившим подписку Microsoft VDA (что обязательно в тех случаях, когда вы планируете запускать в VDI клиентские ОС Windows).
Thin PC может устанавливаться на любой Intel x86 совместимый компьютер, удовлетворяющий следующим аппаратным требованиям:
- 1 GHz or faster 32-bit (x86);
- 1 GB RAM, 16 GB available hard disk space;
- DirectX 9 graphics device with WDDM 1.0 or later version driver.
Поскольку для распространения Thin PC планируется использовать VMware Mirage, то нам потребуется эталонный компьютер, на которой можно будет установить Thin PC, выполнить ряд настроек, оптимизирующих работу ОС, установить дополнительные компоненты, вроде, клиента VMware Horizon Client и Mirage Client. Ряд настроек я рекомендую выполнить заранее, например, добавить в дистрибутив Thin PC необходимые обновления ОС и драйверы, и только после этого установить его на эталонный компьютер.
Предварительные шаги
Для начала требуется подготовить дистрибутив Thin PC к установке.Подготовка дистрибутива включает в себя следующие шаги:
- Интеграция драйверов устройств в дистрибутив.
- Интеграция пакетов обновлений ОС в дистрибутив.
- Интеграция установочных пакетов приложений в дистрибутив.
- Модификация установочного скрипта ОС.
- Модификация файла ответов ОС.
- Сборка дистрибутива.
Загрузите дистрибутив Windows ThinPC. Также рекомендую загрузить пакет Windows Embedded Standard 7 Service Pack 1 Toolkit с сайта https://www.microsoft.com/en-us/download/details.aspx?id=11887 (по ссылке можно загрузить Evaluation версию Windows Embedded, сам Toolkit находится в архиве, разбитом на 8 частей), содержащего огромное количество драйверов и дополнительных пакетов, которые могут пригодиться при подготовке образа.
При желании, вы также можете загрузить языковой пакет для различных языков по ссылке: https://www.microsoft.com/en-us/download/details.aspx?id=26215
На рабочей станции создайте структуру каталогов для хранения дистрибутива, монтирования образов ОС, драйверов, дистрибутивов приложений и т.д.:
- C:\ThinPC
- C:\ThinPC\Drivers
- C:\ThinPC\Image
- C:\ThinPC\ISO
- C:\ThinPC\Mount
- C:\ThinPC\Updates
Образ операционной системы (системный диск) хранится в файле-образа X:\sources\install.wim на установочном носителе. В данный образ могут должны быть интегрированы необходимые драйверы и обновления ОС, которые будут автоматически установлены при развертывании ОС на целевые устройства.
Интеграция драйверов в дистрибутив
Для интеграции драйверов устройств выполните следующие действия:- Загрузите и распакуйте драйверы устройств с сайта производителя в папку C:\ThinPC\Drivers. Распакованные файлы драйверов должны содержать файлы описания .INF и системные файлы драйверов (.SYS, .DLL и др.).
- Смонтируйте файл install.wim, используя команду:
- Добавьте драйверы в дистрибутив, используя команду:
- Отмонтируйте файл install.wim и сохраните изменения, используя команду:
dism /mount-wim /wimfile:"C:\ThinPC\Image\sources\install.wim" /index:1 /mountdir:"C:\ThinPC\Mount"
dism /Image:C:\ThinPC\Mount /Add-Driver /Driver:C:\ThinPC\Drivers /Recurse
dism /Unmount-Wim /MountDir:C:\ThinPC\Mount /Commit
Подробнее о процедуре интеграции драйверов можно прочитать в статье (https://technet.microsoft.com/ru-ru/library/dd744355(v=ws.10).aspx).
Интеграция пакетов обновлений и дополнительных компонентов ОС в дистрибутив
Для интеграции пакетов обновлений ОС (файлов в формате .MSU или .CAB) в дистрибутив выполните следующие действия:- Загрузите обновления .MSU с сайта (http://catalog.update.microsoft.com/v7/site/Search.aspx?q=windows%20embedded%20standard%207) и сохраните их в корне каталога C:\ThinPC\Updates (не используйте вложенные папки).
- Смонтируйте файл install.wim, используя команду:
- Добавьте пакеты обновлений в дистрибутив, используя команду:
- Отмонтируйте файл install.wim и сохраните изменения, используя команду:
dism /mount-wim /wimfile:"C:\ThinPC\Image\sources\install.wim" /index:1 /mountdir:"C:\ThinPC\Mount"
dism /Image:C:\ThinPC\Mount /Add-Package /PackagePath:C:\ThinPC\Updates
dism /Unmount-Wim /MountDir:C:\ThinPC\Mount /Commit
Подробнее о процедуре интеграции пакетов обновлений можно прочитать в статье (https://technet.microsoft.com/ru-ru/library/dd744559(v=ws.10).aspx)
Модификация установочного скрипта ОС
Установочный скрипт setupcomplete.cmd выполняется на завершающем этапе установки ОС. Данный скрипт можно использовать для копирования файлов, установки приложений, модификации реестра, включения и отключения служб и компонентов ОС. Для добавления установочного скрипта в дистрибутив выполните следующие действия:- Смонтируйте файл install.wim, используя команду:
- Создайте (если этого не было сделано ранее) файл "C:\ThinPC\Mount\Windows\Setup\Scripts\setupcomplete.cmd". В качестве основы можно использовать файл скрипта, приведенный ниже.
- Отмонтируйте файл install.wim и сохраните изменения, используя команду:
dism /mount-wim /wimfile:"C:\ThinPC\Image\sources\install.wim" /index:1 /mountdir:"C:\ThinPC\Mount"
dism /Unmount-Wim /MountDir:C:\ThinPC\Mount /Commit
- активирует встроенную учетную запись администратора;
- запрещает учетной записи User смену пароля;
- настраивает автоматический вход в систему под учетной записью User (с пустым паролем);
- настраивает шаблон профиля пользователя;
- отключает неиспользуемые службы;
- отключает восстановление системы;
- отключает профили брандмауэра;
- отключает запуск заданий дефрагментации по расписанию.
REM setupcomplete.cmd REM Hide Boot Screen bcdedit /Set BOOTUX disabled REM ********************************************* REM Network customization REM ********************************************* REM Disable Windows Firewall Public Profile NetSh advfirewall Set publicprofile state off REM Disable Windows Firewall Private Profile NetSh advfirewall Set privateprofile state off REM Disable Windows Firewall Domain Profile NetSh advfirewall Set domainprofile state off REM Turn off the Network Location wizard reg ADD "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Network\NewNetworkWindowOff" /f REM Enable Remote Desktop Connection reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0x0 /f reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0x1 /f reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0x1 /f REM ********************************************* REM OS optimization REM ********************************************* REM Disable Action Center icon reg ADD "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\policies\Explorer" /v HideSCAHealth /t REG_DWORD /d 0x1 /f REM Disable User Account Control reg ADD "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\policies\system" /v EnableLUA /t REG_DWORD /d 0x0 /f REM Increase disk timeout to 120 seconds reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Disk" /v TimeOutValue /t REG_DWORD /d 120 /f REM Disable Crush Dump reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 0x0 /f REM Enable "Automatically Reboot" reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v AutoReboot /t REG_DWORD /d 0x1 /f REM Disable "Write an event to the system log" reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v LogEvent /t REG_DWORD /d 0x0 /f REM Disable "Send an alert" reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v SendAlert /t REG_DWORD /d 0x0 /f REM Do not move deleted files to the Recycle Bin reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer" /v NorecycleFiles /t REG_DWORD /d 0x1 /f REM Disable system restore reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\SystemRestore" /v DisableSR /t REG_DWORD /d 0x1 /f REM Disable Windows Update reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v DisableWindowsUpdateAccess /t REG_DWORD /d 0x1 /f REM Disable Machine Account Password Changes reg ADD "HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" /v DisablePasswordChange /t reg_dword /d 0 /f REM Disable Hibernate powercfg -HIBERNATE OFF REM Disable Last Access Time stamp fsutil behavior Set DisableLastAccess 1 REM Disable Prefetch reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" /v EnablePrefetcher /t REG_DWORD /d 0x0 /f REM Disable the First Run Customize Page reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Internet Explorer\Main" /v DisableFirstRunCustomize /t REG_DWORD /d 0x1 /f REM Configure Application event log reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application" /v MaxSize /t REG_DWORD /d 0x100000 /f reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application" /v Retention /t REG_DWORD /d 0x0 /f REM Configure System event log reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\System" /v MaxSize /t REG_DWORD /d 0x100000 /f reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\System" /v Retention /t REG_DWORD /d 0x0 /f REM Configure Security event log reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security" /v MaxSize /t REG_DWORD /d 0x100000 /f reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security" /v Retention /t REG_DWORD /d 0x0 /f REM ********************************************* REM Local accounts configuration REM ********************************************* REM Activate Administrator account net user Administrator /active:yes REM Prevent User account from changing password and password expiration net user User /Passwordchg:no wmic path Win32_UserAccount where Name='User' set PasswordExpires=false REM Enable User account auto logon REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d 1 /f REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d User /f REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "" /f REM Disable scheduled tasks schtasks /change /tn "\Microsoft\windows\Application Experience\AitAgent" /disable schtasks /change /tn "\Microsoft\windows\Application Experience\ProgramDataUpdater" /disable schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" /disable schtasks /change /TN "\Microsoft\Windows\Defrag\ScheduledDefrag" /Disable schtasks /change /TN "\Microsoft\Windows\Maintenance\WinSAT" /Disable schtasks /change /TN "\Microsoft\Windows\Registry\RegIdleBackup" /Disable REM ********************************************* REM Disable services REM ********************************************* REM Disable Application Experience sc config AeLookupSvc start= disabled REM Disable BitLocker Drive Encryption Service sc config BDESVC start= disabled REM Disable BranchCache sc config PeerDistSvc start= disabled REM Disable Diagnostic Service Host sc config WdiServiceHost start= disabled REM Disable Diagnostic System Host sc config WdiSystemHost start= disabled REM Disable Problem Reports and Solutions Control Panel Support sc config wercplsupport start= disabled REM Disable Windows Media Center Sharing Service sc config WMPNetworkSvc start= disabled Rem Disable Interactive Services Detection sc config UI0Detect start= disabled REM Disable Function Discovery Resource Publication sc config FDResPub start= disabled REM Disable Secure Socket Tunneling Protocol Service sc config SstpSvc start= disabled REM Disable Security Center sc config wscsvc start= disabled REM Disable SSDP Discovery sc config SSDPSRV start= disabled REM Disable bSuperfetch sc config SysMain start= disabled REM Disable Block Level Backup Engine Service sc config wbengine start= disabled REM Disable Diagnostic Policy Service sc config DPS start= disabled REM Disable Disk Defragmenter sc config Defragsvc start= disabled REM Disable HomeGroup Listener sc config HomeGroupListener start= disabled REM Disable HomeGroup Provider sc config HomeGroupProvider start= disabled REM Disable IP Helper sc config iphlpsvc start= disabled REM Disable Microsoft iSCSI Initiator Service sc config MSiSCSI start= disabled REM Disable Themes sc config Themes start= disabled REM Disable UPnP Device Host sc config upnphost start= disabled REM Disable Windows Error Reporting Service sc config WerSvc start= disabled REM Disable WLAN AutoConfig sc config Wlansvc start= disabled REM Disable WWAN AutoConfig sc config WwanSvc start= disabled REM Disable Indexing Service sc config CISVC start= disabled
Модификация файла ответов ОС
Файл ответов (autounattend.xml) располагает в корне установочного носителя и содержит параметры для автоматизации процедуры установки ОС (выбора версии и редакции ОС, выбора места установки, задания пароля администратора, создания учетной записи пользователя и т.д.). Для модификации файла ответов выполните следующие действия:- Смонтируйте файл install.wim, используя команду:
- С помощью приложения Windows System Image Manager, установленной на рабочей станции, создайте новый файл ответов "C:\ThinPC\Mount\autounattend.xml" или используйте файл ответов ниже.
- Отмонтируйте файл install.wim и сохраните изменения, используя команду:
dism /mount-wim /wimfile:"C:\ThinPC\Image\sources\install.wim" /index:1 /mountdir:"C:\ThinPC\Mount"
dism /Unmount-Wim /MountDir:C:\ThinPC\Mount /Commit
- настройка русского языка в качестве системного;
- настройка английской и русской раскладки языка;
- автоматическое форматирование жесткого диска и выбор раздела для установки;
- установка пароля учетной записи Administrator (P@ssw0rd);
- добавление учетной записи пользователя User без пароля (для последующего автоматического входа в систему после загрузки);
- пропуск мастера OOBE.
<?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <settings pass="windowsPE"> <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <InputLocale>en-US;ru-RU</InputLocale> <SystemLocale>ru-RU</SystemLocale> <UserLocale>ru-RU</UserLocale> <UILanguage>en-US</UILanguage> <SetupUILanguage> <UILanguage>en-US</UILanguage> </SetupUILanguage> </component> <component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <DiskConfiguration> <WillShowUI>OnError</WillShowUI> <Disk wcm:action="add"> <CreatePartitions> <CreatePartition wcm:action="add"> <Order>1</Order> <Size>200</Size> <Type>Primary</Type> </CreatePartition> <CreatePartition wcm:action="add"> <Extend>true</Extend> <Order>2</Order> <Type>Primary</Type> </CreatePartition> </CreatePartitions> <ModifyPartitions> <ModifyPartition wcm:action="add"> <Format>NTFS</Format> <Label>Windows</Label> <Order>2</Order> <PartitionID>2</PartitionID> </ModifyPartition> <ModifyPartition wcm:action="add"> <Active>true</Active> <Format>NTFS</Format> <Label>System</Label> <Order>1</Order> <PartitionID>1</PartitionID> </ModifyPartition> </ModifyPartitions> <DiskID>0</DiskID> <WillWipeDisk>true</WillWipeDisk> </Disk> </DiskConfiguration> <ImageInstall> <OSImage> <InstallTo> <DiskID>0</DiskID> <PartitionID>2</PartitionID> </InstallTo> <InstallToAvailablePartition>false</InstallToAvailablePartition> <WillShowUI>OnError</WillShowUI> </OSImage> </ImageInstall> <UserData> <AcceptEula>true</AcceptEula> <Organization>Company</Organization> </UserData> </component> </settings> <settings pass="oobeSystem"> <component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Reseal> <Mode>OOBE</Mode> </Reseal> </component> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <OOBE> <HideEULAPage>true</HideEULAPage> <ProtectYourPC>3</ProtectYourPC> <NetworkLocation>Work</NetworkLocation> <SkipUserOOBE>true</SkipUserOOBE> <SkipMachineOOBE>true</SkipMachineOOBE> </OOBE> <TimeZone>Russian Standard Time</TimeZone> <UserAccounts> <AdministratorPassword> <Value>UABAAHMAcwB3ADAAcgBkAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value> <PlainText>false</PlainText> </AdministratorPassword> <LocalAccounts> <LocalAccount wcm:action="add"> <DisplayName>User</DisplayName> <Name>User</Name> <Group>Users</Group> </LocalAccount> </LocalAccounts> </UserAccounts> </component> </settings> <cpi:offlineImage cpi:source="catalog:c:/thinpc/image/sources/thinpc.clg" xmlns:cpi="urn:schemas-microsoft-com:cpi" /> </unattend>
Сборка дистрибутива
Для сборки дистрибутива и создания .ISO образа используется утилита oscdimg.exe из состава WAIK 7. Утилита расположена в каталоге "C:\Program Files\Windows AIK\Tools\x86". Для сборки дистрибутива выполните следующие действия:- Запустите команду:
- После завершения работы команды скопируйте полученный образ на установочный носитель.
oscdimg.exe -b"C:\Program Files\Windows AIK\Tools\PETools\x86\boot\etfsboot.com" –u2 –h –m –lTHIN_PC c:\ThinPC\Image c:\ThinPC\ISO\thinpc.iso
лучше б исошник выложил
ОтветитьУдалить