17 Commits

Author SHA1 Message Date
rbalsleyMSFT d5a4f96482 Enhance FFU Development Scripts and Configuration
BuildFFUVM.ps1
- Added parameter definitions that were missing:
  - AppListPath - Path to a JSON file containing a list of applications to install using WinGet. Default is $FFUDevelopmentPath\Apps\AppList.json.
  - PEDriversFolder - Path to the folder containing drivers to be injected into the WinPE deployment media. Default is $FFUDevelopmentPath\PEDrivers.
- Added two new parameters:
  - UpdateLatestMicrocode - This is used for Windows 10/Server. When set to $true, will download and install the latest microcode updates for applicable Windows releases (e.g., Windows Server 2016/2019, Windows 10 LTSC 2016/2019) into the FFU. Default is $false.
  - UpdateADK - Added for airgapped scenarios where you've manually updated the ADK and don't need it to continually check. When set to $true, the script will check for and install the latest Windows ADK and WinPE add-on if they are not already installed or up-to-date. Default is $true.
- Reorganized the WindowsSKU validateset to make it easier to read and added in 2016 LTSB releases
- Changed version to 2505.1
- Reorganized the releasetoMapping SKUs to make it easier to read
- Omitted Defender/Edge from reporting KB ID since neither includes it
- Updated Save-KB with some enhancements from the UI branch which will handle KBs that don't have an architecture defined in their file name that will leverage a new function Get-PEArchitecture that can interrogate the file name and determine the correct architecture
- Updated Get-ShortenedWindowsSKU with LTSB/LTSC SKUs
- Updated New-FFUFileName to use $winverinfo.Name for $WindowsRelease for client OSes to which will set $WindowsRelease to using Win10 or Win11. This fixes a bug where you might see 10 or 11 instead of Win10 or Win11 for FFU builds that use only the VHDX (e.g. `-InstallApps $false`. This keeps the naming consistent with FFUs built via VM.
- Updated Get-WindowsVersionInfo to fix an issue with naming LTSC 2019
- Added Get-PEArchitecture function
- Commented out the Windows Security Platform Update code since the URL is dead for the content. This is fixed in the UI branch and will be reintroduced in Dev and Main at a later date when the UI work is complete.
- Created a new variable `$isLTSC`
- Modified and reorganized the search strings for the various .net framework components. LTSC introduced some complexity with handling the various .net releases.
- VHDXCaching will now recurse the KBPath folder when finding downloaded KBs to include in its config file

Sample_default.json
- Added new/missing parameters
  - ApplistPath
  - UpdateADK
  - UpdateLatestMicrocode

CaptureFFU.ps1
- `$WindowsVersion` 2016 and 2019 for LTSC releases
- Changed some SKU spacing to make things more consistent and included Enterprise N LTSC

ApplyFFU.ps1
- Updated version to 2505.1
2025-05-21 16:44:21 -07:00
Zehadi Alam b530ac5a5c Added comment for .NET updates and added condition in CaptureFFU.ps1 to fix naming for LTSC 2019 2025-05-18 22:06:40 -04:00
Zehadi Alam bc4a181182 Add support for LTSC versions of Windows 2024-12-28 20:01:01 -05:00
rbalsleyMSFT 6abc6f9d1a Fixed an error with removing the office variable when capturing the FFU 2024-12-02 18:34:58 -08:00
rbalsleyMSFT db0fbfaaf4 Refactor CaptureFFU.ps1 to use $WindowsVersion and $WindowsRelease for improved clarity and consistency in FFU naming 2024-12-02 18:11:38 -08:00
JonasKloseBW a59210c559 Update CaptureFFU.ps1
- Add $CustomFFUNameTemplate support in Update CaptureFFU.ps1
2024-12-02 18:11:38 -08:00
rbalsleyMSFT 658d2d7af4 - Added server skus to validateset for $WindowsSKU
- Added new variable $installationType which uses $WindowsRelease to determine Server or Client. If $installationType is Server, $WindowsRelease version is used to set $WindowsVersion to the appropriate version (1607, 1809, 21H2)
- Fixed an issue where the recovery partition wouldn't be created on server OSes due to winre.wim being hidden. Never saw this on client OSes even though it also was hidden IIRC.
- Removed verbosity for Optimize-Volume as it was outputting when -verbose was not specified.
- Modified some search strings for .NET CUs when installing on Server OS
- Included SSU for Windows Server 2016 as it's mandatory
- Added some error checking for Server 2019 and 2022 CU installations when CU fails due to lack of SSU. If you run into this error, you're using old media and should use the latest. Always use the latest ISO if you can.
2024-10-04 14:58:21 -07:00
JonasKloseBW f144f1d71c Update CaptureFFU.ps1
- Add support for Server Core in SKU name
2024-09-30 16:52:15 +02:00
JonasKloseBW 412e3a078c Update CaptureFFU.ps1
- Add Windows Server support like in BuildFFUVM.ps1
2024-09-23 04:37:09 +02:00
rbalsleyMSFT ed3fcf1a3d Fixed bug with Windows Update failing to install updates for VHDX-only captures. 2023-12-14 15:32:14 -08:00
rbalsleyMSFT 161e77720b 2309.2 final commit 2023-09-14 15:34:12 -07:00
rbalsleyMSFT 131d7920bf Changed USB build functionality 2023-09-12 13:12:48 -07:00
rbalsleyMSFT 34efbda7ec Fixed an issue with Critical Process Died BSOD
When using -installapps $false when capturing a FFU, a Critical Process Died BSOD would happen when deploying the FFU and Windows attempted to load.

When capturing the FFU, the registry is loaded to grab the Windows version information to create the FFU file name. After unloading the registry, the FFU is captured. This process can happen too fast on certain hard drives (NVME). A 15 second delay was added after the unloading of the registry to allow for the process to complete before the FFU is captured.
2023-09-07 10:32:58 -07:00
rbalsleyMSFT 70ae2272e2 2306.1 release
See readme.md for more info
2023-06-01 14:20:17 -07:00
rbalsleyMSFT d6e5bff58b revamped automation 2023-05-22 16:41:08 -07:00
rbalsleyMSFT 4b959df197 Updated files 2023-02-27 15:31:49 -08:00
rbalsleyMSFT d06f7a884e Reorganized files into FFUDevelopment folder 2023-02-15 17:14:41 -08:00