Hello Freddie-o, I was able to test your scripts and they work well. Do you know how to get sysprep to work on the modded iso installs? I want to install your iso, add some programs on the new install, sysprep and save the image as my go to. However, I cannot get sysprep to run oin your builds. Do you have any experience or know how to get it working? Thanks agin for all your work and sharing it here!
Sorry I haven't had the need to use sysprep yet Edit: When I need a backup image I create one using Macrium Reflect from WinRE
Ok, I looked into it more and got sysprep working. Sysprep was failing at <sysprepModule methodName="MSSrch_SysPrep_Cleanup" moduleName="$(runtime.system32)\mssrch.dll">. I guess this is due to Freddie-o script command: delete "HKLM\SYSHIVE\ControlSet001\Services\WSearch" /f So to get sysprep to work I removed the "MSSrch_SysPrep_Cleanup" method calls from the C:\Windows\System32\Sysprep\ActionFiles\Cleanup.xml. To edit the file you need to change the premissions to all users. You can so a search in the document for "MSSrch" and delete the relevant lines calling and referencing the "MSSrch_SysPrep_Cleanup" method. For me the lines to delete were: 62. <sysprepModule methodName="MSSrch_SysPrep_Cleanup" moduleName="$(runtime.system32)\mssrch.dll"></sysprepModule></imaging><imaging exclude=""><assemblyIdentity name="Microsoft-Windows-TaskScheduler-Service" version="10.0.19041.906" publicKeyToken="31bf3856ad364e35" processorArchitecture="amd64" versionScope="NonSxS"></assemblyIdentity> 63. <sysprepOrder order="0x0E00"></sysprepOrder> 75. <sysprepModule methodName="MSSrch_SysPrep_Cleanup" moduleName="$(runtime.system32)\mssrch.dll"></sysprepModule></imaging></sysprepInformation> So now sysprep runs completely because it doesn't error at "MSSrch_SysPrep_Cleanup" anymore. Possible permanent solutions if you want to use sysprep and this script could be: Create an edited version of C:\Windows\System32\Sysprep\ActionFiles\Cleanup.xml file with the changes above, and add a command in freddie-0 bat script to replace the standard one with the ammended version: copy /y Cleanup.xml mount\Windows\System32\Sysprep\ActionFiles Untested - remove the line/command "delete "HKLM\SYSHIVE\ControlSet001\Services\WSearch" /f" from freddie-o script. Not sure this will work because there are other commands in the script that remove some fo the search services (cortana search), which may also result in sysprep error, and ideally you want to remove all this telemetary anyway so I would say this option is not a good one unless you happy to have the search telemetry working on some level. Untested - If you want to create your base iso, do it on a vanilla iso before using freddie-o scipt, add programms etc, then sysprep and save iso as normal. Then apply Freddie-o script offline to saved iso. Finally, If you run sysprep then oobe will return. According to this video (invidious.snopyta.org/watch?v=YL42yopTph0) if you run sysprep from cmd as admin you can add your answer file to the sysprep. Run CMD as admin from sysprep folder with your unnatend.xml in C: = sysprep /oobe /generalize /shutdown /unattend:C:\unattend.xml (edit:spelling) So a long post, but that explains and solves the sysprep error.
To update regrding sysPrep: On reviewing further, I understand that if using sysPrep on a Freddie-o iso that it will reset and delete some of the Registry mods that the freddie-o script made. This obviosuly defeats the purpose to an extent. I see 2 options to possibly overcome this; Run Freddie-o script, install OS, install apps/programs, run sysPrep, capture image. Run freddie-o script again on newly captured image. Deploy newly created, sysPrep'd, Freddie-o'd (twice) iso. Edit the sysPrep xml docs located at C:\Windows\System32\Sysprep\ActionFiles\ some more to remove the sysprep method calls that cause registry to revert. This way sysPrep will not revert Freddie0o's script changes. This would take some testing and trial and error (and a lot of time) to know what to remove. also a 3rd option. Don't use sysprep at all and just install your extra programs manually after every installations of the custom iso
That sounds a lot of work, what I do is download base.iso from uup dump and then MSMG ToolKit(to integrate/enable/disable features & tweaks) + W10UI.cmd(to integrate necessary updates(LCU, NDP35-48 CU & EP 22H2)+ disable_telemetry.cmd + SetComplete.cmd(to integrate 3rd party apps) + KMS_VL_AIO.cmd(to pre-activate Windows) = Profit
Or My scenario... Use portable apps so after installing Windows I only install very minimal software such as Internet Security Update, Disable telemetry & add drivers to my image offline Install Windows I can clean install and configure my OS in less than 30 minutes
or my scenario is to do everything offline on a mounted Ent SKU . My workstation is ready . wait till my latest new tool on Extreme Lite M$ iso's.
@freddie-o Is it better to telemetry debloat - server 25324: use your script for win10 or win11- after appropriate modification?
Sorry I cannot test. You can check. Compare both "disable_telemetry.cmd" for Windows 10 and 11 and note the differences Mount the install wim and load the Registry hives to see if those registry keys are present
if you are referring to my "disable_telemetry" script there is more to it than delivery optimization to enable/disable Windows update for me to get into. Might I suggest you use another method to disable telemetry that doesn't disable Windows update.
i've managed to do it-windows update is working. this is what i removed: rem == disable windows update, delivery optimization and reserved storage == reg add "HKLM\SOFTHIVE\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate" /v "AutoDownload" /t REG_DWORD /d "5" /f reg add "HKLM\SOFTHIVE\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "NoWindowsUpdate" /t REG_DWORD /d "1" /f reg add "HKLM\SOFTHIVE\Policies\Microsoft\Windows\WindowsUpdate" /v "SetDisableUXWUAccess" /t REG_DWORD /d "1" /f reg add "HKLM\SOFTHIVE\Policies\Microsoft\Windows\WindowsUpdate" /v "DisableWindowsUpdateAccess" /t REG_DWORD /d "1" /f reg add "HKLM\SOFTHIVE\Policies\Microsoft\Windows\WindowsUpdate" /v "DoNotConnectToWindowsUpdateInternetLocations" /t REG_DWORD /d "1" /f reg add "HKLM\SOFTHIVE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUServer" /t REG_SZ /d "\" \"" /f reg add "HKLM\SOFTHIVE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUStatusServer" /t REG_SZ /d "\" \"" /f reg add "HKLM\SOFTHIVE\Policies\Microsoft\Windows\WindowsUpdate" /v "UpdateServiceUrlAlternate" /t REG_SZ /d "\" \"" /f reg add "HKLM\SOFTHIVE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /t REG_DWORD /d "1" /f reg add "HKLM\SOFTHIVE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "UseWUServer" /t REG_DWORD /d "1" /f rem == restrict internet communication == reg add "HKLM\SOFTHIVE\Policies\Microsoft\Windows\DriverSearching" /v "DontSearchWindowsUpdate" /t REG_DWORD /d "1" /f reg add "HKLM\SOFTHIVE\Policies\Microsoft\Windows\WindowsUpdate" /v "DisableWindowsUpdateAccess" /t REG_DWORD /d "1" /f rem == delete telemetry scheduled tasks == reg delete "HKLM\SOFTHIVE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\WindowsUpdate" /f reg delete "HKLM\SOFTHIVE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\UpdateOrchestrator" /f rem == delete telemetry services == reg delete "HKLM\SYSHIVE\ControlSet001\Services\DoSvc" /f reg delete "HKLM\SYSHIVE\ControlSet001\Services\UsoSvc" /f reg delete "HKLM\SYSHIVE\ControlSet001\Services\wuauserv" /f can i leave something?