aggiunto controllo esistenza path. Se non esite, viene creato. RImosso apps doppie
This commit is contained in:
		@@ -87,7 +87,6 @@ Microsoft Sticky Notes
 | 
			
		||||
Microsoft Teams
 | 
			
		||||
Microsoft To Do
 | 
			
		||||
MSN Weather
 | 
			
		||||
MSN Weather
 | 
			
		||||
Netflix
 | 
			
		||||
News
 | 
			
		||||
NYTCrossword
 | 
			
		||||
							
								
								
									
										374
									
								
								configwinpc.ps1
									
									
									
									
									
								
							
							
						
						
									
										374
									
								
								configwinpc.ps1
									
									
									
									
									
								
							@@ -4,6 +4,9 @@
 | 
			
		||||
 | 
			
		||||
clear-Host
 | 
			
		||||
 | 
			
		||||
# TODO
 | 
			
		||||
# Optional Update, Delivery Optimization, Open With NP++
 | 
			
		||||
 | 
			
		||||
# Open PowerShell as administrator
 | 
			
		||||
if (-Not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
 | 
			
		||||
    Start-Process powershell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
 | 
			
		||||
@@ -13,18 +16,18 @@ if (-Not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdenti
 | 
			
		||||
Write-Host ""
 | 
			
		||||
Write-Host -ForegroundColor Yellow "
 | 
			
		||||
 | 
			
		||||
                    ###################################################### 
 | 
			
		||||
                    #                                                    # 
 | 
			
		||||
                    #                                                    # 
 | 
			
		||||
                    #  SCRIPT FOR CONFIGURING AND DEBLOATING WINDOWS 11  #
 | 
			
		||||
                    #                                                    #
 | 
			
		||||
                    #                                           by dado  #
 | 
			
		||||
                    ######################################################
 | 
			
		||||
###################################################### 
 | 
			
		||||
#                                                    # 
 | 
			
		||||
#                                                    # 
 | 
			
		||||
#  SCRIPT FOR CONFIGURING AND DEBLOATING WINDOWS 11  #
 | 
			
		||||
#                                                    #
 | 
			
		||||
#                                           by dado  #
 | 
			
		||||
######################################################
 | 
			
		||||
 | 
			
		||||
" 
 | 
			
		||||
 | 
			
		||||
# Sleep for 5 seconds
 | 
			
		||||
Start-Sleep -Seconds 5
 | 
			
		||||
# Sleep for 2 seconds
 | 
			
		||||
Start-Sleep -Seconds 2
 | 
			
		||||
 | 
			
		||||
##########################################################################################
 | 
			
		||||
#                                                                                        #
 | 
			
		||||
@@ -45,27 +48,40 @@ $RegistryPaths = @(
 | 
			
		||||
    "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# Loop through each registry path to check if it exists
 | 
			
		||||
foreach ($path in $RegistryPaths) {
 | 
			
		||||
    if (-not (Test-Path $path)) {
 | 
			
		||||
        New-Item -Path $path -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Set left align
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Set left align <<<"
 | 
			
		||||
foreach ($path in $RegistryPaths[0..1]) {
 | 
			
		||||
    New-ItemProperty -Path $path -Name "TaskbarAl" -Value 0 -Type DWORD -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Hide search
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Hide search <<<"
 | 
			
		||||
Set-ItemProperty -Path $RegistryPaths[2] -Name "SearchBoxTaskbarMode" -Value 0 -Type DWORD -Force | Out-Null
 | 
			
		||||
 | 
			
		||||
# Hide TaskView button
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Hide TaskView button <<<"
 | 
			
		||||
foreach ($path in $RegistryPaths[0..1]) {
 | 
			
		||||
    Set-ItemProperty -Path $path -Name "ShowTaskViewButton" -Value 0 -Type DWORD -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Remove Chat from the Taskbar
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Removes Chat from the Taskbar <<<"
 | 
			
		||||
foreach ($path in $RegistryPaths[0..1]) {
 | 
			
		||||
    New-ItemProperty -Path $path -Name "TaskbarMn" -Value 0 -Type DWORD -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Disable widgets in the taskbar
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Disable widgets in the taskbar <<<"
 | 
			
		||||
Set-ItemProperty -Path $RegistryPaths[0] -Name "TaskbarWidgetsEnabled" -Value 0 | Out-Null
 | 
			
		||||
Set-ItemProperty -Path $RegistryPaths[1] -Name "TaskbarWidgetsEnabled" -Value 0 | Out-Null
 | 
			
		||||
 | 
			
		||||
# Hide search
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Hide search <<<"
 | 
			
		||||
Set-ItemProperty -Path $RegistryPaths[2] -Name "SearchBoxTaskbarMode" -Value 0 -Type DWORD -Force | Out-Null
 | 
			
		||||
 | 
			
		||||
# Disable the 'Windows + W' keyboard shortcut to open widgets
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Disable the 'Windows + W' keyboard shortcut to open widgets <<<"
 | 
			
		||||
Set-ItemProperty -Path $RegistryPaths[3] -Name "ShowWindowsW" -Value 0 | Out-Null
 | 
			
		||||
@@ -73,40 +89,37 @@ Set-ItemProperty -Path $RegistryPaths[4] -Name "ShowWindowsW" -Value 0 | Out-Nul
 | 
			
		||||
 | 
			
		||||
# Disable the widget service
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Disable widget service <<<"
 | 
			
		||||
$widgetPath1 = "HKLM:\SOFTWARE\Microsoft\PolicyManager\default\NewsAndInterests"
 | 
			
		||||
$widgetPath2 = "HKLM:\SOFTWARE\Policies\Microsoft\Dsh"
 | 
			
		||||
 | 
			
		||||
# Create the path if it doesn't exist
 | 
			
		||||
if (-not (Test-Path $widgetPath1)) {
 | 
			
		||||
    New-Item -Path $widgetPath1 -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
if (-not (Test-Path $widgetPath2)) {
 | 
			
		||||
    New-Item -Path $widgetPath2 -Force | Out-Null
 | 
			
		||||
$widgetPaths = @(
 | 
			
		||||
    "HKLM:\SOFTWARE\Microsoft\PolicyManager\default\NewsAndInterests",
 | 
			
		||||
    "HKLM:\SOFTWARE\Policies\Microsoft\Dsh"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
foreach ($path in $widgetPaths) {
 | 
			
		||||
    if (-not (Test-Path $path)) {
 | 
			
		||||
        New-Item -Path $path -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
    Set-ItemProperty -Path $path -Name "AllowNewsAndInterests" -Value 0 -Type DWORD -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Set the registry key
 | 
			
		||||
Set-ItemProperty -Path $widgetPath1 -Name "AllowNewsAndInterests" -Value 0 -Type DWORD -Force | Out-Null
 | 
			
		||||
New-ItemProperty -Path $widgetPath2 -Name "AllowNewsAndInterests" -Value 0 -Type DWORD -Force | Out-Null
 | 
			
		||||
####################################################################################################################################
 | 
			
		||||
 | 
			
		||||
# Enable End Task
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Enable End Task <<<"
 | 
			
		||||
 | 
			
		||||
$endTaskPath = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
 | 
			
		||||
 | 
			
		||||
# Create the path if it doesn't exist
 | 
			
		||||
if (-not (Test-Path $endTaskPath)) {
 | 
			
		||||
    New-Item -Path $endTaskPath -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Set-ItemProperty -Path $endTaskPath -Name "TaskbarEndTask" -Value 1 -Type DWORD -Force | Out-Null
 | 
			
		||||
 | 
			
		||||
# Remove Chat from the Taskbar
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Removes Chat from the Taskbar <<<"
 | 
			
		||||
foreach ($path in $RegistryPaths[0..1]) {
 | 
			
		||||
    New-ItemProperty -Path $path -Name "TaskbarMn" -Value 0 -PropertyType DWORD -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
####################################################################################################################################
 | 
			
		||||
 | 
			
		||||
# Disabling 'Recommended' section
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Hide 'Recommended' section <<<"
 | 
			
		||||
foreach ($path in $RegistryPaths) {
 | 
			
		||||
    New-ItemProperty -Path $path -Name "Start_IrisRecommendations" -Value 0 -Type DWORD -Force | Out-Null
 | 
			
		||||
    New-ItemProperty -Path $path -Name "Start_TrackDocs" -Value 0 -Type DWORD -Force | Out-Null
 | 
			
		||||
    New-ItemProperty -Path $path -Name "Start_Layout" -Value 1 -Type DWORD -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$explorerPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer"
 | 
			
		||||
$startPath = "HKLM:\SOFTWARE\Microsoft\PolicyManager\current\device\Start"
 | 
			
		||||
@@ -116,24 +129,27 @@ $educationPath = "HKLM:\SOFTWARE\Microsoft\PolicyManager\current\device\Educatio
 | 
			
		||||
if (-not (Test-Path $explorerPath)) {
 | 
			
		||||
    New-Item -Path $explorerPath -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
# Set the registry value to hide the Recommended Section in Explorer
 | 
			
		||||
 | 
			
		||||
Set-ItemProperty -Path $explorerPath -Name "HideRecommendedSection" -Value 1 -Type DWORD -Force | Out-Null
 | 
			
		||||
 | 
			
		||||
# Create the Start path if it doesn't exist
 | 
			
		||||
if (-not (Test-Path $startPath)) {
 | 
			
		||||
    New-Item -Path $startPath -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
# Set the registry value to hide the Recommended Section in Start
 | 
			
		||||
 | 
			
		||||
Set-ItemProperty -Path $startPath -Name "HideRecommendedSection" -Value 1 -Type DWORD -Force | Out-Null
 | 
			
		||||
 | 
			
		||||
# Create the Education path if it doesn't exist
 | 
			
		||||
if (-not (Test-Path $educationPath)) {
 | 
			
		||||
    New-Item -Path $educationPath -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
# Set the registry value for Education Environment
 | 
			
		||||
 | 
			
		||||
Set-ItemProperty -Path $educationPath -Name "IsEducationEnvironment" -Value 1 -Type DWORD -Force | Out-Null
 | 
			
		||||
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
####################################################################################################################################
 | 
			
		||||
 | 
			
		||||
# Turn off web results in the Start menu
 | 
			
		||||
Write-Host -ForegroundColor Yellow ">>> Turn off web results in the Start menu <<<"
 | 
			
		||||
 | 
			
		||||
@@ -156,10 +172,9 @@ foreach ($RegistryPath in $RegistryPaths) {
 | 
			
		||||
        New-Item -Path $RegistryPath -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # Set the values based on the hashtable
 | 
			
		||||
    foreach ($Name in $Properties.Keys) {
 | 
			
		||||
        $Value = $Properties[$Name]
 | 
			
		||||
        New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType DWORD -Force | Out-Null
 | 
			
		||||
        New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -Type DWORD -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -190,50 +205,55 @@ $ExplorerProperties = @{
 | 
			
		||||
    "HideFileExt" = 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Iterate over each registry path
 | 
			
		||||
foreach ($RegistryPath in $RegistryPaths) {
 | 
			
		||||
    # Create the key if it does not exist
 | 
			
		||||
    If (-NOT (Test-Path $RegistryPath)) {
 | 
			
		||||
        New-Item -Path $RegistryPath -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # Set the values based on the hashtable
 | 
			
		||||
    foreach ($Name in $ExplorerProperties.Keys) {
 | 
			
		||||
        $Value = $ExplorerProperties[$Name]
 | 
			
		||||
        New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType DWORD -Force | Out-Null
 | 
			
		||||
        New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -Type DWORD -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
####################################################################################################################################
 | 
			
		||||
 | 
			
		||||
# Disable Group By Folder in Windows Explorer
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Disabling Group By Folder feature <<<"
 | 
			
		||||
# Registry path for disabling automatic grouping
 | 
			
		||||
 | 
			
		||||
$groupByPath = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
 | 
			
		||||
 | 
			
		||||
# Create the path if it doesn't exist
 | 
			
		||||
if (-not (Test-Path $groupByPath)) {
 | 
			
		||||
    New-Item -Path $groupByPath -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Set the registry value to disable auto grouping
 | 
			
		||||
Set-ItemProperty -Path $groupByPath -Name "UseAutoGrouping" -Value 0 -Type DWORD -Force | Out-Null
 | 
			
		||||
 | 
			
		||||
####################################################################################################################################
 | 
			
		||||
 | 
			
		||||
# Enable Dark Mode in Windows
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Enable Dark Mode <<<"
 | 
			
		||||
# Registry path for dark mode
 | 
			
		||||
$darkModePath = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"
 | 
			
		||||
 | 
			
		||||
# Create the path if it doesn't exist
 | 
			
		||||
if (-not (Test-Path $darkModePath)) {
 | 
			
		||||
    New-Item -Path $darkModePath -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Set the registry values to enable dark mode
 | 
			
		||||
Set-ItemProperty -Path $darkModePath -Name "AppsUseLightTheme" -Value 0 -Type DWORD -Force | Out-Null
 | 
			
		||||
Set-ItemProperty -Path $darkModePath -Name "SystemUsesLightTheme" -Value 0 -Type DWORD -Force | Out-Null
 | 
			
		||||
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
##########################################################################################
 | 
			
		||||
#                                                                                        #
 | 
			
		||||
#                                        Spotlight                                       #
 | 
			
		||||
#                                                                                        #
 | 
			
		||||
##########################################################################################
 | 
			
		||||
 | 
			
		||||
Write-Host ""
 | 
			
		||||
Write-Host -ForegroundColor Yellow ">>> Disable Spotlight <<<"
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
@@ -245,12 +265,26 @@ $RegistryPaths = @(
 | 
			
		||||
    "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# Define properties for lockscreen
 | 
			
		||||
$LockScreenProperties = @{
 | 
			
		||||
    "RotatingLockScreenOverlayEnabled" = 0
 | 
			
		||||
    "RotatingLockScreenEnabled" = 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Define properties for background
 | 
			
		||||
$BackgroundProperties = @{
 | 
			
		||||
    "DisableSpotlightCollectionOnDesktop" = 1
 | 
			
		||||
    "DisableWindowsSpotlightFeatures" = 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Disable Windows Spotlight on lockscreen
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Disabling Windows Spotlight on lockscreen <<<"
 | 
			
		||||
foreach ($spotlight in $RegistryPaths[0..1]) {
 | 
			
		||||
    If (Test-Path $spotlight) {
 | 
			
		||||
        Set-ItemProperty -Path $spotlight -Name "RotatingLockScreenOverlayEnabled" -Value 0 -Force | Out-Null
 | 
			
		||||
        Set-ItemProperty -Path $spotlight -Name "RotatingLockScreenEnabled" -Value 0 -Force | Out-Null
 | 
			
		||||
        foreach ($Name in $LockScreenProperties.Keys) {
 | 
			
		||||
            $Value = $LockScreenProperties[$Name]
 | 
			
		||||
            Set-ItemProperty -Path $spotlight -Name $Name -Value $Value -Force | Out-Null
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -258,11 +292,15 @@ foreach ($spotlight in $RegistryPaths[0..1]) {
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Disabling Windows Spotlight on background <<<"
 | 
			
		||||
foreach ($spotlight in $RegistryPaths[2..3]) {
 | 
			
		||||
    If (Test-Path $spotlight) {
 | 
			
		||||
        Set-ItemProperty -Path $spotlight -Name "DisableSpotlightCollectionOnDesktop" -Value 1 -Force | Out-Null
 | 
			
		||||
        Set-ItemProperty -Path $spotlight -Name "DisableWindowsSpotlightFeatures" -Value 1 -Force | Out-Null
 | 
			
		||||
        foreach ($Name in $BackgroundProperties.Keys) {
 | 
			
		||||
            $Value = $BackgroundProperties[$Name]
 | 
			
		||||
            Set-ItemProperty -Path $spotlight -Name $Name -Value $Value -Force | Out-Null
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
##########################################################################################
 | 
			
		||||
#                                                                                        #
 | 
			
		||||
#                                        Telemetry                                       #
 | 
			
		||||
@@ -270,35 +308,56 @@ foreach ($spotlight in $RegistryPaths[2..3]) {
 | 
			
		||||
##########################################################################################
 | 
			
		||||
 | 
			
		||||
# Configure Windows telemetry and activity tracking settings
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Configuring telemetry and activity settings <<<"
 | 
			
		||||
Write-Host -ForegroundColor Yellow ">>> Disable some telemetry <<<"
 | 
			
		||||
 | 
			
		||||
# Define registry paths and values to modify
 | 
			
		||||
$registryEntries = @(
 | 
			
		||||
    @{ Path = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection"; Name = "AllowTelemetry"; Value = 0 },
 | 
			
		||||
    @{ Path = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced"; Name = "Start_TrackProgs"; Value = 0 },
 | 
			
		||||
    @{ Path = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System"; Name = "PublishUserActivities"; Value = 0 },
 | 
			
		||||
    @{ Path = "HKCU:\SOFTWARE\Microsoft\Siuf\Rules"; Name = "NumberOfSIUFInPeriod"; Value = 0 },
 | 
			
		||||
    @{ Path = "HKCU:\SOFTWARE\Microsoft\Siuf\Rules"; Name = "PeriodInNanoSeconds"; Value = -1 }
 | 
			
		||||
$registryPaths = @(
 | 
			
		||||
    "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection",
 | 
			
		||||
    "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced",
 | 
			
		||||
    "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System",
 | 
			
		||||
    "HKCU:\SOFTWARE\Microsoft\Siuf\Rules"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# Loop through each registry entry and set the values
 | 
			
		||||
foreach ($entry in $registryEntries) {
 | 
			
		||||
    # Create the path if it doesn't exist
 | 
			
		||||
    if (-not (Test-Path $entry.Path)) {
 | 
			
		||||
        New-Item -Path $entry.Path -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    # Set the registry value
 | 
			
		||||
    Set-ItemProperty -Path $entry.Path -Name $entry.Name -Value $entry.Value -Type DWORD -Force | Out-Null
 | 
			
		||||
$TelemetryProperties = @{
 | 
			
		||||
    "AllowTelemetry"           = 0
 | 
			
		||||
    "PublishUserActivities"    = 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$ActivityTrackingProperties = @{
 | 
			
		||||
    "Start_TrackProgs"        = 0
 | 
			
		||||
    "NumberOfSIUFInPeriod"    = 0
 | 
			
		||||
    "PeriodInNanoSeconds"      = -1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Disable telemetry settings
 | 
			
		||||
foreach ($path in $registryPaths[0..1]) {
 | 
			
		||||
    if (-not (Test-Path $path)) {
 | 
			
		||||
        New-Item -Path $path -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
    foreach ($Name in $TelemetryProperties.Keys) {
 | 
			
		||||
        $Value = $TelemetryProperties[$Name]
 | 
			
		||||
        Set-ItemProperty -Path $path -Name $Name -Value $Value -Type DWORD -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Disable activity tracking settings
 | 
			
		||||
foreach ($path in $registryPaths[2..3]) {
 | 
			
		||||
    if (-not (Test-Path $path)) {
 | 
			
		||||
        New-Item -Path $path -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
    foreach ($Name in $ActivityTrackingProperties.Keys) {
 | 
			
		||||
        $Value = $ActivityTrackingProperties[$Name]
 | 
			
		||||
        Set-ItemProperty -Path $path -Name $Name -Value $Value -Type DWORD -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
##########################################################################################
 | 
			
		||||
#                                                                                        #
 | 
			
		||||
#                               Lock Screen Notifications                                #
 | 
			
		||||
#                                                                                        #
 | 
			
		||||
##########################################################################################
 | 
			
		||||
 | 
			
		||||
Write-Host ""
 | 
			
		||||
Write-Host -ForegroundColor Yellow ">>> Disable Notifications on Lock Screen <<<"
 | 
			
		||||
 | 
			
		||||
# Set the registry paths for notifications settings
 | 
			
		||||
@@ -315,17 +374,14 @@ $NotificationProperties = @{
 | 
			
		||||
    "LockScreenToastEnabled" = 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Iterate over each registry path
 | 
			
		||||
foreach ($RegistryPath in $RegistryPaths) {
 | 
			
		||||
    # Create the key if it does not exist
 | 
			
		||||
    If (-NOT (Test-Path $RegistryPath)) {
 | 
			
		||||
        New-Item -Path $RegistryPath -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # Set the values based on the hashtable
 | 
			
		||||
    foreach ($Name in $NotificationProperties.Keys) {
 | 
			
		||||
        $Value = $NotificationProperties[$Name]
 | 
			
		||||
        New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType DWORD -Force | Out-Null
 | 
			
		||||
        New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -Type DWORD -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -337,9 +393,8 @@ Write-Host ""
 | 
			
		||||
#                                                                                        #
 | 
			
		||||
##########################################################################################
 | 
			
		||||
 | 
			
		||||
Write-Host -ForegroundColor Yellow ">>> Change Control Panel View <<<"
 | 
			
		||||
Write-Host -ForegroundColor Yellow ">>> Change Control Panel View to 'Small icon'<<<"
 | 
			
		||||
 | 
			
		||||
# Set the registry paths for both HKLM and HKCU
 | 
			
		||||
$RegistryPaths = @(
 | 
			
		||||
    "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel",
 | 
			
		||||
    "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel"
 | 
			
		||||
@@ -351,17 +406,14 @@ $ControlPanelProperties = @{
 | 
			
		||||
    "StartupPage" = 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Iterate over each registry path
 | 
			
		||||
foreach ($RegistryPath in $RegistryPaths) {
 | 
			
		||||
    # Create the key if it does not exist
 | 
			
		||||
    If (-NOT (Test-Path $RegistryPath)) {
 | 
			
		||||
        New-Item -Path $RegistryPath -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # Set the values based on the hashtable
 | 
			
		||||
    foreach ($Name in $ControlPanelProperties.Keys) {
 | 
			
		||||
        $Value = $ControlPanelProperties[$Name]
 | 
			
		||||
        New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType DWORD -Force | Out-Null
 | 
			
		||||
        New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -Type DWORD -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -373,10 +425,8 @@ Write-Host ""
 | 
			
		||||
#                                                                                        #
 | 
			
		||||
##########################################################################################
 | 
			
		||||
 | 
			
		||||
Write-Host -ForegroundColor Yellow ">>> Turn off Windows Welcome Experience <<<"
 | 
			
		||||
 | 
			
		||||
# Disable Windows notifications, suggestions, and ads
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Turn off Welcome Experience, notifications, suggestions, and ads in Windows <<<"
 | 
			
		||||
Write-Host -ForegroundColor Yellow ">>> Turn off Welcome Experience, notifications, suggestions, and ads in Windows <<<"
 | 
			
		||||
 | 
			
		||||
# Define registry paths and values to modify
 | 
			
		||||
$registryEntries = @(
 | 
			
		||||
@@ -404,11 +454,12 @@ foreach ($entry in $registryEntries) {
 | 
			
		||||
    if (-not (Test-Path $entry.Path)) {
 | 
			
		||||
        New-Item -Path $entry.Path -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    # Set the registry value
 | 
			
		||||
        
 | 
			
		||||
    Set-ItemProperty -Path $entry.Path -Name $entry.Name -Value $entry.Value -Type DWORD -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
##########################################################################################
 | 
			
		||||
#                                                                                        #
 | 
			
		||||
#                                        Edge                                            #
 | 
			
		||||
@@ -456,15 +507,13 @@ $EdgeProperties = @{
 | 
			
		||||
 | 
			
		||||
# Iterate over each registry path
 | 
			
		||||
foreach ($RegistryPath in $RegistryPaths) {
 | 
			
		||||
    # Create the key if it does not exist
 | 
			
		||||
    If (-NOT (Test-Path $RegistryPath)) {
 | 
			
		||||
        New-Item -Path $RegistryPath -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # Set the values based on the hashtable
 | 
			
		||||
    foreach ($Name in $EdgeProperties.Keys) {
 | 
			
		||||
        $Value = $EdgeProperties[$Name]
 | 
			
		||||
        New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType DWORD -Force | Out-Null
 | 
			
		||||
        New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -Type DWORD -Force | Out-Null
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -476,27 +525,36 @@ Write-Host ""
 | 
			
		||||
#                                                                                        #
 | 
			
		||||
##########################################################################################
 | 
			
		||||
 | 
			
		||||
#Write-Host -ForegroundColor Yellow ">>> Disable Recall <<<"
 | 
			
		||||
#
 | 
			
		||||
## Define registry paths for taskbar settings
 | 
			
		||||
#$RegistryPaths = @(
 | 
			
		||||
#    "HKCU:\SOFTWARE\Policies\Microsoft\Windows\WindowsAI",
 | 
			
		||||
#    "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsAI"
 | 
			
		||||
#)
 | 
			
		||||
#
 | 
			
		||||
## Disable AI data analysis
 | 
			
		||||
#Write-Host -ForegroundColor DarkGray ">>> Disable AI data analysis <<<"
 | 
			
		||||
#foreach ($path in $RegistryPaths[0..1]) {
 | 
			
		||||
#    New-ItemProperty -Path $path -Name "DisableAIDataAnalysis" -Value 1 -Type DWORD -Force | Out-Null
 | 
			
		||||
#}
 | 
			
		||||
#
 | 
			
		||||
#Set-ItemProperty -Path $RegistryPaths[1] -Name "AllowRecallEnablement" -Value 0 -Type DWORD -Force | Out-Null
 | 
			
		||||
#
 | 
			
		||||
## Turn off Recall snapshots
 | 
			
		||||
#Write-Host -ForegroundColor DarkGray ">>> Turn off Recall snapshots <<<"
 | 
			
		||||
#Set-ItemProperty -Path $RegistryPaths[1] -Name "TurnOffSavingSnapshots" -Value 1 -Type DWORD -Force | Out-Null
 | 
			
		||||
#
 | 
			
		||||
#Write-Host ""
 | 
			
		||||
Write-Host -ForegroundColor Yellow ">>> Disable Recall <<<"
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
# Define registry paths for taskbar settings
 | 
			
		||||
$RegistryPaths = @(
 | 
			
		||||
    "HKCU:\SOFTWARE\Policies\Microsoft\Windows\WindowsAI",
 | 
			
		||||
    "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsAI"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# Loop through each registry path to check if it exists
 | 
			
		||||
foreach ($path in $RegistryPaths) {
 | 
			
		||||
    # Check if the path does not exist
 | 
			
		||||
    if (-not (Test-Path $path)) {
 | 
			
		||||
        New-Item -Path $path -Force | Out-Null  # Create the registry path
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Disable AI data analysis
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Disable AI data analysis <<<"
 | 
			
		||||
foreach ($path in $RegistryPaths[0..1]) {
 | 
			
		||||
    New-ItemProperty -Path $path -Name "DisableAIDataAnalysis" -Value 1 -Type DWORD -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Set-ItemProperty -Path $RegistryPaths[1] -Name "AllowRecallEnablement" -Value 0 -Type DWORD -Force | Out-Null
 | 
			
		||||
 | 
			
		||||
# Turn off Recall snapshots
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Turn off Recall snapshots <<<"
 | 
			
		||||
Set-ItemProperty -Path $RegistryPaths[1] -Name "TurnOffSavingSnapshots" -Value 1 -Type DWORD -Force | Out-Null
 | 
			
		||||
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
##########################################################################################
 | 
			
		||||
#                                                                                        #
 | 
			
		||||
@@ -506,11 +564,15 @@ Write-Host ""
 | 
			
		||||
 | 
			
		||||
Write-Host -ForegroundColor Yellow ">>> Power Plan <<<"
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Activate High performance power plan <<<"
 | 
			
		||||
powercfg -setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
 | 
			
		||||
# create ultimate powerscheme
 | 
			
		||||
# Create ultimate powerscheme
 | 
			
		||||
powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61 | Out-Null
 | 
			
		||||
 | 
			
		||||
####################################################################################################################################
 | 
			
		||||
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Setting the monitor timeout to 10 minutes <<<"
 | 
			
		||||
# AC power 
 | 
			
		||||
powercfg -change -monitor-timeout-ac 10
 | 
			
		||||
powercfg -change -standby-timeout-ac 10
 | 
			
		||||
@@ -523,6 +585,8 @@ powercfg -change -hibernate-timeout-dc 0
 | 
			
		||||
powercfg -change -disk-timeout-dc 0
 | 
			
		||||
powercfg /hibernate off
 | 
			
		||||
 | 
			
		||||
####################################################################################################################################
 | 
			
		||||
 | 
			
		||||
# Set the power button behavior for AC power to "Shut down"
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Setting the power button behavior to 'Shut down' <<<"
 | 
			
		||||
powercfg -setacvalueindex SCHEME_CURRENT SUB_BUTTONS PBUTTONACTION 3
 | 
			
		||||
@@ -533,14 +597,26 @@ Write-Host -ForegroundColor DarkGray ">>> Setting the sleep button behavior to '
 | 
			
		||||
powercfg /SETACVALUEINDEX SCHEME_CURRENT SUB_BUTTONS SBUTTONACTION 0
 | 
			
		||||
powercfg /SETDCVALUEINDEX SCHEME_CURRENT SUB_BUTTONS SBUTTONACTION 0
 | 
			
		||||
 | 
			
		||||
####################################################################################################################################
 | 
			
		||||
 | 
			
		||||
# Disable Fast Startup
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Disable fast startup <<<"
 | 
			
		||||
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" -Name "HiberbootEnabled" -Value "0" -Force | Out-Null
 | 
			
		||||
$RegistryPaths = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power"
 | 
			
		||||
# Check if the path exists
 | 
			
		||||
if (-not (Test-Path $RegistryPaths)) {
 | 
			
		||||
    # Create the path if it doesn't exist
 | 
			
		||||
    New-Item -Path $RegistryPaths -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Set-ItemProperty -Path $RegistryPaths -Name "HiberbootEnabled" -Value 0 -Force | Out-Null
 | 
			
		||||
 | 
			
		||||
####################################################################################################################################
 | 
			
		||||
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Disable Energy-Efficient Ethernet <<<"
 | 
			
		||||
$adapter = Get-NetAdapter | Where-Object { $_.Name -eq "Ethernet" }
 | 
			
		||||
Disable-NetAdapterPowerManagement -Name $adapter.Name -NoRestart
 | 
			
		||||
Set-ItemProperty -Path ("HKLM:\SYSTEM\CurrentControlSet\Control\Class\{0}\{1}" -f "{4D36E972-E325-11CE-BFC1-08002BE10318}", $idNIC) -Name "PnPCapabilities" -Value "24" -Type DWORD -Force | Out-Null
 | 
			
		||||
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
##########################################################################################
 | 
			
		||||
@@ -550,8 +626,8 @@ Write-Host ""
 | 
			
		||||
##########################################################################################
 | 
			
		||||
 | 
			
		||||
Write-Host -ForegroundColor Yellow ">>> Windows Update settings <<<"
 | 
			
		||||
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Enable 'Get updates for other Microsoft products' <<<"
 | 
			
		||||
 | 
			
		||||
try {
 | 
			
		||||
@@ -560,7 +636,7 @@ try {
 | 
			
		||||
    $UpdateServiceManager.AddService2($ServiceID, 7, "") | Out-Null
 | 
			
		||||
}
 | 
			
		||||
catch {
 | 
			
		||||
    Write-Error "An error occurred while configuring Microsoft Update: $($_.Exception.Message)"
 | 
			
		||||
    Write-Error -ForegroundColor Red "An error occurred while configuring Microsoft Update: $($_.Exception.Message)"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
####################################################################################################################################
 | 
			
		||||
@@ -568,22 +644,19 @@ catch {
 | 
			
		||||
# Set "Do not restart if user is logged on"
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Set 'Do not restart if user is logged on' <<<"
 | 
			
		||||
 | 
			
		||||
# Define the value to disable automatic reboots when a user is logged on
 | 
			
		||||
$NoAutoRebootWithLoggedOnUsers = 1
 | 
			
		||||
$WindowsUpdateRegistryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update"
 | 
			
		||||
 | 
			
		||||
# Check if the registry key exists, otherwise create it
 | 
			
		||||
if (!(Test-Path $WindowsUpdateRegistryPath)) {
 | 
			
		||||
    New-Item -Path $WindowsUpdateRegistryPath -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Set the NoAutoRebootWithLoggedOnUsers value
 | 
			
		||||
Set-ItemProperty -Path $WindowsUpdateRegistryPath -Name "NoAutoRebootWithLoggedOnUsers" -Value $NoAutoRebootWithLoggedOnUsers -Type DWORD | Out-Null
 | 
			
		||||
Set-ItemProperty -Path $WindowsUpdateRegistryPath -Name "NoAutoRebootWithLoggedOnUsers" -Value 1 -Type DWORD | Out-Null
 | 
			
		||||
 | 
			
		||||
####################################################################################################################################
 | 
			
		||||
 | 
			
		||||
# Restart File Explorer to apply the changes
 | 
			
		||||
taskkill /f /im explorer.exe | Out-Null
 | 
			
		||||
 | 
			
		||||
start explorer.exe | Out-Null
 | 
			
		||||
 | 
			
		||||
##########################################################################################
 | 
			
		||||
@@ -595,17 +668,14 @@ start explorer.exe | Out-Null
 | 
			
		||||
# Checking for Available Updates
 | 
			
		||||
Install-Module -Name PSWindowsUpdate -Force -Confirm:$False 
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
Write-Host -ForegroundColor Yellow ">>> Checking for Available Updates... <<<"
 | 
			
		||||
Get-WindowsUpdate
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
# Installing Windows Updates
 | 
			
		||||
Write-Host -ForegroundColor Yellow ">>> Installing Windows Updates... <<<"
 | 
			
		||||
Install-WindowsUpdate -AcceptAll -Verbose -NoReboot
 | 
			
		||||
 | 
			
		||||
# Monitoring Update Installation
 | 
			
		||||
# Write-Host ""
 | 
			
		||||
# Get-WindowsUpdateLog
 | 
			
		||||
Install-WindowsUpdate -AcceptAll -Install -IgnoreReboot
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
##########################################################################################
 | 
			
		||||
@@ -620,47 +690,45 @@ Write-Host ""
 | 
			
		||||
# Get the directory of the currently executing script
 | 
			
		||||
$scriptDirectory = Split-Path -Parent $MyInvocation.MyCommand.Path
 | 
			
		||||
 | 
			
		||||
# bloatware-apps.txt path
 | 
			
		||||
$appsToRemove = Get-Content (Join-Path $scriptDirectory "bloatware-apps.txt")
 | 
			
		||||
# bloatware.txt path
 | 
			
		||||
$appsToRemove = Get-Content (Join-Path $scriptDirectory "bloatware.txt")
 | 
			
		||||
 | 
			
		||||
# Remove the specified apps from the list
 | 
			
		||||
foreach ($app in $appsToRemove) {
 | 
			
		||||
    try {
 | 
			
		||||
        winget uninstall --name $app -h | Out-Null
 | 
			
		||||
        winget uninstall --name $app | Out-Null
 | 
			
		||||
        # Check if the app was removed successfully
 | 
			
		||||
        if ($LASTEXITCODE -eq 0) {
 | 
			
		||||
            Write-Host "Removed: $app"
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            Write-Host "Not found: $app"
 | 
			
		||||
        }
 | 
			
		||||
    } catch {
 | 
			
		||||
        Write-Host "Error removing: $app. Details: $_"
 | 
			
		||||
        Write-Host -ForegroundColor Red "Error removing: $app. Details: $_"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
####################################################################################################################################
 | 
			
		||||
 | 
			
		||||
# Disable Microsoft 365 Ads in Settings Home
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Disabling Microsoft 365 Ads <<<"
 | 
			
		||||
# Registry path for disabling ads
 | 
			
		||||
$adsPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent"
 | 
			
		||||
 | 
			
		||||
$RegistryPaths = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent"
 | 
			
		||||
# Create the path if it doesn't exist
 | 
			
		||||
if (-not (Test-Path $adsPath)) {
 | 
			
		||||
    New-Item -Path $adsPath -Force | Out-Null
 | 
			
		||||
if (-not (Test-Path $RegistryPaths)) {
 | 
			
		||||
    New-Item -Path $RegistryPaths -Force | Out-Null
 | 
			
		||||
}
 | 
			
		||||
# Set the registry value to disable ads
 | 
			
		||||
Set-ItemProperty -Path $adsPath -Name "DisableConsumerAccountStateContent" -Value 1 -Type DWORD -Force | Out-Null
 | 
			
		||||
Set-ItemProperty -Path $RegistryPaths -Name "DisableConsumerAccountStateContent" -Value 1 -Type DWORD -Force | Out-Null
 | 
			
		||||
 | 
			
		||||
####################################################################################################################################
 | 
			
		||||
 | 
			
		||||
# Uninstall Microsoft Office
 | 
			
		||||
Write-Host ""
 | 
			
		||||
Write-Host -ForegroundColor Yellow ">>> Uninstallation of Microsoft Office <<<"
 | 
			
		||||
Start-Process "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" "https://aka.ms/SaRA-officeUninstallFromPC"
 | 
			
		||||
 | 
			
		||||
# >>>>>> https://pureinfotech.com/windows-11-policy-remove-bloatware/ <<<<<< 
 | 
			
		||||
#Write-Host -ForegroundColor Yellow ">>> From Windows 24H2, enable the policy "
 | 
			
		||||
#Write-Host ""
 | 
			
		||||
#Write-Host -ForegroundColor Magenta "Computer Configuration > Administrative Templates > Windows Components > App Package Deployment > 'Remove Default Microsoft Store packages from the system' "
 | 
			
		||||
#Write-Host ""
 | 
			
		||||
#Write-Host -ForegroundColor Yellow "to prevent bloatware from being installed for every user... <<<"
 | 
			
		||||
#Write-Host ""
 | 
			
		||||
 | 
			
		||||
##########################################################################################
 | 
			
		||||
#                                                                                        #
 | 
			
		||||
#                                       SOFTWARE                                         #
 | 
			
		||||
@@ -677,26 +745,26 @@ Write-Host ""
 | 
			
		||||
 | 
			
		||||
Write-Host -ForegroundColor Yellow ">>> Install default SOFTWARE... <<<"
 | 
			
		||||
Write-Host ""
 | 
			
		||||
winget install --disable-interactivity Microsoft.PowerShell SumatraPDF.SumatraPDF Oracle.JavaRuntimeEnvironment 7zip.7zip Microsoft.VCRedist.2010.x64 Mozilla.Firefox Notepad++.Notepad++ Flameshot.Flameshot --source winget
 | 
			
		||||
winget install --disable-interactivity SumatraPDF.SumatraPDF 7zip.7zip Mozilla.Firefox Notepad++.Notepad++ Flameshot.Flameshot --source winget
 | 
			
		||||
 | 
			
		||||
# NodirTemirkhodjaev.FortFirewall voidtools.Everything Flow-Launcher.Flow-Launcher AutoHotkey.AutoHotkey
 | 
			
		||||
# Microsoft.PowerShell NodirTemirkhodjaev.FortFirewall voidtools.Everything Flow-Launcher.Flow-Launcher AutoHotkey.AutoHotkey Oracle.JavaRuntimeEnvironment Microsoft.VCRedist.2010.x64
 | 
			
		||||
 | 
			
		||||
Write-Host -ForegroundColor DarkGray ">>> Copy 'Supremo' to Public Desktop <<<"
 | 
			
		||||
# Get the directory where the script is located
 | 
			
		||||
$scriptDirectory = Split-Path -Parent $MyInvocation.MyCommand.Path
 | 
			
		||||
# Define the path to the supremo executable
 | 
			
		||||
$supremo_path = Join-Path $scriptDirectory "supremo.exe"
 | 
			
		||||
####################################################################################################################################
 | 
			
		||||
 | 
			
		||||
#Write-Host -ForegroundColor DarkGray ">>> Copy 'Supremo' to Public Desktop <<<"
 | 
			
		||||
## Get the directory where the script is located
 | 
			
		||||
#$scriptDirectory = Split-Path -Parent $MyInvocation.MyCommand.Path
 | 
			
		||||
## Define the path to the supremo executable
 | 
			
		||||
#$supremo_path = Join-Path $scriptDirectory "supremo.exe"
 | 
			
		||||
#
 | 
			
		||||
#If (Test-Path $supremo_path ) {
 | 
			
		||||
#    Copy-Item -Path "$supremo_path" -Destination "C:\Users\Public\Desktop\supremo.exe"
 | 
			
		||||
#} else {
 | 
			
		||||
#    Write-Host -ForegroundColor Red "Error: File '$supremo_path' does not exist."
 | 
			
		||||
#}
 | 
			
		||||
 | 
			
		||||
If (Test-Path $supremo_path ) {
 | 
			
		||||
    Copy-Item -Path "$supremo_path" -Destination "C:\Users\Public\Desktop\supremo.exe"
 | 
			
		||||
} else {
 | 
			
		||||
    Write-Host -ForegroundColor Red "Error: File '$supremo_path' does not exist."
 | 
			
		||||
}
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
# Sleep for 30 seconds
 | 
			
		||||
Start-Sleep -Seconds 30
 | 
			
		||||
 | 
			
		||||
##########################################################################################
 | 
			
		||||
#                                                                                        #
 | 
			
		||||
#                                        End                                             #
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user