Month: November 2015

Windows 10 – Privacy settings – Automated

There has been quite some interest in the general privacy settings of the different applications and systems that we use in our daily life. Windows 10 is no exception to this, as Microsoft now by default, has chosen for you that you are very interested in sharing your traffic information with them. You can of course disable this tracking, however it is not always obvious how to do so. Once again my friend Mads Hjort Larsen has created a script to automate these privacy settings for you.

Have a look at the section “What should be changed” and make sure you change accordingly. ($false or $true)

Also note that once again WordPress has decided to mess with the formatting/syntax highlighting of the script. That is also why the third link in the comment section is surround by apostrophes.

<#
.SYNOPSIS
    This script automates the changing of a lot of settings that are otherwise hard or tedious to change.
.DESCRIPTION
    This script consolidates a lot of Windows registry changes and changes to other operating system settings, 
    that affect the appearance and functionality of the Windows 10 operating system, with the intent of making
    it more userfriendly and increasing the privacy.
.EXAMPLE
    win10privacy.ps1
.NOTES
    Created by Mads Hjort Larsen
    email: mads.hjort.larsen@gmail.com
.LINK
    
.LINK
    http://pastebin.com/xq96nBGj
.LINK
    'https://gist.github.com/NickCraver/7ebf9efbfd0c3eab72e9/'
.LINK
    
My Windows 10 Tweaks
#> # What should be changed: [bool]$privacySettings = $true # change the settings related to privacy [bool]$removeSoftware = $false # remove Cortana, OneDrive and Metro Apps [bool]$windowsUpdates = $false # setup updates to NOT automatically reboot or download via P2P [bool]$UIsettings = $false # make win 10 look more like win 7/8/8.1 ########### DO NOT EDIT BELOW THIS LINE ################################# Clear-Host # http://blogs.technet.com/b/heyscriptingguy/archive/2011/05/11/check-for-admin-credentials-in-a-powershell-script.aspx If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")){ Write-Warning "You do not have the Admin rights neccessary to run this script!`nPlease re-run this script as an Administrator!" Exit } # http://webcache.googleusercontent.com/search?q=cache:FjmfLRRqNb4J:https://fortheloveofcode.wordpress.com/2008/06/08/what-no-hkcr-in-powershell/+&cd=1&hl=en&ct=clnk&gl=dk New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT if($privacySettings -eq $true){ # Disable Cortana New-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search' -Name AllowCortana -PropertyType DWORD -Value 0 -ErrorAction SilentlyContinue # Disable Data Logging Services Get-Service diagtrack,dmwappushservice,RetailDemo | Stop-Service -PassThru | Set-Service -StartupType disabled New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection -Name AllowTelemetry -PropertyType DWORD -Value 0 -Force New-ItemProperty -Path HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\DataCollection -Name AllowTelemetry -PropertyType DWORD -Value 0 -Force # Disable relevant scheduled tasks schtasks /change /TN "\Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser" /DISABLE schtasks /change /TN "\Microsoft\Windows\Application Experience\ProgramDataUpdater" /DISABLE schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" /DISABLE schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" /DISABLE schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" /DISABLE # Erase the contents of AutoLogger-Diagtrack-Listener.etl echo "" > C:\ProgramData\Microsoft\Diagnosis\ETLLogs\AutoLogger\AutoLogger-Diagtrack-Listener.etl # Edit Hosts File # http://www.dslreports.com/forum/r30222844-Stop-Windows-10-From-Spying-On-You-36-DNS-Addresses-to-host-file $hostsPath = "$env:windir\System32\drivers\etc\hosts" $hosts = get-content $hostsPath [array]$urls = @( "a-0001.a-msedge.net" "a978.i6g1.akamai.net" "americas2.notify.windows.com.akadns.net" "any.edge.bing.com" "bl3302.storage.live.com" "bl3302geo.storage.dkyprod.akadns.net" "BN1WNS2011508.wns.windows.com" "choice.microsoft.com" "choice.microsoft.com.nsatc.net" "client.wns.windows.com" "compatexchange.cloudapp.net" "corp.sts.microsoft.com" "corpext.msitadfs.glbdns2.microsoft.com" "cs1.wpc.v0cdn.net" "df.telemetry.microsoft.com" "diagnostics.support.microsoft.com" "directory.services.live.com" "directory.services.live.com.akadns.net" "dns.msftncsi.com" "en-us.appex-rf.msn.com" "fe2.update.microsoft.com.akadns.net" "fe3.delivery.dsp.mp.microsoft.com.nsatc.net" "fe3.delivery.mp.microsoft.com" "feedback.microsoft-hohm.com" "feedback.search.microsoft.com" "feedback.windows.com" "i1.services.social.microsoft.com" "i1.services.social.microsoft.com.nsatc.net" "ipv6.msftncsi.com" "ipv6.msftncsi.com.edgesuite.net" "login.live.com" "login.live.com.nsatc.net" "oca.telemetry.microsoft.com" "oca.telemetry.microsoft.com.nsatc.net" "OneSettings-bn2.metron.live.com.nsatc.net" "pre.footprintpredict.com" "redir.metaservices.microsoft.com" "register.mesh.com" "reports.wes.df.telemetry.microsoft.com" "services.wes.df.telemetry.microsoft.com" "settings.data.glbdns2.microsoft.com" "settings-sandbox.data.microsoft.com" "settings-win.data.microsoft.com" "skyapi.live.net" "skyapi.skyprod.akadns.net" "skydrive.wns.windows.com" "sls.update.microsoft.com.akadns.net" "sqm.df.telemetry.microsoft.com" "sqm.telemetry.microsoft.com" "sqm.telemetry.microsoft.com.nsatc.net" "ssw.live.com" "ssw.live.com.nsatc.net" "statsfe1.ws.microsoft.com" "statsfe2.update.microsoft.com.akadns.net" "statsfe2.ws.microsoft.com" "survey.watson.microsoft.com" "telecommand.telemetry.microsoft.com" "telecommand.telemetry.microsoft.com.nsatc.net" "telemetry.appex.bing.net" "telemetry.appex.bing.net:443" "telemetry.microsoft.com" "telemetry.urs.microsoft.com" "travel.tile.appex.bing.com" "v10.vortex-win.data.metron.life.com.nsatc.net" "v10.vortex-win.data.microsoft.com" "vortex.data.microsoft.com" "vortex-sandbox.data.microsoft.com" "vortex-win.data.microsoft.com" "watson.live.com" "watson.microsoft.com" "watson.ppe.telemetry.microsoft.com" "watson.telemetry.microsoft.com" "watson.telemetry.microsoft.com.nsatc.net" "wes.df.telemetry.microsoft.com" "wildcard.appex-rf.msn.com.edgesuite.net" "win10.ipv6.microsoft.com" "win10.ipv6.microsoft.com.nsatc.net" "wns.notify.windows.com.akadns.net" ) foreach($url in $urls){ $hostLine = '0.0.0.0 '+$url if ($hosts -notcontains $hostLine){ $newHosts = $hosts+$hostLine $newHosts | Out-File $hostsPath -Force } } # WiFi Sense: HotSpot Sharing: Disable Set-ItemProperty -Path HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowWiFiHotSpotReporting -Name value -Type DWORD -Value 0 # WiFi Sense: Shared HotSpot Auto-Connect: Disable Set-ItemProperty -Path HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowAutoConnectToWiFiSenseHotspots -Name value -Type DWORD -Value 0 # Start Menu: Disable Bing Search Results Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search -Name BingSearchEnabled -Type DWORD -Value 0 # Privacy: Disable Edge suggestions Set-ItemProperty -Path HKL:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\SearchScopes -Name ShowSearchSuggestionsGlobal -Type DWORD -Value 0 # Privacy: Let apps use my advertising ID: Disable Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo -Name Enabled -Type DWORD -Value 0 # Privacy: SmartScreen Filter for Store Apps: Disable Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppHost -Name EnableWebContentEvaluation -Type DWORD -Value 0 } if($removeSoftware -eq $true){ # Uninstall OneDrive Stop-Process -ProcessName *OneDrive* if(Test-Path "$env:windir\SysWOW64\OneDriveSetup.exe" -eq $true){Start-Process "$env:windir\SysWOW64\OneDriveSetup.exe" -ArgumentList '/uninstall' -Wait} else{Start-Process "$env:windir\System32\OneDriveSetup.exe" -ArgumentList '/uninstall' -Wait} Stop-Process -ProcessName *OneDrive* Remove-Item "%USERPROFILE%\OneDrive" -Recurse -Force Remove-Item "C:\OneDriveTemp" -Recurse -Force Remove-Item "%LOCALAPPDATA%\Microsoft\OneDrive" -Recurse -Force Remove-Item "%PROGRAMDATA%\Microsoft OneDrive" -Recurse -Force # Remove Cortana Get-Process -Name *cortana* | Stop-Process Get-AppxPackage -AllUsers | ? {$_.Name -match 'Cortana'} | Remove-AppxPackage -ErrorAction SilentlyContinue #region Windows 10 Metro App Removals # Be gone, heathen! Get-AppxPackage king.com.CandyCrushSaga | Remove-AppxPackage # Bing Weather, News, Sports, and Finance (Money): Get-AppxPackage Microsoft.BingWeather | Remove-AppxPackage Get-AppxPackage Microsoft.BingNews | Remove-AppxPackage Get-AppxPackage Microsoft.BingSports | Remove-AppxPackage Get-AppxPackage Microsoft.BingFinance | Remove-AppxPackage # Xbox: Get-AppxPackage Microsoft.XboxApp | Remove-AppxPackage # Windows Phone Companion Get-AppxPackage Microsoft.WindowsPhone | Remove-AppxPackage # Solitaire Collection Get-AppxPackage Microsoft.MicrosoftSolitaireCollection | Remove-AppxPackage # People Get-AppxPackage Microsoft.People | Remove-AppxPackage # Groove Music Get-AppxPackage Microsoft.ZuneMusic | Remove-AppxPackage # Movies & TV Get-AppxPackage Microsoft.ZuneVideo | Remove-AppxPackage # OneNote Get-AppxPackage Microsoft.Office.OneNote | Remove-AppxPackage # Photos Get-AppxPackage Microsoft.Windows.Photos | Remove-AppxPackage # Sound Recorder Get-AppxPackage Microsoft.WindowsSoundRecorder | Remove-AppxPackage # Mail & Calendar Get-AppxPackage microsoft.windowscommunicationsapps | Remove-AppxPackage # Skype (Metro version) Get-AppxPackage Microsoft.SkypeApp | Remove-AppxPackage #endregion } if($windowsUpdates -eq $true){ # Change Windows Updates to "Notify to schedule restart" # https://social.technet.microsoft.com/Forums/en-US/b8bf6607-99a0-441b-ab5f-f699ead7a56f/how-to-stop-windows-10-from-automatically-restarting?forum=WinPreview2014Feedback Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update' -Name AUOptions -Type DWORD -Value 4 # http://www.download3k.com/articles/How-to-Configure-Windows-Updates-in-Windows-10-01365 New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name WindowsUpdate New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate -Name AU New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU -Name AUOptions -Type DWORD -Value 4 -Force # Disable P2P Update downloads outside of local network Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config -Name DODownloadMode -Type DWORD -Value 1 Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization -Name SystemSettingsDownloadMode -Type DWORD -Value 3 # To disable P2P update downloads completely: #Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config -Name DODownloadMode -Type DWORD -Value 0 } if($UIsettings -eq $true){ # Change Explorer home screen back to "This PC" Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name LaunchTo -Type DWORD -Value 1 # Disable Quick Access: Recent Files Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer -Name ShowRecent -Type DWORD -Value 0 # Disable Quick Access: Frequent Folders Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer -Name ShowFrequent -Type DWORD -Value 0 # Disable the Lock Screen (the one before password prompt - to prevent dropping the first character) If (-Not (Test-Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization)) {New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name Personalization | Out-Null} Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization -Name NoLockScreen -Type DWORD -Value 1 # Use the Windows 7-8.1 Style Volume Mixer If (-Not (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MTCUVC")) {New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name MTCUVC | Out-Null} Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MTCUVC" -Name EnableMtcUvc -Type DWORD -Value 0 # Remove folders from MyPC # https://pricklytech.wordpress.com/2013/10/17/windows-8-1-x64-removing-the-folders-from-file-explorer/ Remove-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{1CF1260C-4DD0-4ebb-811F-33C572699FDE}" -Force # Music Remove-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{374DE290-123F-4565-9164-39C4925E467B}" -Force # Downloads Remove-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3ADD1653-EB32-4cb0-BBD7-DFA0ABB5ACCA}" -Force # Pictures Remove-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A0953C92-50DC-43bf-BE83-3742FED03C9C}" -Force # Videos Remove-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}" -Force # Documents Remove-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99428e115f}" -Force # Downloads Remove-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}" -Force # Pictures Remove-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}" -Force # Music Remove-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}" -Force # Desktop Remove-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}" -Force # Documents Remove-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}" -Force # Videos # Remove OneDrive from the Explorer Side Panel. Remove-Item "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" -Force -Recurse Remove-Item "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" -Force -Recurse # Remove Compressed file/folder Remove-Item "HKCR:\CABFolder\CLSID" -Force -Recurse Remove-Item "HKCR:\CompressedFolder\CLSID" -Force -Recurse Remove-Item "HKCR:\SystemFileAssociations\.cab\CLSID" -Force -Recurse Remove-Item "HKCR:\SystemFileAssociations\.zip\CLSID" -Force -Recurse # Explorer: Show all folders New-ItemProperty -path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name NavPaneShowAllFolders -PropertyType DWORD -Value 1 # Explorer: Show file extensions New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name HideFileExt -PropertyType DWORD -Value 0 # Explorer: Show hidden files New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name Hidden -PropertyType DWORD -Value 1 # Taskbar: Show all icons in taskbar New-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer -Name EnableAutoTray -PropertyType DWORD -Value 0 New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name NavPaneShowAllFolders -PropertyType DWORD -Value 1 # Taskbar: Hide Task View Button New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name ShowTaskViewButton -PropertyType DWORD -Value 0 # Taskbar: Hide Search New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search -Name SearchboxTaskbarMode -PropertyType DWORD -Value 0 # Bring back old Windows Update control panel app # http://answers.microsoft.com/en-us/insider/forum/insider_wintp-insider_update/need-the-old-windows-update-not-the-new-windows/35bc83a7-3aa9-4408-b189-4aa2777e4e11 Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX -Name IsConvergedUpdateStackEnabled -Value 0 -Force Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings -Name UxOption -Value 0 -Force # Titlebar: Enable accent colors # http://www.intowindows.com/how-to-change-title-bar-color-in-windows-10/ Copy-Item -Path $env:windir\Resources\Themes\aero -Recurse -Destination $env:windir\Resources\Themes\windows -Force -ErrorAction SilentlyContinue Get-ChildItem -Path $env:windir\Resources\Themes\windows -Filter "aero.msstyles*" -Recurse | Rename-Item -NewName {$_.name -replace 'aero','windows' } (Get-Content $env:windir\Resources\Themes\aero.theme).Replace('Path=%ResourceDir%\Themes\Aero\Aero.msstyles', 'Path=%ResourceDir%\Themes\windows\windows.msstyles') | Set-Content $env:TEMP\windows.theme Start-Process $env:TEMP\windows.theme -Wait (New-Object -comObject Shell.Application).Windows() | where-object {$_.LocationName -eq "Personalization"} | foreach-object {$_.quit()} Remove-Item $env:TEMP\windows.theme } # Finishing touches Write-Host "Please make sure you do the following as well:`nSelect Never in the first box, and Basic in the second box" start ms-settings:privacy-feedback