(Still having problems, but I'm knocking them out one by one)
- Enable UAC in win81x86
- Throw if my scripts don't pass syntax check BEFORE running Packer
- Make the postinstall scripts more robust in general
- Add more robust Invoke-ExpressionEx, remove Invoke-ExpressionAndLog
- Simplify win-updates.ps1. Don't duplicate code.
- Use scheduled tasks instead of registry keys for running postinstall
commands after reboots
Big features:
- Reliably start WinRM now!!
- Support Windows 10 x86!
Smaller features
- Improve README
- Don't power off the (virtual) monitor to save power
- Add Invoke-ScriptblockAndCatch and use it in postinstall scripts
Fixes and reorgs:
- Move all the packer stuff inside the packer/ directory
- Break out possibly-nonfunctional slipstream stuff to its own module
- Clean up broken bits in buildlab
- Clean up vestigial bits in wintriallab-postinstall
- Fix lots of broken pieces after encountering them one by one
- Fix RestartAction stuff in autounattend-postinstall
- It can auto trigger WinRM enabling
- Use stronger password for vagrant user so WinRM will allow it
- Reboot after installing VBox Additions before running WSUS
- Way more verbose Packer
- Slightly better error handling in postinstall scripts
- Use the Event Log for logging in the postinstall module
- Fix lots of bugs that cropped up without me realizing
- Install VBox Additions from either ISO or attached disk
- Install from ISO by default (smoother in Packer)
- Accept EULA for Windows Updates where relevant
- Entire script works in Strict Mode
- Script is still usable when run directly, but can also be dot-sourced
for access to internal functions
- Make significant changes to code organization for readability
- Fix several exception-throwing bugs
- Add at least some documentation for every function
- Modify Check-WindowsUpdates to optionally filter updates that
can request user input
- Modify Check-WindowsUpdates so it no longer thinks it can tell if the
machine needs to be rebooted
- Pull out incomplete implementation of -MaxUpdatesPerCycle
- Add Get-RestartRegistryEntry function
- Reduce log noise
Current problem: if there are updates you cannot apply because they
require user intervention, it'll loop until $maxCycles is exhausted,
even though it doesn't actually need to
- Convert everything to spaces (fuck you VS Code)
- Some initial work to stop relying on Get-LabTempDir
- Trying to delete as much code as possible
- Define constants all at the top of the file
- Improve Get-WebUrl
- Improve and simplify architecture handling
- Move some more functions to native Powershell from shellouts
- Add some functions for dealing w/ Windows Updates
- Improve PS code, though the lab scripts are kind of a mess still
- Move some functions over to the postinstall module (should rename)
- Rip out calls to dism.exe in favor of the Powershell dism module
- Use an exported $ArchitectureId dictionary variable like a global
constant for talking about architecture names
- Programmatically get the path of ADK/WAIK files & folders
- Call out to oscdimg.exe to make a new ISO
Want to enhance buildlab to "slipstream" updates from WSUS Offline
Updater into the ISOs.
- Download updates
- Work with .wim files (Windows images that are used to install)
- Apply updates to .wim files
Other enhancements
- Clean up some postinstall stuff
- Try to use Powershell in Autounattend.xml as much as possible
- Remove all scripts I'm not using
- (All scripts still in legacy-packer-windows folder tho)
- Postinstall PS module now does EVERYTHING that old scripts were doing
- Eliminate need for SSH altogether
- Add new script for building the Packer boxes called labbuilder.ps1
- Rearranged the hierarchy (my new script relies on the new hierarchy)
- Working windows_81_x86 folder
- Moved old packer-windows stuff to legacy-packer-windows directory.
I plan to move it over piece by piece
- Added a script to install 7zip that the other post install scripts can
depend on
- Fixed compact.bat & vm-guest-tools.bat to use 7zip installer
- Fixed compact.bat to work with 32 bit machines
- Added a readme