## Purpose :
- Fix#19
## Details :
- Removing duplicate of the value `OemPreInstalledAppsEnabled`.
- Removing duplicate of the value `PreInstalledAppsEnabled`.
- Removing duplicate of the value `SilentInstalledAppsEnabled`.
- Removing duplicate of the value `SubscribedContentEnabled`.
- Removing duplicate of the value `ContentDeliveryAllowed`.
## Purpose :
- Fix#17
- Fix#18
> This will avoid collision and let user retrive easely the log file.
## Details :
- Using subexpression `$(get-date -f yyyyMMdd_HHmms)` inside the log file name.
- Changing path of the log to `$PSScriptRoot` . (so iso, log, script will be at the same place.)
Features
Added removal of Copilot, the new Outlook client, and Microsoft Teams packages.
Added registry keys to proactively disable Copilot and prevent app re-installations.
Improvements
Switched to Dism.exe with /Compress:recovery for significantly smaller final ISO file sizes.
Reworked scheduled task removal to be simpler and more reliable.
- Fix `PSAvoidTrailingWhitespace`
- Fix `PSAvoidUsingWriteHost`
- Fix `PSAvoidUsingEmptyCatchBlock`
- Fix `PSUseShouldProcessForStateChangingFunctions`
> False positive, it does not touch the running system registry.
For `PSAvoidUsingPositionalParameters` i can add named parameters but it's not mandatory if positional is repected.
- Add new packages in `$packagePrefixes`.
- Change disposiition of `$packagePrefixes` to better lisibility.
- Modify the `where-object` query param from `-like "$_*"` to `-like "*$_*"`
Updated `tiny11maker.ps1` to replace `Remove-RegistryKey`
with `Remove-RegistryValue` for specific registry values.
Expanded the cleanup section to include detailed checks
and messages for the existence and removal of temporary
files and directories, improving script robustness and
user feedback.
Implement a check for the existence of `autounattend.xml`. If the file is not found, download it from a specified URL using `Invoke-RestMethod` and save it to the script's root directory. This ensures the configuration file is available for the script's execution.
*merge from my old different pr.
## New parameter and improvement
- Updated script parameters to include a new $p_IsoDisk parameter.
- Renamed $ScratchDisk to $p_ScratchDisk throughout the script.
- Added logic to handle $p_IsoDisk, prompting user if not provided.
- Removed output of scratch disk setting.
- Change the ordre to match iso then scratch
- Rename parameter
- Adding pattern for second one too
- Adding synopsis with some informations on the script and calling exemples.
## New Functions for optimisation
- Introduced Remove-RegistryValue and Set-RegistryValue functions to replace direct reg commands for registry modifications.
## Auto Dismount
- Dismounting the iso image after process completion.
## SKU validation
- Added validation to ensure the entered index is valid by checking against available indices in the Windows image file.
- Introduced a loop to repeatedly prompt the user until a valid index is provided.
## Others
- Updated `.gitignore` to exclude Visual Studio files.
- Revised `README.md` for clarity and added new features.
- fix (noted in https://github.com/ntdevlabs/tiny11builder/issues/339) by adding ':' colon for validation pattern, which used to be set to empty value(resulting in using script root path)
- use `Export-WindowsImage` with undocumented Compression Type for more consistence
- use direct string check for little performance improvement
- Revert to use dism for exporting install.esd to use recovery compression which reduced the size about 1 gigabytes.
- Add outlook provisioned appxpackage for removal.
- Get architecture using Get-WindowsImage and its property directly.
- Use Get-AppxProvisionedPackage and Remove-AppxProvisionedPackage instead if dism for more consistence.
- Use Export-WindowsImage with -CompressionType Maximum instead of Fast for smaller type(used to be recovery with dism.exe).
- Edit README.md part for `Set-ExecutionPolicy` to use `-Scope Process` to prevent changing the entire computer's policy.
- Fix tiny11maker.ps1 and tiny11Coremaker.ps1 to find oscdimg.exe from registry instead of using fixed path.
- Add Run.bat helper batch file(referenced from Win11Debloat) to help running tiny11maker with double clicking.
last corrections
- to replace wrong command -ScratchDirectory with -Path
- putting param to the top
- make sure $Scratchdisk is $PSScriptRoot remove :\ or trailing \
- param will now have error handling for drive letters c-z and C-Z
- all references to $env:systemdrive or $($env:systemdrive) now generalized to $ScratchDisk
- tested the modified script and review log for errors
The idea of the release of this project is using PowerShell instead of commandline in the previous version, which is a great move and make it easier to maintain and read.
For sake of easier syntax and readability I have attempted using PowerShell commandlets for dism.
There are few remaining areas that need to be reworked (invoking dism.exe) to become fully consistent.
This new release of tiny11 builder enables the ability to use images that has ESD files instead of the standard WIM. It also suppresses some of the output, making it a bit easier to track what is going on.
It also cleans up the last remains of Edge! Last, but not least, it fixes an issue with logging.