Site icon Gioxx.org

Win10Clean.ps1: uno script PowerShell per fare pulizia su Windows 10

Win10Clean.ps1: uno script PowerShell per fare pulizia su Windows 10 1

Windows 10 è definibile in tante maniere, c’è chi lo ama, c’è chi non vuole neanche sentirne parlare nonostante sia sul mercato già da più di due anni, e che in questo lasso di tempo sia molto cambiato. Di certo si tratta di un grande passo in avanti per Microsoft e per il modo di intendere il rilascio di un Sistema Operativo. C’è un susseguirsi di correzioni rapide, programmi di beta-testing che coinvolgono migliaia di utilizzatori, modifiche maggiori a cadenza semestrale, un sempre crescente interesse che gli gravita attorno e quella possibilità di aggiornare ancora oggi gratuitamente sistemi più datati.

Oggi però ti parlo di un passaggio fondamentale soprattutto in ambito aziendale, dove si tende a pulire il SO affinché non proponga all’utente finale applicazioni “di troppo (giochi, passatempi vari, ecc.), cosa che sull’ultimo nato di casa Microsoft viene bellamente ignorata.

Sul web ci sono decine di soluzioni, dalla più blanda a quella più cattiva e invasiva. Ci sono articoli che spiegano come procedere manualmente e quelli che ti fanno mettere le mani nel cofano passando da PowerShell. Io, per questione di abitudine e praticità, faccio parte del secondo gruppo, quello che se può demandare ad un automatismo qualcosa che va fatto sempre nella stessa maniera, sta meglio, perché evita possibili dimenticanze o distrazioni.

Ho quindi cercato di raccogliere le informazioni in merito alle applicazioni proposte da ogni neonato Windows 10, ho fatto diversi test e ho “impacchettato” una soluzione avviabile tramite PowerShell che può essere sempre tenuta a portata di mano, facilmente trasportabile su chiave USB, quella che forse hai già per tenere da parte applicazioni “portabili” che tornano sempre utili. Partendo dall’ottima base delle fonti che non ho mancato di riportare nei commenti del codice sorgente, ho pubblicato su Gist questo PS1 che puoi eseguire (come amministratore, tranne che per la funzione Silent di cui ti parlo dopo) sulla macchina che ti interessa, anche prima di un SysPrep:

<#
WINDOWS 10: Remove Default App Packages (pre-installed)
----------------------------------------------------------------------------------------------------------------
Autore: GSolone
Utilizzo: .\Win10Clean.ps1 -Clean
(opzionale) .\Win10Clean.ps1 -Restore
opzionale, passaggio dati da prompt) .\Win10Clean.ps1 -Silent disable
opzionale, passaggio dati da prompt) .\Win10Clean.ps1 -Silent enable
Versione: 0.4
Info: https://gioxx.org/tag/powershell/
Ultima modifica: 06-03-2018
Fonti utilizzate: http://ccmexec.com/2015/08/removing-built-in-apps-from-windows-10-using-powershell/
https://insidewindows.net/2016/08/24/how-to-stop-windows-10-1607-from-installing-unwanted-apps/
https://windows.gadgethacks.com/how-to/goodbye-bloatware-remove-all-preinstalled-crapware-from-window-10-0164605/
https://blogs.technet.microsoft.com/heyscriptingguy/2015/04/02/update-or-add-registry-key-value-with-powershell/
https://community.spiceworks.com/scripts/show/3977-windows-10-decrapifier-version-2
Modifiche:
0.4- rimosso lo switch -StartMenu, può essere causa di malfunzionamento dell'icona "Impostazioni". Ho aggiornato la lista delle applicazioni da disinstallare. Nella fase di rimozione pacchetti, inserito -ErrorAction SilentlyContinue per procedere senza notificare errori a video.
0.3 rev1- aggiunto il -StartMenu alla lista dei comandi mostrati in caso di avvio script senza parametri da prompt.
0.3- aggiunti nuovi programmi da rimuovere. Ho anche aggiunto la verifica di utilizzo di almeno un parametro (altrimenti mostra a video cosa fare).
0.2- ho aggiornato lo script (ora pubblicamente distribuito) per comprendere nuove applicazioni rilasciate nella Creators Update (1703), per ripristinarne le cancellate e per bloccare future distribuzioni "Silent". Permette inoltre di impostare un menu di Start pulito per i nuovi utenti creati sulla macchina (non ha effetto sugli utenti già presenti).
#>
#Verifica parametri da prompt
Param(
[switch] $Clean,
[switch] $Restore,
[string] $Silent
)
<# ----------------------------------------------------------------------------------------------------------------
Modifiche al registro, per evitare installazione Silent di nuove applicazioni.
Vedi: https://insidewindows.net/2016/08/24/how-to-stop-windows-10-1607-from-installing-unwanted-apps/
---------------------------------------------------------------------------------------------------------------- #>
if ( [string]::IsNullOrEmpty($Silent) -eq $False ) {
if ($Silent -eq "disable") {
# Blocco installazione applicazioni suggerite
$registryPath = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager"
$Name = "SilentInstalledAppsEnabled"
$value = "0"
if (!(Test-Path $registryPath)) {
New-Item -Path $registryPath -Force | Out-Null
New-ItemProperty -Path $registryPath -Name $name -Value $value `
-PropertyType DWORD -Force | Out-Null
} else {
New-ItemProperty -Path $registryPath -Name $name -Value $value `
-PropertyType DWORD -Force | Out-Null
}
Write-Host "SilentInstalledAppsEnabled disabilitato" -f "Red"
Write-Host "Non riceverai automaticamente ulteriori pacchetti suggeriti"
}
if ($Silent -eq "enable") {
# Ripristino installazione applicazioni suggerite
$registryPath = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager"
$Name = "SilentInstalledAppsEnabled"
$value = "1"
if (!(Test-Path $registryPath)) {
New-Item -Path $registryPath -Force | Out-Null
New-ItemProperty -Path $registryPath -Name $name -Value $value `
-PropertyType DWORD -Force | Out-Null
} else {
New-ItemProperty -Path $registryPath -Name $name -Value $value `
-PropertyType DWORD -Force | Out-Null
}
Write-Host "SilentInstalledAppsEnabled abilitato" -f "Green"
Write-Host "Riceverai automaticamente i prossimi pacchetti suggeriti"
}
}
<# ----------------------------------------------------------------------------------------------------------------
Se non è richiesta una diversa operazione, parto con la pulizia
applicazioni installate di default (o in seguito ad upgrade di sistema).
---------------------------------------------------------------------------------------------------------------- #>
if ($Clean) {
$AppsList = "46928bounde.EclipseManager", # Eclipse Manager
"89006A2E.AutodeskSketchBook", # Autodesk SketchBook
"A278AB0D.MarchofEmpires", # Gameloft March of Empires
"AMZNMobileLLC.KindleforWindows8", # Kindle for Windows 8 (possibile eredità Windows 8)
"AccuWeather.AccuWeatherforWindows8", # AccuWeather (possibile eredità Windows 8)
"AdobeSystemsIncorporated.AdobePhotoshopExpress", # Photoshop Express
"CAF9E577.Plex", # Plex
"D5EA27B7.Duolingo-LearnLanguagesforFree", # Duolingo
"HoloCamera", # Holo Lens
"HoloItemPlayerApp", # Holo Lens
"HoloShell", # Holo Lens
"KeeperSecurityInc.Keeper", # Keeper Password Manager
"Microsoft.3DBuilder", # Microsoft 3D Builder
"Microsoft.BingFinance", # Bing Finance
"Microsoft.BingFoodAndDrink", # Bing Food and Drink
"Microsoft.BingHealthAndFitness", # Bing Health and Fitness
"Microsoft.BingNews", # Microsoft BingNew (MSN Notizie)
"Microsoft.BingSports", # Bing Sports
"Microsoft.BingTravel", # Bing Travel
"Microsoft.Getstarted", # Suggerimenti di utilizzo di Windows 10
"Microsoft.Messaging", # Microsoft Messaging
"Microsoft.Microsoft3DViewer", # Microsoft 3D Viewer
"Microsoft.MicrosoftOfficeHub", # Collegamento per ottenere Office
"Microsoft.MicrosoftSolitaireCollection", # Microsoft Solitaire Collection
"Microsoft.MinecraftUWP", # Minecraft
"Microsoft.Office.OneNote", # OneNote in versione App Desktop Windows 10
"Microsoft.Office.Sway", # Microsoft Office Sway
"Microsoft.People", # Contatti
"Microsoft.Print3D", # Microsoft Print 3D
"Microsoft.Windows.HolographicFirstRun", # Holo Lens
"Microsoft.WindowsCommunicationsApps", # Applicazioni integrate per Mail & Calendar
"Microsoft.XboxApp", # Xbox
"Microsoft.ZuneMusic", # Microsoft Zune Music (Groove)
"Microsoft.ZuneMusic", # Groove Musica
"Microsoft.ZuneVideo", # Microsoft Zune Video
"Windows.MiracastView", # Miracast View
"king.com.BubbleWitch3Saga", # Bubble Witch 3 Saga
"king.com.CandyCrushSodaSaga" # Candy Crush Soda Saga
ForEach ($App in $AppsList) {
# Rimozione pacchetti per utente connesso
$Packages = Get-AppxPackage -AllUsers | Where-Object {$_.Name -eq $App}
if ($Packages -ne $null) {
"Removing Appx Package: $App"
foreach ($Package in $Packages) {
Remove-AppxPackage -package $Package.PackageFullName -ErrorAction SilentlyContinue
}
} else { "Unable to find local package: $App" }
# Rimozione pacchetti provisioned (per nuovi utenti sulla macchina)
$ProvisionedPackage = Get-AppxProvisionedPackage -Online | Where-Object {$_.displayName -eq $App}
if ($ProvisionedPackage -ne $null) {
"Removing Appx Provisioned Package: $App"
Remove-AppxProvisionedPackage -Online -PackageName $ProvisionedPackage.PackageName -ErrorAction SilentlyContinue
} else { "Unable to find provisioned package: $App" }
}
<# ----------------------------------------------------------------------------------------------------------------
Se proprio necessario, puoi sempre reinstallare le applicazioni predefinite di sistema
Vedi: https://windows.gadgethacks.com/how-to/goodbye-bloatware-remove-all-preinstalled-crapware-from-window-10-0164605/
https://blogs.technet.microsoft.com/heyscriptingguy/2015/04/02/update-or-add-registry-key-value-with-powershell/
---------------------------------------------------------------------------------------------------------------- #>
} elseif ($Restore) {
Write-Host "Ripristino applicazioni pre-installate ..." -f "Yellow"
Get-AppxPackage -AllUsers | Foreach { Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml" }
<# ----------------------------------------------------------------------------------------------------------------
Modifico il menu di Start per ogni nuovo account creato sulla macchina
Vedi: https://community.spiceworks.com/scripts/show/3977-windows-10-decrapifier-version-2
---------------------------------------------------------------------------------------------------------------- #>
} else {
if ( [string]::IsNullOrEmpty($Silent) ) {
Write-Host "Rilancia lo script utilizzando almeno un parametro tra quelli disponibili:"
Write-Host " -Clean" -nonewline -f "Yellow"; Write-Host ": per lanciare la pulizia programmi di default"
Write-Host " -Silent enable" -nonewline -f "Yellow"; Write-Host ": per permettere a Windows di installare nuovi programmi suggeriti"
Write-Host " -Silent disable" -nonewline -f "Yellow"; Write-Host ": per impedire a Windows di installare nuovi programmi suggeriti"
Write-Host " -Restore" -nonewline -f "Yellow"; Write-Host ": per ripristinare le applicazioni installate di default"
""
}
}
view raw Win10Clean.ps1 hosted with ❤ by GitHub

3 le modalità di esecuzione dello script (più una di recupero):

Fuori da queste funzioni principali, resta il parametro di Restore (Win10Clean.ps1 -Restore), il quale permette di ripristinare l’installazione delle applicazioni incluse di default in Windows 10, precedentemente rimosse e messe in soffitta tramite il -Clean. Da quel momento in poi, potrai facilmente recuperare e installare ciò che proprio ti manca e di cui ti sei accorto di non poter fare a meno.

Ricorda che potrai sempre dare un’occhiata ai pacchetti applicativi installati a bordo macchina tramite PowerShell, lanciando il comando Get-AppxPackage | ft Name (il “ft Name” ti permette di isolare solo i nomi senza essere invaso da altre informazioni), e potrai rimuovere qualunque di questi con il comando Remove-AppxPackage -package $nomedelpacchetto (dove $nomedelpacchetto andrà sostituito con uno dei nomi precedentemente ottenuti), questa operazione varrà esclusivamente per il tuo account utente.

Puoi saperne di più su questo argomento, consultando le fonti utilizzate per la stesura del codice PowerShell e di questo articolo:

Il mio codice viene rilasciato as-is ed è stato testato più volte su diverse macchine con a bordo Windows 10 Professional in lingua italiana (versioni 1607 o 1703), senza rilevare problema alcuno. Presta comunque attenzione a quello che fai e a cosa modifichi nel codice, sempre. Questo argomento va un po’ a riprendere e completare ciò che inizialmente avevo scritto in merito, pubblicando una rapida pillola sulla disinstallazione di Groove Musica.

Buon lavoro! :-)

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Condividi l'articolo con i tuoi contatti:
Exit mobile version