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" | |
"" | |
} | |
} |
3 le modalità di esecuzione dello script (più una di recupero):
Win10Clean.ps1 -Clean
: permette di lanciare la pulizia del sistema. Toglie le applicazioni molto probabilmente inutili per una postazione di lavoro classica, l’elenco si trova nella prima parte dello script e comprende –tra le varie– le applicazioni di Bing (Viaggi, Cibo, Finanza, Sport, ecc.), il programma integrato di posta elettronica e calendario, Groove Musica (ex Zune Music) e Xbox, Minecraft, Candy Crush Saga e altro ancora.Win10Clean.ps1 -StartMenu
: permette di impostare un template del menu Start da utilizzare quando un nuovo utente si collegherà alla macchina (per la prima volta), dandoti la possibilità di crearne uno pulito ed essenziale. Nello script ho mantenuto parzialmente quanto fatto da csand, lasciando solo il collegamento all’Esplora Risorse e allo strumento di cattura immagini.Win10Clean.ps1 -Silent
(enable / disable): permette di disattivare (o riattivare) l’installazione di nuove applicazioni suggerite da Microsoft e rilasciate tramite lo Store ufficiale. Trovi maggiori informazioni in questo articolo, si tratta di un comportamento introdotto in Windows 1607 e mantenuto in 1703 (quindi anche nella prossima 1709), che lascia una porta aperta a Microsoft, la quale potrà scegliere cosa far entrare secondo suo gusto, non tuo. LanciaWin10Clean.ps1 -Silent disable
(da utente, non quindi da amministratore) per bloccare questo comportamento. Puoi riabilitarlo in qualsiasi momento tramite unWin10Clean.ps1 -Silent enable
.
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:
- ccmexec.com/2015/08/removing-built-in-apps-from-windows-10-using-powershell
- insidewindows.net/2016/08/24/how-to-stop-windows-10-1607-from-installing-unwanted-apps
- windows.gadgethacks.com/how-to/goodbye-bloatware-remove-all-preinstalled-crapware-from-window-10-0164605
- blogs.technet.microsoft.com/heyscriptingguy/2015/04/02/update-or-add-registry-key-value-with-powershell
- community.spiceworks.com/scripts/show/3977-windows-10-decrapifier-version-2
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! :-)
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! :-)