Showing preview only (469K chars total). Download the full file or copy to clipboard to get everything.
Repository: madbomb122/Win10Script
Branch: master
Commit: 4c797d55ec2b
Files: 13
Total size: 455.4 KB
Directory structure:
gitextract_1eaxieqw/
├── .gitattributes
├── .github/
│ └── ISSUE_TEMPLATE/
│ ├── bug_report.md
│ └── feature_request.md
├── Changelog.txt
├── LICENSE
├── README.md
├── Testing/
│ ├── Changelog.txt
│ ├── Win10-Menu.ps1
│ └── readme.md
├── Version/
│ └── Version.csv
├── Win10-Menu.ps1
├── _Win10-Script-Run.bat
└── todo.md
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
/Testing export-ignore
/Version export-ignore
.gitattributes export-ignore
todo.md export-ignore
/.github/ export-ignore
Update.bat export-ignore
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS Version: [e.g. Creator's Update]
- OS Build: [e.g. Home]
- Modded OS: [e.g. No] -If you are using an OS that has removed items using a program like Nlite
**Additional context**
- Script Version: [e.g. 3.0.1]
- Release Type: [e.g. Stable or Testing]
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is.
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
================================================
FILE: Changelog.txt
================================================
-----------------------------------------------------------------------------------
3.7.2 (07-31-2021)
Option Added Enable/Disable ScreenSaver
Option Added Enable/Disable LockScreen Password
Option Added ScreenSaver Wait Time (Configured in script/config file ONLY)
Some Internal Script Changes (XML part)
Some Internal Script Changes
Fixed Disable/Enable entry mixup for Temeletry (thanks to St1ckys)
More items Disable/Enable Feedback does
Changed Box Art when script Runs
Some Script Improvements
Added More things Telemetry Enable/Disable Does in script
Added an item for Cortana Enable/Disable in script
Option Added Enable/Disable F1 Help Key
Option Added Enable/Disable Accessibility Keys
Option Added Enable/Disable Update for other Microsoft Products
How the GUI's looks has been updated
Look of the tabs has been updated
Tabs are now on left side instead of top
Changed Name of 'Metro Apps' to 'Windows Apps'
Fixed bug were Apps were not being Hidden/Unhidden
-----------------------------------------------------------------------------------
3.6.9 (02-25-2019)
Added ability to see Copyright/License Information from ToS, by inputting L
Added Switch:
-copy Shows Copyright/License Information, then exits script
Internal Script Improvements
'Update.bat' file is no longer used
Internal Script Changes
Update for 'Windows Update P2P' Setting'
Update for 'Disabling App Auto Download'
Update/Fix for 'Start Menu Suggestions'
Changed how 'Unpinning Startmenu Items' does it's job
Change for 'Showing Task Manager Details'.. if it takes too long it will skip
Fixed a messup that caused script to not run at all
Minor Script Improvement/Changes
Fixed an Issue with 'This PC' Folders not showing (when selecting 'Show/Add') the folders in some cases -Solves issue #6
License/Copyright Date Update for my script
Added ability to Enable/Disable App Hibernation File (Swapfile.sys)
Minor Script Improvement/Changes
Fixed Issue with Metro Apps not displaying 'No Apps being *' messages
Cortana Enable/Disable does more changes now
-----------------------------------------------------------------------------------
3.6.0 (08-21-2018)
Fixed an issue with 'Share/Share with' that causes the script to stall (thanks to Cpt0r for letting me know)
Reworked some internal script stuff (text display is easyer to read in script)
Fixed bug with app Unhide/Hide/Uninstall were the wrong item
-----------------------------------------------------------------------------------
3.5.0 (08-07-2018)
Share with Renamed to Share with/Share (it removes the share context too)
Internal Script Changes
Added Enable/Disable Long File Path
More Interal Script Changes (decreased size of script a little)
More Internal Script Improvements (decreased size of script a little, slight speed improvement)
Fixed Issue with Symbols/Special Characters in filename and/or path
Reverted some changes due to some changes being slower rather than faster
Fixed Windows Update P2P type for 1803
-----------------------------------------------------------------------------------
3.4.0 (06-16-2018)
Fixed an issue with enable windows defender on newer than Annivery update didnt work
Fixed an issue that caused an entry for disableingn app auto download to not set
Fixed an issue that caused an entry for Removing AutoLogger file to not set
Fixed bug with enable/disable start suggestions
Fixed some typos
Changed how "Update Available Popup" sets ownership
Added Enable/Disable "Various Scheduled Tasks" -Option Not in GUI
^^But can be done by editing script or setting file.. Since it may cause problems
Added 2 apps to list 'Microsoft.GetHelp' and 'Microsoft.Wallet'
Added Option to Enable/Disable "Re-Opening of apps on boot" (Windows Enabled by default)
Added Account Protection Warning (Warns if not on a Microsoft account)
Changed Look of Gui a little (added Help button)
Added a wait for each app section to finish before continuing
Bug fix for remove 'This PC' items not showing that you are removing them
Changed Unpin start menu items.. from unpinning Some to All items
Metro App Unhide/Hide/Uninstall now are the first items to be set instead of last
Internal Script changes
Bug fix for Hiding/Removing '3d Objects' in 'This PC' for April 2018 Update
Bug fix for Showing 'This PC', now should Re-Add removed items
Renamed 'Application' to 'Application/Feature'
Added 'Fax And Scan' to Uninstall/Install to 'Application/Feature' list
Fixed a problem with Onedrive uninstall
Added 'Window's Timeline' to Enable/Disable to 'Explorer' List
Script will now Wait for Appx Tasks to finish before script closes/restarts computer
^to make sure appx task isnt inturrupted while doing it's job
-----------------------------------------------------------------------------------
3.3.0 (12-29-2017)
Enabled Window Resize
(best to resize so the yellow on bottom and right size are not visable)
^ Yellow block shows "Dont Resize past this area"
Bug fix with Enabling "Previous Versions Context"
Bug fix with Showing/Hding Tray Icons
Bug fix with Checkboxes on Script Option not working properly
^Create Restore Point, Skip Items, Restart when Done, Update Check, Update Bat, Internet Check
Bug fix with Enabling Aero Snap
Added Remove option for 'This PC' items
Improved Advertising ID (Enable/Disable)
Improved Windows Defender (Enable/Disable)
Improved Start Suggestions (Enable/Disable)
Added Multi Xbox Apps (No seperate option for each apps)
Fixed issue with "Task Manager Details" (thanks to dhoffman98)
Improved how resize works/shows (size of gui items wont change still)
Removed the yellow "Dont Resize past this area" boxes
Added switch "-h" to show a list of switches
Changed some internal script stuff
Added option to disable the "Update is Available popup" under Application/Windows Update tab
Added More stuff for disableing Wifi sense
-----------------------------------------------------------------------------------
3.2.0 (11-02-2017)
Added Missing Items (MSRT Update, Driver Update, Restarte on Update)
Fixed a typo that caused switch/arguments to not work and loading of settings
Changed indent from spaces to tabs to decrease file size about 9 KB
Added Registry entry for Auto Logger File
Fixed a Typo
Minor changes in script
Added Color to Donate, Website and Copyright button
Added Items for Fall Creator's Update
-----------------------------------------------------------------------------------
3.1.0 (08-26-2017)
Added List for what is Unpined for the Unpined Item
Renamed the Install in Metro to Unhide (you cant install metro apps w/o the appx file)
Fixed a typo
Added check for windows 10
Fixed Bug with script downloading Newer version of script
Script has option updates bat file with new script name if update is downloaded using script
Updates will use Update.bat if avaiable (will overwrite script file instead of creating new file)
-----------------------------------------------------------------------------------
3.0.0-GUI (08-16-2017)
Changed Text Menu to Gui Menu
Added Minor Version
Various Improvements
-----------------------------------------------------------------------------------
2.2-Menu (05-28-2017)
OLD SETTING FILES WILL NOT WORK
Changed/added different arguments/switches
-run Runs script with setting in script
-run Settingfile Runs script with Settingfile
-run WinDefault Runs script with Win Default
-load Settingfile Loads Settingfile (Does not run)
-load WinDefault Loads Win Default (Does not run)
-sic Skip Internet Check
-usc Check for update
-atos Accepts ToS
-auto Closes on Errors, End of Script (Implies -atos)
-crp Creates a Restore Point
-dnr Do not restart when done
Note: Settingfile = name of your setting file
Note: Old arguments/switches will not work
Change Window content while dragging items from enable/disable to show/hide
Fixed a bug with windows update not setting if path was not there
Fixed problem with remove cast to device context item
Changed how script does detection for metro apps
Fixed bug with unpin not being corrently set to unpin
Changed format for setting save/load (smaller files and more readable)
Ability to add custom apps to hide/uninstall in setting file
-----------------------------------------------------------------------------------
2.1-Menu (05-13-2017)
Added check for (Bellow) before script attempts to Install/Uninstall
Windows Media Player
Work Folders Client
Linux Subsystem
Onedrive (checks for OneDriveSetup.exe)
Minor changes in script
Fixed bug with enabling Windows Defender
Fixed bug with smart screen and Wap push not disableing
Fixed bug with metro apps
Changed how Firewall is Enabled/Disabled
Added Ability to Show/Hide Task Manager details
Fixed Load setting bug (Thanks to Scott C)
-----------------------------------------------------------------------------------
2.0-Menu (04-22-2017)
Internal Script Changes
Fixed "Users File Icon on Desktop" showing as "Recycle Bin Icon on Desktop"
Fixed "Removeing Recent Files in Quick Access" set incorrectly
Fixed "Disabling Cast to Device Context" set incorrectly
Change Powershell to Command Prompt (in Win+X)
Changed the Internet check to ping github instead of google.com & yahoo.com
-----------------------------------------------------------------------------------
1.9-Menu (04-08-2017)
Added some updates to settings for creator's update
Changed TOS Display look
Added Internet Check if script checks for update
Various display changes
Ability to name restore point (in script file only ATM)
Added Ability to add/remove following apps
3D Viewer
Removed Ability to add/remove following apps
Asphalt 8
Bing Finance
Bing News
Bing Sports
Bing Translator
Candy Cursh
Facebook
Farm Ville
Fresh Paint
Houzza
Microsoft Jackpot
Microsoft Jigsaw
Microsoft Mahjong
Microsoft Sudoku
Minecraft
Studios Wordament
Taptiles
Twitter
-----------------------------------------------------------------------------------
1.8-Menu (03-19-2017)
Added Script update check option
Decided to remove Black Viper Service configuration from this script..
Please use the script for just the Black Viper Service configuration @
https://github.com/madbomb122/BlackViperScript
-----------------------------------------------------------------------------------
1.7-Menu (03-17-2017)
Fixed bug with using the bat file to run with setting file
Fixed bug with add/remove pin to "quick access"
Removed Custom App Import in setting file (was causeing the apps to not Install/Hide/Uninstall)
-----------------------------------------------------------------------------------
1.6-Menu (03-14-2017)
Disabled Black Viper Service configuration
-----------------------------------------------------------------------------------
1.5-Menu (03-12-2017)
Added option to show/hide when an item is skipped
Added a check if running in Powershell or Powershell ISE (ISE is not supported)
Renamed 'Pin To' to 'Pin To Start'
Added Ability to Add/Remove 'Pin To Quick Access'
Fixed some Items not displaying
Added Ability to Show/Hide following icons to desktop:
Network
Recycle Bin
User's Files
Control Panel
-----------------------------------------------------------------------------------
1.4-Menu (03-04-2017)
Added Black Viper's service settings (Win 10 Home/Pro ONLY)
Removed Lock Screen alt (script check run the correct lockscreen work around)
Added a display of skipped items
-----------------------------------------------------------------------------------
1.3-Menu (02-27-2017)
Load/save setting fix
-----------------------------------------------------------------------------------
1.2-Menu (02-20-2017)
Metro Apps setting changeable in the menu
-----------------------------------------------------------------------------------
1.1-Menu (02-19-2017)
Fixed 2 Bugs:
If tos was set to accept in script it did not skip the tos
fixed a messup with the add/remove/uninstall apps if you set it in script or file
Working on making apps setting changeable in the menu
-----------------------------------------------------------------------------------
1.0-Menu (02-17-2017) -START VERSION OF NEW SCRIPT
Done With adding a Menu
Cant Change the Apps to Install/Hide/Uninstall from within script menu..
But you can from in the script file (or a loaded file).
Note1: Settings file for Older script (3.5-mod and bellow) will NOT work
Note2: 3.5-mod is the LAST of the old script
-----------------------------------------------------------------------------------
3.5-Mod (02-09-2017) -LAST VERSION OF OLD SCRIPT
Re-ordered some items
Added Write output when at Each different category
Added Color for Some outputs
Ability to Disable Output
Ability to Disable Color of output
renamed 4 items
APP_SolitaireCollection to APP_SolitaireCollect
APP_WindowsFeedback to APP_WindowsFeedbak
APP_WindowsFeedbackHub to APP_WindowsFeedbakHub
APP_MicrosoftOfficeHub to APP_MicrosoftOffHub
-----------------------------------------------------------------------------------
3.4-Mod (02-03-2017)
Added 1 New Setting Items:
Windows Update Check Type
Also a few minor bug fixes
-----------------------------------------------------------------------------------
3.3-Mod (02-02-2017)
Added Description to some items
Ability to Create Restore Point Before running Script
Added 12 New Setting Items:
Recent Files in Quick Access
Frequent Folders in Quick Access
Most Used App in Start Menu
Power Menu on Lock Screen
Hibernate Power Option
Sleep Power Option
Window Content While Dragging
Check For Windows Update
Taskbar On Multi Display
Taskbar Buttons On Multi Display
Remote UAC Local Account Token Filter
-----------------------------------------------------------------------------------
3.2-Mod (02-01-2017)
Added Description to some items
Ability to run Pre-defined setting (currently only -Set Set1)
Added 4 New Setting Items:
Cortana Search (Can still search with cortana disabled)
Classic Clock UI (for the taskbar flyout)
Classic Battery UI (for the taskbar flyout)
Recent Items and Frequent Places (in start menu)
Added More Colors for Tiles (But disabled till i figure problem out)
Renamed 2 Items:
AeroResize to AeroSnap (Proper name of function)
CameraOnLoc to CameraOnLockScreen (Gives better description of item)
-----------------------------------------------------------------------------------
3.1-Mod (1-29-2017)
Ability to add Apps to Install, Hide or Uninstall, that the script doesnt list
^This can ONLY be done in the script itself ATM
-----------------------------------------------------------------------------------
3.0-Mod (01-28-2017)
Greatly Improved the ability to import app list from setting file
Also changed it so you can Install, Hide or Uninstall for each app (instead of the whole thing)
Changed the Initial Text that show when you start script
Removed 3 Apps (since they cant be hidden or removed)
Fixed a few errors for Photo Viewer Settings
-----------------------------------------------------------------------------------
2.3-Mod (01-27-2017)
Fixed a bug with imported settings from a file
Added ability to import app list from setting file
Added Facebook to applist
-----------------------------------------------------------------------------------
2.2-Mod (01-26-2017)
Added ability to run imported settings from a file
Added ability to run windows default settings w/o editing file
Added a note when you run script and a way to skip it
-----------------------------------------------------------------------------------
2.1-Mod (01-25-2017)
Change script so it does nothing by default
Added item to have it run the windows default items
Added 1 New Setting Items:
seconds for the clock on the taskbar
-----------------------------------------------------------------------------------
2.0-Mod (01-25-2017) -- (Started doing my changes)
Made Script easier to pick what you want to run
Script by default returned items to the default of windows (that the script is set to change)
Added 6 New Setting for Context Menu: (add/remove)
Cast To Device
Previous Versions
Include in Library
Pin To
Share With
Send To
Added 5 New Settings:
Volume Control Bar to classic/new
Pid In Title Bar
Aero Resize
Aero Shake
App Auto Download
Added options for a few of the items that had more than once choice
Added ability to Remove the bloatware instead of just hiding it
-----------------------------------------------------------------------------------
2.0 (01-08-2017)
v2.0 Script by Disassembler0
https://github.com/Disassembler0/Win10-Initial-Setup-Script/
================================================
FILE: LICENSE
================================================
The MIT License (MIT)
Copyright (c) 2017 Disassembler <disassembler@dasm.cz> -Original Win10 Initial Setup Script
Copyright (c) 2017-2021 Madbomb122 -Modded Win10 Initial Setup Script
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
To Download go to -> [Win 10 Script -Release](https://github.com/madbomb122/Win10Script/releases)
**Current Version**
**Script:** `3.7.2` (July 31, 2021)
## Contents
- [Description](#description)
- [Requirements](#requirements)
- [How to Use](#how-to-use)
- [Usage](#usage)
- [Advanced Usage](#advanced-usage)
- [FAQ](#faq)
## Description
This is a PowerShell script for automation of routine tasks/setting on Windows 10.
This is by no means a complete set of settings. (There is ALOT that can be changed/done)
The original basic script created by https://github.com/Disassembler0/Win10-Initial-Setup-Script/
^ We have some of the same setting and a few different stuff too
This script is a Highly Modded version of the 2.0 script by Disaseembler0.
The script has added items with an easy way to change settings and options using a GUI.
PS. Don't forget to check out my other Repo https://github.com/madbomb122/BlackViperScript
## Requirements
**OS:** `Windows 10`
**Needed Files:** `Win10-Menu.ps1` (Script File)
**Recommended Files:** `_Win10-Script-Run.bat`
## How to Use
Download/Save the following files
Script File: [Win10-Menu.ps1](https://github.com/madbomb122/Win10Script/raw/master/Win10-Menu.ps1) (Script) -Size about `204.0 KB` -Need
Bat File: [_Win10-Script-Run.bat](https://github.com/madbomb122/Win10Script/raw/master/_Win10-Script-Run.bat) -Size about `2.29 KB` -Recommended
**Note 1: DO NOT RENAME THE FILES**
**Note 2: HAVE THE FILES IN THE SAME DIRECTORY**
Next follow the **Basic Usage** or **Advanced Usage**
**You can do a `save as` on the filenames above to save them to you computer, you cannot do a `save as` on github's file list**
## Usage
Run the Script by bat file `_Win10-Script-Run.bat` (Recommended)
or
`powershell.exe -NoProfile -ExecutionPolicy Bypass -File c:/Win10-Menu.ps1`
*For the above, Please note you need change the c:/ to the fullpath of your file*
Use the Menu
Set what you want
Select option to run script
### Advanced usage
Use one of the following Methods you can
1. Run script with one (or more) of the switches below
2. Edit the script (bottom of file) to change the values
3. Edit the bat file (top of file) to change the values to add the switch
| Switch | Description | Notes |
| :-------- | :-------------------------------------------------------------------| :------------------------------- |
| -atos | Accepts the ToS | |
| -auto | Runs the script to be Automated.. Closes on Errors, End of Script) | Implies `-atos` |
| -run | Runs script with setting in script | |
| -run Settingfile | Runs script with Settingfile | May Imply `-atos` (If file was saved from script) |
| -run WinDefault | Runs script with Win Default | |
| -load Settingfile | Loads Settingfile (Does not run) | |
| -load WinDefault | Loads Win Default (Does not run) | |
| -sic | Skips Internet Check (If checking for update) | Tests by pinging github.com |
| -usc | Checks for Update to Script file before running | Auto downloads and runs if found |
| -crp | Creates a Restore Point | |
| -dnr | Do not restart when done | |
| -help | Lists of all the switches | Alt `-h` |
Examples:
`powershell.exe -NoProfile -ExecutionPolicy Bypass -File Win10-Menu.ps1 -auto -run mine.csv`
`powershell.exe -NoProfile -ExecutionPolicy Bypass -File Win10-Menu.ps1 -atos -load WinDefault`
******
## FAQ
**Q:** The script file looks all messy in notepad, How do i view it?
**A:** Try using wordpad or what I recommend, Notepad++ [https://notepad-plus-plus.org/](https://notepad-plus-plus.org/)
**Q:** Do you accept any donations?
**A:** If you would like to donate to me Please pick an item/giftcard from my amazon wishlist or Contact me about donating, Thanks. BTW The giftcard amount can be changed to a min of $1.
**Wishlist:** [https://www.amazon.com/gp/registry/wishlist/YBAYWBJES5DE/](https://www.amazon.com/gp/registry/wishlist/YBAYWBJES5DE/)
**Q:** How can I contact you?
**A:** You can also PM me on reddit or email me
1. reddit /u/madbomb122 [https://www.reddit.com/user/madbomb122](https://www.reddit.com/user/madbomb122)
2. You can email me @ madbomb122@gmail.com.
**Note** Before contacting me, please make sure you have ALL the needed files and the size is right (Look above under requirements).
**Q:** Can you add *BLAH* to the apps list?
**A:** Mabye, post [here](https://github.com/madbomb122/Win10Script/issues/8) and follow the instructions, and I may add it.
**Q:** The script window closes or gives an error saying script is blocked, what do I do?
**A:** By default windows blocks ps1 scripts, you can use one of the following
1. Use the bat file to run the script (recommended)
2. On an admin powershell console `Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted`
**Q:** Can I run the script safely?
**A:** Yes and No, it depends on what you do, some items may cause problems and some items will not cause any issues.
**Q:** Can I run the script repeatedly?
**A:** Yes, with same or different settings.
**Q:** Did you test the script?
**A:** Yes, but doesnt mean there isnt any bugs/errors.
**Q:** I've run the script and it did *BLAH*, can I undo it?
**A:** There are 2 possible ways...
1. Yes, Most things can easily be undone by going in the script and run it again with the deisred change.
2. System Restore can undo some of the changes, if you created a restore point (can be done from script)
**Q:** The script messed up my computer.
**A:** The script is 'as is', any problems you have/had is not my problem.
**Q:** Can I use the script or modify it for my/my company's needs?
**A:** Sure. Just don't forget to include copyright notice as per the license requirements, and leave any Copyright in script too.
**Q:** Can I add an App to Install/Hide/Uninstall, if so how?
**A:** Yes you can. You can add it in the script file under APPS_AppsInstall, APPS_AppsHide, APPS_AppsUninstall.
---------Please note you have to have the proper format and packagename for it to work.
**Q:** Can you add *BLAH* to the script?
**A:** Mabye, Depends on what it is and how hard it would be to add.
**Q:** How do I request adding *BLAH* to the script?
**A:** Just post it as an Issue.
**Q:** Are you planning to add *BLAH* to the script?
**A:** Check the todo list, anything i am planning to do or thinking of doing will be there.
**Q:** How long are you going to maintain the script?
**A:** No Clue.
================================================
FILE: Testing/Changelog.txt
================================================
-----------------------------------------------------------------------------------
3.7.2 (07-31-2021)
Option Added Enable/Disable ScreenSaver
Option Added Enable/Disable LockScreen Password
Option Added ScreenSaver Wait Time (Configured in script/config file ONLY)
Some Internal Script Changes (XML part)
Some Internal Script Changes
Fixed Disable/Enable entry mixup for Temeletry (thanks to St1ckys)
More items Disable/Enable Feedback does
Changed Box Art when script Runs
Some Script Improvements
Added More things Telemetry Enable/Disable Does in script
Added an item for Cortana Enable/Disable in script
Option Added Enable/Disable F1 Help Key
Option Added Enable/Disable Accessibility Keys
Option Added Enable/Disable Update for other Microsoft Products
How the GUI's looks has been updated
Look of the tabs has been updated
Tabs are now on left side instead of top
Changed Name of 'Metro Apps' to 'Windows Apps'
Fixed bug were Apps were not being Hidden/Unhidden
-----------------------------------------------------------------------------------
3.6.9 (02-25-2019)
Added ability to see Copyright/License Information from ToS, by inputting L
Added Switch:
-copy Shows Copyright/License Information, then exits script
Internal Script Improvements
'Update.bat' file is no longer used
Internal Script Changes
Update for 'Windows Update P2P' Setting'
Update for 'Disabling App Auto Download'
Update/Fix for 'Start Menu Suggestions'
Changed how 'Unpinning Startmenu Items' does it's job
Change for 'Showing Task Manager Details'.. if it takes too long it will skip
Fixed a messup that caused script to not run at all
Minor Script Improvement/Changes
Fixed an Issue with 'This PC' Folders not showing (when selecting 'Show/Add') the folders in some cases -Solves issue #6
License/Copyright Date Update for my script
Added ability to Enable/Disable App Hibernation File (Swapfile.sys)
Minor Script Improvement/Changes
Fixed Issue with Metro Apps not displaying 'No Apps being *' messages
Cortana Enable/Disable does more changes now
-----------------------------------------------------------------------------------
3.6.0 (08-21-2018)
Fixed an issue with 'Share/Share with' that causes the script to stall (thanks to Cpt0r for letting me know)
Reworked some internal script stuff (text display is easyer to read in script)
Fixed bug with app Unhide/Hide/Uninstall were the wrong item
-----------------------------------------------------------------------------------
3.5.0 (08-07-2018)
Share with Renamed to Share with/Share (it removes the share context too)
Internal Script Changes
Added Enable/Disable Long File Path
More Interal Script Changes (decreased size of script a little)
More Internal Script Improvements (decreased size of script a little, slight speed improvement)
Fixed Issue with Symbols/Special Characters in filename and/or path
Reverted some changes due to some changes being slower rather than faster
Fixed Windows Update P2P type for 1803
-----------------------------------------------------------------------------------
3.4.0 (06-16-2018)
Fixed an issue with enable windows defender on newer than Annivery update didnt work
Fixed an issue that caused an entry for disableingn app auto download to not set
Fixed an issue that caused an entry for Removing AutoLogger file to not set
Fixed bug with enable/disable start suggestions
Fixed some typos
Changed how "Update Available Popup" sets ownership
Added Enable/Disable "Various Scheduled Tasks" -Option Not in GUI
^^But can be done by editing script or setting file.. Since it may cause problems
Added 2 apps to list 'Microsoft.GetHelp' and 'Microsoft.Wallet'
Added Option to Enable/Disable "Re-Opening of apps on boot" (Windows Enabled by default)
Added Account Protection Warning (Warns if not on a Microsoft account)
Changed Look of Gui a little (added Help button)
Added a wait for each app section to finish before continuing
Bug fix for remove 'This PC' items not showing that you are removing them
Changed Unpin start menu items.. from unpinning Some to All items
Metro App Unhide/Hide/Uninstall now are the first items to be set instead of last
Internal Script changes
Bug fix for Hiding/Removing '3d Objects' in 'This PC' for April 2018 Update
Bug fix for Showing 'This PC', now should Re-Add removed items
Renamed 'Application' to 'Application/Feature'
Added 'Fax And Scan' to Uninstall/Install to 'Application/Feature' list
Fixed a problem with Onedrive uninstall
Added 'Window's Timeline' to Enable/Disable to 'Explorer' List
Script will now Wait for Appx Tasks to finish before script closes/restarts computer
^to make sure appx task isnt inturrupted while doing it's job
-----------------------------------------------------------------------------------
3.3.0 (12-29-2017)
Enabled Window Resize
(best to resize so the yellow on bottom and right size are not visable)
^ Yellow block shows "Dont Resize past this area"
Bug fix with Enabling "Previous Versions Context"
Bug fix with Showing/Hding Tray Icons
Bug fix with Checkboxes on Script Option not working properly
^Create Restore Point, Skip Items, Restart when Done, Update Check, Update Bat, Internet Check
Bug fix with Enabling Aero Snap
Added Remove option for 'This PC' items
Improved Advertising ID (Enable/Disable)
Improved Windows Defender (Enable/Disable)
Improved Start Suggestions (Enable/Disable)
Added Multi Xbox Apps (No seperate option for each apps)
Fixed issue with "Task Manager Details" (thanks to dhoffman98)
Improved how resize works/shows (size of gui items wont change still)
Removed the yellow "Dont Resize past this area" boxes
Added switch "-h" to show a list of switches
Changed some internal script stuff
Added option to disable the "Update is Available popup" under Application/Windows Update tab
Added More stuff for disableing Wifi sense
-----------------------------------------------------------------------------------
3.2.0 (11-02-2017)
Added Missing Items (MSRT Update, Driver Update, Restarte on Update)
Fixed a typo that caused switch/arguments to not work and loading of settings
Changed indent from spaces to tabs to decrease file size about 9 KB
Added Registry entry for Auto Logger File
Fixed a Typo
Minor changes in script
Added Color to Donate, Website and Copyright button
Added Items for Fall Creator's Update
-----------------------------------------------------------------------------------
3.1.0 (08-26-2017)
Added List for what is Unpined for the Unpined Item
Renamed the Install in Metro to Unhide (you cant install metro apps w/o the appx file)
Fixed a typo
Added check for windows 10
Fixed Bug with script downloading Newer version of script
Script has option updates bat file with new script name if update is downloaded using script
Updates will use Update.bat if avaiable (will overwrite script file instead of creating new file)
-----------------------------------------------------------------------------------
3.0.0-GUI (08-16-2017)
Changed Text Menu to Gui Menu
Added Minor Version
Various Improvements
-----------------------------------------------------------------------------------
2.2-Menu (05-28-2017)
OLD SETTING FILES WILL NOT WORK
Changed/added different arguments/switches
-run Runs script with setting in script
-run Settingfile Runs script with Settingfile
-run WinDefault Runs script with Win Default
-load Settingfile Loads Settingfile (Does not run)
-load WinDefault Loads Win Default (Does not run)
-sic Skip Internet Check
-usc Check for update
-atos Accepts ToS
-auto Closes on Errors, End of Script (Implies -atos)
-crp Creates a Restore Point
-dnr Do not restart when done
Note: Settingfile = name of your setting file
Note: Old arguments/switches will not work
Change Window content while dragging items from enable/disable to show/hide
Fixed a bug with windows update not setting if path was not there
Fixed problem with remove cast to device context item
Changed how script does detection for metro apps
Fixed bug with unpin not being corrently set to unpin
Changed format for setting save/load (smaller files and more readable)
Ability to add custom apps to hide/uninstall in setting file
-----------------------------------------------------------------------------------
2.1-Menu (05-13-2017)
Added check for (Bellow) before script attempts to Install/Uninstall
Windows Media Player
Work Folders Client
Linux Subsystem
Onedrive (checks for OneDriveSetup.exe)
Minor changes in script
Fixed bug with enabling Windows Defender
Fixed bug with smart screen and Wap push not disableing
Fixed bug with metro apps
Changed how Firewall is Enabled/Disabled
Added Ability to Show/Hide Task Manager details
Fixed Load setting bug (Thanks to Scott C)
-----------------------------------------------------------------------------------
2.0-Menu (04-22-2017)
Internal Script Changes
Fixed "Users File Icon on Desktop" showing as "Recycle Bin Icon on Desktop"
Fixed "Removeing Recent Files in Quick Access" set incorrectly
Fixed "Disabling Cast to Device Context" set incorrectly
Change Powershell to Command Prompt (in Win+X)
Changed the Internet check to ping github instead of google.com & yahoo.com
-----------------------------------------------------------------------------------
1.9-Menu (04-08-2017)
Added some updates to settings for creator's update
Changed TOS Display look
Added Internet Check if script checks for update
Various display changes
Ability to name restore point (in script file only ATM)
Added Ability to add/remove following apps
3D Viewer
Removed Ability to add/remove following apps
Asphalt 8
Bing Finance
Bing News
Bing Sports
Bing Translator
Candy Cursh
Facebook
Farm Ville
Fresh Paint
Houzza
Microsoft Jackpot
Microsoft Jigsaw
Microsoft Mahjong
Microsoft Sudoku
Minecraft
Studios Wordament
Taptiles
Twitter
-----------------------------------------------------------------------------------
1.8-Menu (03-19-2017)
Added Script update check option
Decided to remove Black Viper Service configuration from this script..
Please use the script for just the Black Viper Service configuration @
https://github.com/madbomb122/BlackViperScript
-----------------------------------------------------------------------------------
1.7-Menu (03-17-2017)
Fixed bug with using the bat file to run with setting file
Fixed bug with add/remove pin to "quick access"
Removed Custom App Import in setting file (was causeing the apps to not Install/Hide/Uninstall)
-----------------------------------------------------------------------------------
1.6-Menu (03-14-2017)
Disabled Black Viper Service configuration
-----------------------------------------------------------------------------------
1.5-Menu (03-12-2017)
Added option to show/hide when an item is skipped
Added a check if running in Powershell or Powershell ISE (ISE is not supported)
Renamed 'Pin To' to 'Pin To Start'
Added Ability to Add/Remove 'Pin To Quick Access'
Fixed some Items not displaying
Added Ability to Show/Hide following icons to desktop:
Network
Recycle Bin
User's Files
Control Panel
-----------------------------------------------------------------------------------
1.4-Menu (03-04-2017)
Added Black Viper's service settings (Win 10 Home/Pro ONLY)
Removed Lock Screen alt (script check run the correct lockscreen work around)
Added a display of skipped items
-----------------------------------------------------------------------------------
1.3-Menu (02-27-2017)
Load/save setting fix
-----------------------------------------------------------------------------------
1.2-Menu (02-20-2017)
Metro Apps setting changeable in the menu
-----------------------------------------------------------------------------------
1.1-Menu (02-19-2017)
Fixed 2 Bugs:
If tos was set to accept in script it did not skip the tos
fixed a messup with the add/remove/uninstall apps if you set it in script or file
Working on making apps setting changeable in the menu
-----------------------------------------------------------------------------------
1.0-Menu (02-17-2017) -START VERSION OF NEW SCRIPT
Done With adding a Menu
Cant Change the Apps to Install/Hide/Uninstall from within script menu..
But you can from in the script file (or a loaded file).
Note1: Settings file for Older script (3.5-mod and bellow) will NOT work
Note2: 3.5-mod is the LAST of the old script
-----------------------------------------------------------------------------------
3.5-Mod (02-09-2017) -LAST VERSION OF OLD SCRIPT
Re-ordered some items
Added Write output when at Each different category
Added Color for Some outputs
Ability to Disable Output
Ability to Disable Color of output
renamed 4 items
APP_SolitaireCollection to APP_SolitaireCollect
APP_WindowsFeedback to APP_WindowsFeedbak
APP_WindowsFeedbackHub to APP_WindowsFeedbakHub
APP_MicrosoftOfficeHub to APP_MicrosoftOffHub
-----------------------------------------------------------------------------------
3.4-Mod (02-03-2017)
Added 1 New Setting Items:
Windows Update Check Type
Also a few minor bug fixes
-----------------------------------------------------------------------------------
3.3-Mod (02-02-2017)
Added Description to some items
Ability to Create Restore Point Before running Script
Added 12 New Setting Items:
Recent Files in Quick Access
Frequent Folders in Quick Access
Most Used App in Start Menu
Power Menu on Lock Screen
Hibernate Power Option
Sleep Power Option
Window Content While Dragging
Check For Windows Update
Taskbar On Multi Display
Taskbar Buttons On Multi Display
Remote UAC Local Account Token Filter
-----------------------------------------------------------------------------------
3.2-Mod (02-01-2017)
Added Description to some items
Ability to run Pre-defined setting (currently only -Set Set1)
Added 4 New Setting Items:
Cortana Search (Can still search with cortana disabled)
Classic Clock UI (for the taskbar flyout)
Classic Battery UI (for the taskbar flyout)
Recent Items and Frequent Places (in start menu)
Added More Colors for Tiles (But disabled till i figure problem out)
Renamed 2 Items:
AeroResize to AeroSnap (Proper name of function)
CameraOnLoc to CameraOnLockScreen (Gives better description of item)
-----------------------------------------------------------------------------------
3.1-Mod (1-29-2017)
Ability to add Apps to Install, Hide or Uninstall, that the script doesnt list
^This can ONLY be done in the script itself ATM
-----------------------------------------------------------------------------------
3.0-Mod (01-28-2017)
Greatly Improved the ability to import app list from setting file
Also changed it so you can Install, Hide or Uninstall for each app (instead of the whole thing)
Changed the Initial Text that show when you start script
Removed 3 Apps (since they cant be hidden or removed)
Fixed a few errors for Photo Viewer Settings
-----------------------------------------------------------------------------------
2.3-Mod (01-27-2017)
Fixed a bug with imported settings from a file
Added ability to import app list from setting file
Added Facebook to applist
-----------------------------------------------------------------------------------
2.2-Mod (01-26-2017)
Added ability to run imported settings from a file
Added ability to run windows default settings w/o editing file
Added a note when you run script and a way to skip it
-----------------------------------------------------------------------------------
2.1-Mod (01-25-2017)
Change script so it does nothing by default
Added item to have it run the windows default items
Added 1 New Setting Items:
seconds for the clock on the taskbar
-----------------------------------------------------------------------------------
2.0-Mod (01-25-2017) -- (Started doing my changes)
Made Script easier to pick what you want to run
Script by default returned items to the default of windows (that the script is set to change)
Added 6 New Setting for Context Menu: (add/remove)
Cast To Device
Previous Versions
Include in Library
Pin To
Share With
Send To
Added 5 New Settings:
Volume Control Bar to classic/new
Pid In Title Bar
Aero Resize
Aero Shake
App Auto Download
Added options for a few of the items that had more than once choice
Added ability to Remove the bloatware instead of just hiding it
-----------------------------------------------------------------------------------
2.0 (01-08-2017)
v2.0 Script by Disassembler0
https://github.com/Disassembler0/Win10-Initial-Setup-Script/
================================================
FILE: Testing/Win10-Menu.ps1
================================================
##########
# Win 10 Setup Script/Tweaks with Menu(GUI)
#
# Modded Script + Menu(GUI) By
# Author: Madbomb122
# Website: https://GitHub.com/Madbomb122/Win10Script/
#
# Original Basic Script By
# Author: Disassembler0
# Website: https://GitHub.com/Disassembler0/Win10-Initial-Setup-Script/
# Version: 2.0, 2017-01-08 (Version Copied)
#
$Script_Version = '3.7.2'
$Script_Date = 'Jul-31-2021'
#$Release_Type = 'Stable'
##########
## !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
## !! !!
## !! SAFE TO EDIT ITEM !!
## !! AT BOTTOM OF SCRIPT !!
## !! !!
## !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
## !! !!
## !! CAUTION !!
## !! DO NOT EDIT PAST THIS POINT !!
## !! !!
## !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<#------------------------------------------------------------------------------#>
$Copyright =' The MIT License (MIT)
Copyright (c) 2017 Disassembler
-Original Basic Version of Script
Copyright (c) 2017-2021 Madbomb122
-Modded + Menu Version of Script
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice(s), this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
'
<#--------------------------------------------------------------------------------
.Prerequisite to run script
System: Windows 10
Files: This script
.DESCRIPTION
Makes it easier to setup an existing or new install with moded setting
.BASIC USAGE
Use the Menu and set what you want then Click Run the Script
.ADVANCED USAGE
One of the following Methods...
1. Edit values at bottom of the script
2. Edit bat file and run
3. Run the script with one of these switches (space between multiple)
Switch Description of Switch
-- Basic Switches --
-atos Accepts ToS
-auto Implies -Atos...Closes on - User Errors, or End of Script
-crp Creates Restore Point
-dnr Do Not Restart when done
-- Run Script Switches --
-run Runs script with settings in script
-run FILENME Runs script with settings in the file FILENME
-run wd Runs script with win default settings
-- Load Script Switches --
-load FILENME Loads script with settings in the file FILENME
-load wd Loads script with win default settings
--Update Switches--
-usc Checks for Update to Script file before running
-sic Skips Internet Check
------------------------------------------------------------------------------#>
##########
# Pre-Script -Start
##########
If([Environment]::OSVersion.Version.Major -ne 10) {
Write-Host 'Sorry, this Script supports Windows 10 ONLY.' -ForegroundColor 'cyan' -BackgroundColor 'black'
If($Automated -ne 1){ Read-Host -Prompt "`nPress Any key to Close..." } ;Exit
}
If($Release_Type -eq 'Stable'){ $ErrorActionPreference = 'SilentlyContinue' } Else{ $Release_Type = 'Testing' }
$Script:PassedArg = $args
If(!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]"Administrator")) {
Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`" $PassedArg" -Verb RunAs ;Exit
}
$MySite = 'https://GitHub.com/madbomb122/Win10Script'
$URL_Base = $MySite.Replace('GitHub','raw.GitHub')+'/master/'
$Version_Url = $URL_Base + 'Version/Version.csv'
$Donate_Url = 'https://www.amazon.com/gp/registry/wishlist/YBAYWBJES5DE/'
$FileBase = $(If($psISE -ne $Null){ Split-Path $psISE.CurrentFile.FullPath -Parent } Else{ $PSScriptRoot }) + '\'
$Script:Win10Ver = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' -Name ReleaseID).ReleaseId
$Script:OSBit = If([System.Environment]::Is64BitProcess){ 64 } Else{ 32 }
##########
# Pre-Script -End
##########
# Needed Variable -Start
##########
$TasksList = @(
'Application Experience',
'Consolidator',
'Customer Experience Improvement Program',
'DmClient',
'KernelCeipTask',
'Microsoft Compatibility Appraiser',
'ProgramDataUpdater',
'Proxy',
'QueueReporting',
'SmartScreenSpecific',
'UsbCeip')
<#
'AgentFallBack2016',
'AitAgent',
'CreateObjectTask',
#'Diagnostics',
'DmClientOnScenarioDownload',
'FamilySafetyMonitor',
'FamilySafetyRefresh',
'FamilySafetyRefreshTask',
'FamilySafetyUpload',
#'File History (maintenance mode)',
'GatherNetworkInfo',
'MapsUpdateTask',
#'Microsoft-Windows-DiskDiagnosticDataCollector',
'MNO Metadata Parser',
'OfficeTelemetryAgentFallBack',
'OfficeTelemetryAgentLogOn',
'OfficeTelemetryAgentLogOn2016',
'Sqm-Tasks',
#'StartupAppTask',
'Uploader',
'XblGameSaveTask',
'XblGameSaveTaskLogon')
#>
$Xbox_Apps = @(Get-AppxPackage *xbox*).Name
$musnotification_files = @("$Env:windir\System32\musnotification.exe","$Env:windir\System32\musnotificationux.exe")
$AppxOptions=@('Skip','Unhide','Hide','Uninstall')
$colors = @(
'black', #0
'blue', #1
'cyan', #2
'darkblue', #3
'darkcyan', #4
'darkgray', #5
'darkgreen', #6
'darkmagenta',#7
'darkred', #8
'darkyellow', #9
'gray', #10
'green', #11
'magenta', #12
'red', #13
'white', #14
'yellow') #15
#Unicode Box Codes
$Tlc = [char]0x2554 # ╔
$Blc = [char]0x255A # ╚
$Trc = [char]0x2557 # ╗
$Brc = [char]0x255D # ╝
$Sid = [char]0x2551 # ║
$ToB = [char]0x2550 # ═
Function BoxItem([String]$TxtToDisplay) {
$TLen = $TxtToDisplay.Length
$LLen = $TLen+9
$Ttop = "`n$Tlc".PadRight($LLen-1,$ToB) + $Trc
$TBot = "$Blc".PadRight($LLen-2,$ToB) + $Brc
DisplayOut $Ttop -C 14
DisplayOut $Sid," $TxtToDisplay ",$Sid -C 14,13,14
DisplayOut $TBot -C 14
}
Function AnyKeyClose{ Read-Host -Prompt "`nPress Any key to Close..." }
##########
# Needed Variable -End
##########
# Update Functions -Start
##########
Function UpdateCheck {
If(InternetCheck) {
$CSV_Ver = Invoke-WebRequest $Version_Url | ConvertFrom-Csv
$CSVLine,$RT = If($Release_Type -eq 'Stable'){ 0,'' } Else{ 1,'Testing/' }
$WebScriptVer = $CSV_Ver[$CSVLine].Version + "." + $CSV_Ver[$CSVLine].MinorVersion
If($WebScriptVer -gt $Script_Version){ ScriptUpdateFun $RT }
} Else {
Clear-Host
DisplayMisc -Line
DisplayOutLML (''.PadRight(22)+'Error') -C 13
DisplayMisc -Line
DisplayMisc
DisplayOutLML 'No Internet connection detected or GitHub.com' -C 2
DisplayOutLML 'is currently down.' -C 2
DisplayOutLML 'Tested by pinging GitHub.com' -C 2
DisplayMisc
DisplayOutLML 'To skip use one of the following methods' -C 2
DisplayOut '|',' 1. Change ','InternetCheck',' in bat file'.PadRight(28),'|' -C 14,2,15,2,14
DisplayOut '|',' 2. Change ','InternetCheck',' in bat file'.PadRight(28),'|' -C 14,2,15,2,14
DisplayOut '|',' 3. Run Script or Bat file with ','-sic',' switch ','|' -C 14,2,15,2,14
DisplayMisc
DisplayMisc -Line
AnyKeyClose
}
}
Function ScriptUpdateFun([String]$RT) {
$Script_Url = $URL_Base + $RT + 'Win10-Menu.ps1'
$ScrpFilePath = $FileBase + 'Win10-Menu.ps1'
$FullVer = "$WebScriptVer.$WebScriptMinorVer"
$UpArg = ''
If($Accept_ToS -ne 1){ $UpArg += '-atos ' }
If($InternetCheck -eq 1){ $UpArg += '-sic ' }
If($CreateRestorePoint -eq 1){ $UpArg += '-crp ' }
If($Restart -eq 0){ $UpArg += '-dnr' }
$UpArg += If($RunScr){ "-run $TempSetting " } Else{ "-load $TempSetting " }
Clear-Host
DisplayMisc -Line
DisplayMisc
DisplayOutLML (''.PadRight(18)+'Update Found!') -C 13 -L
DisplayMisc
DisplayOut '|',' Updating from version ',"$Script_Version".PadRight(30),'|' -C 14,15,11,14 -L
DisplayMisc
DisplayOut '|',' Downloading version ',"$FullVer".PadRight(31),'|' -C 14,15,11,14 -L
DisplayOutLML 'Will run after download is complete.' -C 15 -L
DisplayMisc
DisplayMisc -Line
(New-Object System.Net.WebClient).DownloadFile($Script_Url, $ScrpFilePath)
Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$ScrpFilePath`" $UpArg" -Verb RunAs
Exit
}
Function InternetCheck{ If($InternetCheck -eq 1 -or (Test-Connection www.GitHub.com -Count 1 -Quiet)){ Return $True } Return $False }
##########
# Update Functions -End
##########
# Multi Use Functions -Start
##########
Function ThanksDonate {
DisplayOut "`nThanks for using my script." -C 11
DisplayOut 'If you like this script please consider giving me a donation.' -C 11
DisplayOut "`nLink to donation:" -C 15
DisplayOut $Donate_Url -C 2
}
Function cmpv{ Compare-Object (Get-Variable -Scope Script) $AutomaticVariables -Property Name -PassThru | Where-Object -Property Name -ne 'AutomaticVariables' | Where-Object { $_ -NotIn $WPFList } }
Function Openwebsite([String]$Url){ Start-Process $Url }
Function ShowInvalid([Int]$InvalidA){ If($InvalidA -eq 1){ Write-Host "`nInvalid Input" -ForegroundColor Red -BackgroundColor Black -NoNewline } Return 0 }
Function CheckSetPath([String]$RPath){ While(!(Test-Path $RPath)){ New-Item -Path $RPath -Force | Out-Null } Return $RPath }
Function RemoveSetPath([String]$RPath){ If(Test-Path $RPath){ Remove-Item -Path $RPath -Recurse } }
Function StartOrGui{ SetAppxVar ;If($RunScr -eq $True){ RunScript } ElseIf($AcceptToS -ne 1){ GuiStart } }
Function DisplayOut {
Param ( [Alias ("T")] [String[]]$Text, [Alias ("C")] [Int[]]$Color )
For($i=0 ;$i -lt $Text.Length ;$i++){ Write-Host $Text[$i] -ForegroundColor $colors[$Color[$i]] -BackgroundColor 'Black' -NoNewLine } ;Write-Host
}
Function DisplayOutLML {
Param ( [Alias('T')] [String]$Text, [Alias('C')] [Int[]]$Color )
DisplayOut '| ',"$Text".PadRight(50),' |' -C 14,$Color,14
}
Function DisplayMisc {
Param ( [Switch]$Line, [Int]$Misc = 14 )
$txt = If($Line){ '|'.PadRight(53,'-') + '|' } Else{ '|'.PadRight(53) + '|' } #Line or Blank Spaces
$Splat = @{ Text = $txt ;Color = $Misc }
DisplayOut @Splat
}
Function ScriptPreStart {
SetDefault
If($PassedArg.Length -gt 0){ ArgCheck }
If($AcceptToS -eq 1){ TOS } Else{ StartOrGui }
}
Function SetAppxVar {
$Script:DataGridApps = [PSCustomObject] @{ AppxName = 'Microsoft.3DBuilder'; CName = '3DBuilder'; VarName = 'APP_3DBuilder'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_3DBuilder]},
[PSCustomObject] @{ AppxName = 'Microsoft.Microsoft3DViewer'; CName = '3DViewer'; VarName = 'APP_3DViewer'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_3DViewer]},
[PSCustomObject] @{ AppxName = 'Microsoft.BingWeather'; CName = 'Bing Weather'; VarName = 'APP_BingWeather'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_BingWeather]},
[PSCustomObject] @{ AppxName = 'Microsoft.CommsPhone'; CName = 'Phone'; VarName = 'APP_CommsPhone'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_CommsPhone]},
[PSCustomObject] @{ AppxName = 'Microsoft.windowscommunicationsapps'; CName = 'Calendar & Mail'; VarName = 'APP_Communications'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_Communications]},
[PSCustomObject] @{ AppxName = 'Microsoft.GetHelp'; CName = "Microsoft's Self-Help"; VarName = 'APP_GetHelp'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_GetHelp]},
[PSCustomObject] @{ AppxName = 'Microsoft.Getstarted'; CName = 'Get Started Link'; VarName = 'APP_Getstarted'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_Getstarted]},
[PSCustomObject] @{ AppxName = 'Microsoft.Messaging'; CName = 'Messaging'; VarName = 'APP_Messaging'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_Messaging]},
[PSCustomObject] @{ AppxName = 'Microsoft.MicrosoftOfficeHub'; CName = 'Get Office Link'; VarName = 'APP_MicrosoftOffHub'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_MicrosoftOffHub]},
[PSCustomObject] @{ AppxName = 'Microsoft.MovieMoments'; CName = 'Movie Moments'; VarName = 'APP_MovieMoments'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_MovieMoments]},
[PSCustomObject] @{ AppxName = '4DF9E0F8.Netflix'; CName = 'Netflix'; VarName = 'APP_Netflix'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_Netflix]},
[PSCustomObject] @{ AppxName = 'Microsoft.Office.OneNote'; CName = 'Office OneNote'; VarName = 'APP_OfficeOneNote'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_OfficeOneNote]},
[PSCustomObject] @{ AppxName = 'Microsoft.Office.Sway'; CName = 'Office Sway'; VarName = 'APP_OfficeSway'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_OfficeSway]},
[PSCustomObject] @{ AppxName = 'Microsoft.OneConnect'; CName = 'One Connect'; VarName = 'APP_OneConnect'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_OneConnect]},
[PSCustomObject] @{ AppxName = 'Microsoft.People'; CName = 'People'; VarName = 'APP_People'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_People]},
[PSCustomObject] @{ AppxName = 'Microsoft.Windows.Photos'; CName = 'Photos'; VarName = 'APP_Photos'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_Photos]},
[PSCustomObject] @{ AppxName = 'Microsoft.SkypeApp'; CName = 'Skype'; VarName = 'APP_SkypeApp1'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_SkypeApp1]},
[PSCustomObject] @{ AppxName = 'Microsoft.MicrosoftSolitaireCollection'; CName = 'Microsoft Solitaire'; VarName = 'APP_SolitaireCollect'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_SolitaireCollect]},
[PSCustomObject] @{ AppxName = 'Microsoft.MicrosoftStickyNotes'; CName = 'Sticky Notes'; VarName = 'APP_StickyNotes'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_StickyNotes]},
[PSCustomObject] @{ AppxName = 'Microsoft.WindowsSoundRecorder'; CName = 'Voice Recorder'; VarName = 'APP_VoiceRecorder'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_VoiceRecorder]},
[PSCustomObject] @{ AppxName = 'Microsoft.WindowsAlarms'; CName = 'Alarms and Clock'; VarName = 'APP_WindowsAlarms'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_WindowsAlarms]},
[PSCustomObject] @{ AppxName = 'Microsoft.WindowsCalculator'; CName = 'Calculator'; VarName = 'APP_WindowsCalculator'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_WindowsCalculator]},
[PSCustomObject] @{ AppxName = 'Microsoft.WindowsCamera'; CName = 'Camera'; VarName = 'APP_WindowsCamera'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_WindowsCamera]},
[PSCustomObject] @{ AppxName = 'Microsoft.WindowsFeedback'; CName = 'Windows Feedback'; VarName = 'APP_WindowsFeedbak1'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_WindowsFeedbak1]},
[PSCustomObject] @{ AppxName = 'Microsoft.WindowsFeedbackHub'; CName = 'Windows Feedback Hub'; VarName = 'APP_WindowsFeedbak2'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_WindowsFeedbak2]},
[PSCustomObject] @{ AppxName = 'Microsoft.WindowsMaps'; CName = 'Maps'; VarName = 'APP_WindowsMaps'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_WindowsMaps]},
[PSCustomObject] @{ AppxName = 'Microsoft.WindowsPhone'; CName = 'Phone Companion'; VarName = 'APP_WindowsPhone'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_WindowsPhone]},
[PSCustomObject] @{ AppxName = 'Microsoft.WindowsStore'; CName = 'Microsoft Store'; VarName = 'APP_WindowsStore'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_WindowsStore]},
[PSCustomObject] @{ AppxName = 'Microsoft.Wallet'; CName = 'Stores Credit and Debit Card Information'; VarName = 'APP_WindowsWallet'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_WindowsWallet]},
[PSCustomObject] @{ AppxName = $Xbox_Apps; CName = 'Xbox Apps (All)'; VarName = 'APP_XboxApp'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_XboxApp]},
[PSCustomObject] @{ AppxName = 'Microsoft.ZuneMusic'; CName = 'Groove Music'; VarName = 'APP_ZuneMusic'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_ZuneMusic]},
[PSCustomObject] @{ AppxName = 'Microsoft.ZuneVideo'; CName = 'Groove Video'; VarName = 'APP_ZuneVideo'; AppOptions = $AppxOptions; AppSelected = $AppxOptions[$APP_ZuneVideo]}
If($WPF_dataGrid){ $WPF_dataGrid.ItemsSource = $DataGridApps }
}
Function PassVal([String]$Pass){ Return $PassedArg[$PassedArg.IndexOf($Pass)+1] }
Function ArgCheck {
If($PassedArg -In '-help','-h'){ ShowHelp }
If($PassedArg -Contains '-copy'){ ShowCopyright ;Exit }
If($PassedArg -Contains '-run') {
$tmp = PassVal '-run'
If(Test-Path -LiteralPath $tmp -PathType Leaf) {
LoadSettingFile $tmp ;$Script:RunScr = $True
} ElseIf($tmp -In 'wd','windefault') {
LoadWinDefault ;$Script:RunScr = $True
} ElseIf($tmp.StartsWith('-') -or $PassedArg.IndexOf('-run') -eq $PassedArg.Length) {
$Script:RunScr = $True
}
}
If($PassedArg -Contains '-load') {
$tmp = PassVal '-load'
If(Test-Path -LiteralPath $tmp -PathType Leaf){ LoadSettingFile $tmp } ElseIf($tmp -In 'wd','windefault'){ LoadWinDefault }
}
If($PassedArg -Contains '-sic'){ $Script:InternetCheck = 1 }
If($PassedArg -Contains '-usc'){ $Script:VersionCheck = 1 }
If($PassedArg -Contains '-atos'){ $Script:AcceptToS = 'Accepted' }
If($PassedArg -Contains '-dnr'){ $Script:Restart = 0 }
If($PassedArg -Contains '-auto'){ $Script:Automated = 1 ;$Script:AcceptToS = 'Accepted' }
If($PassedArg -Contains '-crp') {
$Script:CreateRestorePoint = 1
$tmp = PassVal '-crp'
If(!$tmp.StartsWith('-')){ $Script:RestorePointName = $tmp }
}
}
Function ShowHelp {
Clear-Host
DisplayOut ' List of Switches' -C 13
DisplayOut ''.PadRight(53,'-') -C 14
DisplayOut ' Switch ',"Description of Switch`n".PadLeft(31) -C 14,15
DisplayOut '-- Basic Switches --' -C 2
DisplayOut ' -atos ',' Accepts ToS' -C 14,15
DisplayOut ' -auto ',' Implies ','-atos','...Runs the script to be Automated.. Closes on - User Input, Errors, or End of Script' -C 14,15,14,15
DisplayOut ' -crp ',' Creates Restore Point' -C 14,15
DisplayOut ' -dnr ',' Do Not Restart when done' -C 14,15
DisplayOut "`n-- Run Script Switches --" -C 2
DisplayOut ' -run ',' Runs script with settings in script' -C 14,15
DisplayOut ' -run ','FILENAME ',' Runs script with settings in the file',' FILENAME' -C 14,11,15,11
DisplayOut ' -run wd ',' Runs script with win default settings' -C 14,15
DisplayOut "`n-- Load Script Switches --" -C 2
DisplayOut ' -run ','FILENAME ',' Loads script with settings in the file',' FILENAME' -C 14,11,15,11
DisplayOut ' -load wd ',' Loads script with win default settings' -C 14,15
DisplayOut "`n--Update Switches--" -C 2
DisplayOut ' -usc ',' Checks for Update to Script file before running' -C 14,15
DisplayOut ' -sic '," Skips Internet Check, if you can't ping GitHub.com for some reason" -C 14,15
DisplayOut "`n--Help--" -C 2
DisplayOut ' -help ',' Shows list of switches, then exits script.. alt ','-h' -C 14,15,14
DisplayOut ' -copy ',' Shows Copyright/License Information, then exits script' -C 14,15
AnyKeyClose
Exit
}
Function ShowCopyright { Clear-Host ;DisplayOut $Copyright -C 14 }
Function TOSDisplay([Switch]$C) {
If(!$C){ Clear-Host }
$BC = 14
If($Release_Type -ne 'Stable') {
$BC = 15
DisplayMisc -Line -Misc 15
DisplayOut '|'.PadRight(22),'Caution!!!'.PadRight(31),'|' -C 15,13,15
DisplayMisc -Misc 15
DisplayOut '|',' This script is still being tested. ','|' -C 15,14,15
DisplayOut '|'.PadRight(17),'USE AT YOUR OWN RISK.'.PadRight(36),'|' -C 15,14,15
DisplayMisc -Misc 15
}
DisplayMisc -Line -Misc $BC
DisplayOut '|'.PadRight(21),'Terms of Use'.PadRight(32),'|' -C $BC,11,$BC
DisplayMisc -Line -Misc $BC
DisplayMisc -Misc $BC
DisplayOut '|',' This program comes with ABSOLUTELY NO WARRANTY. ','|' -C $BC,2,$BC
DisplayOut '|',' This is free software, and you are welcome to ','|' -C $BC,2,$BC
DisplayOut '|',' redistribute it under certain conditions.'.PadRight(52),'|' -C $BC,2,$BC
DisplayMisc -Misc $BC
DisplayOut '|',' Read License file for full Terms.'.PadRight(52),'|' -C $BC,2,$BC
DisplayMisc -Misc $BC
DisplayOut '|',' Use the switch ','-copy',' to see License Information or ','|' -C $BC,2,14,2,$BC
DisplayOut '|',' enter ','L',' bellow.'.PadRight(44),'|' -C $BC,2,14,2,$BC
DisplayMisc -Misc $BC
DisplayMisc -Line -Misc $BC
}
Function TOS {
$CopyR = $False
While($TOS -ne 'Out') {
TOSDisplay -c:$CopyR
$CopyR = $False
$Invalid = ShowInvalid $Invalid
$TOS = Read-Host "`nDo you Accept? (Y)es/(N)o"
If($TOS -In 'n','no'){
Exit
} ElseIf($TOS -In 'y','yes') {
$Script:AcceptToS = 'Accepted-Script' ;$TOS = 'Out' ;StartOrGui
} ElseIf($TOS -eq 'l') {
$CopyR = $True ;ShowCopyright
} Else {
$Invalid = 1
}
} Return
}
Function LoadSettingFile([String]$Filename) {
If($Filename) {
(Import-Csv -LiteralPath $Filename -Delimiter ';').ForEach{ Set-Variable $_.Name $_.Value -Scope Script }
#[System.Collections.ArrayList]$Script:APPS_AppsUnhide = $AppsUnhide.Split(',')
#[System.Collections.ArrayList]$Script:APPS_AppsHide = $AppsHide.Split(',')
#[System.Collections.ArrayList]$Script:APPS_AppsUninstall = $AppsUninstall.Split(',')
SetAppxVar
}
}
Function SaveSettingFiles([String]$Filename) {
If($Filename) {
#ForEach($temp In $APPS_AppsUnhide){$Script:AppsUnhide += $temp + ','}
#ForEach($temp In $APPS_AppsHide){$Script:AppsHide += $temp + ','}
#ForEach($temp In $APPS_Uninstall){$Script:AppsUninstall += $temp + ','}
If(Test-Path -LiteralPath $Filename -PathType Leaf) {
If($ShowConf -eq 1){ $Conf = ConfirmMenu 2 } Else{ $Conf = $True }
If($Conf){ cmpv | Select-Object Name,Value | Export-Csv -LiteralPath $Filename -Encoding 'unicode' -Force -Delimiter ';' }
} Else {
cmpv | Select-Object Name,Value | Export-Csv -LiteralPath $Filename -Encoding 'unicode' -Force -Delimiter ';'
}
}
}
##########
# Multi Use Functions -End
##########
# GUI -Start
##########
Function SetCombo([String]$Name,[String]$Item) {
$Items = $Item.Split(',')
$combo = $(Get-Variable -Name ('WPF_'+$Name+'_Combo') -ValueOnly)
[Void] $combo.Items.Add('Skip')
ForEach($CmbItm In $Items){ [void] $combo.Items.Add($CmbItm) }
SelectComboBoxGen $Name $(Get-Variable -Name $Name -ValueOnly)
}
Function SetComboM([String]$Name,[String]$Item) {
$Items = $Item.Split(',')
$combo = $(Get-Variable -Name ('WPF_'+$Name+'_Combo') -ValueOnly)
[Void] $combo.Items.Add('Skip')
ForEach($CmbItm In $Items){ [Void] $combo.Items.Add($CmbItm) }
If($Var -NotLike 'APP_*'){ SelectComboBoxGen $Name $(Get-Variable -Name $Name -ValueOnly) }
}
Function SelectComboBox([Array]$List) {
ForEach($Var In $List) {
If($Var -NotLike 'APP_*'){ SelectComboBoxGen $Var $(Get-Variable -Name $Var -ValueOnly) }
}
}
Function SelectComboBoxGen([String]$Name,[Int]$Numb){ $(Get-Variable -Name ('WPF_'+$Name+'_Combo') -ValueOnly).SelectedIndex = $Numb }
Function RestorePointCBCheck {
$WPF_CreateRestorePoint_CB.IsChecked,$WPF_RestorePointName_Txt = If($CreateRestorePoint -eq 1){ $True,$True } Else{ $False,$False }
}
Function ConfigGUIitms {
$WPF_CreateRestorePoint_CB.IsChecked = If($CreateRestorePoint -eq 1){ $True } Else{ $False }
$WPF_VersionCheck_CB.IsChecked = If($VersionCheck -eq 1){ $True } Else{ $False }
$WPF_InternetCheck_CB.IsChecked = If($InternetCheck -eq 1){ $True } Else{ $False }
$WPF_ShowSkipped_CB.IsChecked = If($ShowSkipped -eq 1){$True } Else{ $False }
$WPF_Restart_CB.IsChecked = If($Restart -eq 1){ $True } Else{ $False }
$WPF_RestorePointName_Txt.Text = $RestorePointName
RestorePointCBCheck
}
Function OpenSaveDiaglog([Int]$SorO) {
$SOFileDialog = If($SorO -eq 0){ New-Object System.Windows.Forms.OpenFileDialog } Else{ New-Object System.Windows.Forms.SaveFileDialog }
$SOFileDialog.InitialDirectory = $FileBase
$SOFileDialog.Filter = "CSV (*.csv)| *.csv"
$SOFileDialog.ShowDialog() | Out-Null
If($SorO -eq 0) {
LoadSettingFile $SOFileDialog.Filename
ConfigGUIitms
SelectComboBox $VarList
SetAppxVar
} Else {
GuiItmToVariable
SaveSettingFiles $SOFileDialog.Filename
}
}
Function GuiStart {
Clear-Host
DisplayOut 'Preparing GUI, Please wait...' -C 15
[xml]$XAML = @"
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Name="Win10_Script"
Title="Windows 10 Settings/Tweaks Script By: Madbomb122 (v.$Script_Version -$Script_Date" Height="420" Width="660" BorderBrush="Black" Background="White">
<Window.Resources>
<Style x:Key="SeparatorStyle1" TargetType="{x:Type Separator}">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Margin" Value="0,0,0,0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Separator}">
<Border Height="24" SnapsToDevicePixels="True" Background="#FF4D4D4D" BorderBrush="#FF4D4D4D" BorderThickness="0,0,0,1"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type ToolTip}"><Setter Property="Background" Value="#FFFFFFBF"/></Style>
</Window.Resources>
<Window.Effect><DropShadowEffect/></Window.Effect>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="20"/>
<RowDefinition Height="*"/>
<RowDefinition Height="24"/>
</Grid.RowDefinitions>
<Menu Grid.Row="0" VerticalAlignment="Top">
<MenuItem Header="Help">
<MenuItem Name="FeedbackButton" Header="Feedback/Bug Report"/>
<MenuItem Name="FAQButton" Header="FAQ"/>
<MenuItem Name="AboutButton" Header="About"/>
<MenuItem Name="CopyrightButton" Header="Copyright"/>
<MenuItem Name="ContactButton" Header="Contact Me"/>
</MenuItem>
<MenuItem Name="DonateButton" Background="#FFFFAD2F" FontWeight="Bold" Header="Donate to Me"/>
<MenuItem Name="Madbomb122WSButton" Background="#FFFFDF4F" FontWeight="Bold" Header="Madbomb122's GitHub"/>
</Menu>
<TabControl Name="TabControl" Grid.Row="1" BorderBrush="Gainsboro" TabStripPlacement="Left">
<TabControl.Resources>
<Style TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Border Name="Border" Margin="2,2" BorderBrush="Gainsboro" BorderThickness="1,1,1,0" CornerRadius="4,4,0,0">
<ContentPresenter x:Name="ContentSite" HorizontalAlignment="Center" Margin="5,2" VerticalAlignment="Center" ContentSource="Header"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True"><Setter TargetName="Border" Property="Background" Value="LightSkyBlue" /></Trigger>
<Trigger Property="IsSelected" Value="False"><Setter TargetName="Border" Property="Background" Value="GhostWhite" /></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TabControl.Resources>
<TabItem Name="Options_Tab" Header="Script Options">
<Grid Background="#FFE5E5E5">
<Grid.RowDefinitions>
<RowDefinition Height="6*"/>
<RowDefinition Height="2*"/>
<RowDefinition Height="1.5*"/>
</Grid.RowDefinitions>
<GroupBox Header="Options" Grid.Row="0" Margin="2">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.1*"/>
<ColumnDefinition Width="5*"/>
</Grid.ColumnDefinitions>
<CheckBox Name="CreateRestorePoint_CB" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Left" Margin="5" VerticalAlignment="Center" Content="Create Restore Point:"/>
<TextBox Name="RestorePointName_Txt" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" Margin="5" VerticalAlignment="Center" Text="Win10 Initial Setup Script" TextWrapping="Wrap"/>
<CheckBox Name="ShowSkipped_CB" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Left" Margin="5" VerticalAlignment="Center" Content="Show Skipped Items"/>
<CheckBox Name="Restart_CB" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="2" HorizontalAlignment="Left" Margin="5" VerticalAlignment="Center" Content="Restart When Done (Restart is Recommended)"/>
<CheckBox Name="VersionCheck_CB" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="3" HorizontalAlignment="Left" Margin="5" VerticalAlignment="Center" Content="Check for Update (If found, will run with current settings)"/>
<CheckBox Name="InternetCheck_CB" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Left" Margin="5" VerticalAlignment="Center" Content="Skip Internet Check"/>
</Grid>
</GroupBox>
<GroupBox Header="Backup / Restore / Reset" Grid.Row="1" Margin="2">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Name="Save_Setting_Button" Content="Save Settings" Grid.Column="0" Grid.Row="0"/>
<Button Name="Load_Setting_Button" Content="Load Settings" Grid.Column="1" Grid.Row="0"/>
<Button Name="WinDefault_Button" Content="Windows Default*" Grid.Column="2" Grid.Row="0"/>
<Button Name="ResetDefault_Button" Content="Reset All Items" Grid.Column="3" Grid.Row="0"/>
<TextBlock Text="Windows Default * / Does not modify Windows Apps or OneDrive Installation" Grid.Column="0" Grid.ColumnSpan="4" Grid.Row="1" HorizontalAlignment="Left" FontStyle="Italic" TextWrapping="Wrap"/>
</Grid>
</GroupBox>
<GroupBox Header="Version" Grid.Row="2" Margin="2">
<Grid>
<TextBlock Name="Script_Ver_Txt" Text="v.$Script_Version ($Script_Date) -$Release_Type" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Top"/>
</Grid>
</GroupBox>
</Grid>
</TabItem>
<TabItem Name="Privacy_tab" Header="Privacy">
<Grid Background="#FFE5E5E5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="18*"/>
<ColumnDefinition Width="20*"/>
</Grid.ColumnDefinitions>
<Label Content="Telemetry:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="Telemetry_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Wi-Fi Sense:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="WiFiSense_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="SmartScreen Filter:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="SmartScreen_Combo" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Location Tracking:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="LocationTracking_Combo" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Feedback:" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="Feedback_Combo" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Advertising ID:" Grid.Column="0" Grid.Row="5" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="AdvertisingID_Combo" Grid.Column="1" Grid.Row="5" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="21*"/>
<ColumnDefinition Width="20*"/>
</Grid.ColumnDefinitions>
<Label Content="Cortana:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="Cortana_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Cortana Search:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="CortanaSearch_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Error Reporting:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="ErrorReporting_Combo" Grid.Column="2" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="AutoLogger:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="AutoLoggerFile_Combo" Grid.Column="2" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Diagnostics Tracking:" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="DiagTrack_Combo" Grid.Column="2" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="WAP Push:" Grid.Column="0" Grid.Row="5" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="WAPPush_Combo" Grid.Column="2" Grid.Row="5" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="App Auto Download:" Grid.Column="0" Grid.Row="6" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="AppAutoDownload_Combo" Grid.Column="1" Grid.Row="6" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
</Grid>
</TabItem>
<TabItem Name="SrvTweak_Tab" Header="Service Tweaks">
<Grid Background="#FFE5E5E5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="7*"/>
<ColumnDefinition Width="5*"/>
</Grid.ColumnDefinitions>
<Label Content="UAC Level:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="UAC_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Sharing mapped drives:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="SharingMappedDrives_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Administrative Shares:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="AdminShares_Combo" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Firewall:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="Firewall_Combo" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="7*"/>
<ColumnDefinition Width="5*"/>
</Grid.ColumnDefinitions>
<Label Content="Windows Defender:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="WinDefender_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="HomeGroups:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="HomeGroups_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Remote Assistance:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="RemoteAssistance_Combo" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Remote Desktop w/o Network Authentication:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="RemoteDesktop_Combo" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
</Grid>
</TabItem>
<TabItem Name="Context_Tab" Header="Context Menu, 
Start Menu">
<Grid Background="#FFE5E5E5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<GroupBox Header="Context Menu" Grid.Column="0" Margin="5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Content="Cast to Device:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="CastToDevice_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Previous Versions:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="PreviousVersions_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Include in Library:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="IncludeinLibrary_Combo" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Pin To Start:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="PinToStart_Combo" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Pin To Quick Access:" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="PinToQuickAccess_Combo" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Share With/Share:" Grid.Column="0" Grid.Row="5" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="ShareWith_Combo" Grid.Column="1" Grid.Row="5" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Send To:" Grid.Column="0" Grid.Row="6" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="SendTo_Combo" Grid.Column="1" Grid.Row="6" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
</GroupBox>
<GroupBox Header="Start Menu" Grid.Column="1" Margin="5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Content="Bing Search:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="StartMenuWebSearch_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Start Suggestions:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="StartSuggestions_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Most Used Apps:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="MostUsedAppStartMenu_Combo" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Recent Items/Frequent Places:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="RecentItemsFrequent_Combo" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Unpin All Items:" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="UnpinItems_Combo" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
</GroupBox>
</Grid>
</TabItem>
<TabItem Name="TaskBar_Tab" Header="Task Bar">
<Grid Background="#FFE5E5E5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label Content="Battery UI Bar:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="BatteryUIBar_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Clock UI Bar:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="ClockUIBar_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Volume Control Bar:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="VolumeControlBar_Combo" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Taskbar Search box:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="TaskbarSearchBox_Combo" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Task View button:" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="TaskViewButton_Combo" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Taskbar Icon Size:" Grid.Column="0" Grid.Row="5" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="TaskbarIconSize_Combo" Grid.Column="1" Grid.Row="5" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Taskbar Item Grouping:" Grid.Column="2" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="TaskbarGrouping_Combo" Grid.Column="3" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Tray Icons:" Grid.Column="2" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="TrayIcons_Combo" Grid.Column="3" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Seconds In Clock:" Grid.Column="2" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="SecondsInClock_Combo" Grid.Column="3" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Last Active Click:" Grid.Column="2" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="LastActiveClick_Combo" Grid.Column="3" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Taskbar on Multi Display:" Grid.Column="2" Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="TaskBarOnMultiDisplay_Combo" Grid.Column="3" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Taskbar Button on Multi Display:" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="6" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="TaskbarButtOnDisplay_Combo" Grid.Column="2" Grid.Row="6" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
</TabItem>
<TabItem Name="Explorer_Tab" Header="Explorer">
<Grid Background="#FFE5E5E5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Name="Timeline_Row" Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Content="Recent Files in Quick Access:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="RecentFileQikAcc_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Frequent folders in Quick_access:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="FrequentFoldersQikAcc_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Window Content while Dragging:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="WinContentWhileDrag_Combo" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Search Store for Unkn. Extensions:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="StoreOpenWith_Combo" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Long File Path:" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="LongFilePath_Combo" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Default Explorer View:" Grid.Column="0" Grid.Row="5" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="ExplorerOpenLoc_Combo" Grid.Column="1" Grid.Row="5" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Powershell to Cmd:" Grid.Column="0" Grid.Row="6" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="WinXPowerShell_Combo" Grid.Column="1" Grid.Row="6" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="App Hibernation File (Swapfile.sys):" Grid.Column="0" Grid.Row="7" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="AppHibernationFile_Combo" Grid.Column="1" Grid.Row="7" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Process ID on Title Bar:" Grid.Column="0" Grid.Row="8" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="PidInTitleBar_Combo" Grid.Column="1" Grid.Row="8" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Accessability Key Prompt:" Grid.Column="0" Grid.Row="9" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="AccessKeyPrmpt_Combo" Grid.Column="1" Grid.Row="9" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Window Timeline:" Grid.Column="0" Grid.Row="10" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="Timeline_Combo" Grid.Column="1" Grid.Row="10" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Name="ReopenAppsOnBoot_Row" Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Label Content="Aero Snap:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="AeroSnap_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Aero Shake:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="AeroShake_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Known Extensions:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="KnownExtensions_Combo" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Hidden Files:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="HiddenFiles_Combo" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="System Files:" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="SystemFiles_Combo" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Autoplay:" Grid.Column="0" Grid.Row="5" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="Autoplay_Combo" Grid.Column="1" Grid.Row="5" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Autorun:" Grid.Column="0" Grid.Row="6" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="Autorun_Combo" Grid.Column="1" Grid.Row="6" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Task Manager Details:" Grid.Column="0" Grid.Row="7" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="TaskManagerDetails_Combo" Grid.Column="1" Grid.Row="7" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="F1 Help Key:" Grid.Column="0" Grid.Row="8" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="F1HelpKey_Combo" Grid.Column="1" Grid.Row="8" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Reopen Apps On Boot:" Grid.Column="0" Grid.Row="9" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="ReopenAppsOnBoot_Combo" Grid.Column="1" Grid.Row="9" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
</Grid>
</TabItem>
<TabItem Name="Desktop_Tab" Header="Desktop, This PC">
<Grid Background="#FFE5E5E5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<GroupBox Header="Desktop" Grid.Column="0" Margin="5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Content="This PC Icon:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="ThisPCOnDesktop_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Network Icon:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="NetworkOnDesktop_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Recycle Bin Icon:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="RecycleBinOnDesktop_Combo" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Users File Icon:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="UsersFileOnDesktop_Combo" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Control Panel Icon:" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="ControlPanelOnDesktop_Combo" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
</GroupBox>
<GroupBox Header="This PC" Grid.Column="1" Margin="5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Name="ThreeDobjectsIconInThisPC_Row" Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Content="Desktop Folder:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="DesktopIconInThisPC_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Documents Folder:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="DocumentsIconInThisPC_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Downloads Folder:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="DownloadsIconInThisPC_Combo" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Music Folder:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="MusicIconInThisPC_Combo" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Pictures Folder:" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="PicturesIconInThisPC_Combo" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Videos Folder:" Grid.Column="0" Grid.Row="5" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="VideosIconInThisPC_Combo" Grid.Column="1" Grid.Row="5" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="3D Objects Folder:" Grid.Column="0" Grid.Row="6" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="ThreeDobjectsIconInThisPC_Combo" Grid.Column="1" Grid.Row="6" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="**Remove may cause problems" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="7" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</GroupBox>
</Grid>
</TabItem>
<TabItem Name="Misc_Tab" Header="Photo Viewer, 
LockScreen, Misc">
<Grid Background="#FFE5E5E5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid>
<Grid Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition Height="4*"/>
</Grid.RowDefinitions>
<GroupBox Header="Photo Viewer" Grid.Row="0" Margin="10">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Content="File Association:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="PVFileAssociation_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Add Open with...:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="PVOpenWithMenu_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
</GroupBox>
<GroupBox Header="Lockscreen" Grid.Row="1" Margin="5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Label Content="Lockscreen:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="Lockscreen_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Lockscreen Prompt Password:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="LockscreenPassword_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Power Menu:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="PowerMenuLockScreen_Combo" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Camera:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="CameraOnLockscreen_Combo" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Account Protection Warning:" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="AccountProtectionWarn_Combo" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
</GroupBox>
</Grid>
</Grid>
<GroupBox Header="Misc" Grid.Column="1" Margin="5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="1.5*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Label Content="ScreenSaver:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="ScreenSaver_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Action Center:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="ActionCenter_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Sticky Key Prompt:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="StickyKeyPrompt_Combo" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Num Lock on Startup:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="NumblockOnStart_Combo" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="F8 Boot Menu:" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="F8BootMenu_Combo" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Remote UAC Local 
Account Token Filter" Grid.Column="0" Grid.Row="5" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="RemoteUACAcctToken_Combo" Grid.Column="1" Grid.Row="5" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Hibernate Option:" Grid.Column="0" Grid.Row="6" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="HibernatePower_Combo" Grid.Column="1" Grid.Row="6" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Sleep Option:" Grid.Column="0" Grid.Row="7" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="SleepPower_Combo" Grid.Column="1" Grid.Row="7" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
</GroupBox>
</Grid>
</TabItem>
<TabItem Name="WinApp_Tab" Header="Window App">
<DataGrid Name="dataGrid" AlternationCount="2" AutoGenerateColumns="False" CanUserAddRows="False" HeadersVisibility="Column" IsTabStop="True" SelectionMode="Extended">
<DataGrid.RowStyle>
<Style TargetType="{ x:Type DataGridRow }">
<Style.Triggers>
<Trigger Property="AlternationIndex" Value="0"><Setter Property="Background" Value="White"/></Trigger>
<Trigger Property="AlternationIndex" Value="1"><Setter Property="Background" Value="#FFD8D8D8"/></Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="Display Name" Width="150" Binding="{Binding CName}" CanUserSort="True" IsReadOnly="True"/>
<DataGridTemplateColumn Width="80" CanUserSort="True" Header="Option" SortMemberPath="AppSelected">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding AppOptions}" Text="{Binding Path=AppSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Appx Name" Width="180" Binding="{Binding AppxName}" IsReadOnly="True"/>
</DataGrid.Columns>
</DataGrid>
</TabItem>
<TabItem Name="Application_Tab" Header="Application, 
Windows Update">
<Grid Background="#FFE5E5E5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<GroupBox Grid.Column="0" Margin="5" Header="Application/Feature">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Name="LinuxSubsystem_Row" Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Content="OneDrive:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="OneDrive_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="OneDrive Install:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="OneDriveInstall_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Xbox DVR:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="XboxDVR_Combo" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="MediaPlayer:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="MediaPlayer_Combo" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Work Folders:" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="WorkFolders_Combo" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Fax And Scan:" Grid.Column="0" Grid.Row="5" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="FaxAndScan_Combo" Grid.Column="1" Grid.Row="5" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Linux Subsystem:" Grid.Column="0" Grid.Row="6" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="LinuxSubsystem_Combo" Grid.Column="1" Grid.Row="6" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
</GroupBox>
<GroupBox Header="Windows Update" Grid.Column="1" Margin="5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="9*"/>
<ColumnDefinition Width="5*"/>
</Grid.ColumnDefinitions>
<Label Content="Check for Update:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="CheckForWinUpdate_Combo" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Update Check Type:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="WinUpdateType_Combo" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Update P2P:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="WinUpdateDownload_Combo" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Update MSRT:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="UpdateMSRT_Combo" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Update Driver:" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="UpdateDriver_Combo" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Restart on Update:" Grid.Column="0" Grid.Row="5" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="RestartOnUpdate_Combo" Grid.Column="1" Grid.Row="5" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Update Available Popup:" Grid.Column="0" Grid.Row="6" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="UpdateAvailablePopup_Combo" Grid.Column="1" Grid.Row="6" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Update MS Products:" Grid.Column="0" Grid.Row="7" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<ComboBox Name="UpdateMSProducts_Combo" Grid.Column="1" Grid.Row="7" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
</GroupBox>
</Grid>
</TabItem>
</TabControl>
<Button Name="RunScriptButton" Content="Run Script" Height="20" Grid.Row="2" VerticalAlignment="Bottom" FontWeight="Bold"/>
</Grid>
</Window>
"@
[Void][System.Reflection.Assembly]::LoadWithPartialName('presentationframework')
$Form = [Windows.Markup.XamlReader]::Load( (New-Object System.Xml.XmlNodeReader $xaml) )
$xaml.SelectNodes('//*[@Name]').ForEach{Set-Variable -Name "WPF_$($_.Name)" -Value $Form.FindName($_.Name) -Scope Script}
$Runspace = [RunSpaceFactory]::CreateRunspace()
$PowerShell = [PowerShell]::Create()
$PowerShell.RunSpace = $Runspace
$Runspace.Open()
[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null
$Script:WPFList = Get-Variable -Name 'WPF_*'
[System.Collections.ArrayList]$VarList = ForEach($Var In (Get-Variable -Name 'WPF_*_Combo')){ $Var.Name.Split('_')[1] }
$WPF_Madbomb122WSButton.Add_Click{ OpenWebsite 'https://GitHub.com/madbomb122/' }
$WPF_FeedbackButton.Add_Click{ OpenWebsite "$MySite/issues" }
$WPF_FAQButton.Add_Click{ OpenWebsite "$MySite/blob/master/README.md" }
$WPF_DonateButton.Add_Click{ OpenWebsite $Donate_Url }
$WPF_CreateRestorePoint_CB.Add_Click{ $WPF_RestorePointName_Txt.IsEnabled = $WPF_CreateRestorePoint_CB.IsChecked }
$WPF_RunScriptButton.Add_Click{ GuiDone }
$WPF_WinDefault_Button.Add_Click{ LoadWinDefault ;SelectComboBox $VarList }
$WPF_ResetDefault_Button.Add_Click{ SetDefault ;SelectComboBox $VarList ;SetAppxVar }
$WPF_Load_Setting_Button.Add_Click{ OpenSaveDiaglog 0 }
$WPF_Save_Setting_Button.Add_Click{ OpenSaveDiaglog 1 }
$WPF_AboutButton.Add_Click{ [Windows.Forms.Messagebox]::Show('This script lets you do Various Settings and Tweaks for Windows 10. For manual or Automated use.','About', 'OK') | Out-Null }
$WPF_CopyrightButton.Add_Click{ [Windows.Forms.Messagebox]::Show($Copyright,'Copyright', 'OK') | Out-Null }
$Skip_EnableD_Disable = @(
'F1HelpKey',
'AccessKeyPrmpt',
'Telemetry',
'WiFiSense',
'SmartScreen',
'LocationTracking',
'Feedback',
'AdvertisingID',
'Cortana',
'CortanaSearch',
'ErrorReporting',
'AutoLoggerFile',
'DiagTrack',
'WAPPush',
'CheckForWinUpdate',
'UpdateMSRT',
'UpdateDriver',
'RestartOnUpdate',
'AppAutoDownload',
'AdminShares',
'Firewall',
'WinDefender',
'HomeGroups',
'RemoteAssistance',
'CastToDevice',
'PreviousVersions',
'IncludeinLibrary',
'PinToStart',
'PinToQuickAccess',
'ShareWith',
'SendTo',
'OneDrive',
'XboxDVR',
'TaskBarOnMultiDisplay',
'StartMenuWebSearch',
'StartSuggestions',
'RecentItemsFrequent',
'Autoplay',
'Autorun',
'AeroSnap',
'AeroShake',
'StoreOpenWith',
'LockScreen',
'LockScreenPassword',
'ScreenSaver',
'CameraOnLockScreen',
'ActionCenter',
'AccountProtectionWarn',
'StickyKeyPrompt',
'SleepPower',
'ReopenAppsOnBoot',
'Timeline',
'UpdateAvailablePopup',
'AppHibernationFile')
$Skip_Enable_DisableD = @(
'UpdateMSProducts',
'SharingMappedDrives',
'RemoteDesktop',
'LastActiveClick',
'NumblockOnStart',
'F8BootMenu',
'RemoteUACAcctToken',
'PVFileAssociation',
'PVOpenWithMenu',
'LongFilePath')
$Skip_ShowD_Hide = @(
'TaskbarSearchBox',
'TaskViewButton',
'MostUsedAppStartMenu',
'FrequentFoldersQikAcc',
'WinContentWhileDrag',
'RecycleBinOnDesktop',
'PowerMenuLockScreen')
$Skip_ShowD_Hide_Remove = @(
'DesktopIconInThisPC',
'DocumentsIconInThisPC',
'DownloadsIconInThisPC',
'ThreeDobjectsIconInThisPC',
'MusicIconInThisPC',
'PicturesIconInThisPC',
'VideosIconInThisPC')
$Skip_Show_HideD = @(
'SecondsInClock',
'PidInTitleBar',
'KnownExtensions',
'HiddenFiles',
'SystemFiles',
'TaskManagerDetails',
'ThisPCOnDesktop',
'NetworkOnDesktop',
'UsersFileOnDesktop',
'ControlPanelOnDesktop')
$Skip_InstalledD_Uninstall = @('OneDriveInstall','MediaPlayer','WorkFolders','FaxAndScan')
If($Release_Type -eq 'Testing'){
$Script:Restart = 0
$WPF_Restart_CB.IsEnabled = $False
$WPF_Restart_CB.Content += ' (Disabled in Testing Version)'
}
If($Win10Ver -lt 1607){ $WPF_LinuxSubsystem_Row.Height = 0 }
If($Win10Ver -lt 1709){
$WPF_ThreeDobjectsIconInThisPC_Row, $WPF_ReopenAppsOnBoot_Row | Foreach-Object{ $_.Height = 0 }
}
If($Win10Ver -lt 1803){
$WPF_AccountProtectionWarn_Row, $WPF_Timeline_Row | Foreach-Object{ $_.Height = 0 }
}
ForEach($Var In $Skip_EnableD_Disable){ SetCombo $Var 'Enable*,Disable' }
ForEach($Var In $Skip_Enable_DisableD){ SetCombo $Var 'Enable,Disable*' }
ForEach($Var In $Skip_ShowD_Hide_Remove){ SetCombo $Var 'Show/Add*,Hide,Remove**' }
ForEach($Var In $Skip_ShowD_Hide){ SetCombo $Var 'Show*,Hide' }
ForEach($Var In $Skip_Show_HideD){ SetCombo $Var 'Show,Hide*' }
ForEach($Var In $Skip_InstalledD_Uninstall){ SetCombo $Var 'Installed*,Uninstall' }
SetCombo 'LinuxSubsystem' 'Installed,Uninstall*'
SetCombo 'HibernatePower' 'Enable,Disable'
SetCombo 'UAC' 'Disable,Normal*,Higher'
SetCombo 'BatteryUIBar' 'New*,Classic'
SetCombo 'ClockUIBar' 'New*,Classic'
SetCombo 'VolumeControlBar' 'New(Horizontal)*,Classic(Vertical)'
SetCombo 'TaskbarIconSize' 'Normal*,Smaller'
SetCombo 'TaskbarGrouping' 'Never,Always*,When Needed'
SetCombo 'TrayIcons' 'Auto*,Always Show'
SetCombo 'TaskBarButtOnDisplay' 'All,Where Window is Open,Main & Where Window is Open'
SetCombo 'UnpinItems' 'Unpin'
SetCombo 'ExplorerOpenLoc' 'Quick Access*,ThisPC'
SetCombo 'RecentFileQikAcc' 'Show/Add*,Hide,Remove'
SetCombo 'WinXPowerShell' 'PowerShell,Command Prompt'
SetCombo 'WinUpdateType' 'Notify,Auto DL,Auto DL+Install*,Admin Config'
SetCombo 'WinUpdateDownload' 'P2P*,Local Only,Disable'
$WPF_dataGrid.ItemsSource = $DataGridApps
ConfigGUIitms
$Form.Title += If($Release_Type -ne 'Stable'){ " -$Release_Type)" } Else{ ')' }
If($Release_Type -eq 'Stable'){ Clear-Host }
DisplayOut 'Displaying GUI Now' -C 14
DisplayOut "`nTo exit you can close the GUI or PowerShell Window." -C 14
$Form.ShowDialog() | Out-Null
}
Function GuiDone {
GuiItmToVariable
$Form.Close()
$Script:RunScr = $True
RunScript
}
Function GuiItmToVariable {
ForEach($Var In $VarList){ Set-Variable -Name $Var -Value ($(Get-Variable -Name ('WPF_'+$Var+'_Combo') -ValueOnly).SelectedIndex) -Scope Script }
$Script:CreateRestorePoint = If($WPF_CreateRestorePoint_CB.IsChecked){ 1 } Else{ 0 }
$Script:VersionCheck = If($WPF_VersionCheck_CB.IsChecked){ 1 } Else{ 0 }
$Script:InternetCheck = If($WPF_InternetCheck_CB.IsChecked){ 1 } Else{ 0 }
$Script:ShowSkipped = If($WPF_ShowSkipped_CB.IsChecked){ 1 } Else{ 0 }
$Script:Restart = If($WPF_Restart_CB.IsChecked){ 1 } Else{ 0 }
$Script:RestorePointName = $WPF_RestorePointName_Txt.Text
}
##########
# GUI -End
##########
# Pre-Made Settings -Start
##########
Function LoadWinDefault {
#Privacy Settings
$Script:Telemetry = 1
$Script:WiFiSense = 1
$Script:SmartScreen = 1
$Script:LocationTracking = 1
$Script:Feedback = 1
$Script:AdvertisingID = 1
$Script:Cortana = 1
$Script:CortanaSearch = 1
$Script:ErrorReporting = 1
$Script:AutoLoggerFile = 1
$Script:DiagTrack = 1
$Script:WAPPush = 1
#Windows Update
$Script:UpdateMSProducts = 2
$Script:CheckForWinUpdate = 1
$Script:WinUpdateType = 3
$Script:WinUpdateDownload = 1
$Script:UpdateMSRT = 1
$Script:UpdateDriver = 1
$Script:RestartOnUpdate = 1
$Script:AppAutoDownload = 1
$Script:UpdateAvailablePopup = 1
#Service Tweaks
$Script:UAC = 2
$Script:SharingMappedDrives = 2
$Script:AdminShares = 1
$Script:Firewall = 1
$Script:WinDefender = 1
$Script:HomeGroups = 1
$Script:RemoteAssistance = 1
$Script:RemoteDesktop = 2
#Context Menu Items
$Script:CastToDevice = 1
$Script:PreviousVersions = 1
$Script:IncludeinLibrary = 1
$Script:PinToStart = 1
$Script:PinToQuickAccess = 1
$Script:ShareWith = 1
$Script:SendTo = 1
#Task Bar Items
$Script:BatteryUIBar = 1
$Script:ClockUIBar = 1
$Script:VolumeControlBar = 1
$Script:TaskbarSearchBox = 1
$Script:TaskViewButton = 1
$Script:TaskbarIconSize = 1
$Script:TaskbarGrouping = 2
$Script:TrayIcons = 1
$Script:SecondsInClock = 2
$Script:LastActiveClick = 2
$Script:TaskBarOnMultiDisplay = 1
#Star Menu Items
$Script:StartMenuWebSearch = 1
$Script:StartSuggestions = 1
$Script:MostUsedAppStartMenu = 1
$Script:RecentItemsFrequent = 1
#Explorer Items
$Script:AccessKeyPrmpt = 1
$Script:F1HelpKey = 1
$Script:Autoplay = 1
$Script:Autorun = 1
$Script:PidInTitleBar = 2
$Script:AeroSnap = 1
$Script:AeroShake = 1
$Script:KnownExtensions = 2
$Script:HiddenFiles = 2
$Script:SystemFiles = 2
$Script:ExplorerOpenLoc = 1
$Script:RecentFileQikAcc = 1
$Script:FrequentFoldersQikAcc = 1
$Script:WinContentWhileDrag = 1
$Script:StoreOpenWith = 1
$Script:WinXPowerShell = If($Win10Ver -ge 1703){ 1 } Else{ 2 }
$Script:TaskManagerDetails = 2
$Script:ReopenAppsOnBoot = 1
$Script:Timeline = 1
$Script:LongFilePath = 2
$Script:AppHibernationFile = 1
#'This PC' Items
$Script:DesktopIconInThisPC = 1
$Script:DocumentsIconInThisPC = 1
$Script:DownloadsIconInThisPC = 1
$Script:MusicIconInThisPC = 1
$Script:PicturesIconInThisPC = 1
$Script:VideosIconInThisPC = 1
$Script:ThreeDobjectsIconInThisPC = 1
#Desktop Items
$Script:ThisPCOnDesktop = 2
$Script:NetworkOnDesktop = 2
$Script:RecycleBinOnDesktop = 1
$Script:UsersFileOnDesktop = 2
$Script:ControlPanelOnDesktop = 2
#Lock Screen
$Script:LockScreen = 1
$Script:ScreenSaver = 1
$Script:PowerMenuLockScreen = 1
$Script:CameraOnLockScreen = 1
#Misc items
$Script:LockscreenPassword = 1
$Script:AccountProtectionWarn = 1
$Script:ActionCenter = 1
$Script:StickyKeyPrompt = 1
$Script:NumblockOnStart = 2
$Script:F8BootMenu = 1
$Script:RemoteUACAcctToken = 2
$Script:SleepPower = 1
# Photo Viewer Settings
$Script:PVFileAssociation = 2
$Script:PVOpenWithMenu = 2
# Remove unwanted applications
$Script:OneDrive = 1
$Script:OneDriveInstall = 1
$Script:XboxDVR = 1
$Script:MediaPlayer = 1
$Script:WorkFolders = 1
$Script:FaxAndScan = 1
$Script:LinuxSubsystem = 2
}
##########
# Pre-Made Settings -End
##########
# Script -Start
##########
Function RunScript {
If($VersionCheck -eq 1){ UpdateCheck }
BoxItem 'Pre-Script'
If($CreateRestorePoint -eq 0 -And $ShowSkipped -eq 1) {
DisplayOut 'Skipping Creation of System Restore Point...' -C 15
} ElseIf($CreateRestorePoint -eq 1) {
DisplayOut "Creating System Restore Point Named '$RestorePointName'" -C 11
DisplayOut 'Please Wait...' -C 11
Checkpoint-Computer -Description $RestorePointName | Out-Null
}
If(!(Test-Path 'HKCR:')){ New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null }
If(!(Test-Path 'HKU:')){ New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS | Out-Null }
$AppxCount = 0
BoxItem 'Windows App Items'
$APPS_AppsUnhide += ($DataGridApps.Where{$_.AppSelected -eq 'Unhide'}).AppxName
$APPS_AppsHide += ($DataGridApps.Where{$_.AppSelected -eq 'Hide'}).AppxName
$APPS_AppsUninstall += ($DataGridApps.Where{$_.AppSelected -eq 'Uninstall'}).AppxName
$Ah = $APPS_AppsHide.Length
$Au = $APPS_AppsUninstall.Length
If($Ah -gt 0 -or $Au -gt 0){ $AppxPackages = Get-AppxProvisionedPackage -online | select-object PackageName,Displayname }
DisplayOut "---List of Apps Being Unhidden---" -C 11
If($APPS_AppsUnhide.Length -gt 0) {
ForEach($AppI In $APPS_AppsUnhide) {
$AppInst = Get-AppxPackage -AllUsers $AppI
If($AppInst -ne $null) {
DisplayOut $AppI -C 11
ForEach($App In $AppInst){
$AppxCount++
$Job = "Win10Script$AppxCount"
Start-Job -Name $Job -ScriptBlock {
$AppIJob = $using:App
$TempIJob = $($AppIJob.InstallLocation)
Add-AppxPackage -DisableDevelopmentMode -Register "$TempIJob\AppXManifest.xml"
}
}
} Else {
DisplayOut "Unable to Unhide $AppI" -C 11
}
}
} Else {
DisplayOut 'No Apps being Unhidden' -C 11
}
DisplayOut "`n---List of Apps Being Hiddden---" -C 12
If($Ah -gt 0) {
ForEach($AppH In $APPS_AppsHide) {
If($AppxPackages.DisplayName.Contains($AppH)) {
DisplayOut $AppH -C 12
$AppxCount++
$Job = "Win10Script$AppxCount"
Start-Job -Name $Job -ScriptBlock { Get-AppxPackage $using:AppH | Remove-AppxPackage | Out-null }
} Else {
DisplayOut "$AppH Isn't Installed" -C 12
}
}
} Else {
DisplayOut 'No Apps being Hidden' -C 12
}
DisplayOut "`n---List of Apps Being Uninstalled---" -C 14
If($Au -gt 0) {
ForEach($AppU In $APPS_AppsUninstall) {
If($AppxPackages.DisplayName.Contains($AppU)) {
DisplayOut $AppU -C 14
$PackageFullName = (Get-AppxPackage $AppU).PackageFullName
$ProPackageFullName = ($AppxPackages.Where{$_.Displayname -eq $AppU}).PackageName
# Alt removal: DISM /Online /Remove-ProvisionedAppxPackage /PackageName:
$AppxCount++
$Job = "Win10Script$AppxCount"
Start-Job -Name $Job -ScriptBlock {
Remove-AppxPackage -Package $using:PackageFullName | Out-null
Remove-AppxProvisionedPackage -Online -PackageName $using:ProPackageFullName | Out-null
}
} Else {
DisplayOut "$AppU Isn't Installed" -C 14
}
}
} Else {
DisplayOut 'No Apps being Uninstalled' -C 14
}
BoxItem 'Privacy Settings'
$TelemetryTask = @(
'Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser',
'Microsoft\Windows\Application Experience\ProgramDataUpdater',
'Microsoft\Windows\Autochk\Proxy',
'Microsoft\Windows\Customer Experience Improvement Program\Consolidator',
'Microsoft\Windows\Customer Experience Improvement Program\UsbCeip',
'Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector',
'Microsoft\Office\Office ClickToRun Service Monitor',
'Microsoft\Office\OfficeTelemetryAgentFallBack2016',
'Microsoft\Office\OfficeTelemetryAgentLogOn2016')
If($Telemetry -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Telemetry...' -C 15 }
} ElseIf($Telemetry -eq 1) {
DisplayOut 'Enabling Telemetry...' -C 11
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection' -Name 'AllowTelemetry' -Type DWord -Value 0
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection' -Name 'AllowTelemetry' -Type DWord -Value 0
If($OSBit -eq 64){ Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\DataCollection' -Name 'AllowTelemetry' -Type DWord -Value 0 }
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\PreviewBuilds' -Name 'AllowBuildPreview'
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\Software Protection Platform' -Name 'NoGenTicket'
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\SQMClient\Windows' -Name 'CEIPEnable'
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppCompat' -Name 'AITEnable'
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppCompat' -Name 'DisableInventory'
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\AppV\CEIP' -Name 'CEIPEnable'
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\TabletPC' -Name 'PreventHandwritingDataSharing'
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\TextInput' -Name 'AllowLinguisticDataCollection'
Foreach($task in $TelemetryTask){ Enable-ScheduledTask -TaskName $task | Out-Null }
} ElseIf($Telemetry -eq 2) {
DisplayOut 'Disabling Telemetry...' -C 12
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection' -Name 'AllowTelemetry' -Type DWord -Value 0
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection' -Name 'AllowTelemetry' -Type DWord -Value 0
If($OSBit -eq 64){ Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\DataCollection' -Name 'AllowTelemetry' -Type DWord -Value 0 }
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\PreviewBuilds'
Set-ItemProperty -Path $Path -Name 'AllowBuildPreview' -Type DWord -Value 0
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\Software Protection Platform'
Set-ItemProperty -Path $Path -Name 'NoGenTicket' -Type DWord -Value 1
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\SQMClient\Windows'
Set-ItemProperty -Path $Path -Name 'CEIPEnable' -Type DWord -Value 0
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppCompat'
Set-ItemProperty -Path $Path -Name 'AITEnable' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'DisableInventory' -Type DWord -Value 1
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\AppV\CEIP'
Set-ItemProperty -Path $Path -Name 'CEIPEnable' -Type DWord -Value 0
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\TabletPC'
Set-ItemProperty -Path $Path -Name 'PreventHandwritingDataSharing' -Type DWord -Value 1
$Path = CheckSetPath 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\TextInput'
Set-ItemProperty -Path $Path -Name 'AllowLinguisticDataCollection' -Type DWord -Value 0
Foreach($task in $TelemetryTask){ Disable-ScheduledTask -TaskName $task | Out-Null }
}
If($WiFiSense -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Wi-Fi Sense...' -C 15 }
} ElseIf($WiFiSense -eq 1) {
DisplayOut 'Enabling Wi-Fi Sense...' -C 11
$Path1 = 'HKLM:\SOFTWARE\Microsoft\PolicyManager\default\WiFi'
$Path = CheckSetPath "$Path1\AllowWiFiHotSpotReporting"
Set-ItemProperty -Path $Path -Name 'Value' -Type DWord -Value 1
$Path = CheckSetPath "$Path1\AllowAutoConnectToWiFiSenseHotspots"
Set-ItemProperty -Path $Path -Name 'Value' -Type DWord -Value 1
$Path = CheckSetPath 'HKLM:\SOFTWARE\Microsoft\WcmSvc\wifinetworkmanager\config'
Set-ItemProperty -Path $Path -Name 'AutoConnectAllowedOEM' -Type Dword -Value 0
Set-ItemProperty -Path $Path -Name 'WiFISenseAllowed' -Type Dword -Value 0
} ElseIf($WiFiSense -eq 2) {
DisplayOut 'Disabling Wi-Fi Sense...' -C 12
$Path1 = 'HKLM:\SOFTWARE\Microsoft\PolicyManager\default\WiFi'
$Path = CheckSetPath "$Path1\AllowWiFiHotSpotReporting"
Set-ItemProperty -Path $Path -Name 'Value' -Type DWord -Value 0
$Path = CheckSetPath "$Path1\AllowAutoConnectToWiFiSenseHotspots"
Set-ItemProperty -Path $Path -Name 'Value' -Type DWord -Value 0
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\WcmSvc\wifinetworkmanager\config' -Name 'AutoConnectAllowedOEM'
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\WcmSvc\wifinetworkmanager\config' -Name 'WiFISenseAllowed'
}
If($SmartScreen -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping SmartScreen Filter...' -C 15 }
} ElseIf($SmartScreen -eq 1) {
DisplayOut 'Enabling SmartScreen Filter...' -C 11
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer' -Name 'SmartScreenEnabled' -Type String -Value 'RequireAdmin'
Remove-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppHost' -Name 'EnableWebContentEvaluation'
If($Win10Ver -ge 1703) {
$AddPath = (Get-AppxPackage -AllUsers 'Microsoft.MicrosoftEdge').PackageFamilyName
$Path = "HKCU:\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\$AddPath\MicrosoftEdge\PhishingFilter"
Remove-ItemProperty -Path $Path -Name 'EnabledV9'
Remove-ItemProperty -Path $Path -Name 'PreventOverride'
}
} ElseIf($SmartScreen -eq 2) {
DisplayOut 'Disabling SmartScreen Filter...' -C 12
$Path = 'SOFTWARE\Microsoft\Windows\CurrentVersion'
Set-ItemProperty -Path "HKLM:\$Path\Explorer" -Name 'SmartScreenEnabled' -Type String -Value 'Off'
Set-ItemProperty -Path "HKCU:\$Path\AppHost" -Name 'EnableWebContentEvaluation' -Type DWord -Value 0
If($Win10Ver -ge 1703) {
$AddPath = (Get-AppxPackage -AllUsers 'Microsoft.MicrosoftEdge').PackageFamilyName
$Path = CheckSetPath "HKCU:\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\$AddPath\MicrosoftEdge\PhishingFilter"
Set-ItemProperty -Path $Path -Name 'EnabledV9' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'PreventOverride' -Type DWord -Value 0
}
}
If($LocationTracking -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Location Tracking...' -C 15 }
} ElseIf($LocationTracking -eq 1) {
DisplayOut 'Enabling Location Tracking...' -C 11
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Sensor\Overrides\{BFA794E4-F964-4FDB-90F6-51056BFE4B44}' -Name 'SensorPermissionState' -Type DWord -Value 1
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\lfsvc\Service\Configuration' -Name 'Status' -Type DWord -Value 1
} ElseIf($LocationTracking -eq 2) {
DisplayOut 'Disabling Location Tracking...' -C 12
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Sensor\Overrides\{BFA794E4-F964-4FDB-90F6-51056BFE4B44}' -Name 'SensorPermissionState' -Type DWord -Value 0
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\lfsvc\Service\Configuration' -Name 'Status' -Type DWord -Value 0
}
If($Feedback -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Feedback...' -C 15 }
} ElseIf($Feedback -eq 1) {
DisplayOut 'Enabling Feedback...' -C 11
Remove-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Siuf\Rules' -Name 'NumberOfSIUFInPeriod'
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection' -Name 'DoNotShowFeedbackNotifications'
Enable-ScheduledTask -TaskName 'Microsoft\Windows\Feedback\Siuf\DmClient' | Out-Null
Enable-ScheduledTask -TaskName 'Microsoft\Windows\Feedback\Siuf\DmClientOnScenarioDownload' | Out-Null
} ElseIf($Feedback -eq 2) {
DisplayOut 'Disabling Feedback...' -C 12
$Path = CheckSetPath 'HKCU:\SOFTWARE\Microsoft\Siuf\Rules'
Set-ItemProperty -Path $Path -Name 'NumberOfSIUFInPeriod' -Type DWord -Value 0
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection' -Name 'DoNotShowFeedbackNotifications' -Type DWord -Value 1
Disable-ScheduledTask -TaskName 'Microsoft\Windows\Feedback\Siuf\DmClient' | Out-Null
Disable-ScheduledTask -TaskName 'Microsoft\Windows\Feedback\Siuf\DmClientOnScenarioDownload' | Out-Null
}
If($AdvertisingID -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Advertising ID...' -C 15 }
} ElseIf($AdvertisingID -eq 1) {
DisplayOut 'Enabling Advertising ID...' -C 11
Remove-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo' -Name 'Enabled'
$Path = CheckSetPath 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Privacy'
Set-ItemProperty -Path $Path -Name 'TailoredExperiencesWithDiagnosticDataEnabled' -Type DWord -Value 2
} ElseIf($AdvertisingID -eq 2) {
DisplayOut 'Disabling Advertising ID...' -C 12
$Path = CheckSetPath 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo'
Set-ItemProperty -Path $Path -Name 'Enabled' -Type DWord -Value 0
$Path = CheckSetPath 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Privacy'
Set-ItemProperty -Path $Path -Name 'TailoredExperiencesWithDiagnosticDataEnabled' -Type DWord -Value 0
}
If($Cortana -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Cortana...' -C 15 }
} ElseIf($Cortana -eq 1) {
DisplayOut 'Enabling Cortana...' -C 11
$Path = 'HKCU:\SOFTWARE\Microsoft\InputPersonalization'
Remove-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Personalization\Settings' -Name 'AcceptedPrivacyPolicy'
Remove-ItemProperty -Path "$Path\TrainedDataStore" -Name 'HarvestContacts'
Set-ItemProperty -Path $Path -Name 'RestrictImplicitTextCollection' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'RestrictImplicitInkCollection' -Type DWord -Value 0
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search'
Remove-ItemProperty -Path $Path -Name 'AllowCortanaAboveLock'
Remove-ItemProperty -Path $Path -Name 'ConnectedSearchUseWeb'
Remove-ItemProperty -Path $Path -Name 'ConnectedSearchPrivacy'
Set-ItemProperty -Path $Path -Name 'DisableWebSearch' -Type DWord -Value 1
$Path = CheckSetPath 'HKCU:\SOFTWARE\Microsoft\Speech_OneCore\Preferences\'
Set-ItemProperty -Path $Path -Name 'VoiceActivationEnableAboveLockscreen' -Type DWord -Value 1
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\InputPersonalization' -Name 'AllowInputPersonalization'
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowCortanaButton" -Type DWord -Value 0
} ElseIf($Cortana -eq 2) {
DisplayOut 'Disabling Cortana...' -C 12
$Path = CheckSetPath 'HKCU:\SOFTWARE\Microsoft\Personalization\Settings'
Set-ItemProperty -Path $Path -Name 'AcceptedPrivacyPolicy' -Type DWord -Value 0
$Path = CheckSetPath 'HKCU:\SOFTWARE\Microsoft\InputPersonalization'
Set-ItemProperty -Path $Path -Name 'RestrictImplicitTextCollection' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'RestrictImplicitInkCollection' -Type DWord -Value 1
$Path = CheckSetPath "$Path\TrainedDataStore"
Set-ItemProperty -Path $Path -Name 'HarvestContacts' -Type DWord -Value 0
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search'
Set-ItemProperty -Path $Path -Name 'AllowCortanaAboveLock' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'ConnectedSearchUseWeb' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'ConnectedSearchPrivacy' -Type DWord -Value 3
Remove-ItemProperty -Path $Path -Name 'DisableWebSearch'
$Path = CheckSetPath 'HKCU:\SOFTWARE\Microsoft\Speech_OneCore\Preferences\'
Set-ItemProperty -Path $Path -Name 'VoiceActivationEnableAboveLockscreen' -Type DWord -Value 0
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\InputPersonalization'
Set-ItemProperty -Path $Path -Name 'AllowInputPersonalization' -Type DWord -Value 0
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowCortanaButton" -Type DWord -Value 1
}
If($CortanaSearch -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Cortana Search...' -C 15 }
} ElseIf($CortanaSearch -eq 1) {
DisplayOut 'Enabling Cortana Search...' -C 11
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search' -Name 'AllowCortana'
} ElseIf($CortanaSearch -eq 2) {
DisplayOut 'Disabling Cortana Search...' -C 12
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search'
Set-ItemProperty -Path $Path -Name 'AllowCortana' -Type DWord -Value 0
}
If($ErrorReporting -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Error Reporting...' -C 15 }
} ElseIf($ErrorReporting -eq 1) {
DisplayOut 'Enabling Error Reporting...' -C 11
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting' -Name 'Disabled'
} ElseIf($ErrorReporting -eq 2) {
DisplayOut 'Disabling Error Reporting...' -C 12
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting' -Name 'Disabled' -Type DWord -Value 1
}
If($AutoLoggerFile -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping AutoLogger...' -C 15 }
} ElseIf($AutoLoggerFile -eq 1) {
DisplayOut 'Unrestricting AutoLogger Directory...' -C 11
$autoLoggerDir = "$Env:PROGRAMDATA\Microsoft\Diagnosis\ETLLogs\AutoLogger"
icacls $autoLoggerDir /grant:r SYSTEM:`(OI`)`(CI`)F | Out-Null
$Path = CheckSetPath 'HKLM:\SYSTEM\ControlSet001\Control\WMI\AutoLogger\AutoLogger-Diagtrack-Listener'
Set-ItemProperty -Path $Path -Name 'Start' -Type DWord -Value 1
$Path += '\{DD17FA14-CDA6-7191-9B61-37A28F7A10DA}'
Set-ItemProperty -Path $Path -Name 'Start' -Type DWord -Value 1
} ElseIf($AutoLoggerFile -eq 2) {
DisplayOut 'Removing AutoLogger File and Restricting Directory...' -C 12
$autoLoggerDir = "$Env:PROGRAMDATA\Microsoft\Diagnosis\ETLLogs\AutoLogger"
RemoveSetPath "$autoLoggerDir\AutoLogger-Diagtrack-Listener.etl"
icacls $autoLoggerDir /deny SYSTEM:`(OI`)`(CI`)F | Out-Null
$Path = CheckSetPath 'HKLM:\SYSTEM\ControlSet001\Control\WMI\AutoLogger\AutoLogger-Diagtrack-Listener'
Set-ItemProperty -Path $Path -Name 'Start' -Type DWord -Value 0
$Path = CheckSetPath "$Path\{DD17FA14-CDA6-7191-9B61-37A28F7A10DA}"
Set-ItemProperty -Path $Path -Name 'Start' -Type DWord -Value 0
}
If($DiagTrack -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Diagnostics Tracking...' -C 15 }
} ElseIf($DiagTrack -eq 1) {
DisplayOut 'Enabling and Starting Diagnostics Tracking Service...' -C 11
Set-Service 'DiagTrack' -StartupType Automatic
Start-Service 'DiagTrack'
} ElseIf($DiagTrack -eq 2) {
DisplayOut 'Stopping and Disabling Diagnostics Tracking Service...' -C 12
Stop-Service 'DiagTrack'
Set-Service 'DiagTrack' -StartupType Disabled
}
If($WAPPush -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping WAP Push...' -C 15 }
} ElseIf($WAPPush -eq 1) {
DisplayOut 'Enabling and Starting WAP Push Service...' -C 11
Set-Service 'dmwappushservice' -StartupType Automatic
Start-Service 'dmwappushservice'
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\dmwappushservice' -Name 'DelayedAutoStart' -Type DWord -Value 1
} ElseIf($WAPPush -eq 2) {
DisplayOut 'Disabling WAP Push Service...' -C 12
Stop-Service 'dmwappushservice'
Set-Service 'dmwappushservice' -StartupType Disabled
}
If($AppAutoDownload -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping App Auto Download...' -C 15 }
} ElseIf($AppAutoDownload -eq 1) {
DisplayOut 'Enabling App Auto Download...' -C 11
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate' -Name 'AutoDownload' -Type DWord -Value 0
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent' -Name 'DisableWindowsConsumerFeatures'
} ElseIf($AppAutoDownload -eq 2) {
DisplayOut 'Disabling App Auto Download...' -C 12
$Path = CheckSetPath 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate'
Set-ItemProperty -Path $Path -Name 'AutoDownload' -Type DWord -Value 2
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent'
Set-ItemProperty -Path $Path -Name 'DisableWindowsConsumerFeatures' -Type DWord -Value 1
If($Win10Ver -le 1803) {
$key = Get-ChildItem -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount" -Recurse | Where-Object { $_ -like "*windows.data.placeholdertilecollection\Current" }
$data = (Get-ItemProperty -Path $key.PSPath -Name "Data").Data[0..15]
Set-ItemProperty -Path $key.PSPath -Name "Data" -Type Binary -Value $data
Stop-Process -Name "ShellExperienceHost" -Force
}
}
BoxItem 'Windows Update Settings'
If($UpdateMSProducts -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Updates for other Microsoft products...' -C 15 }
} ElseIf($UpdateMSProducts -eq 1) {
DisplayOut 'Enabling Updates for other Microsoft products...' -C 11
(New-Object -ComObject Microsoft.Update.ServiceManager).AddService2("7971f918-a847-4430-9279-4a52d1efe18d", 7, "") | Out-Null
} ElseIf($UpdateMSProducts -eq 2) {
DisplayOut 'Disabling Updates for other Microsoft products...' -C 12
(New-Object -ComObject Microsoft.Update.ServiceManager).RemoveService("7971f918-a847-4430-9279-4a52d1efe18d") | Out-Null
}
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate'
If($CheckForWinUpdate -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Check for Windows Update...' -C 15 }
} ElseIf($CheckForWinUpdate -eq 1) {
DisplayOut 'Enabling Check for Windows Update...' -C 11
Remove-ItemProperty -Path $Path -Name 'SetDisableUXWUAccess' -Type DWord -Value 0
} ElseIf($CheckForWinUpdate -eq 2) {
DisplayOut 'Disabling Check for Windows Update...' -C 12
New-ItemProperty -Path $Path -Name 'SetDisableUXWUAccess' -Type DWord -Value 1
}
If($WinUpdateType -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Windows Update Check Type...' -C 15 }
} ElseIf($WinUpdateType -In 1..4) {
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU'
If($WinUpdateType -eq 1) {
DisplayOut 'Notify for windows update download and notify for install...' -C 14
Set-ItemProperty -Path $Path -Name 'AUOptions' -Type DWord -Value 2
} ElseIf($WinUpdateType -eq 2) {
DisplayOut 'Auto Download for windows update download and notify for install...' -C 14
Set-ItemProperty -Path $Path -Name 'AUOptions' -Type DWord -Value 3
} ElseIf($WinUpdateType -eq 3) {
DisplayOut 'Auto Download for windows update download and schedule for install...' -C 14
Set-ItemProperty -Path $Path -Name 'AUOptions' -Type DWord -Value 4
} ElseIf($WinUpdateType -eq 4) {
DisplayOut 'Windows update allow local admin to choose setting...' -C 14
Set-ItemProperty -Path $Path -Name 'AUOptions' -Type DWord -Value 5
}
}
If($WinUpdateDownload -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Windows Update P2P...' -C 15 }
} ElseIf($WinUpdateDownload -eq 1) {
DisplayOut 'Unrestricting Windows Update P2P to Internet...' -C 14
$Path = 'SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization'
Remove-ItemProperty -Path "HKLM:\$Path\Config" -Name 'DODownloadMode'
Remove-ItemProperty -Path "HKCU:\$Path" -Name 'SystemSettingsDownloadMode'
} ElseIf($WinUpdateDownload -eq 2) {
DisplayOut 'Restricting Windows Update P2P only to local network...' -C 14
$Path1 = 'SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization'
$Path = CheckSetPath "HKCU:\$Path1"
Set-ItemProperty -Path $Path -Name 'SystemSettingsDownloadMode' -Type DWord -Value 3
If($Win10Ver -eq 1507) {
$Path = CheckSetPath "HKLM:\$Path1\Config"
Set-ItemProperty -Path $Path -Name 'DODownloadMode' -Type DWord -Value 1
} ElseIf($Win10Ver -le 1607) {
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization'
Set-ItemProperty -Path $Path -Name 'DODownloadMode' -Type DWord -Value 1
} Else {
Remove-ItemProperty -Path "HKLM:\$Path1" -Name "DODownloadMode"
}
} ElseIf($WinUpdateDownload -eq 3) {
DisplayOut 'Disabling Windows Update P2P...' -C 12
$Path1 = 'SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization'
$Path = CheckSetPath "HKCU:\$Path1"
Set-ItemProperty -Path $Path -Name 'SystemSettingsDownloadMode' -Type DWord -Value 3
If($Win10Ver -eq 1507){
$Path = CheckSetPath "HKLM:\$Path1\Config"
Set-ItemProperty -Path $Path -Name 'DODownloadMode' -Type DWord -Value 0
} Else {
$Path = CheckSetPath "HKLM:\$Path1"
Set-ItemProperty -Path $Path -Name 'DODownloadMode' -Type DWord -Value 100
}
}
If($RestartOnUpdate -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Windows Update Automatic Restart...' -C 15 }
} ElseIf($RestartOnUpdate -eq 1) {
DisplayOut 'Enabling Windows Update Automatic Restart...' -C 11
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings' -Name 'UxOption' -Type DWord -Value 0
$Path = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU'
Remove-ItemProperty -Path $Path -Name 'NoAutoRebootWithLoggedOnUsers'
Remove-ItemProperty -Path $Path -Name 'AUPowerManagement'
} ElseIf($RestartOnUpdate -eq 2) {
DisplayOut 'Disabling Windows Update Automatic Restart...' -C 12
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings' -Name 'UxOption' -Type DWord -Value 1
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU'
Set-ItemProperty -Path $Path -Name 'NoAutoRebootWithLoggedOnUsers' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'AUPowerManagement' -Type DWord -Value 0
}
If($UpdateMSRT -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Malicious Software Removal Tool Update...' -C 15 }
} ElseIf($UpdateMSRT -eq 1) {
DisplayOut 'Enabling Malicious Software Removal Tool Update...' -C 11
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\MRT' -Name 'DontOfferThroughWUAU'
} ElseIf($UpdateMSRT -eq 2) {
DisplayOut 'Disabling Malicious Software Removal Tool Update...' -C 12
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\MRT'
Set-ItemProperty -Path $Path -Name 'DontOfferThroughWUAU' -Type DWord -Value 1
}
If($UpdateDriver -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Driver Update Through Windows Update...' -C 15 }
} ElseIf($UpdateDriver -eq 1) {
DisplayOut 'Enabling Driver Update Through Windows Update...' -C 11
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching' -Name 'SearchOrderConfig'
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate' -Name 'ExcludeWUDriversInQualityUpdate'
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata' -Name 'PreventDeviceMetadataFromNetwork'
} ElseIf($UpdateDriver -eq 2) {
DisplayOut 'Disabling Driver Update Through Windows Update...' -C 12
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching' -Name 'SearchOrderConfig' -Type DWord -Value 0
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate'
Set-ItemProperty -Path $Path -Name 'ExcludeWUDriversInQualityUpdate' -Type DWord -Value 1
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata'
Set-ItemProperty -Path $Path -Name 'PreventDeviceMetadataFromNetwork' -Type DWord -Value 1
}
If($UpdateAvailablePopup -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Update Available Popup...' -C 15 }
} ElseIf($UpdateAvailablePopup -eq 1) {
DisplayOut 'Enabling Update Available Popup...' -C 11
ForEach($File In $musnotification_files){
ICACLS $File /remove:d '"Everyone"' | out-null
ICACLS $File /grant ('Everyone' + ':(OI)(CI)F') | out-null
ICACLS $File /setowner 'NT SERVICE\TrustedInstaller'
ICACLS $File /remove:g '"Everyone"' | out-null
}
} ElseIf($UpdateAvailablePopup -eq 2) {
DisplayOut 'Disabling Update Available Popup...' -C 12
ForEach($File In $musnotification_files){
Takeown /f $File | out-null
ICACLS $File /deny '"Everyone":(F)' | out-null
}
}
BoxItem 'Service Tweaks'
If($UAC -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping UAC Level...' -C 15 }
} ElseIf($UAC -eq 1) {
DisplayOut 'Lowering UAC level...' -C 14
$Path = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System'
Set-ItemProperty -Path $Path -Name 'ConsentPromptBehaviorAdmin' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'PromptOnSecureDesktop' -Type DWord -Value 0
} ElseIf($UAC -eq 2) {
DisplayOut 'Default UAC level...' -C 14
$Path = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System'
Set-ItemProperty -Path $Path -Name 'ConsentPromptBehaviorAdmin' -Type DWord -Value 5
Set-ItemProperty -Path $Path -Name 'PromptOnSecureDesktop' -Type DWord -Value 1
} ElseIf($UAC -eq 3) {
DisplayOut 'Raising UAC level...' -C 14
$Path = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System'
Set-ItemProperty -Path $Path -Name 'ConsentPromptBehaviorAdmin' -Type DWord -Value 2
Set-ItemProperty -Path $Path -Name 'PromptOnSecureDesktop' -Type DWord -Value 1
}
If($SharingMappedDrives -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Sharing Mapped Drives between Users...' -C 15 }
} ElseIf($SharingMappedDrives -eq 1) {
DisplayOut 'Enabling Sharing Mapped Drives between Users...' -C 11
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'EnableLinkedConnections' -Type DWord -Value 1
} ElseIf($SharingMappedDrives -eq 2) {
DisplayOut 'Disabling Sharing Mapped Drives between Users...' -C 12
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'EnableLinkedConnections'
}
If($AdminShares -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Hidden Administrative Shares...' -C 15 }
} ElseIf($AdminShares -eq 1) {
DisplayOut 'Enabling Hidden Administrative Shares...' -C 11
Remove-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name 'AutoShareWks'
} ElseIf($AdminShares -eq 2) {
DisplayOut 'Disabling Hidden Administrative Shares...' -C 12
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name 'AutoShareWks' -Type DWord -Value 0
}
If($Firewall -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Firewall...' -C 15 }
} ElseIf($Firewall -eq 1) {
DisplayOut 'Enabling Firewall...' -C 11
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile' -Name 'EnableFirewall'
} ElseIf($Firewall -eq 2) {
DisplayOut 'Disabling Firewall...' -C 12
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile'
Set-ItemProperty -Path $Path -Name 'EnableFirewall' -Type DWord -Value 0
}
If($WinDefender -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Windows Defender...' -C 15 }
} ElseIf($WinDefender -eq 1) {
DisplayOut 'Enabling Windows Defender...' -C 11
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender' -Name 'DisableAntiSpyware'
$Path = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
If($Win10Ver -lt 1703){ $RegName = 'WindowsDefender' } Else{ $RegName = 'SecurityHealth' }
Set-ItemProperty -Path $Path -Name $RegName -Type ExpandString -Value "`"%ProgramFiles%\Windows Defender\MSASCuiL.exe`""
RemoveSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet'
} ElseIf($WinDefender -eq 2) {
DisplayOut 'Disabling Windows Defender...' -C 12
$Path = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
If($Win10Ver -lt 1703){ $RegName = 'WindowsDefender' } Else{ $RegName = 'SecurityHealth' }
Remove-ItemProperty -Path $Path -Name $RegName
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\'
Set-ItemProperty -Path $Path -Name 'DisableAntiSpyware' -Type DWord -Value 1
$Path = CheckSetPath "$Path\Spynet"
Set-ItemProperty -Path $Path -Name 'SpynetReporting' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'SubmitSamplesConsent' -Type DWord -Value 2
}
If($HomeGroups -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Home Groups Services...' -C 15 }
} ElseIf($HomeGroups -eq 1) {
DisplayOut 'Enabling Home Groups Services...' -C 11
Set-Service 'HomeGroupListener' -StartupType Manual
Set-Service 'HomeGroupProvider' -StartupType Manual
Start-Service 'HomeGroupProvider'
} ElseIf($HomeGroups -eq 2) {
DisplayOut 'Disabling Home Groups Services...' -C 12
Stop-Service 'HomeGroupListener'
Set-Service 'HomeGroupListener' -StartupType Disabled
Stop-Service 'HomeGroupProvider'
Set-Service 'HomeGroupProvider' -StartupType Disabled
}
If($RemoteAssistance -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Remote Assistance...' -C 15 }
} ElseIf($RemoteAssistance -eq 1) {
DisplayOut 'Enabling Remote Assistance...' -C 11
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Remote Assistance' -Name 'fAllowToGetHelp' -Type DWord -Value 1
} ElseIf($RemoteAssistance -eq 2) {
DisplayOut 'Disabling Remote Assistance...' -C 12
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Remote Assistance' -Name 'fAllowToGetHelp' -Type DWord -Value 0
}
If($RemoteDesktop -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Remote Desktop...' -C 15 }
} ElseIf($RemoteDesktop -eq 1) {
DisplayOut 'Enabling Remote Desktop w/o Network Level Authentication...' -C 11
$Path = 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server'
Set-ItemProperty -Path $Path -Name 'fDenyTSConnections' -Type DWord -Value 0
Set-ItemProperty -Path "$Path\WinStations\RDP-Tcp" -Name 'UserAuthentication' -Type DWord -Value 0
} ElseIf($RemoteDesktop -eq 2) {
DisplayOut 'Disabling Remote Desktop...' -C 12
$Path = 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server'
Set-ItemProperty -Path $Path -Name 'fDenyTSConnections' -Type DWord -Value 1
Set-ItemProperty -Path "$Path\WinStations\RDP-Tcp" -Name 'UserAuthentication' -Type DWord -Value 1
}
BoxItem 'Context Menu Items'
If($CastToDevice -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Cast to Device Context item...' -C 15 }
} ElseIf($CastToDevice -eq 1) {
DisplayOut 'Enabling Cast to Device Context item...' -C 11
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked' -Name '{7AD84985-87B4-4a16-BE58-8B72A5B390F7}'
} ElseIf($CastToDevice -eq 2) {
DisplayOut 'Disabling Cast to Device Context item...' -C 12
$Path = CheckSetPath 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked'
Set-ItemProperty -Path $Path -Name '{7AD84985-87B4-4a16-BE58-8B72A5B390F7}' -Type String -Value 'Play to Menu'
}
If($PreviousVersions -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Previous Versions Context item...' -C 15 }
} ElseIf($PreviousVersions -eq 1) {
DisplayOut 'Enabling Previous Versions Context item...' -C 11
New-Item -Path 'HKCR:\AllFilesystemObjects\shellex\ContextMenuHandlers\{596AB062-B4D2-4215-9F74-E9109B0A8153}' | Out-Null
New-Item -Path 'HKCR:\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\shellex\ContextMenuHandlers\{596AB062-B4D2-4215-9F74-E9109B0A8153}' | Out-Null
New-Item -Path 'HKCR:\Directory\shellex\ContextMenuHandlers\{596AB062-B4D2-4215-9F74-E9109B0A8153}' | Out-Null
New-Item -Path 'HKCR:\Drive\shellex\ContextMenuHandlers\{596AB062-B4D2-4215-9F74-E9109B0A8153}' | Out-Null
} ElseIf($PreviousVersions -eq 2) {
DisplayOut 'Disabling Previous Versions Context item...' -C 12
RemoveSetPath 'HKCR:\AllFilesystemObjects\shellex\ContextMenuHandlers\{596AB062-B4D2-4215-9F74-E9109B0A8153}'
RemoveSetPath 'HKCR:\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\shellex\ContextMenuHandlers\{596AB062-B4D2-4215-9F74-E9109B0A8153}'
RemoveSetPath 'HKCR:\Directory\shellex\ContextMenuHandlers\{596AB062-B4D2-4215-9F74-E9109B0A8153}'
RemoveSetPath 'HKCR:\Drive\shellex\ContextMenuHandlers\{596AB062-B4D2-4215-9F74-E9109B0A8153}'
}
If($IncludeinLibrary -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Include in Library Context item...' -C 15 }
} ElseIf($IncludeinLibrary -eq 1) {
DisplayOut 'Enabling Include in Library Context item...' -C 11
Set-ItemProperty -Path 'HKCR:\Folder\ShellEx\ContextMenuHandlers\Library Location' -Name '(Default)' -Type String -Value '{3dad6c5d-2167-4cae-9914-f99e41c12cfa}'
} ElseIf($IncludeinLibrary -eq 2) {
DisplayOut 'Disabling Include in Library...' -C 12
Set-ItemProperty -Path 'HKCR:\Folder\ShellEx\ContextMenuHandlers\Library Location' -Name '(Default)' -Type String -Value ''
}
If($PinToStart -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Pin To Start Context item...' -C 15 }
} ElseIf($PinToStart -eq 1) {
DisplayOut 'Enabling Pin To Start Context item...' -C 11
New-Item -Path 'HKCR:\*\shellex\ContextMenuHandlers\{90AA3A4E-1CBA-4233-B8BB-535773D48449}' -Force | Out-Null
New-Item -Path 'HKCR:\*\shellex\ContextMenuHandlers\{a2a9545d-a0c2-42b4-9708-a0b2badd77c8}' -Force | Out-Null
Set-ItemProperty -LiteralPath 'HKCR:\*\shellex\ContextMenuHandlers\{90AA3A4E-1CBA-4233-B8BB-535773D48449}' -Name '(Default)' -Type String -Value 'Taskband Pin'
Set-ItemProperty -LiteralPath 'HKCR:\*\shellex\ContextMenuHandlers\{a2a9545d-a0c2-42b4-9708-a0b2badd77c8}' -Name '(Default)' -Type String -Value 'Start Menu Pin'
Set-ItemProperty -Path 'HKCR:\Folder\shellex\ContextMenuHandlers\PintoStartScreen' -Name '(Default)' -Type String -Value '{470C0EBD-5D73-4d58-9CED-E91E22E23282}'
Set-ItemProperty -Path 'HKCR:\exefile\shellex\ContextMenuHandlers\PintoStartScreen' -Name '(Default)' -Type String -Value '{470C0EBD-5D73-4d58-9CED-E91E22E23282}'
Set-ItemProperty -Path 'HKCR:\Microsoft.Website\shellex\ContextMenuHandlers\PintoStartScreen' -Name '(Default)' -Type String -Value '{470C0EBD-5D73-4d58-9CED-E91E22E23282}'
Set-ItemProperty -Path 'HKCR:\mscfile\shellex\ContextMenuHandlers\PintoStartScreen' -Name '(Default)' -Type String -Value '{470C0EBD-5D73-4d58-9CED-E91E22E23282}'
} ElseIf($PinToStart -eq 2) {
DisplayOut 'Disabling Pin To Start Context item...' -C 12
Remove-Item -LiteralPath 'HKCR:\*\shellex\ContextMenuHandlers\{90AA3A4E-1CBA-4233-B8BB-535773D48449}' -Force
Remove-Item -LiteralPath 'HKCR:\*\shellex\ContextMenuHandlers\{a2a9545d-a0c2-42b4-9708-a0b2badd77c8}' -Force
Set-ItemProperty -Path 'HKCR:\Folder\shellex\ContextMenuHandlers\PintoStartScreen' -Name '(Default)' -Type String -Value ''
Set-ItemProperty -Path 'HKCR:\exefile\shellex\ContextMenuHandlers\PintoStartScreen' -Name '(Default)' -Type String -Value ''
Set-ItemProperty -Path 'HKCR:\Microsoft.Website\shellex\ContextMenuHandlers\PintoStartScreen' -Name '(Default)' -Type String -Value ''
Set-ItemProperty -Path 'HKCR:\mscfile\shellex\ContextMenuHandlers\PintoStartScreen' -Name '(Default)' -Type String -Value ''
}
If($PinToQuickAccess -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Pin To Quick Access Context item...' -C 15 }
} ElseIf($PinToQuickAccess -eq 1) {
DisplayOut 'Enabling Pin To Quick Access Context item...' -C 11
$Path = CheckSetPath 'HKCR:\Folder\shell\pintohome'
New-ItemProperty -Path $Path -Name 'MUIVerb' -Type String -Value '@shell32.dll,-51377'
New-ItemProperty -Path $Path -Name 'AppliesTo' -Type String -Value 'System.ParsingName:<>"::{679f85cb-0220-4080-b29b-5540cc05aab6}" AND System.ParsingName:<>"::{645FF040-5081-101B-9F08-00AA002F954E}" AND System.IsFolder:=System.StructuredQueryType.Boolean#True'
$Path = CheckSetPath "$Path\command"
New-ItemProperty -Path "$Path" -Name 'DelegateExecute' -Type String -Value '{b455f46e-e4af-4035-b0a4-cf18d2f6f28e}'
$Path = CheckSetPath 'HKLM:\SOFTWARE\Classes\Folder\shell\pintohome'
New-ItemProperty -Path $Path -Name 'MUIVerb' -Type String -Value '@shell32.dll,-51377'
New-ItemProperty -Path $Path -Name 'AppliesTo' -Type String -Value 'System.ParsingName:<>"::{679f85cb-0220-4080-b29b-5540cc05aab6}" AND System.ParsingName:<>"::{645FF040-5081-101B-9F08-00AA002F954E}" AND System.IsFolder:=System.StructuredQueryType.Boolean#True'
$Path = CheckSetPath "$Path\command"
New-ItemProperty -Path "$Path" -Name 'DelegateExecute' -Type String -Value '{b455f46e-e4af-4035-b0a4-cf18d2f6f28e}'
} ElseIf($PinToQuickAccess -eq 2) {
DisplayOut 'Disabling Pin To Quick Access Context item...' -C 12
RemoveSetPath 'HKCR:\Folder\shell\pintohome'
RemoveSetPath 'HKLM:\SOFTWARE\Classes\Folder\shell\pintohome'
}
If($ShareWith -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Share With/Share Context item...' -C 15 }
} ElseIf($ShareWith -eq 1) {
DisplayOut 'Enabling Share With/Share Context item...' -C 11
Set-ItemProperty -LiteralPath 'HKCR:\*\shellex\ContextMenuHandlers\Sharing' -Name '(Default)' -Type String -Value '{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}'
Set-ItemProperty -Path 'HKCR:\Directory\shellex\ContextMenuHandlers\Sharing' -Name '(Default)' -Type String -Value '{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}'
Set-ItemProperty -Path 'HKCR:\Directory\shellex\CopyHookHandlers\Sharing' -Name '(Default)' -Type String -Value '{40dd6e20-7c17-11ce-a804-00aa003ca9f6}'
Set-ItemProperty -Path 'HKCR:\Drive\shellex\ContextMenuHandlers\Sharing' -Name '(Default)' -Type String -Value '{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}'
Set-ItemProperty -Path 'HKCR:\Directory\shellex\PropertySheetHandlers\Sharing' -Name '(Default)' -Type String -Value '{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}'
Set-ItemProperty -Path 'HKCR:\Directory\Background\shellex\ContextMenuHandlers\Sharing' -Name '(Default)' -Type String -Value '{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}'
Set-ItemProperty -Path 'HKCR:\LibraryFolder\background\shellex\ContextMenuHandlers\Sharing' -Name '(Default)' -Type String -Value '{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}'
Set-ItemProperty -LiteralPath 'HKCR:\*\shellex\ContextMenuHandlers\ModernSharing' -Name '(Default)' -Type String -Value '{e2bf9676-5f8f-435c-97eb-11607a5bedf7}'
} ElseIf($ShareWith -eq 2) {
DisplayOut 'Disabling Share/Share With...' -C 12
Set-ItemProperty -LiteralPath 'HKCR:\*\shellex\ContextMenuHandlers\Sharing' -Name '(Default)' -Type String -Value ''
Set-ItemProperty -Path 'HKCR:\Directory\shellex\ContextMenuHandlers\Sharing' -Name '(Default)' -Type String -Value ''
Set-ItemProperty -Path 'HKCR:\Directory\shellex\CopyHookHandlers\Sharing' -Name '(Default)' -Type String -Value ''
Set-ItemProperty -Path 'HKCR:\Directory\shellex\PropertySheetHandlers\Sharing' -Name '(Default)' -Type String -Value ''
Set-ItemProperty -Path 'HKCR:\Directory\Background\shellex\ContextMenuHandlers\Sharing' -Name '(Default)' -Type String -Value ''
Set-ItemProperty -Path 'HKCR:\Drive\shellex\ContextMenuHandlers\Sharing' -Name '(Default)' -Type String -Value ''
Set-ItemProperty -Path 'HKCR:\LibraryFolder\background\shellex\ContextMenuHandlers\Sharing' -Name '(Default)' -Type String -Value ''
Set-ItemProperty -LiteralPath 'HKCR:\*\shellex\ContextMenuHandlers\ModernSharing' -Name '(Default)' -Type String -Value ''
}
If($SendTo -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Send To Context item...' -C 15 }
} ElseIf($SendTo -eq 1) {
DisplayOut 'Enabling Send To Context item...' -C 11
$Path = CheckSetPath 'HKCR:\AllFilesystemObjects\shellex\ContextMenuHandlers\SendTo'
Set-ItemProperty -Path $Path -Name '(Default)' -Type String -Value '{7BA4C740-9E81-11CF-99D3-00AA004AE837}' | Out-Null
} ElseIf($SendTo -eq 2) {
DisplayOut 'Disabling Send To Context item...' -C 12
RemoveSetPath 'HKCR:\AllFilesystemObjects\shellex\ContextMenuHandlers\SendTo'
}
BoxItem 'Task Bar Items'
If($BatteryUIBar -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Battery UI Bar...' -C 15 }
} ElseIf($BatteryUIBar -eq 1) {
DisplayOut 'Enabling New Battery UI Bar...' -C 11
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\ImmersiveShell' -Name 'UseWin32BatteryFlyout'
} ElseIf($BatteryUIBar -eq 2) {
DisplayOut 'Enabling Old Battery UI Bar...' -C 12
$Path = CheckSetPath 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\ImmersiveShell'
Set-ItemProperty -Path $Path -Name 'UseWin32BatteryFlyout' -Type DWord -Value 1
}
If($ClockUIBar -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Clock UI Bar...' -C 15 }
} ElseIf($ClockUIBar -eq 1) {
DisplayOut 'Enabling New Clock UI Bar...' -C 11
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\ImmersiveShell' -Name 'UseWin32TrayClockExperience'
} ElseIf($ClockUIBar -eq 2) {
DisplayOut 'Enabling Old Clock UI Bar...' -C 12
$Path = CheckSetPath 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\ImmersiveShell'
Set-ItemProperty -Path $Path -Name 'UseWin32TrayClockExperience' -Type DWord -Value 1
}
If($VolumeControlBar -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Volume Control Bar...' -C 15 }
} ElseIf($VolumeControlBar -eq 1) {
DisplayOut 'Enabling New Volume Control Bar (Horizontal)...' -C 11
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MTCUVC' -Name 'EnableMtcUvc'
} ElseIf($VolumeControlBar -eq 2) {
DisplayOut 'Enabling Classic Volume Control Bar (Vertical)...' -C 12
$Path = CheckSetPath 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MTCUVC'
Set-ItemProperty -Path $Path -Name 'EnableMtcUvc' -Type DWord -Value 0
}
If($TaskbarSearchBox -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Taskbar Search box / button...' -C 15 }
} ElseIf($TaskbarSearchBox -eq 1) {
DisplayOut 'Showing Taskbar Search box / button...' -C 11
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search' -Name 'SearchboxTaskbarMode' -Type DWord -Value 1
} ElseIf($TaskbarSearchBox -eq 2) {
DisplayOut 'Hiding Taskbar Search box / button...' -C 12
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search' -Name 'SearchboxTaskbarMode' -Type DWord -Value 0
}
If($TaskViewButton -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Task View button...' -C 15 }
} ElseIf($TaskViewButton -eq 1) {
DisplayOut 'Showing Task View button...' -C 11
Remove-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'ShowTaskViewButton'
} ElseIf($TaskViewButton -eq 2) {
DisplayOut 'Hiding Task View button...' -C 12
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'ShowTaskViewButton' -Type DWord -Value 0
}
If($TaskbarIconSize -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Icon Size in Taskbar...' -C 15 }
} ElseIf($TaskbarIconSize -eq 1) {
DisplayOut 'Showing Normal Icon Size in Taskbar...' -C 11
Remove-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'TaskbarSmallIcons'
} ElseIf($TaskbarIconSize -eq 2) {
DisplayOut 'Showing Smaller Icons in Taskbar...' -C 12
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'TaskbarSmallIcons' -Type DWord -Value 1
}
If($TaskbarGrouping -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Taskbar Item Grouping...' -C 15 }
} ElseIf($TaskbarGrouping -eq 1) {
DisplayOut 'Never Group Taskbar Items...' -C 14
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'TaskbarGlomLevel' -Type DWord -Value 2
} ElseIf($TaskbarGrouping -eq 2) {
DisplayOut 'Always Group Taskbar Items...' -C 14
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'TaskbarGlomLevel' -Type DWord -Value 0
} ElseIf($TaskbarGrouping -eq 3) {
DisplayOut 'When Needed Group Taskbar Items...' -C 14
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'TaskbarGlomLevel' -Type DWord -Value 1
}
If($TrayIcons -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Tray icons...' -C 15 }
} ElseIf($TrayIcons -eq 1) {
DisplayOut 'Hiding Tray Icons...' -C 12
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer' -Name 'EnableAutoTray' -Type DWord -Value 1
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer' -Name 'EnableAutoTray' -Type DWord -Value 1
} ElseIf($TrayIcons -eq 2) {
DisplayOut 'Showing All Tray Icons...' -C 11
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer' -Name 'EnableAutoTray' -Type DWord -Value 0
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer' -Name 'EnableAutoTray' -Type DWord -Value 0
}
If($SecondsInClock -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Seconds in Taskbar Clock...' -C 15 }
} ElseIf($SecondsInClock -eq 1) {
DisplayOut 'Showing Seconds in Taskbar Clock...' -C 11
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'ShowSecondsInSystemClock' -Type DWord -Value 1
} ElseIf($SecondsInClock -eq 2) {
DisplayOut 'Hiding Seconds in Taskbar Clock...' -C 12
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'ShowSecondsInSystemClock' -Type DWord -Value 0
}
If($LastActiveClick -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Last Active Click...' -C 15 }
} ElseIf($LastActiveClick -eq 1) {
DisplayOut 'Enabling Last Active Click...' -C 11
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'LastActiveClick' -Type DWord -Value 1
} ElseIf($LastActiveClick -eq 2) {
DisplayOut 'Disabling Last Active Click...' -C 12
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'LastActiveClick' -Type DWord -Value 0
}
If($TaskBarOnMultiDisplay -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Taskbar on Multiple Displays...' -C 15 }
} ElseIf($TaskBarOnMultiDisplay -eq 1) {
DisplayOut 'Showing Taskbar on Multiple Displays...' -C 11
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'MMTaskbarEnabled' -Type DWord -Value 1
} ElseIf($TaskBarOnMultiDisplay -eq 2) {
DisplayOut 'Hiding Taskbar on Multiple Displays...' -C 12
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'MMTaskbarEnabled' -Type DWord -Value 0
}
If($TaskbarButtOnDisplay -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Taskbar Buttons on Multiple Displays...' -C 15 }
} ElseIf($TaskbarButtOnDisplay -eq 1) {
DisplayOut 'Showing Taskbar Buttons on All Taskbars...' -C 14
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'MMTaskbarMode' -Type DWord -Value 0
} ElseIf($TaskbarButtOnDisplay -eq 2) {
DisplayOut 'Showing Taskbar Buttons on Taskbar where Window is open...' -C 14
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'MMTaskbarMode' -Type DWord -Value 2
} ElseIf($TaskbarButtOnDisplay -eq 3) {
DisplayOut 'Showing Taskbar Buttons on Main Taskbar and where Window is open...' -C 14
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'MMTaskbarMode' -Type DWord -Value 1
}
BoxItem 'Star Menu Items'
If($StartMenuWebSearch -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Bing Search in Start Menu...' -C 15 }
} ElseIf($StartMenuWebSearch -eq 1) {
DisplayOut 'Enabling Bing Search in Start Menu...' -C 11
Remove-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search' -Name 'BingSearchEnabled'
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search' -Name 'DisableWebSearch'
} ElseIf($StartMenuWebSearch -eq 2) {
DisplayOut 'Disabling Bing Search in Start Menu...' -C 12
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search' -Name 'BingSearchEnabled' -Type DWord -Value 0
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search'
Set-ItemProperty -Path $Path -Name 'DisableWebSearch' -Type DWord -Value 1
}
If($StartSuggestions -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Start Menu Suggestions...' -C 15 }
} ElseIf($StartSuggestions -eq 1) {
DisplayOut 'Enabling Start Menu Suggestions...' -C 11
$Path = CheckSetPath 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager'
Set-ItemProperty -Path $Path -Name 'ContentDeliveryAllowed' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'OemPreInstalledAppsEnabled' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'PreInstalledAppsEnabled' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'PreInstalledAppsEverEnabled' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'SilentInstalledAppsEnabled' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'SystemPaneSuggestionsEnabled' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'Start_TrackProgs' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'SubscribedContent-314559Enabled' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'SubscribedContent-310093Enabled' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'SubscribedContent-338387Enabled' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'SubscribedContent-338388Enabled' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'SubscribedContent-338389Enabled' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'SubscribedContent-338393Enabled' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'SubscribedContent-353694Enabled' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'SubscribedContent-353696Enabled' -Type DWord -Value 1
Set-ItemProperty -Path $Path -Name 'SubscribedContent-358398Enabled' -Type DWord -Value 1
} ElseIf($StartSuggestions -eq 2) {
DisplayOut 'Disabling Start Menu Suggestions...' -C 12
$Path = CheckSetPath 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager'
Set-ItemProperty -Path $Path -Name 'ContentDeliveryAllowed' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'OemPreInstalledAppsEnabled' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'PreInstalledAppsEnabled' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'PreInstalledAppsEverEnabled' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'SilentInstalledAppsEnabled' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'SystemPaneSuggestionsEnabled' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'Start_TrackProgs' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'SubscribedContent-314559Enabled' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'SubscribedContent-310093Enabled' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'SubscribedContent-338387Enabled' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'SubscribedContent-338388Enabled' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'SubscribedContent-338389Enabled' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'SubscribedContent-338393Enabled' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'SubscribedContent-353694Enabled' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'SubscribedContent-353696Enabled' -Type DWord -Value 0
Set-ItemProperty -Path $Path -Name 'SubscribedContent-358398Enabled' -Type DWord -Value 0
If($Win10Ver -ge 1803) {
$key = Get-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\*windows.data.placeholdertilecollection\Current"
Set-ItemProperty -Path $key.PSPath -Name "Data" -Type Binary -Value $key.Data[0..15]
Stop-Process -Name "ShellExperienceHost" -Force
}
}
If($MostUsedAppStartMenu -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Most used Apps in Start Menu...' -C 15 }
} ElseIf($MostUsedAppStartMenu -eq 1) {
DisplayOut 'Showing Most used Apps in Start Menu...' -C 11
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'Start_TrackProgs' -Type DWord -Value 1
} ElseIf($MostUsedAppStartMenu -eq 2) {
DisplayOut 'Hiding Most used Apps in Start Menu...' -C 12
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'Start_TrackProgs' -Type DWord -Value 0
}
If($RecentItemsFrequent -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Recent Items and Frequent Places...' -C 15 }
} ElseIf($RecentItemsFrequent -eq 1) {
DisplayOut 'Enabling Recent Items and Frequent Places...' -C 11
$Path = CheckSetPath 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu'
Set-ItemProperty -Path $Path -Name 'Start_TrackDocs' -Type DWord -Value 1
} ElseIf($RecentItemsFrequent -eq 2) {
DisplayOut 'Disabling Recent Items and Frequent Places...' -C 12
$Path = CheckSetPath 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu'
Set-ItemProperty -Path $Path -Name 'Start_TrackDocs' -Type DWord -Value 0
}
BoxItem 'Explorer Items'
If($AccessKeyPrmpt -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Accessibility Keys Prompts...' -C 15 }
} ElseIf($AccessKeyPrmpt -eq 1) {
DisplayOut 'Enabling Accessibility Keys Prompts...' -C 11
$Path = 'HKCU:\Control Panel\Accessibility\'
Set-ItemProperty -Path "$Path\StickyKeys" -Name 'Flags' -Type String -Value '510'
Set-ItemProperty -Path "$Path\ToggleKeys" -Name 'Flags' -Type String -Value '62'
Set-ItemProperty -Path "$Path\Keyboard Response" -Name 'Flags' -Type String -Value '126'
} ElseIf($AccessKeyPrmpt -eq 2) {
DisplayOut 'Disabling Accessibility Keys Prompts...' -C 12
$Path = 'HKCU:\Control Panel\Accessibility\'
Set-ItemProperty -Path "$Path\StickyKeys" -Name 'Flags' -Type String -Value '506'
Set-ItemProperty -Path "$Path\ToggleKeys" -Name 'Flags' -Type String -Value '58'
Set-ItemProperty -Path "$Path\Keyboard Response" -Name 'Flags' -Type String -Value '122'
}
If($F1HelpKey -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping F1 Help key...' -C 15 }
} ElseIf($F1HelpKey -eq 1) {
DisplayOut 'Enabling F1 Help key...' -C 11
RemoveSetPath 'HKCU:\Software\Classes\TypeLib\{8cec5860-07a1-11d9-b15e-000d56bfe6ee}\1.0\0'
} ElseIf($F1HelpKey -eq 2) {
DisplayOut 'Disabling F1 Help key...' -C 12
$Path = CheckSetPath 'HKCU:\Software\Classes\TypeLib\{8cec5860-07a1-11d9-b15e-000d56bfe6ee}\1.0\0\win32'
Set-ItemProperty -Path $Path -Name '(Default)' -Type 'String' -Value ''
If($OSBit -eq 64) {
$Path = CheckSetPath 'HKCU:\Software\Classes\TypeLib\{8cec5860-07a1-11d9-b15e-000d56bfe6ee}\1.0\0\win64'
Set-ItemProperty -Path $Path -Name '(Default)' -Type 'String' -Value ''
}
}
If($PidInTitleBar -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Process ID on Title Bar...' -C 15 }
} ElseIf($PidInTitleBar -eq 1) {
DisplayOut 'Showing Process ID on Title Bar...' -C 11
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer' -Name 'ShowPidInTitle' -Type DWord -Value 1
} ElseIf($PidInTitleBar -eq 2) {
DisplayOut 'Hiding Process ID on Title Bar...' -C 12
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer' -Name 'ShowPidInTitle'
}
If($AeroSnap -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Aero Snap...' -C 15 }
} ElseIf($AeroSnap -eq 1) {
DisplayOut 'Enabling Aero Snap...' -C 11
Set-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name 'WindowArrangementActive' -Type String -Value 1
} ElseIf($AeroSnap -eq 2) {
DisplayOut 'Disabling Aero Snap...' -C 12
Set-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name 'WindowArrangementActive' -Type String -Value 0
}
If($AeroShake -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Aero Shake...' -C 15 }
} ElseIf($AeroShake -eq 1) {
DisplayOut 'Enabling Aero Shake...' -C 11
Remove-ItemProperty -Path 'HKCU:\Software\Policies\Microsoft\Windows\Explorer' -Name 'NoWindowMinimizingShortcuts'
} ElseIf($AeroShake -eq 2) {
DisplayOut 'Disabling Aero Shake...' -C 12
$Path = CheckSetPath 'HKCU:\Software\Policies\Microsoft\Windows\Explorer'
Set-ItemProperty -Path $Path -Name 'NoWindowMinimizingShortcuts' -Type DWord -Value 1
}
If($KnownExtensions -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Known File Extensions...' -C 15 }
} ElseIf($KnownExtensions -eq 1) {
DisplayOut 'Showing Known File Extensions...' -C 11
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideFileExt' -Type DWord -Value 0
} ElseIf($KnownExtensions -eq 2) {
DisplayOut 'Hiding Known File Extensions...' -C 12
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideFileExt' -Type DWord -Value 1
}
If($HiddenFiles -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Hidden Files...' -C 15 }
} ElseIf($HiddenFiles -eq 1) {
DisplayOut 'Showing Hidden Files...' -C 11
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'Hidden' -Type DWord -Value 1
} ElseIf($HiddenFiles -eq 2) {
DisplayOut 'Hiding Hidden Files...' -C 12
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'Hidden' -Type DWord -Value 2
}
If($SystemFiles -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping System Files...' -C 15 }
} ElseIf($SystemFiles -eq 1) {
DisplayOut 'Showing System Files...' -C 11
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'ShowSuperHidden' -Type DWord -Value 1
} ElseIf($SystemFiles -eq 2) {
DisplayOut 'Hiding System fFiles...' -C 12
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'ShowSuperHidden' -Type DWord -Value 0
}
If($ExplorerOpenLoc -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Default Explorer view to Quick Access...' -C 15 }
} ElseIf($ExplorerOpenLoc -eq 1) {
DisplayOut 'Changing Default Explorer view to Quick Access...' -C 14
Remove-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'LaunchTo'
} ElseIf($ExplorerOpenLoc -eq 2) {
DisplayOut 'Changing Default Explorer view to This PC...' -C 14
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'LaunchTo' -Type DWord -Value 1
}
If($RecentFileQikAcc -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Recent Files in Quick Access...' -C 15 }
} ElseIf($RecentFileQikAcc -eq 1) {
DisplayOut 'Showing Recent Files in Quick Access...' -C 11
$Path = 'Microsoft\Windows\CurrentVersion\Explorer'
Set-ItemProperty -Path "HKCU:\SOFTWARE\$Path" -Name 'ShowRecent' -Type DWord -Value 1
Set-ItemProperty -Path "HKLM:\$Path\HomeFolderDesktop\NameSpace\DelegateFolders\{3134ef9c-6b18-4996-ad04-ed5912e00eb5}" -Name '(Default)' -Type String -Value 'Recent Items Instance Folder'
If($OSBit -eq 64){ Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\$Path\HomeFolderDesktop\NameSpace\DelegateFolders\{3134ef9c-6b18-4996-ad04-ed5912e00eb5}" -Name '(Default)' -Type String -Value 'Recent Items Instance Folder' }
} ElseIf($RecentFileQikAcc -eq 2) {
DisplayOut 'Hiding Recent Files in Quick Access...' -C 12
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer' -Name 'ShowRecent' -Type DWord -Value 0
} ElseIf($RecentFileQikAcc -eq 3) {
DisplayOut 'Removing Recent Files in Quick Access...' -C 15
$Path = 'Microsoft\Windows\CurrentVersion\Explorer'
Set-ItemProperty -Path "HKCU:\SOFTWARE\$Path" -Name 'ShowRecent' -Type DWord -Value 0
RemoveSetPath "HKLM:\SOFTWARE\$Path\HomeFolderDesktop\NameSpace\DelegateFolders\{3134ef9c-6b18-4996-ad04-ed5912e00eb5}"
RemoveSetPath "HKLM:\SOFTWARE\Wow6432Node\$Path\HomeFolderDesktop\NameSpace\DelegateFolders\{3134ef9c-6b18-4996-ad04-ed5912e00eb5}"
}
If($FrequentFoldersQikAcc -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Frequent Folders in Quick Access...' -C 15 }
} ElseIf($FrequentFoldersQikAcc -eq 1) {
DisplayOut 'Showing Frequent Folders in Quick Access...' -C 11
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer' -Name 'ShowFrequent' -Type DWord -Value 1
} ElseIf($FrequentFoldersQikAcc -eq 2) {
DisplayOut 'Hiding Frequent Folders in Quick Access...' -C 12
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer' -Name 'ShowFrequent' -Type DWord -Value 0
}
If($WinContentWhileDrag -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Window Content while Dragging...' -C 15 }
} ElseIf($WinContentWhileDrag -eq 1) {
DisplayOut 'Showing Window Content while Dragging...' -C 11
Set-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name 'DragFullWindows' -Type DWord -Value 1
} ElseIf($WinContentWhileDrag -eq 2) {
DisplayOut 'Hiding Window Content while Dragging...' -C 12
Set-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name 'DragFullWindows' -Type DWord -Value 0
}
If($Autoplay -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Autoplay...' -C 15 }
} ElseIf($Autoplay -eq 1) {
DisplayOut 'Enabling Autoplay...' -C 11
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers' -Name 'DisableAutoplay' -Type DWord -Value 0
} ElseIf($Autoplay -eq 2) {
DisplayOut 'Disabling Autoplay...' -C 12
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers' -Name 'DisableAutoplay' -Type DWord -Value 1
}
If($Autorun -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Autorun for all Drives...' -C 15 }
} ElseIf($Autorun -eq 1) {
DisplayOut 'Enabling Autorun for all Drives...' -C 11
Remove-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer' -Name 'NoDriveTypeAutoRun'
} ElseIf($Autorun -eq 2) {
DisplayOut 'Disabling Autorun for all Drives...' -C 12
$Path = CheckSetPath 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer'
Set-ItemProperty -Path $Path -Name 'NoDriveTypeAutoRun' -Type DWord -Value 255
}
If($StoreOpenWith -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Search Windows Store for Unknown Extensions...' -C 15 }
} ElseIf($StoreOpenWith -eq 1) {
DisplayOut 'Enabling Search Windows Store for Unknown Extensions...' -C 11
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer' -Name 'NoUseStoreOpenWith'
} ElseIf($StoreOpenWith -eq 2) {
DisplayOut 'Disabling Search Windows Store for Unknown Extensions...' -C 12
$Path = CheckSetPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer'
Set-ItemProperty -Path $Path -Name 'NoUseStoreOpenWith' -Type DWord -Value 1
}
If($WinXPowerShell -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Win+X PowerShell to Command Prompt...' -C 15 }
} ElseIf($WinXPowerShell -eq 1) {
DisplayOut 'Changing Win+X Command Prompt to PowerShell...' -C 11
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'DontUsePowerShellOnWinX' -Type DWord -Value 0
} ElseIf($WinXPowerShell -eq 2) {
DisplayOut 'Changing Win+X PowerShell to Command Prompt...' -C 12
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'DontUsePowerShellOnWinX' -Type DWord -Value 1
}
If($TaskManagerDetails -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Task Manager Details...' -C 15 }
} ElseIf($TaskManagerDetails -eq 1) {
DisplayOut 'Attempting to Show Task Manager Details...' -C 11
$Path = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager'
$Taskmgr = Start-Process -WindowStyle Hidden -FilePath taskmgr.exe -PassThru
$timeout = 30000
$sleep = 100
$Path = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager'
Do {
Start-Sleep -Milliseconds $sleep
$timeout -= $sleep
$TaskManKey = Get-ItemProperty -Path $Path -Name 'Preferences'
} Until ($TaskManKey -or $timeout -le 0)
Stop-Process $Taskmgr
If($TaskManKey) {
DisplayOut '----Showing Task Manager Details...' -C 11
$TaskManKey.Preferences[28] = 0
Set-ItemProperty -Path $Path -Name 'Preferences' -Type Binary -Value $TaskManKey.Preferences
} Else {
DisplayOut '----Unable to Show Task Manager Details...' -C 13
}
} ElseIf($TaskManagerDetails -eq 2) {
DisplayOut 'Hiding Task Manager Details...' -C 12
$Path = CheckSetPath 'HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager'
$TaskManKey = Get-ItemProperty -Path $Path -Name 'Preferences'
If($TaskManKey) {
$TaskManKey.Preferences[28] = 1
Set-ItemProperty -Path $Path -Name 'Preferences' -Type Binary -Value $TaskManKey.Preferences
}
}
If($Win10Ver -ge 1709) {
If($ReopenAppsOnBoot -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Re-Opening Apps on Boot...' -C 15 }
} ElseIf($ReopenAppsOnBoot -eq 1) {
DisplayOut 'Enableing Re-Opening Apps on Boot (Apps reopen on boot)...' -C 11
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'DisableAutomaticRestartSignOn' -Type DWord -Value 0
} ElseIf($ReopenAppsOnBoot -eq 2) {
DisplayOut "Disabling Re-Opening Apps on Boot (Apps won't reopen on boot)..." -C 12
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'DisableAutomaticRestartSignOn' -Type DWord -Value 1
}
}
If($Win10Ver -ge 1803) {
If($Timeline -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Windows Timeline...' -C 15 }
} ElseIf($Timeline -eq 1) {
DisplayOut 'Enableing Windows Timeline...' -C 11
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Name 'EnableActivityFeed' -Type DWord -Value 1
} ElseIf($Timeline -eq 2) {
DisplayOut "Disabling Windows Timeline..." -C 12
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Name 'EnableActivityFeed' -Type DWord -Value 0
}
}
If($LongFilePath -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Long File Path...' -C 15 }
} ElseIf($LongFilePath -eq 1) {
DisplayOut 'Enableing Long File Path...' -C 11
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Type DWord -Value 1
Set-ItemProperty -Path 'HKLM:\SYSTEM\ControlSet001\Control\FileSystem' -Name 'LongPathsEnabled' -Type DWord -Value 1
} ElseIf($LongFilePath -eq 2) {
DisplayOut "Disabling Long File Path..." -C 12
Remove-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled'
Remove-ItemProperty -Path 'HKLM:\SYSTEM\ControlSet001\Control\FileSystem' -Name 'LongPathsEnabled'
}
If($AppHibernationFile -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping App Hibernation File (Swapfile.sys)...' -C 15 }
} ElseIf($AppHibernationFile -eq 1) {
DisplayOut 'Enabling App Hibernation File (Swapfile.sys)...' -C 11
Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name "SwapfileControl"
} ElseIf($AppHibernationFile -eq 2) {
DisplayOut 'Disabling App Hibernation File (Swapfile.sys)...' -C 12
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name "SwapfileControl" -Type Dword -Value 0
}
BoxItem "'This PC' Items"
If($DesktopIconInThisPC -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Desktop folder in This PC...' -C 15 }
} ElseIf($DesktopIconInThisPC -eq 1) {
DisplayOut 'Showing Desktop folder in This PC...' -C 11
$Path = '\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag'
$Path1 = '\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}'
New-Item -Path "HKLM:\SOFTWARE\$Path" | Out-Null
New-Item -Path "HKLM:\SOFTWARE\$Path1" | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\$Path" -Name 'ThisPCPolicy' -Type String -Value 'Show'
If($OSBit -eq 64){
New-Item -Path "HKLM:\SOFTWARE\Wow6432Node\$Path" | Out-Null
New-Item -Path "HKLM:\SOFTWARE\Wow6432Node\$Path1" | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\$Path" -Name 'ThisPCPolicy' -Type String -Value 'Show'
}
} ElseIf($DesktopIconInThisPC -eq 2) {
DisplayOut 'Hiding Desktop folder in This PC...' -C 12
$Path = '\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag'
Set-ItemProperty -Path "HKLM:\SOFTWARE\$Path" -Name 'ThisPCPolicy' -Type String -Value 'Hide'
If($OSBit -eq 64){ Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\$Path" -Name 'ThisPCPolicy' -Type String -Value 'Hide' }
} ElseIf($DesktopIconInThisPC -eq 3) {
DisplayOut 'Removing Desktop folder in This PC...' -C 13
RemoveSetPath 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}'
RemoveSetPath 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}'
}
If($DocumentsIconInThisPC -eq 0) {
If($ShowSkipped -eq 1){ DisplayOut 'Skipping Documents folder in This PC...' -C 15 }
} ElseIf($DocumentsIconInThisPC -eq 1) {
DisplayOut 'Showing Documents folder in This PC...' -C 11
$Path = '\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag'
$Path1 = '\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}'
$Path2 = '\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}'
New-Item -Path "HKLM:\SOFTWARE\$Path" | Out-Null
New-Item -Path "HKLM:\SOFTWARE\$Path1" | Out-Null
New-Item -Path "HKLM:\SOFTWARE\$Path2" | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\$Path" -Name 'ThisPCPolicy' -Type String -Value 'Show'
Set-ItemProperty -Path "HKLM:\SOFTWARE\$Path" -Name 'BaseFolderId' -Type String -Value '{FDD39AD0-238F-46AF-ADB4-6C85480369C7}'
If($OSBit -eq 64){
New-Item -Path "HKLM:\
gitextract_1eaxieqw/ ├── .gitattributes ├── .github/ │ └── ISSUE_TEMPLATE/ │ ├── bug_report.md │ └── feature_request.md ├── Changelog.txt ├── LICENSE ├── README.md ├── Testing/ │ ├── Changelog.txt │ ├── Win10-Menu.ps1 │ └── readme.md ├── Version/ │ └── Version.csv ├── Win10-Menu.ps1 ├── _Win10-Script-Run.bat └── todo.md
Condensed preview — 13 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (503K chars).
[
{
"path": ".gitattributes",
"chars": 146,
"preview": "/Testing export-ignore\n/Version export-ignore\n.gitattributes export-ignore\ntodo.md export-ignore\n/.github/ export-ignore"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 802,
"preview": "---\nname: Bug report\nabout: Create a report to help us improve\n\n---\n\n**Describe the bug** \nA clear and concise descrip"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 547,
"preview": "---\nname: Feature request\nabout: Suggest an idea for this project\n\n---\n\n**Is your feature request related to a problem? "
},
{
"path": "Changelog.txt",
"chars": 16801,
"preview": "-----------------------------------------------------------------------------------\n3.7.2 (07-31-2021)\n\nOption Added Ena"
},
{
"path": "LICENSE",
"chars": 1209,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2017 Disassembler <disassembler@dasm.cz> -Original Win10 Initial Setup Script\nCopyr"
},
{
"path": "README.md",
"chars": 7315,
"preview": "To Download go to -> [Win 10 Script -Release](https://github.com/madbomb122/Win10Script/releases)\n\n**Current Version**\n*"
},
{
"path": "Testing/Changelog.txt",
"chars": 16801,
"preview": "-----------------------------------------------------------------------------------\n3.7.2 (07-31-2021)\n\nOption Added Ena"
},
{
"path": "Testing/Win10-Menu.ps1",
"chars": 209586,
"preview": "##########\n# Win 10 Setup Script/Tweaks with Menu(GUI)\n#\n# Modded Script + Menu(GUI) By\n# Author: Madbomb122\n# Website:"
},
{
"path": "Testing/readme.md",
"chars": 527,
"preview": "# Currently Testing\nNothing ATM\n\n# About Testing Version\nIf I am not working on a change or addition to the script, this"
},
{
"path": "Version/Version.csv",
"chars": 50,
"preview": "Name,Version,MinorVersion\nStable,3.7,2\nTest,3.7,2\n"
},
{
"path": "Win10-Menu.ps1",
"chars": 209585,
"preview": "##########\n# Win 10 Setup Script/Tweaks with Menu(GUI)\n#\n# Modded Script + Menu(GUI) By\n# Author: Madbomb122\n# Website:"
},
{
"path": "_Win10-Script-Run.bat",
"chars": 2349,
"preview": "@ECHO OFF\n:: Version 1.1\n:: December 14th, 2017\n\n:: Instructions\n:: Bat, Script, and setting MUST be in same Folder\n:: C"
},
{
"path": "todo.md",
"chars": 640,
"preview": "# To Do/Done\nNothing ATM (If you have a suggestion let me know)\n\n-------------------------------------------------------"
}
]
About this extraction
This page contains the full source code of the madbomb122/Win10Script GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 13 files (455.4 KB), approximately 138.9k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.