Also removes the MS Edge Start Menu entries. Notice the many versions...No errors and fully removed. Code: %clr% {0f}Removing {0d}Microsoft Edge Browser {0f}and it's related files: {#} echo. echo. echo. %clr% {0e} * {07}Microsoft.MicrosoftEdge_44.19041.1266 {#} echo. %clr% {0e} * {07}Microsoft.MicrosoftEdgeDevToolsClient {#} echo. %clr% {0e} * {07}Microsoft.Win32WebViewHost {#} echo. echo. echo. %clr% {0f}Removing {0d}Windows Defender {07}:: {0a}SmartScreen {0f}and it's related files: {#} echo. echo. echo. %clr% {0e} * {07}}Microsoft.Windows.Apprep.ChxApp {#} echo. %clr% {0e} * {07}}Microsoft.Windows.SecHealthUI {#} echo. echo. %nsd3% sqlite3.exe %ProgramData%/Microsoft/Windows/AppRepository/StateRepository-Machine.srd ".read %systemdrive%/detel_online/Packages/LTSC2021/StateRepository-Machine_19044_LTSC_EDGE.sql" %nul% %nsd3% sqlite3.exe %ProgramData%/Microsoft/Windows\AppRepository/StateRepository-Machine.srd ".save %ProgramData%/Microsoft/Windows/AppRepository/StateRepository-Machine.srd" %nul% echo. sc start AppXSv %nul% %nsd3% sc config StateRepository start= auto %nul% sc start StateRepository %nul% echo. %clr% {0e}* {0f}Removing {0a}MSEDGE {0f}and it's related packages {0a}:: {0f}Can take a minute... {#} echo. Powershell -Command Remove-AppxPackage -AllUsers -Package Microsoft.MicrosoftEdge_44.19041.1266.0_neutral__8wekyb3d8bbwe Powershell -Command Remove-AppxPackage -AllUsers -Package Microsoft.MicrosoftEdgeDevToolsClient_1000.19041.1023.0_neutral_neutral_8wekyb3d8bbwe Powershell -Command Remove-AppxPackage -AllUsers -Package Microsoft.Win32WebViewHost_10.0.19041.1023_neutral_neutral_cw5n1h2txyewy Powershell -Command Remove-AppxPackage -AllUsers -Package Microsoft.MicrosoftEdge.Stable_92.0.902.67_neutral__8wekyb3d8bbwe Powershell -Command Remove-AppxPackage -AllUsers -Package Microsoft.MicrosoftEdge.Stable_105.0.1343.33_neutral__8wekyb3d8bbwe Powershell -Command Remove-AppxPackage -AllUsers -Package Microsoft.MicrosoftEdge.Stable_105.0.1343.42_neutral__8wekyb3d8bbwe Powershell -Command Remove-AppxPackage -AllUsers -Package Microsoft.MicrosoftEdge.Stable_105.0.1343.50_neutral__8wekyb3d8bbwe Powershell -Command Remove-AppxPackage -AllUsers -Package Microsoft.MicrosoftEdge.Stable_105.0.1343.53_neutral__8wekyb3d8bbwe echo. %clr% {0e}* {0f}Removing {0a}Windows Defender {0a}::: {0f}Smartscreen for applications related packages {#} echo. Powershell -Command Remove-AppxPackage -AllUsers -Package Microsoft.Windows.Apprep.ChxApp_1000.19041.1023.0_neutral_neutral_cw5n1h2txyewy Powershell -Command Remove-AppxPackage -AllUsers -Package Microsoft.Windows.SecHealthUI_10.0.19041.1865_neutral__cw5n1h2txyewy echo. timeout /t 7 %nul% Taskkill /IM MicrosoftEdgeUpdate.exe /F %nul% %clr% {07}Block {0d}MSEdge {07}from reinstalling... {#} echo. echo. if exist "%windir%\SysWOW64" ( %nsd1% reg add "HKLM\SOFTWARE\Wow6432Node\\Microsoft\EdgeUpdate" /v DoNotUpdateToEdgeWithChromium /t REG_DWORD /d 1 /f %nul% ) else ( %nsd1% reg add "HKLM\SOFTWARE\Microsoft\EdgeUpdate" /v DoNotUpdateToEdgeWithChromium /t REG_DWORD /d 1 /f %nul% ) %clr% {07}Removing all {0d}MSEdge {07}leftovers... {#} echo. echo. takeown /f "%ProgramData%\Microsoft\Windows\AppRepository" /r /d y %nul% icacls "%ProgramData%\Microsoft\Windows\AppRepository" /grant Administrators:F /T %nul% takeown /f "%ProgramData%\Microsoft\Windows\AppRepository\Packages" /r /d y %nul% icacls "%ProgramData%\Microsoft\Windows\AppRepository\Packages" /grant Administrators:F /T %nul% if exist "%windir%\SysWOW64" ( REM "%ProgramFiles(x86)%\Microsoft\Edge\Application\1*\Installer"\setup –uninstall –system-level –verbose-logging –force-uninstall %nsd4% rmdir /s /q "%ProgramFiles(x86)%\Microsoft\Edge" %nul% %nsd4% rmdir /s /q "%ProgramFiles(x86)%\Microsoft\EdgeUpdate" %nul% %nsd4% rmdir /s /q "%ProgramData%\Microsoft\EdgeUpdate" %nul% ) else ( REM "%ProgramFiles%\Microsoft\Edge\Application\1*\Installer"\setup –uninstall –system-level –verbose-logging –force-uninstall %nsd3% rmdir /s /q "%ProgramFiles%\Microsoft\Edge" %nul% %nsd4% rmdir /s /q "%ProgramFiles%\Microsoft\EdgeUpdate" %nul% %nsd4% rmdir /s /q "%ProgramData%\Microsoft\EdgeUpdate" %nul% ) %nsd3% rmdir /s /q "%USERPROFILE%\AppData\Local\Microsoft\Edge" %nul% %nsd3% del /s "%USERPROFILE%\AppData\Local\Microsoft\WindowsApps\MicrosoftEdge.exe" %nul% %nsd3% del /s /q "%ProgramData%\Microsoft\Windows\AppRepository\Microsoft.MicrosoftEdgeDevToolsClient_1000.19041.1023.0_neutral_neutral_8wekyb3d8bbwe.xml" %nul% %nsd3% del /s /q "%ProgramData%\Microsoft\Windows\AppRepository\Microsoft.MicrosoftEdge.Stable_92.0.902.67_neutral__8wekyb3d8bbwe.xml" %nul% %nsd3% del /s /q "%ProgramData%\Microsoft\Windows\AppRepository\Packages\Microsoft.MicrosoftEdge.Stable_92.0.902.67_neutral__8wekyb3d8bbwe" %nul% %nsd3% del /s /q "%ProgramData%\Microsoft\Windows\Start Menu\Programs\Microsoft Edge.lnk" %nul% %nsd3% del /s /q "%USERPROFILE%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\Microsoft Edge.lnk" %nul% %nsd3% del /s /q "C:\Windows\System32\config\systemprofile\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\Microsoft Edgelnk" %nul% if exist "%windir%\SysWOW64" ( %nsd1% reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Edge" /f %nul% %nsd1% reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Edge Update" /f %nul% %nsd1% reg delete "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Edge" /f %nul% %nsd1% reg delete "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Edge Update" /f %nul% ) else ( %nsd1% reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Edge" /f %nul% %nsd1% reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Edge Update" /f %nul% ) %schtasks_rmv% "MicrosoftEdgeUpdateTaskMachineCore" %nul% %schtasks_rmv% "MicrosoftEdgeUpdateTaskMachineUA" %nul% %nsd3% del /s %systemdrive%\StateRepository-Machine.srd %nul% %nsd3% del /s %systemdrive%\StateRepository-Machine.srd-shm %nul% %nsd3% del /s %systemdrive%\StateRepository-Machine.srd-wal %nul% echo. start explorer
New one? Code: %nsd1% reg delete "HKLM\SYSTEM\ControlSet001\Control\WMI\AutoLogger\Microsoft-Windows-Rdp-Graphics-RdpIdd-Trace" /f ps: data hoarding/fetsish is for losers
I have found the error: My mistake! Rufus has since newest the function Windows Privacy option which is queried before writing the stick. I had left this option as it was and ignored it. Now I have tried your original telemetry and unanttend(administrator) files again and it works as usual! The other unattend I should not try!?
how exactly do I have to proceed with the old unattend.xml when I set up my account!? 1. computer administration new account 2. user accounts and set to administrator the new account!? Or should I try again the other unattend.xml!?
I would not call that non-stand-alone clusterfuk of external tools "Lite" by any stretch. And manipulating StateRepository database is such a risky and totally unneeded business. Not when it's so simple to do: Code: @(set "0=%~f0"^)#) & powershell -nop -c iex([io.file]::ReadAllText($env:0)) & exit /b #:: double-click to run or just copy-paste into powershell - it's a standalone hybrid script sp 'HKCU:\Volatile Environment' 'Edge_Removal' @' $also_remove_webview = 1 $host.ui.RawUI.WindowTitle = 'Edge Removal Lite - AveYo, 2022.10.03' ## targets $remove_win32 = @("Microsoft Edge","Microsoft Edge Update"); $remove_appx = @("MicrosoftEdge") if ($also_remove_webview -eq 1) {$remove_win32 += "Microsoft EdgeWebView"; $remove_appx += "Win32WebViewHost"} ## enable admin privileges $D1=[uri].module.gettype('System.Diagnostics.Process')."GetM`ethods"(42) |where {$_.Name -eq 'SetPrivilege'} #`:no-ev-warn 'SeSecurityPrivilege','SeTakeOwnershipPrivilege','SeBackupPrivilege','SeRestorePrivilege'|foreach {$D1.Invoke($null, @("$_",2))} ## clear win32 uninstall block foreach ($hk in 'HKCU','HKLM') {foreach ($wow in '','\Wow6432Node') {foreach ($i in $remove_win32) { cmd /c "reg delete ""$hk\SOFTWARE${wow}\Microsoft\Windows\CurrentVersion\Uninstall\$i"" /f /v NoRemove >nul 2>nul" }}} ## find all Edge setup.exe $setup = @(); "LocalApplicationData","ProgramFilesX86","ProgramFiles" |foreach { $setup += dir $($([Environment]::GetFolderPath($_)) + '\Microsoft\Edge*\setup.exe') -rec -ea 0 } ## shut edge down foreach ($p in 'MicrosoftEdgeUpdate','chredge','msedge','edge','msedgewebview2','Widgets') { kill -name $p -force -ea 0 } ## clear appx uninstall block and remove $provisioned = get-appxprovisionedpackage -online; $appxpackage = get-appxpackage -allusers $store = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore'; $store_reg = $store.replace(':','') $users = @('S-1-5-18'); if (test-path $store) {$users += $((dir $store |where {$_ -like '*S-1-5-21*'}).PSChildName)} foreach ($choice in $remove_appx) { if ('' -eq $choice.Trim()) {continue} foreach ($appx in $($provisioned |where {$_.PackageName -like "*$choice*"})) { $PackageFamilyName = ($appxpackage |where {$_.Name -eq $appx.DisplayName}).PackageFamilyName; $PackageFamilyName cmd /c "reg add ""$store_reg\Deprovisioned\$PackageFamilyName"" /f >nul 2>nul" cmd /c "dism /online /remove-provisionedappxpackage /packagename:$($appx.PackageName) >nul 2>nul" #powershell -nop -c remove-appxprovisionedpackage -packagename "'$($appx.PackageName)'" -online 2>&1 >'' } foreach ($appx in $($appxpackage |where {$_.PackageFullName -like "*$choice*"})) { $inbox = (gp "$store\InboxApplications\*$($appx.Name)*" Path).PSChildName $PackageFamilyName = $appx.PackageFamilyName; $PackageFullName = $appx.PackageFullName; $PackageFullName foreach ($app in $inbox) {cmd /c "reg delete ""$store_reg\InboxApplications\$app"" /f >nul 2>nul" } cmd /c "reg add ""$store_reg\Deprovisioned\$PackageFamilyName"" /f >nul 2>nul" foreach ($sid in $users) {cmd /c "reg add ""$store_reg\EndOfLife\$sid\$PackageFullName"" /f >nul 2>nul"} cmd /c "dism /online /set-nonremovableapppolicy /packagefamily:$PackageFamilyName /nonremovable:0 >nul 2>nul" powershell -nop -c "remove-appxpackage -package '$PackageFullName' -AllUsers" 2>&1 >'' foreach ($sid in $users) {cmd /c "reg delete ""$store_reg\EndOfLife\$sid\$PackageFullName"" /f >nul 2>nul"} } } ## shut edge down, again foreach ($p in 'MicrosoftEdgeUpdate','chredge','msedge','edge','msedgewebview2','Widgets') { kill -name $p -force -ea 0 } ## brute-run found Edge setup.exe with uninstall args $purge = '--uninstall --system-level --force-uninstall' if ($also_remove_webview -eq 1) { foreach ($s in $setup) { try{ start -wait $s -args "--msedgewebview $purge" } catch{} } } foreach ($s in $setup) { try{ start -wait $s -args "--msedge $purge" } catch{} } ## prevent latest cumulative update (LCU) failing due to non-matching EndOfLife Edge entries foreach ($i in $remove_appx) { dir "$store\EndOfLife" -rec -ea 0 |where {$_ -like "*${i}*"} |foreach {cmd /c "reg delete ""$($_.Name)"" /f >nul 2>nul"} dir "$store\Deleted\EndOfLife" -rec -ea 0 |where {$_ -like "*${i}*"} |foreach {cmd /c "reg delete ""$($_.Name)"" /f >nul 2>nul"} } ## extra cleanup $desktop = $([Environment]::GetFolderPath('Desktop')); $appdata = $([Environment]::GetFolderPath('ApplicationData')) del "$appdata\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Tombstones\Microsoft Edge.lnk" -force -ea 0 del "$appdata\Microsoft\Internet Explorer\Quick Launch\Microsoft Edge.lnk" -force -ea 0 del "$desktop\Microsoft Edge.lnk" -force -ea 0 ## ask to run script as admin / cleanup rp Registry::HKEY_Users\S-1-5-21*\Volatile* Edge_Removal -ea 0 '@ -force -ea 0; $A = '-nop -noe -c & {iex((gp Registry::HKEY_Users\S-1-5-21*\Volatile* Edge_Removal -ea 0)[0].Edge_Removal)}' start powershell -args $A -verb runas $_Press_Enter #:: Above is a reduced Edge_Removal.bat (the full script also includes search redirector script) Removing locked appx is trivial, there's really no need for external tools, see FORCE_APPX_UNINSTALL.bat But bonus points for using reg_own snippet You could go further and also use runasti snippet when needed Lots of "spam" in this thread lately. Please try to keep it a little more neat, we don't want to end up like the thread above this one
@AveYo I'll understand, but it just works fine Perhaps it's a long route to achive the same...Anyways many ways lead to Rome. And by lite i ment just removing Edge/Defender Thx for the info and all your good stuff I'm just a novice...
I have now found my mistake, and also used the other unattend.xml with individual names! It all works as it should for now! I see no error at the moment with the fresh installation. It all works as it should If the error is found by others regarding the unattend.xml(with account name), then let me know! Anyway, my installation is working fine with this script so far. Yesterday I even made a complete update with LCU and so on with the fresh installation. I used the "unattend.xml" with indvidual names! Thanks also to you. I have tested the script. Your script is really very extensive. But I still prefer Freddie-o original script and method for now. That is enough for me! Thanks also to you...
ending up get this post .............. https://forums.mydigitallife.net/th...n-windows-10-version-1809.78576/#post-1634306 I always tried remove this XboxGameCallableUI piece of crap without success, now I wonder I can I add it to my already made batch file ending up doing just this. [[[ After 3 hour's ]]] [[[ v10000000000003 ]]] Code: @cls @echo off >nul chcp 437 setlocal enabledelayedexpansion rem Credit belong to aveyo (AKA BAU) from MDL rem for being so nicely to share such good s**t with us echo: echo Make sure to run this script as TI privileges echo To get list of Non Removable Apps, Use this Command: (echo|set /p ="Get-AppxPackage | where {!($_.NonRemovable)} | select PackageFullName") echo: echo: set bloat="c5e2524a-ea46-4f67-841f-6a9465d9d515", "1527c705-839a-4832-9118-54d4Bd6a0c89", "E2A4F912-2574-4A75-9BB0-0D023378592B", "AAD.BrokerPlugin", "F46D4000-FD22-4DB4-AC8E-4E1DDDE828FE" set bloat=!bloat!,"ECApp", "LockApp", "MicrosoftEdge", "Win32WebViewHost", "AppRep.ChxApp", "AssignedAccessLockApp", "CallingShellApp", "CapturePicker", "BioEnrollment" set bloat=!bloat!,"NarratorQuickStart", "ParentalControls", "PeopleExperienceHost", "NcsiUwpApp", "XboxGameCallableUI", "XgpuEjectDialog", "CbsPreview", "ContentDeliveryManager" call :KillApps !bloat! echo: pause exit /b :KillApps: set "bloat_Appx_List=%*" set ^ #=& set "0=%~f0"& set 1=%*& powershell -nop -c iex(([io.file]::ReadAllText($env:0)-split':KillApps\:.*')[1])& exit /b function KillApps ($cmd) { ## run main code only if ti/system $rights = whoami /groups; $env:__COMPAT_LAYER = 'Installer' if ($rights -like '*1-16-16384*') { $D1=[uri].module.gettype('System.Diagnostics.Process')."GetM`ethods"(42) |where {$_.Name -eq 'SetPrivilege'} #`:no-ev-warn 'SeSecurityPrivilege','SeTakeOwnershipPrivilege','SeBackupPrivilege','SeRestorePrivilege'|foreach {$D1.Invoke($null, @("$_",2))} ## main $provisioned = get-appxprovisionedpackage -online; $appxpackage = get-appxpackage -allusers $store = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore' $users = @('S-1-5-18'); if (test-path $store) {$users += $((dir $store |where {$_ -like '*S-1-5-21*'}).PSChildName)} foreach ($name in $(($env:bloat_Appx_List).Replace(', ',',').Split(','))) { write-host 'Remove:',$name.Replace('"','') if ('' -eq $name.Replace('"','')) {continue} foreach ($appx in $($provisioned |where {$_.PackageName -match $name.Replace('"','')})) { $family = $appxpackage |where {$_.Name -eq $appx.DisplayName} write-host -fore Blue $($family.PackageFamilyName) ## forced deprovision ni "$store\Deprovisioned\$($family.PackageFamilyName)" -force -ea 0 >$null ## default deprovision dism /online /remove-provisionedappxpackage /packagename:$($appx.PackageName) 2>&1 >$null #powershell -nop -c remove-appxprovisionedpackage -packagename "'$($appx.PackageName)'" -online 2>&1 >$null } foreach ($appx in $($appxpackage |where {$_.PackageFullName -match $name.Replace('"','')})) { write-host -fore Cyan $($appx.InstallLocation) ## remove from inbox $inbox = (gp "$store\InboxApplications\*$($appx.Name)*" Path).PSChildName foreach ($app in $inbox) {ri "$store\InboxApplications\$app" -recurse -force -ea 0} ## forced deprovision ni "$store\Deprovisioned\$($appx.PackageFamilyName)" -force -ea 0 >$null ## forced unlock - usually works foreach ($sid in $users) {ni "$store\EndOfLife\$sid\$($appx.PackageFullName)" -force -ea 0 >$null} ## default unlock - usually fails dism /online /set-nonremovableapppolicy /packagefamily:$($appx.PackageFamilyName) /nonremovable:0 2>&1 >$null ## uninstall silently powershell -nop -c remove-appxpackage -package "'$($appx.PackageFullName)'" -AllUsers 2>&1 >$null ## optional cleanup experiment - not needed #ri "$store\Config\$($appx.PackageFamilyName)" -recurse -force -ea 0 #foreach ($sid in $users) { # ri "$store\EndOfLife\$sid\$($appx.PackageFullName)" -recurse -force -ea 0 # ri "$store\Deleted\EndOfLife\$sid\$($appx.PackageFullName)" -recurse -force -ea 0 #} #$inbox = (gp "$store\InboxApplications\*$($appx.Name)*" Path).PSChildName #foreach ($app in $inbox) {foreach ($sid in $users) {ri "$store\$sid\$app" -recurse -force -ea 0}} ## optional delete from disk experiment - not needed, would break restoring from AppxManifest.xml #ri "'$($appx.InstallLocation)'" -recurse -force -ea 0 } } exit } write-host Script fail Due to lack of privileges }; <#,#> KillApps $env:1; #:KillApps:
@ralf ralf I totally understand. It was more a personal thingy because of the not doable statement on a live system It seems to works quite fine using the proper tool. Ofcourse it's a to long of a script as it could be shorter in doing the same obviously. Ah that's my handicap as i'm just a noob on this. It came out quite nice however as a full setup script for a live system ofcourse all is personal preference.... Personally think that using the database to force allow removing those systemapps is a clean proper way as it removes it completlely, and all others that are set to "0" can be removed via apps and features. I see no danger/risky thing in it as i retested it numerous times and the outcome is always identical. The funny thing is the many edge versions that do appear when the image is not updated?! Different tests do incl new versions.... Ontopic now as it's about the datahoard fetish It's amazing.