Commit Graph

206 Commits

Author SHA1 Message Date
rbalsleyMSFT d7a697d68d Misc Fixes
- Added Get-Childprocesses function to return child processes of parent process
- Added a new -Wait boolean parameter to Invoke-Process function. This is to control whether Invoke-Process should wait in order to track stdout and stderr output. This is needed for processes that may hang, waiting for user input and there isn't a way to bypass (some Intel drivers provided by Dell leave dialog windows even when running silently)
-Invoke-Process now returns process information (returns $cmd). This allows for process tracking when calling the function.
- Since Invoke-Process now returns the process information, also needed to add Out-Null to the majority of the Invoke-Process references to prevent Invoke-Process from writing to the terminal
- Refactored a lot of the Get-DellDrivers function due to inconsistencies with how driver extraction behaves between client and server devices. For client, /s /e seemed to work fine, but for server it would only extract the driver installer content and other dell related files, rather than the driver files themselves. We have since switched to using /s /drivers= which will extract the driver content. Not all drivers support /drivers= and may output some information to the terminal that looks like help documentation. If a driver doesn't support /drivers, the script falls back to using /s /e to do the extraction. If this doesn't work for you, you can always provide your own drivers that you manually download from Dell's website.
- Updated Malicious Software Removal Tool (MSRT) code to handle Windows Server
2024-12-09 14:59:02 -08:00
rbalsleyMSFT 97954f59c3 - Added Windows 2025/24H2 mapping 2024-12-03 16:55:40 -08:00
rbalsleyMSFT 94712ecbfc Merge remote-tracking branch 'origin/2410.1' into pr/JonasKloseBW/91 2024-12-03 16:13:26 -08:00
JonasKloseBW add11b0037 Update BuildFFUVM.ps1
- Add $CustomFFUNameTemplate and the required code into BuildFFUVM.ps1
2024-12-02 18:11:38 -08:00
rbalsleyMSFT 39a9bc9022 Revert "Revert "2410.1 Allow vhdx caching"" 2024-11-28 17:40:22 -08:00
rbalsleyMSFT 802a225c3e Revert "2410.1 Allow vhdx caching" 2024-11-28 17:36:00 -08:00
rbalsleyMSFT db788c3c30 - If not passing an ISO, hardcoded WindowsVersion of 22H2 for Windows 10 or 24H2 for Windows 11 since the ESD media only provides those two versions. Not doing this allowed for unnecessary VHDX creation since it checks the WindowsVersion via the json file. This also fixes an issue where CUs could be searched for that didn’t exist, but the media would still download
- Added some additional logging entries
- Removed verbose output of the Optimize-Volume command
- Fixed an issue where not passing an ISO caused the script to fail
- Cleaned up the KBPath folder at the end of the run
- Changed some minor formatting items
2024-11-27 13:13:29 -08:00
JonasKloseBW eae619e7e8 Update BuildFFUVM.ps1
- Fix update search for Windows Server 2025 release
2024-11-04 18:23:57 +01:00
JonasKloseBW 0f3380e91e Merge pull request #19 from rbalsleyMSFT/2410.1
- $WindowsVersion set to 24h2, can override by using -WindowsVersion …
2024-10-12 03:30:16 +02:00
JonasKloseBW 7c80486d88 Merge pull request #18 from rbalsleyMSFT/2410.1
- $WindowsVersion set to 24h2, can override by using -WindowsVersion …
2024-10-12 03:22:31 +02:00
rbalsleyMSFT 1f65198803 - $WindowsVersion set to 24h2, can override by using -WindowsVersion 23H2 if you want the old behavior
- Removed the "Downloading information GUID" messages when downloading content from the Microsoft Update Catalog while -verbose was specified in the command line
- In Get-KBLink, made a change to just grab the first result returned instead of the entire results page. This removes the need to use a break statement in Save-KB when downloading updates. This fixed an issue with the new 24H2 Checkpoint Cumulative Updates in Win11 and Server 2025.
- Changed Windows MSRT search string for x64 and x86. This was mainly to get x64 to the top of the search results. x86 won't actually download since the code isn't in place for content from the MU Catalog to download x86 content (no idea if anyone actually builds x86 FFUs for Win10 - I hope not)
2024-10-09 16:17:11 -07:00
JonasKloseBW 0f18b7bd80 Merge branch '2410.1' into Better-Windows-Server-Patch-Search 2024-10-05 02:36:47 +02:00
JonasKloseBW b89f4a3b6b Merge branch '2410.1' into 2410.1-Allow-VHDX-caching 2024-10-05 02:11:50 +02: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 f09c404f65 Update BuildFFUVM.ps1
- Find better results for Windows Server 2019 .NET Framework updates
2024-10-03 03:47:33 +02:00
JonasKloseBW fbe8eca263 Update Search Strings: Update BuildFFUVM.ps1
- Update search strings for Windows / .NET Framework updates to get more consistent and reliable results
2024-10-02 15:05:41 +02:00
JonasKloseBW 923e8b070d Merge branch '2410.1' into 2410.1-Allow-VHDX-caching 2024-10-01 03:46:04 +02:00
JonasKloseBW 3694e1a6e4 Update BuildFFUVM.ps1
- Add parameter $AllowVHDXCaching
- Adds the ability to cache VHDX files together with their configuration
- This should roughly cut the build time in half as long as there are no new patches released since the last cached VHDX file
2024-09-30 15:44:40 +02:00
JonasKloseBW d45b6dc8dc Update BuildFFUVM.ps1
- improve Optimize-FFUCaptureDrive
- use the drive letter that the Windows partition gets after mounting the vhdx file
2024-09-30 14:14:33 +02:00
JonasKloseBW 5194133a78 Update BuildFFUVM.ps1
- Add help for parameter AppsScriptVariables
2024-09-27 18:34:41 +02:00
JonasKloseBW 6e5d634af6 Update BuildFFUVM.ps1
- Bypass VMSwitchIPAddress to VMHostAddress check on systems with a configured NAT setup
2024-09-27 02:15:25 +02:00
JonasKloseBW 32d5ff3b47 Merge branch 'rbalsleyMSFT:2410.1' into 2410.1 2024-09-26 20:11:45 +02:00
JonasKloseBW 5545554d7e Update BuildFFUVM.ps1
- Fix accidental variable accumulation in InstallAppsandSysprep.cmd
2024-09-26 20:08:47 +02:00
JonasKloseBW 15c0478710 Update BuildFFUVM.ps1 1/2
- Add parameter $AppsScriptVariablesvariable
- Allow value based behavior changes during the app install phase in InstallAppsandSysprep.cmd
2024-09-26 17:15:17 +02:00
rbalsleyMSFT bab9804022 Merge pull request #79 from zehadialam/2410.1
Include Latest Windows Malicious Software Removal Tool
2024-09-24 14:28:23 -07:00
Zehadi Alam c93c417dba Removed Get-MSRTUrl function and use Microsoft Update Catalog to retrieve latest MSRT 2024-09-23 23:42:09 -04:00
JonasKloseBW 2fe91de000 Merge branch 'main' into 2410.1 2024-09-23 11:27:52 +02:00
JonasKloseBW b6dda55a82 Update BuildFFUVM.ps1
- Updated the .NET Framework download code
- Download the appropriate .NET Framework for Windows Server
2024-09-23 04:29:04 +02:00
JonasKloseBW b8bda93e8d Update BuildFFUVM.ps1
- Updated MU Catalog search
- Search now includes searching for Windows Server updates

Has been verified to work for Windows Server 2022 and Windows Server 2025 only.
2024-09-23 04:26:30 +02:00
JonasKloseBW ac485f9c87 Update BuildFFUVM.ps1
- Update Get-WindowsVersionInfo
- Server Standard is now called 'Srv_Std'
- Server Datacenter is now called 'Srv_Dtc'
- 17763 is matched as Windows Server 2019
- 20348 is matched as Windows Server 2022
- 26100 is matched as Windows Server 2025
- other versions are matched as $DisplayVersion as a fallback

Please remember to update the Windows Server version of 2025 in case it changes until release.
2024-09-23 04:16:57 +02:00
JonasKloseBW 4b33627d19 Update BuildFFUVM.ps1
- Fix bug in New-OSPartition
- CompactOS is now avoided on Windows Server
2024-09-23 04:11:15 +02:00
JonasKloseBW af28624e2d Update BuildFFUVM.ps1
- Update Get-Index to support processing Windows Server images
2024-09-23 04:08:01 +02:00
JonasKloseBW 3457aedf5d Update BuildFFUVM.ps1
- Add support for searching Windows Server SKUs in images in Get-WimIndex
2024-09-23 04:04:13 +02:00
JonasKloseBW 5acac4ba5b Update BuildFFUVM.ps1
- Update Get-LatestWindowsKB to support searching for Windows Server updates
- Improve the HTML regex to return a more precise match by using the $WindowsRelease variable for lookbehind based searching
2024-09-23 04:02:28 +02:00
JonasKloseBW 0b151f9054 Update BuildFFUVM.ps1
- Throw error when trying to download Windows Server as it's not possible
2024-09-23 03:55:37 +02:00
JonasKloseBW cafc45dbba Update BuildFFUVM.ps1
- Add Dell driver download support for Windows Server 2016, 2022 and fall back to 2022 drivers for other Server versions.
2024-09-23 03:53:45 +02:00
JonasKloseBW e3cbcab6b2 Update BuildFFUVM.ps1
- Add script parameters to allow Windows Server image creation
2024-09-23 03:41:40 +02:00
Zehadi Alam ec7e9a546c Adjust pattern for URL scraping 2024-09-17 21:08:09 -04:00
Zehadi Alam 7a2aab3204 Adjust install command for MSRT 2024-09-17 20:36:22 -04:00
rbalsleyMSFT 5dcdd2c36f Clean up the Get-MicrosoftDrivers old code and version change 2024-09-17 14:03:43 -07:00
rbalsleyMSFT 378941cd5c Two fixes
- Fixed an issue with UWP apps downloaded via Winget weren't being fully installed. Added /StubPackageOption:installfull to the dism command
- Fixed an issue with Surface Drivers not downloading
2024-09-17 13:50:16 -07:00
Zehadi Alam 1da28024cc Add support for updating latest Windows Malicious Software Removal Tool 2024-09-15 00:41:04 -04:00
rbalsleyMSFT 40616776eb - Added VMHostIPAddress and VMSwitchName validation to validate the IP address matches the VMSwitchName 2024-09-07 09:53:14 -07:00
rbalsleyMSFT 20c9cf8ab3 Merge pull request #65 from HedgeComp/Time-to-Complete-Hours
Time To Complete Shows Hours if Needed
2024-09-06 11:26:54 -07:00
rbalsleyMSFT 17558f86aa Merge pull request #64 from HedgeComp/OneDrive-Silent
Silently Install Onedrive
2024-09-06 11:26:15 -07:00
rbalsleyMSFT 9c1fc59af9 - Added new variables for the PPKG, Unattend, Autopilot, and PEDrivers validation 2024-09-06 11:24:16 -07:00
HedgeComp 31c785b5da Update BuildFFUVM.ps1
Add Hours to Total Time to complete only if greater than 1 hour
2024-09-06 13:00:09 -04:00
HedgeComp 5b93135ebb Update BuildFFUVM.ps1
Add Silent switch install to Onedrivesetup.exe
2024-09-06 12:57:36 -04:00
rbalsleyMSFT e62d481405 - Remove ValidateScript on InstallDrivers and break it out in a validation block so -Make and -Model can be specified anywhere in the command line
- Check for Prefixes.txt file and copy to the USB drive if it exists
- Perform better validation for PPKG, Unattend, Autopilot json, and drivers
- Comment out the Windows Security Platform update as the file has been removed from the MU Catalog.
2024-09-04 17:05:06 -07:00
rbalsleyMSFT 6c07ac8595 Merge branch '2409.1' of https://github.com/rbalsleyMSFT/FFU into 2409.1 2024-09-04 13:20:38 -07:00