| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| деплой_образов [2022/09/20 09:32] – jp | деплой_образов [2024/11/01 10:26] (current) – jp |
|---|
| dism /Get-WimInfo /WimFile:"E:\custom_distr\Win 10 Enterprise\sources\install.esd" | dism /Get-WimInfo /WimFile:"E:\custom_distr\Win 10 Enterprise\sources\install.esd" |
| Теперь ищем и запоминаем нужный ID, после чего выполняем команду, которая разархивирует нужный образ: | Теперь ищем и запоминаем нужный ID, после чего выполняем команду, которая разархивирует нужный образ: |
| | <WRAP prewrap> |
| dism /Export-Image /SourceImageFile:"E:\custom_distr\Win 10 Enterprise\sources\install.esd" /SourceIndex:2 /DestinationImageFile:"E:\custom_distr\Win 10 Enterprise\sources\install.wim" /Compress:max /CheckIntegrity | <code> |
| | dism /Export-Image /SourceImageFile:"E:\custom_distr\Win 10 Enterprise\sources\install.esd" /SourceIndex:2 /DestinationImageFile:"E:\custom_distr\Win 10 Enterprise\sources\install.wim" /Compress:max /CheckIntegrity |
| | </code> |
| | </WRAP> |
| ---- | ---- |
| |
| === Автоматический выбор быстрого диска для установки === | === Автоматический выбор быстрого диска для установки === |
| |
| Проблема: по умолчанию task sequence выбирает для установки диск с номером 0. Но что, если диск с номером 0 - HDD, в то время, как быстрый диск в компьютере имеет другой номер? В этом случае система будет установлена на HDD. | Проблема: по умолчанию task sequence в MECM выбирает для установки диск с номером 0. Но что, если диск с номером 0 - HDD, в то время, как быстрый диск SSD (или NVMe) в компьютере имеет другой номер? В этом случае система будет установлена на HDD. |
| | |
| | Чтобы этого избежать, в task sequence нужно встроить powershell скрипт, который находит SSD или NVME диск и устанавливает систему именно туда. |
| | |
| | 1. Перед тем, как вставлять скрипт PS в task sequence - нужно убедиться, что наш boot image поддерживает powershell, а также нужные PS-модули. Если нет - их обязательно нужно добавить. Список необходимых модулей показан на скриншоте. |
| | |
| | ;#; |
| | {{::mecm_boot_ps_modules.jpg?direct&200|}} |
| | ;#; |
| | |
| | 2. После добавления модулей, в task sequence - добавляем запуск PS-скрипта, сразу за этапом //"Restart in Windows PE"//. |
| | |
| | ;#; |
| | {{::mecm_find_fast_drive.jpg?direct&200|}} |
| | ;#; |
| | |
| | |
| | :!: В параметрах запуска PS-скрипта нужно обязательно поменять execution policy на //"bypass"//, иначе скрипт не запустится. |
| | |
| | Ниже приведен сам скрипт. Он сохраняет результат выбора диска в переменную **OSDDiskIndex**, которую мы будем использовать на дальнейших шагах. |
| | |
| | <code> |
| | #defalt value |
| | $disk_idx = 0 |
| | |
| | #retrieve SSD |
| | $ssd_disk = get-physicaldisk | where mediatype -like 'ssd' |
| | |
| | #multiple SSD |
| | if (@($ssd_disk).count -gt 1) |
| | { |
| | #multiple nvme SSD, choose the smallest one |
| | if (@($ssd_disk | where bustype -like 'nvme').count -gt 1) |
| | { |
| | $disk_idx = $ssd_disk | Sort-Object -Property Size | Select-Object -ExpandProperty DeviceID -First 1 |
| | } |
| | elseif (@($ssd_disk | where bustype -like 'nvme').count -eq 1) |
| | { |
| | $disk_idx = ($ssd_disk | where bustype -like 'nvme').deviceid |
| | } |
| | } |
| | #singel SSD |
| | elseif (@($ssd_disk).count -eq 1) |
| | { |
| | #multiple physical disks, choose SSD |
| | if (@(get-physicaldisk).count -gt 1) |
| | { |
| | $disk_idx = ($ssd_disk).deviceid |
| | } |
| | #single pysical disks |
| | else |
| | { |
| | $disk_idx = 0 |
| | } |
| | } |
| | #Write-Host "disk selected: $disk_idx" |
| | (New-Object -COMObject Microsoft.SMS.TSEnvironment).Value('OSDDiskIndex') = $disk_idx |
| | </code> |
| |
| Чтобы этого избежать, в task sequence нужно встроить powershell скрипт, который детектит SSD или NVME диск. | 3. Теперь на ОБОИХ (BIOS и UEFI) этапах "partition disk 0" - указываем вместо статического номера диска - переменную **OSDDiskIndex**, значение которой будет установлено PS-скриптом, который мы настроили. |
| |
| Перед тем, как вставлять скрипт PS в task sequence - нужно убедиться, что наш boot image поддерживает powershell и нужные модули. Если нет - их обязательно нужно добавить. Список необходимых модулей показан на скриншоте. | ;#; |
| | {{::mecm_osd_disk_index.jpg?direct&200|}} |
| | ;#; |
| |
| {{::mecm_boot_ps_modules.jpg?direct&400|}} | Теперь, при запуске, образ будет искать оптимальный диск для установки системы. |
| |
| {{tag>Microsoft MECM MDT Deployment Windows}} | {{tag>Microsoft MECM MDT Deployment Windows PowerShell}} |
| |