mirror of
https://github.com/Raphire/Win11Debloat.git
synced 2026-05-18 19:56:25 +00:00
Starting from this commit, Win11Debloat will automatically create a registry backup every time the script is run. This registry backup can be used to revert any registry changes made by the script.
52 lines
2.6 KiB
PowerShell
52 lines
2.6 KiB
PowerShell
# Disables Microsoft Store search suggestions in the start menu for all users by denying access to the Store app database file for each user
|
|
function DisableStoreSearchSuggestionsForAllUsers {
|
|
# Get path to Store app database for all users
|
|
$userPathString = GetUserDirectory -userName "*" -fileName "AppData\Local\Packages"
|
|
$usersStoreDbPaths = Get-ChildItem -Path $userPathString -ErrorAction SilentlyContinue
|
|
|
|
# Go through all users and disable start search suggestions
|
|
ForEach ($storeDbPath in $usersStoreDbPaths) {
|
|
DisableStoreSearchSuggestions ($storeDbPath.FullName + "\Microsoft.WindowsStore_8wekyb3d8bbwe\LocalState\store.db")
|
|
}
|
|
|
|
# Also disable start search suggestions for the default user profile
|
|
$defaultStoreDbPath = GetUserDirectory -userName "Default" -fileName "AppData\Local\Packages\Microsoft.WindowsStore_8wekyb3d8bbwe\LocalState\store.db" -exitIfPathNotFound $false
|
|
DisableStoreSearchSuggestions $defaultStoreDbPath
|
|
}
|
|
|
|
|
|
# Disables Microsoft Store search suggestions in the start menu by denying access to the Store app database file
|
|
function DisableStoreSearchSuggestions {
|
|
param (
|
|
$StoreAppsDatabase = "$env:LocalAppData\Packages\Microsoft.WindowsStore_8wekyb3d8bbwe\LocalState\store.db"
|
|
)
|
|
|
|
# Change path to correct user if a user was specified
|
|
if ($script:Params.ContainsKey("User")) {
|
|
$StoreAppsDatabase = GetUserDirectory -userName "$(GetUserName)" -fileName "AppData\Local\Packages\Microsoft.WindowsStore_8wekyb3d8bbwe\LocalState\store.db" -exitIfPathNotFound $false
|
|
}
|
|
|
|
$userName = [regex]::Match($StoreAppsDatabase, '(?:Users\\)([^\\]+)(?:\\AppData)').Groups[1].Value
|
|
|
|
# This file doesn't exist in EEA (No Store app suggestions).
|
|
if (-not (Test-Path -Path $StoreAppsDatabase))
|
|
{
|
|
Write-Host "Unable to find Store app database for user $userName, creating it now to prevent Windows from creating it later..." -ForegroundColor Yellow
|
|
|
|
$storeDbDir = Split-Path -Path $StoreAppsDatabase -Parent
|
|
|
|
if (-not (Test-Path -Path $storeDbDir)) {
|
|
New-Item -Path $storeDbDir -ItemType Directory -Force | Out-Null
|
|
}
|
|
|
|
New-Item -Path $StoreAppsDatabase -ItemType File -Force | Out-Null
|
|
}
|
|
|
|
$AccountSid = [System.Security.Principal.SecurityIdentifier]::new('S-1-1-0') # 'EVERYONE' group
|
|
$Acl = Get-Acl -Path $StoreAppsDatabase
|
|
$Ace = [System.Security.AccessControl.FileSystemAccessRule]::new($AccountSid, 'FullControl', 'Deny')
|
|
$Acl.SetAccessRule($Ace) | Out-Null
|
|
Set-Acl -Path $StoreAppsDatabase -AclObject $Acl | Out-Null
|
|
|
|
Write-Host "Disabled Microsoft Store search suggestions for user $userName"
|
|
} |