# Sophia Script for Windows
**The largest PowerShell module on `GitHub` for `Windows 10` & `Windows 11` fine-tuning and automating the routine tasks** :trophy:
Available in:
***
[![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 & 11 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.
## Minimum supported Windows versions
# Windows 11
|Version| Build | Editions | Script version |
|:-----:|:---------:|:-----------------:|:--------------:|
| 21H2 | 22000.194 |Home/Pro/Enterprise|[6.0.5](https://github.com/farag2/Sophia-Script-for-Windows/releases/latest)|
# Windows 10
|Version| Marketing name | Build | Arch| Editions | Script version |
|:-----:|:-------------------:|:----------:|:---:|:----------------------:|:--------------:|
| 21H2 | October 2021 Update | 19044.1151 | x64 |Home/Pro/Enterprise|[5.12.4](https://github.com/farag2/Sophia-Script-for-Windows/releases/latest)|
| 21H1 | May 2021 Update | 19043.1151 | x64 |Home/Pro/Enterprise|[5.12.4](https://github.com/farag2/Sophia-Script-for-Windows/releases/latest)|
| 20H2 | October 2020 Update | 19042.1151 | x64 |Home/Pro/Enterprise|[5.12.4](https://github.com/farag2/Sophia-Script-for-Windows/releases/latest)|
| 2004 | May 2020 Update | 19041.1151 | x64 |Home/Pro/Enterprise|[5.12.4](https://github.com/farag2/Sophia-Script-for-Windows/releases/latest)|
| 1809 | Enterprise LTSC 2019| 17763 | x64 | Enterprise |[5.2.15](https://github.com/farag2/Sophia-Script-for-Windows/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/gJFAEOk.png)
### Localized UWP packages names
![Image](https://i.imgur.com/xeiBbes.png) ![Image](https://i.imgur.com/0zj0h2S.png)
### Localized Windows features names
![Image](https://i.imgur.com/xlMR2mz.png) ![Image](https://i.imgur.com/yl9j9Vt.png)
### Download and install any supported Linux distribution in automatic mode
![Image](https://i.imgur.com/j2KLZm0.png)
### Native interactive toasts for the scheduled tasks
![Image](https://i.imgur.com/jornXGR.png)
![Image](https://i.imgur.com/9s7Noud.png)
### David's Sophia Script Wrapper
![Wr](https://i.imgur.com/z3F56Mj.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 any supported Linux distrobution for WSL displaying friendly distro names with pop-up form written in [WPF](#Screenshots);
* 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`;
* Download [up-to-date version](https://github.com/farag2/Sophia-Script-for-Windows/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.
* On `Windows 10` 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/);
* On `Windows 11` right-click on the Windows icon and select `Windows Terminal (Admin)`. Then change the current location
```powershell
Set-Location -Path "Path\To\Sophia\Folder"
```
* 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 use Wrapper
* Download and expand the archive;
* Run `SophiaScriptWrapper.exe` and import Sophia.ps1;
* The Wrapper has a real time UI rendering;
* Configure every function;
* Open the `Console Output` tab and press `Run PowerShell`.
***
### 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"
```
***
## How to download Sophia Script via PowerShell
* Download the always latest Sophia Script archive by invoking (`not as administrator too`) in PowerShell console
```powershell
irm script.sophi.app | iex
```
or without using aliases
```powershell
Invoke-RestMethod -Uri script.sophi.app | Invoke-Expression
```
* The command will download and expand the archive (`without running`) the latest Sophia Script according which Windows and PowerShell versions it is run on. For example, if you run it on Windows 11 via PowerShell 5.1, it will download Sophia Script for `Windows 11 PowerShell 5.1`.
# Supported variations to launch the command on
* Windows 10
* PowerShell 5.1;
* PowerShell 7.1;
* Windows 11
* PowerShell 5.1;
* PowerShell 7.1;
## 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 discussion group](https://t.me/sophia_chat)
* [Telegram channel](https://t.me/sophianews)
* [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 🚀