# Windows 10 Sophia Script
**A PowerShell module for Windows 10 fine-tuning and automating the routine tasks** :trophy:
Available in:
[![download](https://i.imgur.com/U8gicyY.png)](https://github.com/farag2/Windows-10-Sophia-Script/releases/latest)
***
[![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/Q5Q51QUJC)
***
•
Screenshots
•
Videos
•
Core features
•
How to use
•
How to translate
•
Supported Windows 10 versions
•
Changelog
***
## :fire: Before running :fire:
* Due to the fact that the script includes more than **150** functions with different arguments, you must read the entire **Sophia.ps1** carefully and **comment out/uncomment** those functions that you do/do not want to be executed. Every tweak in the preset file has its' corresponding function to **restore the default settings**.
* Running the script is best done on a fresh install because running it on **wrong** tweaked system may result in errors occurring.
## Supported Windows 10 versions
|Version| Marketing name | Build | Arch | Editions | Script version |
|:-----:|:-------------------:|:-----:|:----:|:-----------------:|:--------------:|
| 21H1 | May 2021 Update | 19043 | x64 |Home/Pro/Enterprise|[5.10.3](https://github.com/farag2/Windows-10-Sophia-Script/releases/latest)|
| 20H2 | October 2020 Update | 19042 | x64 |Home/Pro/Enterprise|[5.10.3](https://github.com/farag2/Windows-10-Sophia-Script/releases/latest)|
| 2004 | May 2020 Update | 19041 | x64 |Home/Pro/Enterprise|[5.10.3](https://github.com/farag2/Windows-10-Sophia-Script/releases/latest)|
| 1809 | LTSC Enterprise 2019| 17763 | x64 | Enterprise |[5.2.3](https://github.com/farag2/Windows-10-Sophia-Script/releases/latest)|
## Screenshots
### The TAB autocomplete. Read more [here](#how-to-run-the-specific-functions)
![Image](./img/Autocomplete.gif)
### Change user folders location programmatically using the interactive menu
![Image](https://i.imgur.com/xe0PgFL.png)
### Localized UWP apps names
![Image](https://i.imgur.com/xeiBbes.png) ![Image](https://i.imgur.com/0zj0h2S.png)
### Localized Windows features names
![Image](https://i.imgur.com/uwJ2bqD.png) ![Image](https://i.imgur.com/ybdlLcf.png)
### David's Sophia Script Wrapper
![Image](https://i.imgur.com/M6jti1d.png)
### Native interactive toasts for the "Windows Cleanup" scheduled task
![Image](https://i.imgur.com/jornXGR.png)
![Image](https://i.imgur.com/9s7Noud.png)
## Videos
[![YT](https://img.youtube.com/vi/f529ucAipI8/0.jpg)](https://youtu.be/f529ucAipI8) [![YT](https://img.youtube.com/vi/MiQ85tVXQQA/0.jpg)](https://youtu.be/MiQ85tVXQQA)
[![YT](https://img.youtube.com/vi/8E6OT_QcHaU/1.jpg)](https://youtu.be/8E6OT_QcHaU?t=370) [![YT](https://img.youtube.com/vi/091SOihvx0k/1.jpg)](http://youtu.be/091SOihvx0k?t=490)
## Core features
* Set up Privacy & Telemetry;
* Turn off diagnostics tracking scheduled tasks with pop-up form written in [WPF](#Screenshots);
* Set up UI & Personalization;
* Uninstall OneDrive "correctly";
* Interactive [prompts](#change-user-folders-location-programmatically-using-the-interactive-menu);
* The [TAB](#the-tab-autocomplete-read-more-here) completion for functions and their arguments (if using the Functions.ps1 file);
* Change %TEMP% environment variable path to %SystemDrive%\Temp
* Change location of the user folders programmatically (without moving user files) within interactive menu using arrows to select a drive
* "Desktop";
* "Documents";
* "Downloads";
* "Music";
* "Pictures"
* "Videos.
* Uninstall UWP apps displaying packages names;
* Generate installed UWP apps list dynamically
* Restore the default uninstalled UWP apps for current user displaying [localized](#localized-uwp-apps-names) packages names;
* The TAB [autocompletion](#the-tab-autocomplete-read-more-here) for function and its' arguments by typing first letters
* Disable Windows features displaying friendly packages names with pop-up form written in [WPF](#Screenshots);
* Uninstall Windows capabilities displaying friendly packages names with pop-up form written in [WPF](#Screenshots);
* Download and install the [HEVC Video Extensions from Device Manufacturer](https://www.microsoft.com/p/hevc-video-extensions-from-device-manufacturer/9n4wgh0z6vhq) from Microsoft server using parser to be able to open .heic and .heif formats;
* Register app, calculate hash, and set as default for specific extension without the "How do you want to open this" pop-up using special [function](https://github.com/DanysysTeam/PS-SFTA);
* Install and setup WSL
* Create a `Windows Cleanup` and `Windows Cleanup Notification` scheduled tasks for Windows cleaning up unused files and updates;
* A native toast notification will be displayed where you can choose to snooze, run the cleanup task or [dismiss](#native-interactive-toasts-for-the-windows-cleanup-scheduled-task)
* Create tasks in the Task Scheduler to clear
* `%SystemRoot%\SoftwareDistribution\Download`
* `%TEMP%`
* Pin shortcuts to Start via pure PowerShell
* Three shortcuts are pre-configured to be pinned: Control Panel, "old style" Devices and Printers, and Windows PowerShell
* Unpin all Start menu tiles;
* Turn on Controlled folder access and add protected folders using dialog menu;
* Add exclusion folder from Microsoft Defender Antivirus scanning using dialog menu;
* Add exclusion file from Microsoft Defender Antivirus scanning using dialog menu;
* Refresh desktop icons, environment variables and taskbar without restarting File Explorer;
* Setup Windows 10 security;
* Many more File Explorer and context menu "deep" tweaks.
## How to use
* Choose the right script version for your Windows 10;
* Download [up-to-date version](https://github.com/farag2/Windows-10-Sophia-Script/releases/latest);
* Expand the archive;
* Open folder with the expanded archive;
* Look through the `Sophia.ps1` file to configure functions that you want to be run;
* Place the "#" char before function if you don't want it to be run;
* Remove the "#" char before function if you want it to be run.
* Click "File" in File Explorer, hover over "Open Windows PowerShell", and select "Open Windows PowerShell as Administrator" [(how-to with screenshots)](https://www.howtogeek.com/662611/9-ways-to-open-powershell-in-windows-10/);
* Set execution policy to be able to run scripts only in the current PowerShell session
```powershell
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
```
* Type `.\Sophia.ps1` Enter to run the whole preset file.
***
### How to run the specific function(s)
To run the specific function(s) [dot source](https://docs.microsoft.com/ru-ru/powershell/module/microsoft.powershell.core/about/about_operators#dot-sourcing-operator-) the `Functions.ps1` file first:
```powershell
# With a dot at the beginning
. .\Functions.ps1
```
* Now you can do like this (the quotation marks required)
```powershell
Sophia -Functions
Sophia -Functions temp
Sophia -Functions unin
Sophia -Functions uwp
Sophia -Functions "DiagTrackService -Disable", "DiagnosticDataLevel -Minimal", UninstallUWPApps
UninstallUWPApps, "PinToStart -UnpinAll"
```
Or use an old-style format without the TAB functions autocomplete (the quotation marks required)
```powershell
.\Sophia.ps1 -Functions CreateRestorePoint, "ScheduledTasks -Disable", "WindowsCapabilities -Uninstall"
```
***
* Regardless of the functions entered as an argument the `Checkings` function will be executed first, and the `Refresh` and `Errors` functions will be executed at the end.
## How to translate
* Get your OS UI culture by `$PSUICulture`.
* Create a folder with the UI culture name;
* Place your localized Sophia.psd1 file into this folder.
## Ask a question on
* [Telegram](https://t.me/sophia_chat)
* [Ru-Board](http://forum.ru-board.com/topic.cgi?forum=62&topic=30617#15)
* [rutracker](https://rutracker.org/forum/viewtopic.php?t=5996011)
* [My Digital Life](https://forums.mydigitallife.net/threads/powershell-windows-10-sophia-script.81675/)
* [Reddit (archived)](https://www.reddit.com/r/PowerShell/comments/go2n5v/powershell_script_setup_windows_10/)
* PM [me](https://www.reddit.com/user/farag2/)
## SophiApp Community Edition (C# + WPF)
[SophiApp](https://github.com/Sophia-Community/SophiApp) is in active development 🚀