]> anwendungenbau.skilabod.org Git - Windows_Setup.git/commitdiff
Urerscheinung
author0 <0@0.li>
Sat, 4 May 2024 22:39:47 +0000 (22:39 +0000)
committer0 <0@0.li>
Sat, 4 May 2024 22:39:47 +0000 (22:39 +0000)
232 files changed:
Changelog.md [new file with mode: 0755]
Development_Files/00-Templates/ApplicationSettings_Template.psm1 [new file with mode: 0755]
Development_Files/00-Templates/Appx_Template.ps1 [new file with mode: 0755]
Development_Files/00-Templates/ExplorerUserInterfaceSettings_Template.psm1 [new file with mode: 0755]
Development_Files/00-Templates/Function_Template.ps1 [new file with mode: 0755]
Development_Files/00-Templates/Function_Template_02.ps1 [new file with mode: 0755]
Development_Files/00-Templates/Function_Template_03.ps1 [new file with mode: 0755]
Development_Files/00-Templates/Function_Template_04.ps1 [new file with mode: 0755]
Development_Files/00-Templates/Function_Template_05.ps1 [new file with mode: 0755]
Development_Files/00-Templates/Function_Template_06.ps1 [new file with mode: 0755]
Development_Files/00-Templates/Function_Template_07.ps1 [new file with mode: 0755]
Development_Files/00-Templates/PrivacySettings_Template.psm1 [new file with mode: 0755]
Development_Files/00-Templates/SecuritySettings_Template.psm1 [new file with mode: 0755]
Development_Files/00-Templates/ServerSpecificSettings_Template.psm1 [new file with mode: 0755]
Development_Files/00-Templates/ServiceSettings_Template.psm1 [new file with mode: 0755]
Development_Files/00-Templates/UserInterfaceSettings_Template.psm1 [new file with mode: 0755]
Development_Files/00-Templates/WindowsSettings_Template-Groß.psm1 [new file with mode: 0755]
Development_Files/00-Templates/WindowsSettings_Template.psm1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-AppxPackages.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-BrowserAdobeFlash.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-DefaultFaxPrinter.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-HyperV.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-InternetExplorer.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-LinuxSubsystem.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.BingWeather.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.DesktopAppInstaller.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.GetHelp.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.Getstarted.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.HEIFImageExtension.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.MSPaint.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.Messaging.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.Microsoft3DViewer.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.MicrosoftOfficeHub.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.MicrosoftSolitaireCollection.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.MicrosoftStickyNotes.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.MixedReality.Portal.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.Office.OneNote.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.OneConnect.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.People.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.Print3D.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.ScreenSketch.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.SkypeApp.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.StorePurchaseApp.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.VP9VideoExtensions.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.Wallet.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.WebMediaExtensions.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.WebpImageExtension.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.Windows.Photos.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.WindowsAlarms.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.WindowsCalculator.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.WindowsCamera.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.WindowsFeedbackHub.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.WindowsMaps.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.WindowsSoundRecorder.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.WindowsStore.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.Xbox.TCUI.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.XboxApp.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.XboxGameOverlay.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.XboxGamingOverlay.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.XboxIdentityProvider.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.XboxSpeechToTextOverlay.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.YourPhone.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.ZuneMusic.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft.ZuneVideo.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-MicrosoftCortana.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-MicrosoftEdge.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-MicrosoftEdgeLegacy.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft_PDF_Printer.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-Microsoft_XPS_DocumentWriter.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-OneDrive.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-PhotoViewerAssociation.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-ThirdPartyBloat.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-WindowsMediaPlayer.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-WindowsMessenger.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-WorkFoldersClient.ps1 [new file with mode: 0755]
Development_Files/Application_Settings/Set-microsoft.windowscommunicationsapps.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-Display3D_ObjectsExplorer.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-Display3D_ObjectsThisPC.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-DisplayDesktopExplorer.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-DisplayDesktopThisPC.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-DisplayDocumentsExplorer.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-DisplayDocumentsThisPC.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-DisplayDownloadsExplorer.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-DisplayDownloadsThisPC.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-DisplayMusicExplorer.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-DisplayMusicThisPC.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-DisplayPicturesExplorer.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-DisplayPicturesThisPC.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-DisplayVideosExplorer.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-DisplayVideosThisPC.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-ExplorerStart.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-HiddenFilesandFolders.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-KnownFileExtensions.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-Recent_FrequentShortcuts.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-SynchronizationProviderNotifications.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-ThisPC_OnDesktop.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-Thumbnails.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-ThumbnailsCache.ps1 [new file with mode: 0755]
Development_Files/Explorer_User_Interface_Settings/Set-UserFolderOnDesktop.ps1 [new file with mode: 0755]
Development_Files/Other_Functions/Hex.ps1 [new file with mode: 0755]
Development_Files/Other_Functions/Set-KMS_Activation.ps1 [new file with mode: 0755]
Development_Files/Other_Functions/Set-WindowsLicense_KMS.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-AdvertisingIdentification.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-ApplicationLaunchTracking.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-ApplicationSuggestion_and_AutomaticInstallation.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-ApplicationsActionsPermissions.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-ApplicationsGeneralAccessPermissions.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-ApplicationsLibraryAccessPermissions.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-AutomaticMapUpdates.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-BackgroundApplicationAccess.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-CEIP_DataUploads.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-Cortana_and_WebSearch.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-DiagTrack.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-ErrorReporting.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-Feedback.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-InputPersonalization.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-LanguagelistAccess.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-LocationService_and_Sensors.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-LocationTracking.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-SmartScreenFilter.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-TailoredExperiences.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-Telemetry.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-UserActivityHistory.ps1 [new file with mode: 0755]
Development_Files/Privacy_Settings/Set-WAP_PushService.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-ControlledFolderAccess.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-CoreIsolationMemoryIntegrity.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-CurrentNetworkProfile.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-DEP_Policy.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-DotNetStrongCryptography.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-F8_BootMenuOptions.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-Firewall.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-ImplicitAdministrativeShares.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-LLMNR.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-MeltdownCompatibilityFlag.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-NetworkDeviceAutomaticInstallation.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-RemoteShellAccess.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-SMB_Server.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-SharingMappedDrivesBetweenUsers.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-UAC_Level.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-UnknownNetworksProfile.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-WindowsDefender.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-WindowsDefenderCloud.ps1 [new file with mode: 0755]
Development_Files/Security_Settings/Set-WindowsScriptHost.ps1 [new file with mode: 0755]
Development_Files/Server_Specific_Settings/Set-CtrlAltDelLogin.ps1 [new file with mode: 0755]
Development_Files/Server_Specific_Settings/Set-IE_EnhancedSecurity.ps1 [new file with mode: 0755]
Development_Files/Server_Specific_Settings/Set-PasswordPolicy.ps1 [new file with mode: 0755]
Development_Files/Server_Specific_Settings/Set-ServerManagerAtLogin.ps1 [new file with mode: 0755]
Development_Files/Server_Specific_Settings/Set-ShutdownEventTracker.ps1 [new file with mode: 0755]
Development_Files/Server_Specific_Settings/Set-Sound.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-Autoplay.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-BIOS_Time.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-Biometrics.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-DisplayandSleepModeTimeouts.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-DriveAutorun.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-FastStartupPolicy.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-FileIndexing.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-Game_DVR.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-Hibernation.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-RemoteAssistance.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-RemoteDesktop.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-ScheduledDefragmentation.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-SettingsSynchronization.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-SharedExperiences.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-SleepButton.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-Spellcheck.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-StorageSense.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-Superfetch.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-TextPrediction.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-TypingInsights.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-WindowsUpdate.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-WindowsUpdateAutomaticRestart.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-WindowsUpdateTransferOptimization.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-WindowsUpdate_Drivers.ps1 [new file with mode: 0755]
Development_Files/Service_Settings/Set-WindowsUpdate_MSRT.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-AccentColor.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-ActionCenter.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-ApplicationColorMode.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-ColorMode.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-ColorPrevalence.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-ControlPanelView.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-CortanaButton.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-FileDeletionConfirmation.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-FileOperationsDetails.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-LiveTilePushNotifications.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-Lockscreen.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-LockscreenNetworkOptions.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-LockscreenShutdownOptions.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-NewApplicationPrompt.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-NumberlockAfterStartup.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-RecentlyAddedApplications.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-SearchApplicationInStore.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-Searchbox.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-Shake_to_Minimize.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-StartMenuAlignment.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-StartMenuLayout.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-StickyKeys.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-SystemColorMode.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-SystemTray.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-TaskManagerDetails.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-TaskViewButton.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-TaskbarButtons.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-TaskbarClockSeconds.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-TaskbarIcons.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-TaskbarPeopleIcon.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-Transparency.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-TrayIcons.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-VisualEffectsProfile.ps1 [new file with mode: 0755]
Development_Files/User_Interface_Settings/Set-WidgetsApplication.ps1 [new file with mode: 0755]
Development_Files/Windows_Settings/WindowsSettings.ps1 [new file with mode: 0755]
Functions_Documentation/Documentation-Applications_Settings_Group.md [new file with mode: 0755]
Functions_Documentation/Documentation-Explorer_User_Interface_Settings_Group.md [new file with mode: 0755]
Functions_Documentation/Documentation-Other_Functions_Group.md [new file with mode: 0755]
Functions_Documentation/Documentation-Privacy_Settings_Group.md [new file with mode: 0755]
Functions_Documentation/Documentation-Security_Settings_Group.md [new file with mode: 0755]
Functions_Documentation/Documentation-Server_Specific_Settings_Group.md [new file with mode: 0755]
Functions_Documentation/Documentation-Service_Settings_Group.md [new file with mode: 0755]
Functions_Documentation/Documentation-User_Interface_Settings_Group.md [new file with mode: 0755]
Functions_Documentation/Documentation-Windows_Settings_Group.md [new file with mode: 0755]
Modules/ApplicationSettings/ApplicationSettings.psm1 [new file with mode: 0755]
Modules/ExplorerUserInterfaceSettings/ExplorerUserInterfaceSettings.psm1 [new file with mode: 0755]
Modules/OtherFunctions/OtherFunctions.psm1 [new file with mode: 0755]
Modules/PrivacySettings/PrivacySettings.psm1 [new file with mode: 0755]
Modules/SecuritySettings/SecuritySettings.psm1 [new file with mode: 0755]
Modules/ServerSpecificSettings/ServerSpecificSettings.psm1 [new file with mode: 0755]
Modules/ServiceSettings/ServiceSettings.psm1 [new file with mode: 0755]
Modules/UserInterfaceSettings/UserInterfaceSettings.psm1 [new file with mode: 0755]
Modules/WindowsSettings/WindowsSettings.psm1 [new file with mode: 0755]
Project_Functions.md [new file with mode: 0755]
READ_ME.md [new file with mode: 0755]
Uninstall_Windows_Setup.bat [new file with mode: 0755]
Update_Windows_Setup.bat [new file with mode: 0755]
Update_Windows_Setup.ps1 [new file with mode: 0755]

diff --git a/Changelog.md b/Changelog.md
new file mode 100755 (executable)
index 0000000..f836a9b
--- /dev/null
@@ -0,0 +1,115 @@
+# Changelog - Windows Setup
+
+## Version 3.0 - 2024.05.04
+    - Changed name of project from „Windows 10-11 Setup" to „Windows Setup".
+
+## Version 2.0 - 2021.07.30
+    - Changed name of project from „Windows 10 Setup" to „Windows 10-11 Setup", because of added Windows 11 functionality.         
+    - „PermanentlyRemove" option added to all Appx Application scripts.
+    - Set-Microsoft.Cortana renamed to Set-MicrosoftCortana.
+    - Set-MicrosoftEdge updated. - Due to changes in how Windows handles Edge, the options for „Enable" and „Disable" have been removed.
+       - Updated „Set-Cortana_and_WebSearch" to work with Windows 11.
+       - Added „Set-WidgetsApplication" for Windows 11.
+       - Added „Set-StartMenuAlignment" for Windows 11.
+       - Fixed typographical error in „Set-WindowsLicense_KMS" documentation.
+       - Updated READ_ME.md
+       - Updated Project_Functions.md
+
+## Version 1.8 - 2021.03.18
+       - Changed option, so that Microsoft Edge Legacy is disabled by default.
+       - Set Microsoft Calculator and Clock Appx applications to be removed, by default.
+       - Added Set-MicrosoftEdge
+       - Set option, so that Set-WindowsDefender and Set-WindowsDefenderCloud do not run by default.
+       - Updated Set-MicrosoftEdgeLegacy to have 'Remove' option.
+       - Updated Set-InternetExplorer to have 'Remove' option.
+       
+
+## Version 1.7 - 2020.09.08
+
+       - Updated „Set-Cortana_and_WebSearch"
+       - Updated „Set-WindowsLicense_KMS"
+       - Updated „Set-AccentColor"
+       - Removed „Set-WindowsApplicationsPermissions"
+       - Added „Set-ApplicationsActionsPermissions"
+       - Added „Set-ApplicationsGeneralAccessPermissions"
+       - Added „Set-ApplicationsLibraryAccessPermissions"
+       - Updated „WindowsSettings"
+
+## Version 1.6.0.4 - 2020.09.02
+       - Changed „Set-Taskview" to „Set-TaskviewButton", and updated it.
+       - Moved „Set-WindowsUpdate" from the „Application Settings" module to the „Service Settings" module.
+
+## Version 1.6.0.3 - 2020.09.02
+       - Updated „Uninstall_Windows_10_Setup.bat"
+
+## Version 1.6.0.2 - 2020.08.31
+       - Added „Uninstall_Windows_10_Setup.bat"
+
+## Version 1.6.0.1 - 2020.08.31
+       - Renamed „Install.ps1" to „Install_Windows_10_Setup.ps1".
+       - Added „Install_Windows_10_Setup.bat"
+
+## Version 1.6 - 2020.08.31
+       - Renamed Set-WindowsLicense to Set-WindowsLicense_KMS and updated it.
+       - Added Set-KMS_Activation
+
+## Version 1.5 - 2020.08.29
+       - Added Set-WindowsLicense
+
+## Version 1.4 - 2020.08.27
+       - Updated Set-AccentColor
+       - Added Set-RecentlyAddedApplications
+       - Added Set-Shake_to_Minimize
+       - Added Set-LiveTilePushNotifications
+       - Added Set-SystemTray
+       - Added Set-TaskbarClockSeconds
+       - Added Set-StartMenuLayout
+       - Removed Set-UserActivityHistoryDisplay
+       - Added Set-UserActivityHistory
+       - Updated Set-ActionCenter
+
+## Version 1.3.1 - 2020.08.22
+       - Updated Set-Spellcheck
+       - Updated Set-LanguagelistAccess
+       - Updated Set-TextPrediction
+
+## Version 1.3 - 2020.08.22
+       - Added Set-WindowsUpdateTransferOptimization
+       - Added Set-MicrosoftEdgeLegacy
+       - Added Set-ApplicationLaunchTracking
+       - Updated Set-AccentColor
+       - Added „Hex" Function
+       - Added „OtherFunctions" Module
+       - Added Set-Spellcheck
+       - Added Set-TextPrediction
+       - Added Set-TypingInsights
+       - Added Set-LanguagelistAccess
+       - Updated „WindowsSettings"
+
+## Version 1.2 - 2020.08.17
+       - Added Set-ColorPrevalence
+       - Added Set-Transparency
+       - Updated Set-VisualEffectsProfile
+       - Added Set-AccentColor
+
+## Version 1.1 - 2020.08.15
+       - Changed how Appx applications are removed and restored.  Added new functions to do so, allowing for
+         them to be removed invidually in the project.
+       - Added Set-Microsoft.Cortana
+
+## Version 1.0.1 - 2020.08.15
+       - Fixed Applications Permissions bug.
+       - Updated Disable Web Search feature to work with Release 2004.
+       - Added Set-CortanaButton
+
+## Version 1.0 - 2020.08.13
+
+### ***Added:***
+         - „Development_Files" Directory and Contents
+         - „Modules" Directory and Contents
+         - Functions_Documentation.md
+         - Install.ps1
+         - Project_Functions.md
+         - READ_ME.md
+         - Changelog.md
+         
diff --git a/Development_Files/00-Templates/ApplicationSettings_Template.psm1 b/Development_Files/00-Templates/ApplicationSettings_Template.psm1
new file mode 100755 (executable)
index 0000000..543b518
--- /dev/null
@@ -0,0 +1,98 @@
+##############################
+##                          ##
+##   Application Settings   ##        
+##                          ##
+##############################
+
+#region Set-AppxPackages
+
+
+
+#endregion
+
+#region Set-BrowserAdobeFlash
+
+
+
+#endregion
+
+#region Set-DefaultFaxPrinter
+
+
+
+#endregion
+
+#region Set-HyperV
+
+
+
+#endregion
+
+#region Set-InternetExplorer
+
+
+
+#endregion
+
+#region Set-LinuxSubsystem
+
+
+
+#endregion
+
+#region Set-Microsoft_PDF_Printer
+
+
+
+#endregion
+
+#region Set-Microsoft_XPS_DocumentWriter
+
+
+
+#endregion
+
+#region Set-OneDrive
+
+
+
+#endregion
+
+#region Set-PhotoViewerAssociation
+
+
+
+#endregion
+
+#region Set-ThirdPartyBloat
+
+
+
+#endregion
+
+#region Set-WindowsMediaPlayer
+
+
+
+#endregion
+
+#region Set-WindowsMessenger
+
+
+
+#endregion
+
+#region Set-WindowsUpdate
+
+
+
+#endregion
+
+#region Set-WorkFoldersClient
+
+
+
+#endregion
+
+
+
diff --git a/Development_Files/00-Templates/Appx_Template.ps1 b/Development_Files/00-Templates/Appx_Template.ps1
new file mode 100755 (executable)
index 0000000..d0f7467
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-TEMPLATE\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing TEMPLATE."\r
+\r
+        Get-AppxPackage TEMPLATE | Remove-AppxPackage\r
+\r
+        Write-Host "TEMPLATE removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing TEMPLATE."\r
+\r
+        Get-AppxPackage TEMPLATE | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*TEMPLATE*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "TEMPLATE permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring TEMPLATE."\r
+\r
+        Get-AppxPackage -AllUsers TEMPLATE | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "TEMPLATE restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/00-Templates/ExplorerUserInterfaceSettings_Template.psm1 b/Development_Files/00-Templates/ExplorerUserInterfaceSettings_Template.psm1
new file mode 100755 (executable)
index 0000000..dadb532
--- /dev/null
@@ -0,0 +1,145 @@
+##############################
+##                          ##
+##         Explorer         ##        
+## User Interface Settings  ##
+##                          ##
+##############################
+
+#region Set-Display3D_ObjectsExplorer
+
+
+
+#endregion
+
+#region Set-Display3D_ObjectsThisPC
+
+
+
+#endregion
+
+#region Set-DisplayDesktopExplorer
+
+
+
+#endregion
+
+#region Set-DisplayDesktopThisPC
+
+
+
+#endregion
+
+#region Set-DisplayDocumentsExplorer
+
+
+
+#endregion
+
+#region Set-DisplayDocumentsThisPC
+
+
+
+#endregion
+
+#region Set-DisplayDownloadsExplorer
+
+
+
+#endregion
+
+#region Set-DisplayDownloadsThisPC
+
+
+
+#endregion
+
+#region Set-DisplayMusicExplorer
+
+
+
+#endregion
+
+#region Set-DisplayMusicThisPC
+
+
+
+#endregion
+
+#region Set-DisplayPicturesExplorer
+
+
+
+#endregion
+
+#region Set-DisplayPicturesThisPC
+
+
+
+#endregion
+
+#region Set-DisplayVideosExplorer
+
+
+
+#endregion
+
+#region Set-DisplayVideosThisPC
+
+
+
+#endregion
+
+#region Set-ExplorerStart
+
+
+
+#endregion
+
+#region Set-HiddenFilesandFolders
+
+
+
+#endregion
+
+#region Set-KnownFileExtensions
+
+
+
+#endregion
+
+#region Set-Recent_FrequentShortcuts
+
+
+
+#endregion
+
+#region Set-SynchronizationProviderNotifications
+
+
+
+#endregion
+
+#region Set-ThisPC_OnDesktop
+
+
+
+#endregion
+
+#region Set-Thumbnails
+
+
+
+#endregion
+
+#region Set-ThumbnailsCache
+
+
+
+#endregion
+
+#region Set-UserFolderOnDesktop
+
+
+
+#endregion
+
diff --git a/Development_Files/00-Templates/Function_Template.ps1 b/Development_Files/00-Templates/Function_Template.ps1
new file mode 100755 (executable)
index 0000000..50fdde7
--- /dev/null
@@ -0,0 +1,19 @@
+Function Set-\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        \r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        \r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/00-Templates/Function_Template_02.ps1 b/Development_Files/00-Templates/Function_Template_02.ps1
new file mode 100755 (executable)
index 0000000..02ef1c8
--- /dev/null
@@ -0,0 +1,25 @@
+Function Set-\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host ""\r
+\r
+        Write-Host ""\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host ""\r
+\r
+        Write-Host ""\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/00-Templates/Function_Template_03.ps1 b/Development_Files/00-Templates/Function_Template_03.ps1
new file mode 100755 (executable)
index 0000000..b5dccb7
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'TEMPLATE' to be shown."\r
+\r
+\r
+\r
+        Write-Host "'TEMPLATE' set to be shown."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'TEMPLATE' to be hidden."\r
+\r
+\r
+\r
+        Write-Host "'TEMPLATE' set to be hidden."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/00-Templates/Function_Template_04.ps1 b/Development_Files/00-Templates/Function_Template_04.ps1
new file mode 100755 (executable)
index 0000000..1a77e47
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'TEMPLATE' icon to be shown in 'This PC'."\r
+\r
+\r
+\r
+        Write-Host "'TEMPLATE' icon set to be shown in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'TEMPLATE' icon to be hidden in 'This PC'."\r
+\r
+\r
+\r
+        Write-Host "'TEMPLATE' icon set to be hidden in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/00-Templates/Function_Template_05.ps1 b/Development_Files/00-Templates/Function_Template_05.ps1
new file mode 100755 (executable)
index 0000000..6b7d3a6
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'TEMPLATE' icon to be shown in Explorer namespace."\r
+\r
+\r
+\r
+        Write-Host "'TEMPLATE' icon set to be shown in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'TEMPLATE' icon to be hidden in Explorer namespace."\r
+\r
+\r
+\r
+        Write-Host "'TEMPLATE' icon set to be hidden in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/00-Templates/Function_Template_06.ps1 b/Development_Files/00-Templates/Function_Template_06.ps1
new file mode 100755 (executable)
index 0000000..34cc4a8
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-TEMPLATE\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing TEMPLATE."\r
+\r
+        Get-AppxPackage TEMPLATE | Remove-AppxPackage\r
+\r
+        Write-Host "TEMPLATE removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring TEMPLATE."\r
+\r
+        Get-AppxPackage -AllUsers TEMPLATE | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "TEMPLATE restored."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove' and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/00-Templates/Function_Template_07.ps1 b/Development_Files/00-Templates/Function_Template_07.ps1
new file mode 100755 (executable)
index 0000000..04e4542
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-\r
+{\r
+    Param([string]$Value)\r
+     \r
+    If ($Value -eq "Grant")\r
+    {\r
+        Write-Host ""\r
+\r
+\r
+\r
+        Write-Host ""\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Deny")\r
+    {\r
+        Write-Host ""\r
+\r
+        \r
+        \r
+        Write-Host ""\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Grant' and 'Deny'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/00-Templates/PrivacySettings_Template.psm1 b/Development_Files/00-Templates/PrivacySettings_Template.psm1
new file mode 100755 (executable)
index 0000000..d2d7b1a
--- /dev/null
@@ -0,0 +1,114 @@
+##############################
+##                          ##
+##     Privacy Settings     ##        
+##                          ##
+##############################
+
+#region Set-AdvertisingIdentification
+
+
+
+#endregion
+
+#region Set-ApplicationSuggestion_and_AutomaticInstallation
+
+
+
+#endregion
+
+#region Set-AutomaticMapUpdates
+
+
+
+#endregion
+
+#region Set-BackgroundApplicationAccess
+
+
+
+#endregion
+
+#region Set-CEIP_DataUploads
+
+
+
+#endregion
+
+#region Set-Cortana_and_WebSearch
+
+
+
+#endregion
+
+#region Set-DiagTrack
+
+
+
+#endregion
+
+#region Set-ErrorReporting
+
+
+
+#endregion
+
+#region Set-Feedback
+
+
+
+#endregion
+
+#region Set-InputPersonalization
+
+
+
+#endregion
+
+#region Set-LocationService_and_Sensors
+
+
+
+#endregion
+
+#region Set-LocationTracking
+
+
+
+#endregion
+
+#region Set-SmartScreenFilter
+
+
+
+#endregion
+
+#region Set-TailoredExperiences
+
+
+
+#endregion
+
+#region Set-Telemetry
+
+
+
+#endregion
+
+#region Set-UserActivityHistoryDisplay
+
+
+
+#endregion
+
+#region Set-WAP_PushService
+
+
+
+#endregion
+
+#region Set-WindowsApplicationsPermissions
+
+
+
+#endregion
+
diff --git a/Development_Files/00-Templates/SecuritySettings_Template.psm1 b/Development_Files/00-Templates/SecuritySettings_Template.psm1
new file mode 100755 (executable)
index 0000000..228ec73
--- /dev/null
@@ -0,0 +1,120 @@
+##############################
+##                          ##
+##    Security Settings     ##        
+##                          ##
+##############################
+
+#region Set-ControlledFolderAccess
+
+
+
+#endregion
+
+#region Set-CoreIsolationMemoryIntegrity
+
+
+
+#endregion
+
+#region Set-CurrentNetworkProfile
+
+
+
+#endregion
+
+#region Set-DEP_Policy
+
+
+
+#endregion
+
+#region Set-DotNetStrongCryptography
+
+
+
+#endregion
+
+#region Set-F8_BootMenuOptions
+
+
+
+#endregion
+
+#region Set-Firewall
+
+
+
+#endregion
+
+#region Set-ImplicitAdministrativeShares
+
+
+
+#endregion
+
+#region Set-LLMNR
+
+
+
+#endregion
+
+#region Set-MeltdownCompatibilityFlag
+
+
+
+#endregion
+
+#region Set-NetworkDeviceAutomaticInstallation
+
+
+
+#endregion
+
+#region Set-RemoteShellAccess
+
+
+
+#endregion
+
+#region Set-SharingMappedDrivesBetweenUsers
+
+
+
+#endregion
+
+#region Set-SMB_Server
+
+
+
+#endregion
+
+#region Set-UAC_Level
+
+
+
+#endregion
+
+#region Set-UnknownNetworksProfile
+
+
+
+#endregion
+
+#region Set-WindowsDefender
+
+
+
+#endregion
+
+#region Set-WindowsDefenderCloud
+
+
+
+#endregion
+
+#region Set-WindowsScriptHost
+
+
+
+#endregion
+
diff --git a/Development_Files/00-Templates/ServerSpecificSettings_Template.psm1 b/Development_Files/00-Templates/ServerSpecificSettings_Template.psm1
new file mode 100755 (executable)
index 0000000..4099cc8
--- /dev/null
@@ -0,0 +1,42 @@
+##############################
+##                          ##
+## Server Specific Settings ##        
+##                          ##
+##############################
+
+#region Set-CtrlAltDelLogin
+
+
+
+#endregion
+
+#region Set-IE_EnhancedSecurity
+
+
+
+#endregion
+
+#region Set-PasswordPolicy
+
+
+
+#endregion
+
+#region Set-ServerManagerAtLogin
+
+
+
+#endregion
+
+#region Set-ShutdownEventTracker
+
+
+
+#endregion
+
+#region Set-Sound
+
+
+
+#endregion
+
diff --git a/Development_Files/00-Templates/ServiceSettings_Template.psm1 b/Development_Files/00-Templates/ServiceSettings_Template.psm1
new file mode 100755 (executable)
index 0000000..41c8f9f
--- /dev/null
@@ -0,0 +1,126 @@
+##############################
+##                          ##
+##     Service Settings     ##        
+##                          ##
+##############################
+
+#region Set-Autoplay
+
+
+
+#endregion
+
+#region Set-Biometrics
+
+
+
+#endregion
+
+#region Set-BIOS_Time
+
+
+
+#endregion
+
+#region Set-DisplayandSleepModeTimeouts
+
+
+
+#endregion
+
+#region Set-DriveAutorun
+
+
+
+#endregion
+
+#region Set-FastStartupPolicy
+
+
+
+#endregion
+
+#region Set-FileIndexing
+
+
+
+#endregion
+
+#region Set-Game_DVR
+
+
+
+#endregion
+
+#region Set-Hibernation
+
+
+
+#endregion
+
+#region Set-RemoteAssistance
+
+
+
+#endregion
+
+#region Set-RemoteDesktop
+
+
+
+#endregion
+
+#region Set-ScheduledDefragmentation
+
+
+
+#endregion
+
+#region Set-SettingsSynchronization
+
+
+
+#endregion
+
+#region Set-SharedExperiences
+
+
+
+#endregion
+
+#region Set-SleepButton
+
+
+
+#endregion
+
+#region Set-StorageSense
+
+
+
+#endregion
+
+#region Set-Superfetch
+
+
+
+#endregion
+
+#region Set-WindowsUpdateAutomaticRestart
+
+
+
+#endregion
+
+#region Set-WindowsUpdate_Drivers
+
+
+
+#endregion
+
+#region Set-WindowsUpdate_MSRT
+
+
+
+#endregion
+
diff --git a/Development_Files/00-Templates/UserInterfaceSettings_Template.psm1 b/Development_Files/00-Templates/UserInterfaceSettings_Template.psm1
new file mode 100755 (executable)
index 0000000..c489069
--- /dev/null
@@ -0,0 +1,138 @@
+##############################
+##                          ##
+## User Interface Settings  ##        
+##                          ##
+##############################
+
+#region Set-ActionCenter
+
+
+
+#endregion
+
+#region Set-ApplicationColorMode
+
+
+
+#endregion
+
+#region Set-ColorMode
+
+
+
+#endregion
+
+#region Set-ControlPanelView
+
+
+
+#endregion
+
+#region Set-FileDeletionConfirmation
+
+
+
+#endregion
+
+#region Set-FileOperationsDetails
+
+
+
+#endregion
+
+#region Set-Lockscreen
+
+
+
+#endregion
+
+#region Set-LockscreenNetworkOptions
+
+
+
+#endregion
+
+#region Set-LockscreenShutdownOptions
+
+
+
+#endregion
+
+#region Set-NewApplicationPrompt
+
+
+
+#endregion
+
+#region Set-NumberlockAfterStartup
+
+
+
+#endregion
+
+#region Set-SearchApplicationInStore
+
+
+
+#endregion
+
+#region Set-Searchbox
+
+
+
+#endregion
+
+#region Set-StickyKeys
+
+
+
+#endregion
+
+#region Set-SystemColorMode
+
+
+
+#endregion
+
+#region Set-TaskbarButtons
+
+
+
+#endregion
+
+#region Set-TaskbarIcons
+
+
+
+#endregion
+
+#region Set-TaskbarPeopleIcon
+
+
+
+#endregion
+
+#region Set-TaskManagerDetails
+
+
+
+#endregion
+
+#region Set-TaskView
+
+
+
+#endregion
+
+#region Set-TrayIcons
+
+
+
+#endregion
+
+#region Set-VisualEffectsProfile
+
+
+
+#endregion
+
diff --git a/Development_Files/00-Templates/WindowsSettings_Template-Groß.psm1 b/Development_Files/00-Templates/WindowsSettings_Template-Groß.psm1
new file mode 100755 (executable)
index 0000000..390854d
--- /dev/null
@@ -0,0 +1,826 @@
+##############################
+##                          ##
+##      Main Function       ##        
+##                          ##
+##############################
+#region Main Function
+
+
+
+#endregion
+
+
+
+##############################
+##                          ##
+##   Application Settings   ##        
+##                          ##
+##############################
+#region Application Settings
+
+#region Set-AppxPackages
+
+
+
+#endregion
+
+#region Set-BrowserAdobeFlash
+
+
+
+#endregion
+
+#region Set-DefaultFaxPrinter
+
+
+
+#endregion
+
+#region Set-HyperV
+
+
+
+#endregion
+
+#region Set-InternetExplorer
+
+
+
+#endregion
+
+#region Set-LinuxSubsystem
+
+
+
+#endregion
+
+#region Set-Microsoft_PDF_Printer
+
+
+
+#endregion
+
+#region Set-Microsoft_XPS_DocumentWriter
+
+
+
+#endregion
+
+#region Set-OneDrive
+
+
+
+#endregion
+
+#region Set-PhotoViewerAssociation
+
+
+
+#endregion
+
+#region Set-ThirdPartyBloat
+
+
+
+#endregion
+
+#region Set-WindowsMediaPlayer
+
+
+
+#endregion
+
+#region Set-WindowsMessenger
+
+
+
+#endregion
+
+#region Set-WindowsUpdate
+
+
+
+#endregion
+
+#region Set-WorkFoldersClient
+
+
+
+#endregion
+
+#endregion
+
+
+
+##############################
+##                          ##
+##         Explorer         ##        
+## User Interface Settings  ##
+##                          ##
+##############################
+#region Explorer User Interface Settings
+
+#region Set-Display3D_ObjectsExplorer
+
+
+
+#endregion
+
+#region Set-Display3D_ObjectsThisPC
+
+
+
+#endregion
+
+#region Set-DisplayDesktopExplorer
+
+
+
+#endregion
+
+#region Set-DisplayDesktopThisPC
+
+
+
+#endregion
+
+#region Set-DisplayDocumentsExplorer
+
+
+
+#endregion
+
+#region Set-DisplayDocumentsThisPC
+
+
+
+#endregion
+
+#region Set-DisplayDownloadsExplorer
+
+
+
+#endregion
+
+#region Set-DisplayDownloadsThisPC
+
+
+
+#endregion
+
+#region Set-DisplayMusicExplorer
+
+
+
+#endregion
+
+#region Set-DisplayMusicThisPC
+
+
+
+#endregion
+
+#region Set-DisplayPicturesExplorer
+
+
+
+#endregion
+
+#region Set-DisplayPicturesThisPC
+
+
+
+#endregion
+
+#region Set-DisplayVideosExplorer
+
+
+
+#endregion
+
+#region Set-DisplayVideosThisPC
+
+
+
+#endregion
+
+#region Set-ExplorerStart
+
+
+
+#endregion
+
+#region Set-HiddenFilesandFolders
+
+
+
+#endregion
+
+#region Set-KnownFileExtensions
+
+
+
+#endregion
+
+#region Set-Recent_FrequentShortcuts
+
+
+
+#endregion
+
+#region Set-SynchronizationProviderNotifications
+
+
+
+#endregion
+
+#region Set-ThisPC_OnDesktop
+
+
+
+#endregion
+
+#region Set-Thumbnails
+
+
+
+#endregion
+
+#region Set-ThumbnailsCache
+
+
+
+#endregion
+
+#region Set-UserFolderOnDesktop
+
+
+
+#endregion
+
+#endregion
+
+
+
+##############################
+##                          ##
+##     Privacy Settings     ##        
+##                          ##
+##############################
+#region Privacy Settings
+
+#region Set-AdvertisingIdentification
+
+
+
+#endregion
+
+#region Set-ApplicationSuggestion_and_AutomaticInstallation
+
+
+
+#endregion
+
+#region Set-AutomaticMapUpdates
+
+
+
+#endregion
+
+#region Set-BackgroundApplicationAccess
+
+
+
+#endregion
+
+#region Set-CEIP_DataUploads
+
+
+
+#endregion
+
+#region Set-Cortana_and_WebSearch
+
+
+
+#endregion
+
+#region Set-DiagTrack
+
+
+
+#endregion
+
+#region Set-ErrorReporting
+
+
+
+#endregion
+
+#region Set-Feedback
+
+
+
+#endregion
+
+#region Set-InputPersonalization
+
+
+
+#endregion
+
+#region Set-LocationService_and_Sensors
+
+
+
+#endregion
+
+#region Set-LocationTracking
+
+
+
+#endregion
+
+#region Set-SmartScreenFilter
+
+
+
+#endregion
+
+#region Set-TailoredExperiences
+
+
+
+#endregion
+
+#region Set-Telemetry
+
+
+
+#endregion
+
+#region Set-UserActivityHistoryDisplay
+
+
+
+#endregion
+
+#region Set-WAP_PushService
+
+
+
+#endregion
+
+#region Set-WindowsApplicationsPermissions
+
+
+
+#endregion
+
+#endregion
+
+
+
+##############################
+##                          ##
+##    Security Settings     ##        
+##                          ##
+##############################
+#region Security Settings
+
+#region Set-ControlledFolderAccess
+
+
+
+#endregion
+
+#region Set-CoreIsolationMemoryIntegrity
+
+
+
+#endregion
+
+#region Set-CurrentNetworkProfile
+
+
+
+#endregion
+
+#region Set-DEP_Policy
+
+
+
+#endregion
+
+#region Set-DotNetStrongCryptography
+
+
+
+#endregion
+
+#region Set-F8_BootMenuOptions
+
+
+
+#endregion
+
+#region Set-Firewall
+
+
+
+#endregion
+
+#region Set-ImplicitAdministrativeShares
+
+
+
+#endregion
+
+#region Set-LLMNR
+
+
+
+#endregion
+
+#region Set-MeltdownCompatibilityFlag
+
+
+
+#endregion
+
+#region Set-NetworkDeviceAutomaticInstallation
+
+
+
+#endregion
+
+#region Set-RemoteShellAccess
+
+
+
+#endregion
+
+#region Set-SharingMappedDrivesBetweenUsers
+
+
+
+#endregion
+
+#region Set-SMB_Server
+
+
+
+#endregion
+
+#region Set-UAC_Level
+
+
+
+#endregion
+
+#region Set-UnknownNetworksProfile
+
+
+
+#endregion
+
+#region Set-WindowsDefender
+
+
+
+#endregion
+
+#region Set-WindowsDefenderCloud
+
+
+
+#endregion
+
+#region Set-WindowsScriptHost
+
+
+
+#endregion
+
+#endregion
+
+
+
+##############################
+##                          ##
+## Server Specific Settings ##        
+##                          ##
+##############################
+#region Server Specific Settings
+
+#region Set-CtrlAltDelLogin
+
+
+
+#endregion
+
+#region Set-IE_EnhancedSecurity
+
+
+
+#endregion
+
+#region Set-PasswordPolicy
+
+
+
+#endregion
+
+#region Set-ServerManagerAtLogin
+
+
+
+#endregion
+
+#region Set-ShutdownEventTracker
+
+
+
+#endregion
+
+#region Set-Sound
+
+
+
+#endregion
+
+#endregion
+
+
+
+##############################
+##                          ##
+##     Service Settings     ##        
+##                          ##
+##############################
+#region Service Settings
+
+#region Set-Autoplay
+
+
+
+#endregion
+
+#region Set-Biometrics
+
+
+
+#endregion
+
+#region Set-BIOS_Time
+
+
+
+#endregion
+
+#region Set-DisplayandSleepModeTimeouts
+
+
+
+#endregion
+
+#region Set-DriveAutorun
+
+
+
+#endregion
+
+#region Set-FastStartupPolicy
+
+
+
+#endregion
+
+#region Set-FileIndexing
+
+
+
+#endregion
+
+#region Set-Game_DVR
+
+
+
+#endregion
+
+#region Set-Hibernation
+
+
+
+#endregion
+
+#region Set-RemoteAssistance
+
+
+
+#endregion
+
+#region Set-RemoteDesktop
+
+
+
+#endregion
+
+#region Set-ScheduledDefragmentation
+
+
+
+#endregion
+
+#region Set-SettingsSynchronization
+
+
+
+#endregion
+
+#region Set-SharedExperiences
+
+
+
+#endregion
+
+#region Set-SleepButton
+
+
+
+#endregion
+
+#region Set-StorageSense
+
+
+
+#endregion
+
+#region Set-Superfetch
+
+
+
+#endregion
+
+#region Set-WindowsUpdateAutomaticRestart
+
+
+
+#endregion
+
+#region Set-WindowsUpdate_Drivers
+
+
+
+#endregion
+
+#region Set-WindowsUpdate_MSRT
+
+
+
+#endregion
+
+#endregion
+
+
+
+##############################
+##                          ##
+## User Interface Settings  ##        
+##                          ##
+##############################
+#region User Interface Settings
+
+#region Set-ActionCenter
+
+
+
+#endregion
+
+#region Set-ApplicationColorMode
+
+
+
+#endregion
+
+#region Set-ColorMode
+
+
+
+#endregion
+
+#region Set-ControlPanelView
+
+
+
+#endregion
+
+#region Set-FileDeletionConfirmation
+
+
+
+#endregion
+
+#region Set-FileOperationsDetails
+
+
+
+#endregion
+
+#region Set-Lockscreen
+
+
+
+#endregion
+
+#region Set-LockscreenNetworkOptions
+
+
+
+#endregion
+
+#region Set-LockscreenShutdownOptions
+
+
+
+#endregion
+
+#region Set-NewApplicationPrompt
+
+
+
+#endregion
+
+#region Set-NumberlockAfterStartup
+
+
+
+#endregion
+
+#region Set-SearchApplicationInStore
+
+
+
+#endregion
+
+#region Set-Searchbox
+
+
+
+#endregion
+
+#region Set-StickyKeys
+
+
+
+#endregion
+
+#region Set-SystemColorMode
+
+
+
+#endregion
+
+#region Set-TaskbarButtons
+
+
+
+#endregion
+
+#region Set-TaskbarIcons
+
+
+
+#endregion
+
+#region Set-TaskbarPeopleIcon
+
+
+
+#endregion
+
+#region Set-TaskManagerDetails
+
+
+
+#endregion
+
+#region Set-TaskView
+
+
+
+#endregion
+
+#region Set-TrayIcons
+
+
+
+#endregion
+
+#region Set-VisualEffectsProfile
+
+
+
+#endregion
+
+#endregion
diff --git a/Development_Files/00-Templates/WindowsSettings_Template.psm1 b/Development_Files/00-Templates/WindowsSettings_Template.psm1
new file mode 100755 (executable)
index 0000000..b1cacfa
--- /dev/null
@@ -0,0 +1,7 @@
+##############################
+##                          ##
+##     Windows Settings     ##        
+##                          ##
+##############################
+
+
diff --git a/Development_Files/Application_Settings/Set-AppxPackages.ps1 b/Development_Files/Application_Settings/Set-AppxPackages.ps1
new file mode 100755 (executable)
index 0000000..25304f8
--- /dev/null
@@ -0,0 +1,162 @@
+Function Set-AppxPackages\r
+{\r
+    Param([string]$Value)\r
+        \r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Appx Packages."\r
+        \r
+        Set-Microsoft.BingWeather -Value Remove\r
+        Set-Microsoft.DesktopAppInstaller -Value Remove\r
+        Set-Microsoft.GetHelp -Value Remove\r
+        Set-Microsoft.Getstarted -Value Remove\r
+        #Set-Microsoft.HEIFImageExtension -Value Remove\r
+        Set-Microsoft.Messaging -Value Remove\r
+        Set-Microsoft.Microsoft3DViewer -Value Remove\r
+        Set-Microsoft.MicrosoftOfficeHub -Value Remove\r
+        Set-Microsoft.MicrosoftSolitaireCollection -Value Remove\r
+        Set-Microsoft.MicrosoftStickyNotes -Value Remove\r
+        Set-Microsoft.MixedReality.Portal -Value Remove\r
+        Set-Microsoft.MSPaint -Value Remove\r
+        Set-Microsoft.Office.OneNote -Value Remove\r
+        Set-Microsoft.OneConnect -Value Remove\r
+        Set-Microsoft.People -Value Remove\r
+        Set-Microsoft.Print3D -Value Remove\r
+        Set-Microsoft.ScreenSketch -Value Remove\r
+        Set-Microsoft.SkypeApp -Value Remove\r
+        Set-Microsoft.StorePurchaseApp -Value Remove\r
+        #Set-Microsoft.VP9VideoExtensions -Value Remove\r
+        Set-Microsoft.Wallet -Value Remove\r
+        #Set-Microsoft.WebMediaExtensions -Value Remove\r
+        #Set-Microsoft.WebpImageExtension -Value Remove\r
+        Set-Microsoft.Windows.Photos -Value Remove\r
+        Set-Microsoft.WindowsAlarms -Value Remove\r
+        Set-Microsoft.WindowsCalculator -Value Remove\r
+        Set-Microsoft.WindowsCamera -Value Remove\r
+        Set-microsoft.windowscommunicationsapps -Value Remove\r
+        Set-Microsoft.WindowsFeedbackHub -Value Remove\r
+        Set-Microsoft.WindowsMaps -Value Remove\r
+        Set-Microsoft.WindowsSoundRecorder -Value Remove\r
+        Set-Microsoft.WindowsStore -Value Remove\r
+        Set-Microsoft.Xbox.TCUI -Value Remove\r
+        Set-Microsoft.XboxApp -Value Remove\r
+        Set-Microsoft.XboxGameOverlay -Value Remove\r
+        Set-Microsoft.XboxGamingOverlay -Value Remove\r
+        Set-Microsoft.XboxIdentityProvider -Value Remove\r
+        Set-Microsoft.XboxSpeechToTextOverlay -Value Remove\r
+        Set-Microsoft.YourPhone -Value Remove\r
+        Set-Microsoft.ZuneMusic -Value Remove\r
+        Set-Microsoft.ZuneVideo -Value Remove\r
+        Set-MicrosoftCortana -Value Remove\r
+\r
+        Write-Host "Appx Packages removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Appx Packages."\r
+        \r
+        Set-Microsoft.BingWeather -Value PermanentlyRemove\r
+        Set-Microsoft.DesktopAppInstaller -Value PermanentlyRemove\r
+        Set-Microsoft.GetHelp -Value PermanentlyRemove\r
+        Set-Microsoft.Getstarted -Value PermanentlyRemove\r
+        #Set-Microsoft.HEIFImageExtension -Value PermanentlyRemove\r
+        Set-Microsoft.Messaging -Value PermanentlyRemove\r
+        Set-Microsoft.Microsoft3DViewer -Value PermanentlyRemove\r
+        Set-Microsoft.MicrosoftOfficeHub -Value PermanentlyRemove\r
+        Set-Microsoft.MicrosoftSolitaireCollection -Value PermanentlyRemove\r
+        Set-Microsoft.MicrosoftStickyNotes -Value PermanentlyRemove\r
+        Set-Microsoft.MixedReality.Portal -Value PermanentlyRemove\r
+        Set-Microsoft.MSPaint -Value PermanentlyRemove\r
+        Set-Microsoft.Office.OneNote -Value PermanentlyRemove\r
+        Set-Microsoft.OneConnect -Value PermanentlyRemove\r
+        Set-Microsoft.People -Value PermanentlyRemove\r
+        Set-Microsoft.Print3D -Value PermanentlyRemove\r
+        Set-Microsoft.ScreenSketch -Value PermanentlyRemove\r
+        Set-Microsoft.SkypeApp -Value PermanentlyRemove\r
+        Set-Microsoft.StorePurchaseApp -Value PermanentlyRemove\r
+        #Set-Microsoft.VP9VideoExtensions -Value PermanentlyRemove\r
+        Set-Microsoft.Wallet -Value PermanentlyRemove\r
+        #Set-Microsoft.WebMediaExtensions -Value PermanentlyRemove\r
+        #Set-Microsoft.WebpImageExtension -Value PermanentlyRemove\r
+        Set-Microsoft.Windows.Photos -Value PermanentlyRemove\r
+        Set-Microsoft.WindowsAlarms -Value PermanentlyRemove\r
+        Set-Microsoft.WindowsCalculator -Value PermanentlyRemove\r
+        Set-Microsoft.WindowsCamera -Value PermanentlyRemove\r
+        Set-microsoft.windowscommunicationsapps -Value PermanentlyRemove\r
+        Set-Microsoft.WindowsFeedbackHub -Value PermanentlyRemove\r
+        Set-Microsoft.WindowsMaps -Value PermanentlyRemove\r
+        Set-Microsoft.WindowsSoundRecorder -Value PermanentlyRemove\r
+        Set-Microsoft.WindowsStore -Value PermanentlyRemove\r
+        Set-Microsoft.Xbox.TCUI -Value PermanentlyRemove\r
+        Set-Microsoft.XboxApp -Value PermanentlyRemove\r
+        Set-Microsoft.XboxGameOverlay -Value PermanentlyRemove\r
+        Set-Microsoft.XboxGamingOverlay -Value PermanentlyRemove\r
+        Set-Microsoft.XboxIdentityProvider -Value PermanentlyRemove\r
+        Set-Microsoft.XboxSpeechToTextOverlay -Value PermanentlyRemove\r
+        Set-Microsoft.YourPhone -Value PermanentlyRemove\r
+        Set-Microsoft.ZuneMusic -Value PermanentlyRemove\r
+        Set-Microsoft.ZuneVideo -Value PermanentlyRemove\r
+        Set-MicrosoftCortana -Value PermanentlyRemove\r
+\r
+        Write-Host "Appx Packages permanently removed."\r
+        Write-Host ""\r
+    }\r
+    \r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Appx Packages."\r
+\r
+        Set-Microsoft.BingWeather -Value Restore\r
+        Set-Microsoft.DesktopAppInstaller -Value Restore\r
+        Set-Microsoft.GetHelp -Value Restore\r
+        Set-Microsoft.Getstarted -Value Restore\r
+        #Set-Microsoft.HEIFImageExtension -Value Restore\r
+        Set-Microsoft.Messaging -Value Restore\r
+        Set-Microsoft.Microsoft3DViewer -Value Restore\r
+        Set-Microsoft.MicrosoftOfficeHub -Value Restore\r
+        Set-Microsoft.MicrosoftSolitaireCollection -Value Restore\r
+        Set-Microsoft.MicrosoftStickyNotes -Value Restore\r
+        Set-Microsoft.MixedReality.Portal -Value Restore\r
+        Set-Microsoft.MSPaint -Value Restore\r
+        Set-Microsoft.Office.OneNote -Value Restore\r
+        Set-Microsoft.OneConnect -Value Restore\r
+        Set-Microsoft.People -Value Restore\r
+        Set-Microsoft.Print3D -Value Restore\r
+        Set-Microsoft.ScreenSketch -Value Restore\r
+        Set-Microsoft.SkypeApp -Value Restore\r
+        Set-Microsoft.StorePurchaseApp -Value Restore\r
+        #Set-Microsoft.VP9VideoExtensions -Value Restore\r
+        Set-Microsoft.Wallet -Value Restore\r
+        #Set-Microsoft.WebMediaExtensions -Value Restore\r
+        #Set-Microsoft.WebpImageExtension -Value Restore\r
+        Set-Microsoft.Windows.Photos -Value Restore\r
+        Set-Microsoft.WindowsAlarms -Value Restore\r
+        Set-Microsoft.WindowsCalculator -Value Restore\r
+        Set-Microsoft.WindowsCamera -Value Restore\r
+        Set-microsoft.windowscommunicationsapps -Value Restore\r
+        Set-Microsoft.WindowsFeedbackHub -Value Restore\r
+        Set-Microsoft.WindowsMaps -Value Restore\r
+        Set-Microsoft.WindowsSoundRecorder -Value Restore\r
+        Set-Microsoft.WindowsStore -Value Restore\r
+        Set-Microsoft.Xbox.TCUI -Value Restore\r
+        Set-Microsoft.XboxApp -Value Restore\r
+        Set-Microsoft.XboxGameOverlay -Value Restore\r
+        Set-Microsoft.XboxGamingOverlay -Value Restore\r
+        Set-Microsoft.XboxIdentityProvider -Value Restore\r
+        Set-Microsoft.XboxSpeechToTextOverlay -Value Restore\r
+        Set-Microsoft.YourPhone -Value Restore\r
+        Set-Microsoft.ZuneMusic -Value Restore\r
+        Set-Microsoft.ZuneVideo -Value Restore\r
+        Set-MicrosoftCortana -Value Restore\r
+\r
+        Write-Host "Appx Packages restored."\r
+        Write-Host ""\r
+    }      \r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove' and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-BrowserAdobeFlash.ps1 b/Development_Files/Application_Settings/Set-BrowserAdobeFlash.ps1
new file mode 100755 (executable)
index 0000000..1e49933
--- /dev/null
@@ -0,0 +1,42 @@
+Function Set-BrowserAdobeFlash\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling built-in Adobe Flash in Internet Explorer and Edge."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Internet Explorer" -Name "DisableFlashInIE" -ErrorAction SilentlyContinue\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\Addons" -Name "FlashPlayerEnabled" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Built-in Adobe Flash in Internet Explorer and Edge enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling built-in Adobe Flash in Internet Explorer and Edge."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Internet Explorer"))\r
+        {\r
+               New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Internet Explorer" -Force | Out-Null\r
+        }\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Internet Explorer" -Name "DisableFlashInIE" -Type DWord -Value 1\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\Addons"))\r
+        {\r
+               New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\Addons" -Force | Out-Null\r
+        }\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\Addons" -Name "FlashPlayerEnabled" -Type DWord -Value 0\r
+\r
+        Write-Host "Built-in Adobe Flash in Internet Explorer and Edge disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Application_Settings/Set-DefaultFaxPrinter.ps1 b/Development_Files/Application_Settings/Set-DefaultFaxPrinter.ps1
new file mode 100755 (executable)
index 0000000..296229f
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-DefaultFaxPrinter\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Add")\r
+    {\r
+        Write-Host "Adding default fax printer."\r
+\r
+        Add-Printer -Name "Fax" -DriverName "Microsoft Shared Fax Driver" -PortName "SHRFAX:" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Default fax printer added."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing default fax printer."\r
+\r
+        Remove-Printer -Name "Fax" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Default fax printer removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Add' and 'Remove'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-HyperV.ps1 b/Development_Files/Application_Settings/Set-HyperV.ps1
new file mode 100755 (executable)
index 0000000..a50d2ff
--- /dev/null
@@ -0,0 +1,45 @@
+Function Set-HyperV\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Install")\r
+    {\r
+        Write-Host "Installing Hyper-V."\r
+\r
+        If ((Get-WmiObject -Class "Win32_OperatingSystem").Caption -like "*Server*")
+        {
+               Install-WindowsFeature -Name "Hyper-V" -IncludeManagementTools -WarningAction SilentlyContinue
+        }
+
+        Else
+        {
+               Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-All" -NoRestart -WarningAction SilentlyContinue
+        }\r
+        \r
+        Write-Host "Hyper-V installed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Uninstall")\r
+    {\r
+        Write-Host "Uninstalling Hyper-V."\r
+\r
+        If ((Get-WmiObject -Class "Win32_OperatingSystem").Caption -like "*Server*")
+        {
+               Uninstall-WindowsFeature -Name "Hyper-V" -IncludeManagementTools -WarningAction SilentlyContinue
+        }
+
+        Else
+        {
+               Disable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-All" -NoRestart -WarningAction SilentlyContinue
+        }\r
+        \r
+        Write-Host "Hyper-V uninstalled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Install' and 'Uninstall'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-InternetExplorer.ps1 b/Development_Files/Application_Settings/Set-InternetExplorer.ps1
new file mode 100755 (executable)
index 0000000..81b1c5f
--- /dev/null
@@ -0,0 +1,43 @@
+Function Set-InternetExplorer\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Internet Explorer."\r
+\r
+        Enable-WindowsOptionalFeature -Online -FeatureName "Internet-Explorer-Optional-$env:PROCESSOR_ARCHITECTURE" -NoRestart -WarningAction SilentlyContinue\r
+\r
+        Write-Host "Internet Explorer enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Internet Explorer."\r
+\r
+        Disable-WindowsOptionalFeature -Online -FeatureName "Internet-Explorer-Optional-$env:PROCESSOR_ARCHITECTURE" -NoRestart -WarningAction SilentlyContinue\r
+\r
+        Write-Host "Internet Explorer disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Remove Internet Explorer."\r
+\r
+        $ControlLevel = ":F"\r
+        takeown /f "C:\Program Files (x86)\Internet Explorer" /a /r\r
+        icacls "C:\Program Files (x86)\Internet Explorer" /grant $env:USERNAME$ControlLevel /T\r
+\r
+        Remove-Item -Path "C:\Program Files (x86)\Internet Explorer" -Recurse -Force\r
+\r
+        Write-Host "Internet Explorer removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable', 'Disable', and 'Remove'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-LinuxSubsystem.ps1 b/Development_Files/Application_Settings/Set-LinuxSubsystem.ps1
new file mode 100755 (executable)
index 0000000..47bb241
--- /dev/null
@@ -0,0 +1,42 @@
+Function Set-LinuxSubsystem\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Linux Subsystem."\r
+\r
+        If ([System.Environment]::OSVersion.Version.Build -eq 14393)
+        {
+               # 1607 needs developer mode to be enabled
+               Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -Name "AllowDevelopmentWithoutDevLicense" -Type DWord -Value 1
+               Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -Name "AllowAllTrustedApps" -Type DWord -Value 1
+        }
+\r
+        Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Windows-Subsystem-Linux" -NoRestart -WarningAction SilentlyContinue\r
+        \r
+        Write-Host "Linux Subsystem enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Linux Subsystem."\r
+\r
+        If ([System.Environment]::OSVersion.Version.Build -eq 14393)
+        {
+               Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -Name "AllowDevelopmentWithoutDevLicense" -Type DWord -Value 0
+               Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -Name "AllowAllTrustedApps" -Type DWord -Value 0
+        }
+\r
+        Disable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Windows-Subsystem-Linux" -NoRestart -WarningAction SilentlyContinue\r
+        \r
+        Write-Host "Linux Subsystem disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.BingWeather.ps1 b/Development_Files/Application_Settings/Set-Microsoft.BingWeather.ps1
new file mode 100755 (executable)
index 0000000..564eb09
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.BingWeather\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.BingWeather."\r
+\r
+        Get-AppxPackage Microsoft.BingWeather | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.BingWeather removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.BingWeather."\r
+\r
+        Get-AppxPackage Microsoft.BingWeather | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.BingWeather*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.BingWeather permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.BingWeather."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.BingWeather | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.BingWeather restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.DesktopAppInstaller.ps1 b/Development_Files/Application_Settings/Set-Microsoft.DesktopAppInstaller.ps1
new file mode 100755 (executable)
index 0000000..d551ffb
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.DesktopAppInstaller\r
+{\r
+   Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.DesktopAppInstaller."\r
+\r
+        Get-AppxPackage Microsoft.DesktopAppInstaller | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.DesktopAppInstaller removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.DesktopAppInstaller."\r
+\r
+        Get-AppxPackage Microsoft.DesktopAppInstaller | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.DesktopAppInstaller*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.DesktopAppInstaller permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.DesktopAppInstaller."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.DesktopAppInstaller | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.DesktopAppInstaller restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.GetHelp.ps1 b/Development_Files/Application_Settings/Set-Microsoft.GetHelp.ps1
new file mode 100755 (executable)
index 0000000..3dd9e26
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.GetHelp\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.GetHelp."\r
+\r
+        Get-AppxPackage Microsoft.GetHelp | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.GetHelp removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.GetHelp."\r
+\r
+        Get-AppxPackage Microsoft.GetHelp | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.GetHelp*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.GetHelp permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.GetHelp."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.GetHelp | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.GetHelp restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.Getstarted.ps1 b/Development_Files/Application_Settings/Set-Microsoft.Getstarted.ps1
new file mode 100755 (executable)
index 0000000..746178a
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.Getstarted\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.Getstarted."\r
+\r
+        Get-AppxPackage Microsoft.Getstarted | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.Getstarted removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.Getstarted."\r
+\r
+        Get-AppxPackage Microsoft.Getstarted | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Getstarted*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.Getstarted permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.Getstarted."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.Getstarted | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.Getstarted restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.HEIFImageExtension.ps1 b/Development_Files/Application_Settings/Set-Microsoft.HEIFImageExtension.ps1
new file mode 100755 (executable)
index 0000000..f0c475d
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.HEIFImageExtension\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.HEIFImageExtension."\r
+\r
+        Get-AppxPackage Microsoft.HEIFImageExtension | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.HEIFImageExtension removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.HEIFImageExtension."\r
+\r
+        Get-AppxPackage Microsoft.HEIFImageExtension | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.HEIFImageExtension*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.HEIFImageExtension permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.HEIFImageExtension."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.HEIFImageExtension | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.HEIFImageExtension restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.MSPaint.ps1 b/Development_Files/Application_Settings/Set-Microsoft.MSPaint.ps1
new file mode 100755 (executable)
index 0000000..1142bef
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.MSPaint\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.MSPaint."\r
+\r
+        Get-AppxPackage Microsoft.MSPaint | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.MSPaint removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.MSPaint."\r
+\r
+        Get-AppxPackage Microsoft.MSPaint | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.MSPaint*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.MSPaint permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.MSPaint."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.MSPaint | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.MSPaint restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.Messaging.ps1 b/Development_Files/Application_Settings/Set-Microsoft.Messaging.ps1
new file mode 100755 (executable)
index 0000000..0831ea4
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.Messaging\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.Messaging."\r
+\r
+        Get-AppxPackage Microsoft.Messaging | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.Messaging removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.Messaging."\r
+\r
+        Get-AppxPackage Microsoft.Messaging | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Messaging*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.Messaging permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.Messaging."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.Messaging | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.Messaging restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.Microsoft3DViewer.ps1 b/Development_Files/Application_Settings/Set-Microsoft.Microsoft3DViewer.ps1
new file mode 100755 (executable)
index 0000000..5d4af7f
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.Microsoft3DViewer\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.Microsoft3DViewer."\r
+\r
+        Get-AppxPackage Microsoft.Microsoft3DViewer | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.Microsoft3DViewer removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.Microsoft3DViewer."\r
+\r
+        Get-AppxPackage Microsoft.Microsoft3DViewer | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Microsoft3DViewer*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.Microsoft3DViewer permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.Microsoft3DViewer."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.Microsoft3DViewer | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.Microsoft3DViewer restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.MicrosoftOfficeHub.ps1 b/Development_Files/Application_Settings/Set-Microsoft.MicrosoftOfficeHub.ps1
new file mode 100755 (executable)
index 0000000..fbd939b
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.MicrosoftOfficeHub\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.MicrosoftOfficeHub."\r
+\r
+        Get-AppxPackage Microsoft.MicrosoftOfficeHub | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.MicrosoftOfficeHub removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.MicrosoftOfficeHub."\r
+\r
+        Get-AppxPackage Microsoft.MicrosoftOfficeHub | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.MicrosoftOfficeHub*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.MicrosoftOfficeHub permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.MicrosoftOfficeHub."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.MicrosoftOfficeHub | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.MicrosoftOfficeHub restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.MicrosoftSolitaireCollection.ps1 b/Development_Files/Application_Settings/Set-Microsoft.MicrosoftSolitaireCollection.ps1
new file mode 100755 (executable)
index 0000000..5a7005f
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.MicrosoftSolitaireCollection\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.MicrosoftSolitaireCollection."\r
+\r
+        Get-AppxPackage Microsoft.MicrosoftSolitaireCollection | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.MicrosoftSolitaireCollection removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.MicrosoftSolitaireCollection."\r
+\r
+        Get-AppxPackage Microsoft.MicrosoftSolitaireCollection | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.MicrosoftSolitaireCollection*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.MicrosoftSolitaireCollection permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.MicrosoftSolitaireCollection."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.MicrosoftSolitaireCollection | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.MicrosoftSolitaireCollection restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.MicrosoftStickyNotes.ps1 b/Development_Files/Application_Settings/Set-Microsoft.MicrosoftStickyNotes.ps1
new file mode 100755 (executable)
index 0000000..b0161c0
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.MicrosoftStickyNotes\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.MicrosoftStickyNotes."\r
+\r
+        Get-AppxPackage Microsoft.MicrosoftStickyNotes | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.MicrosoftStickyNotes removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.MicrosoftStickyNotes."\r
+\r
+        Get-AppxPackage Microsoft.MicrosoftStickyNotes | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.MicrosoftStickyNotes*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.MicrosoftStickyNotes permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.MicrosoftStickyNotes."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.MicrosoftStickyNotes | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.MicrosoftStickyNotes restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.MixedReality.Portal.ps1 b/Development_Files/Application_Settings/Set-Microsoft.MixedReality.Portal.ps1
new file mode 100755 (executable)
index 0000000..b844508
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.MixedReality.Portal\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.MixedReality.Portal."\r
+\r
+        Get-AppxPackage Microsoft.MixedReality.Portal | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.MixedReality.Portal removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.MixedReality.Portal."\r
+\r
+        Get-AppxPackage Microsoft.MixedReality.Portal | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.MixedReality.Portal*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.MixedReality.Portal permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.MixedReality.Portal."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.MixedReality.Portal | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.MixedReality.Portal restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.Office.OneNote.ps1 b/Development_Files/Application_Settings/Set-Microsoft.Office.OneNote.ps1
new file mode 100755 (executable)
index 0000000..cfcc3ad
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.Office.OneNote\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.Office.OneNote."\r
+\r
+        Get-AppxPackage Microsoft.Office.OneNote | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.Office.OneNote removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.Office.OneNote."\r
+\r
+        Get-AppxPackage Microsoft.Office.OneNote | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Office.OneNote*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.Office.OneNote permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.Office.OneNote."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.Office.OneNote | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.Office.OneNote restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.OneConnect.ps1 b/Development_Files/Application_Settings/Set-Microsoft.OneConnect.ps1
new file mode 100755 (executable)
index 0000000..e9ee1e8
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.OneConnect\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.OneConnect."\r
+\r
+        Get-AppxPackage Microsoft.OneConnect | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.OneConnect removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.OneConnect."\r
+\r
+        Get-AppxPackage Microsoft.OneConnect | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.OneConnect*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.OneConnect permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.OneConnect."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.OneConnect | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.OneConnect restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.People.ps1 b/Development_Files/Application_Settings/Set-Microsoft.People.ps1
new file mode 100755 (executable)
index 0000000..7b30c7a
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.People\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.People."\r
+\r
+        Get-AppxPackage Microsoft.People | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.People removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.People."\r
+\r
+        Get-AppxPackage Microsoft.People | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.People*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.People permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.People."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.People | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.People restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.Print3D.ps1 b/Development_Files/Application_Settings/Set-Microsoft.Print3D.ps1
new file mode 100755 (executable)
index 0000000..3aeac41
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.Print3D\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.Print3D."\r
+\r
+        Get-AppxPackage Microsoft.Print3D | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.Print3D removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.Print3D."\r
+\r
+        Get-AppxPackage Microsoft.Print3D | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Print3D*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.Print3D permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.Print3D."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.Print3D | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.Print3D restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.ScreenSketch.ps1 b/Development_Files/Application_Settings/Set-Microsoft.ScreenSketch.ps1
new file mode 100755 (executable)
index 0000000..721ca80
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.ScreenSketch\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.ScreenSketch."\r
+\r
+        Get-AppxPackage Microsoft.ScreenSketch | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.ScreenSketch removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.ScreenSketch."\r
+\r
+        Get-AppxPackage Microsoft.ScreenSketch | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.ScreenSketch*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.ScreenSketch permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.ScreenSketch."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.ScreenSketch | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.ScreenSketch restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.SkypeApp.ps1 b/Development_Files/Application_Settings/Set-Microsoft.SkypeApp.ps1
new file mode 100755 (executable)
index 0000000..9c957ae
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.SkypeApp\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.SkypeApp."\r
+\r
+        Get-AppxPackage Microsoft.SkypeApp | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.SkypeApp removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.SkypeApp."\r
+\r
+        Get-AppxPackage Microsoft.SkypeApp | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.SkypeApp*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.SkypeApp permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.SkypeApp."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.SkypeApp | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.SkypeApp restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.StorePurchaseApp.ps1 b/Development_Files/Application_Settings/Set-Microsoft.StorePurchaseApp.ps1
new file mode 100755 (executable)
index 0000000..9920e17
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.StorePurchaseApp\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.StorePurchaseApp."\r
+\r
+        Get-AppxPackage Microsoft.StorePurchaseApp | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.StorePurchaseApp removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.StorePurchaseApp."\r
+\r
+        Get-AppxPackage Microsoft.StorePurchaseApp | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.StorePurchaseApp*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.StorePurchaseApp permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.StorePurchaseApp."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.StorePurchaseApp | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.StorePurchaseApp restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.VP9VideoExtensions.ps1 b/Development_Files/Application_Settings/Set-Microsoft.VP9VideoExtensions.ps1
new file mode 100755 (executable)
index 0000000..034b17e
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.VP9VideoExtensions\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.VP9VideoExtensions."\r
+\r
+        Get-AppxPackage Microsoft.VP9VideoExtensions | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.VP9VideoExtensions removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.VP9VideoExtensions."\r
+\r
+        Get-AppxPackage Microsoft.VP9VideoExtensions | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.VP9VideoExtensions*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.VP9VideoExtensions permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.VP9VideoExtensions."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.VP9VideoExtensions | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.VP9VideoExtensions restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.Wallet.ps1 b/Development_Files/Application_Settings/Set-Microsoft.Wallet.ps1
new file mode 100755 (executable)
index 0000000..b3ea9ef
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.Wallet\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.Wallet."\r
+\r
+        Get-AppxPackage Microsoft.Wallet | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.Wallet removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.Wallet."\r
+\r
+        Get-AppxPackage Microsoft.Wallet | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Wallet*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.Wallet permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.Wallet."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.Wallet | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.Wallet restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.WebMediaExtensions.ps1 b/Development_Files/Application_Settings/Set-Microsoft.WebMediaExtensions.ps1
new file mode 100755 (executable)
index 0000000..b092358
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.WebMediaExtensions\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.WebMediaExtensions."\r
+\r
+        Get-AppxPackage Microsoft.WebMediaExtensions | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.WebMediaExtensions removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.WebMediaExtensions."\r
+\r
+        Get-AppxPackage Microsoft.WebMediaExtensions | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WebMediaExtensions*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.WebMediaExtensions permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.WebMediaExtensions."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.WebMediaExtensions | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.WebMediaExtensions restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.WebpImageExtension.ps1 b/Development_Files/Application_Settings/Set-Microsoft.WebpImageExtension.ps1
new file mode 100755 (executable)
index 0000000..9fd2d46
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.WebpImageExtension\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.WebpImageExtension."\r
+\r
+        Get-AppxPackage Microsoft.WebpImageExtension | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.WebpImageExtension removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.WebpImageExtension."\r
+\r
+        Get-AppxPackage Microsoft.WebpImageExtension | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WebpImageExtension*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.WebpImageExtension permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.WebpImageExtension."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.WebpImageExtension | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.WebpImageExtension restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.Windows.Photos.ps1 b/Development_Files/Application_Settings/Set-Microsoft.Windows.Photos.ps1
new file mode 100755 (executable)
index 0000000..79e5734
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.Windows.Photos\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.Windows.Photos."\r
+\r
+        Get-AppxPackage Microsoft.Windows.Photos | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.Windows.Photos removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.Windows.Photos."\r
+\r
+        Get-AppxPackage Microsoft.Windows.Photos | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Windows.Photos*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.Windows.Photos permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.Windows.Photos."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.Windows.Photos | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.Windows.Photos restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.WindowsAlarms.ps1 b/Development_Files/Application_Settings/Set-Microsoft.WindowsAlarms.ps1
new file mode 100755 (executable)
index 0000000..73b3288
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.WindowsAlarms\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.WindowsAlarms."\r
+\r
+        Get-AppxPackage Microsoft.WindowsAlarms | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.WindowsAlarms removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.WindowsAlarms."\r
+\r
+        Get-AppxPackage Microsoft.WindowsAlarms | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WindowsAlarms*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.WindowsAlarms permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.WindowsAlarms."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.WindowsAlarms | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.WindowsAlarms restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.WindowsCalculator.ps1 b/Development_Files/Application_Settings/Set-Microsoft.WindowsCalculator.ps1
new file mode 100755 (executable)
index 0000000..379afd1
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.WindowsCalculator\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.WindowsCalculator."\r
+\r
+        Get-AppxPackage Microsoft.WindowsCalculator | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.WindowsCalculator removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.WindowsCalculator."\r
+\r
+        Get-AppxPackage Microsoft.WindowsCalculator | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WindowsCalculator*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.WindowsCalculator permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.WindowsCalculator."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.WindowsCalculator | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.WindowsCalculator restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.WindowsCamera.ps1 b/Development_Files/Application_Settings/Set-Microsoft.WindowsCamera.ps1
new file mode 100755 (executable)
index 0000000..17141c8
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.WindowsCamera\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.WindowsCamera."\r
+\r
+        Get-AppxPackage Microsoft.WindowsCamera | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.WindowsCamera removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.WindowsCamera."\r
+\r
+        Get-AppxPackage Microsoft.WindowsCamera | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WindowsCamera*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.WindowsCamera permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.WindowsCamera."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.WindowsCamera | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.WindowsCamera restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.WindowsFeedbackHub.ps1 b/Development_Files/Application_Settings/Set-Microsoft.WindowsFeedbackHub.ps1
new file mode 100755 (executable)
index 0000000..a5ee3b3
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.WindowsFeedbackHub\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.WindowsFeedbackHub."\r
+\r
+        Get-AppxPackage Microsoft.WindowsFeedbackHub | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.WindowsFeedbackHub removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.WindowsFeedbackHub."\r
+\r
+        Get-AppxPackage Microsoft.WindowsFeedbackHub | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WindowsFeedbackHub*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.WindowsFeedbackHub permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.WindowsFeedbackHub."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.WindowsFeedbackHub | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.WindowsFeedbackHub restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.WindowsMaps.ps1 b/Development_Files/Application_Settings/Set-Microsoft.WindowsMaps.ps1
new file mode 100755 (executable)
index 0000000..48f4287
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.WindowsMaps\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.WindowsMaps."\r
+\r
+        Get-AppxPackage Microsoft.WindowsMaps | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.WindowsMaps removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.WindowsMaps."\r
+\r
+        Get-AppxPackage Microsoft.WindowsMaps | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WindowsMaps*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.WindowsMaps permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.WindowsMaps."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.WindowsMaps | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.WindowsMaps restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.WindowsSoundRecorder.ps1 b/Development_Files/Application_Settings/Set-Microsoft.WindowsSoundRecorder.ps1
new file mode 100755 (executable)
index 0000000..8d7ea11
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.WindowsSoundRecorder\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.WindowsSoundRecorder."\r
+\r
+        Get-AppxPackage Microsoft.WindowsSoundRecorder | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.WindowsSoundRecorder removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.WindowsSoundRecorder."\r
+\r
+        Get-AppxPackage Microsoft.WindowsSoundRecorder | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WindowsSoundRecorder*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.WindowsSoundRecorder permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.WindowsSoundRecorder."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.WindowsSoundRecorder | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.WindowsSoundRecorder restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.WindowsStore.ps1 b/Development_Files/Application_Settings/Set-Microsoft.WindowsStore.ps1
new file mode 100755 (executable)
index 0000000..ffee11e
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.WindowsStore\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.WindowsStore."\r
+\r
+        Get-AppxPackage Microsoft.WindowsStore | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.WindowsStore removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.WindowsStore."\r
+\r
+        Get-AppxPackage Microsoft.WindowsStore | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WindowsStore*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.WindowsStore permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.WindowsStore."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.WindowsStore | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.WindowsStore restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.Xbox.TCUI.ps1 b/Development_Files/Application_Settings/Set-Microsoft.Xbox.TCUI.ps1
new file mode 100755 (executable)
index 0000000..b7c8a39
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.Xbox.TCUI\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.Xbox.TCUI."\r
+\r
+        Get-AppxPackage Microsoft.Xbox.TCUI | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.Xbox.TCUI removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.Xbox.TCUI."\r
+\r
+        Get-AppxPackage Microsoft.Xbox.TCUI | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Xbox.TCUI*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.Xbox.TCUI permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.Xbox.TCUI."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.Xbox.TCUI | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.Xbox.TCUI restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.XboxApp.ps1 b/Development_Files/Application_Settings/Set-Microsoft.XboxApp.ps1
new file mode 100755 (executable)
index 0000000..5b70cff
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.XboxApp\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.XboxApp."\r
+\r
+        Get-AppxPackage Microsoft.XboxApp | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.XboxApp removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.XboxApp."\r
+\r
+        Get-AppxPackage Microsoft.XboxApp | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.XboxApp*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.XboxApp permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.XboxApp."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.XboxApp | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.XboxApp restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.XboxGameOverlay.ps1 b/Development_Files/Application_Settings/Set-Microsoft.XboxGameOverlay.ps1
new file mode 100755 (executable)
index 0000000..86f24ec
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.XboxGameOverlay\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.XboxGameOverlay."\r
+\r
+        Get-AppxPackage Microsoft.XboxGameOverlay | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.XboxGameOverlay removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.XboxGameOverlay."\r
+\r
+        Get-AppxPackage Microsoft.XboxGameOverlay | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.XboxGameOverlay*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.XboxGameOverlay permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.XboxGameOverlay."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.XboxGameOverlay | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.XboxGameOverlay restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.XboxGamingOverlay.ps1 b/Development_Files/Application_Settings/Set-Microsoft.XboxGamingOverlay.ps1
new file mode 100755 (executable)
index 0000000..78429b2
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.XboxGamingOverlay\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.XboxGamingOverlay."\r
+\r
+        Get-AppxPackage Microsoft.XboxGamingOverlay | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.XboxGamingOverlay removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.XboxGamingOverlay."\r
+\r
+        Get-AppxPackage Microsoft.XboxGamingOverlay | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.XboxGamingOverlay*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.XboxGamingOverlay permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.XboxGamingOverlay."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.XboxGamingOverlay | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.XboxGamingOverlay restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.XboxIdentityProvider.ps1 b/Development_Files/Application_Settings/Set-Microsoft.XboxIdentityProvider.ps1
new file mode 100755 (executable)
index 0000000..2f6d3c9
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.XboxIdentityProvider\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.XboxIdentityProvider."\r
+\r
+        Get-AppxPackage Microsoft.XboxIdentityProvider | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.XboxIdentityProvider removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.XboxIdentityProvider."\r
+\r
+        Get-AppxPackage Microsoft.XboxIdentityProvider | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.XboxIdentityProvider*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.XboxIdentityProvider permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.XboxIdentityProvider."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.XboxIdentityProvider | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.XboxIdentityProvider restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.XboxSpeechToTextOverlay.ps1 b/Development_Files/Application_Settings/Set-Microsoft.XboxSpeechToTextOverlay.ps1
new file mode 100755 (executable)
index 0000000..a89eaca
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.XboxSpeechToTextOverlay\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.XboxSpeechToTextOverlay."\r
+\r
+        Get-AppxPackage Microsoft.XboxSpeechToTextOverlay | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.XboxSpeechToTextOverlay removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.XboxSpeechToTextOverlay."\r
+\r
+        Get-AppxPackage Microsoft.XboxSpeechToTextOverlay | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.XboxSpeechToTextOverlay*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.XboxSpeechToTextOverlay permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.XboxSpeechToTextOverlay."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.XboxSpeechToTextOverlay | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.XboxSpeechToTextOverlay restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.YourPhone.ps1 b/Development_Files/Application_Settings/Set-Microsoft.YourPhone.ps1
new file mode 100755 (executable)
index 0000000..e74953b
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.YourPhone\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.YourPhone."\r
+\r
+        Get-AppxPackage Microsoft.YourPhone | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.YourPhone removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.YourPhone."\r
+\r
+        Get-AppxPackage Microsoft.YourPhone | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.YourPhone*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.YourPhone permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.YourPhone."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.YourPhone | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.YourPhone restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.ZuneMusic.ps1 b/Development_Files/Application_Settings/Set-Microsoft.ZuneMusic.ps1
new file mode 100755 (executable)
index 0000000..3e2bd6b
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.ZuneMusic\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.ZuneMusic."\r
+\r
+        Get-AppxPackage Microsoft.ZuneMusic | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.ZuneMusic removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.ZuneMusic."\r
+\r
+        Get-AppxPackage Microsoft.ZuneMusic | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.ZuneMusic*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.ZuneMusic permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.ZuneMusic."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.ZuneMusic | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.ZuneMusic restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft.ZuneVideo.ps1 b/Development_Files/Application_Settings/Set-Microsoft.ZuneVideo.ps1
new file mode 100755 (executable)
index 0000000..cd9036c
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Microsoft.ZuneVideo\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.ZuneVideo."\r
+\r
+        Get-AppxPackage Microsoft.ZuneVideo | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.ZuneVideo removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.ZuneVideo."\r
+\r
+        Get-AppxPackage Microsoft.ZuneVideo | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.ZuneVideo*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.ZuneVideo permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.ZuneVideo."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.ZuneVideo | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.ZuneVideo restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-MicrosoftCortana.ps1 b/Development_Files/Application_Settings/Set-MicrosoftCortana.ps1
new file mode 100755 (executable)
index 0000000..a7fdf4c
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-MicrosoftCortana\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft.549981C3F5F10 (Cortana)."\r
+\r
+        Get-AppxPackage Microsoft.549981C3F5F10 | Remove-AppxPackage\r
+\r
+        Write-Host "Microsoft.549981C3F5F10 (Cortana) removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing Microsoft.549981C3F5F10 (Cortana)."\r
+\r
+        Get-AppxPackage Microsoft.549981C3F5F10 | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.549981C3F5F10*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "Microsoft.549981C3F5F10 (Cortana) permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring Microsoft.549981C3F5F10 (Cortana)."\r
+\r
+        Get-AppxPackage -AllUsers Microsoft.549981C3F5F10 | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Microsoft.549981C3F5F10 (Cortana) restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-MicrosoftEdge.ps1 b/Development_Files/Application_Settings/Set-MicrosoftEdge.ps1
new file mode 100755 (executable)
index 0000000..97b7126
--- /dev/null
@@ -0,0 +1,24 @@
+Function Set-MicrosoftEdge\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing Microsoft Edge."\r
+\r
+        Stop-Process -Name msedge -ErrorAction SilentlyContinue -Force\r
+        Stop-Process -Name MicrosoftEdgeUpdate -Force -ErrorAction SilentlyContinue\r
+        \r
+        Start-Sleep -Seconds 5\r
+        \r
+        Remove-Item -Path "C:\Program Files (x86)\Microsoft\*Edge*" -Recurse -Force\r
+                \r
+        Write-Host "Microsoft Edge removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  The only valid value is 'Remove'."\r
+    }\r
+}\r
diff --git a/Development_Files/Application_Settings/Set-MicrosoftEdgeLegacy.ps1 b/Development_Files/Application_Settings/Set-MicrosoftEdgeLegacy.ps1
new file mode 100755 (executable)
index 0000000..7e6d8c7
--- /dev/null
@@ -0,0 +1,62 @@
+Function Set-MicrosoftEdgeLegacy\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling legacy Microsoft Edge."\r
+\r
+        Rename-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe.disabled" -NewName "Microsoft.MicrosoftEdge_8wekyb3d8bbwe"\r
+        Rename-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdgeDevToolsClient_8wekyb3d8bbwe.disabled" -NewName "Microsoft.MicrosoftEdgeDevToolsClient_8wekyb3d8bbwe"\r
+\r
+        Write-Host "Legacy Microsoft Edge enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling legacy Microsoft Edge."\r
+\r
+        Stop-Process -Name MicrosoftEdge -ErrorAction SilentlyContinue\r
+        Stop-Process -Name MicrosoftEdgeCP -ErrorAction SilentlyContinue\r
+        Stop-Process -Name MicrosoftEdgeSH -ErrorAction SilentlyContinue\r
+\r
+        Start-Sleep -Seconds 5\r
+        Rename-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe" -NewName "Microsoft.MicrosoftEdge_8wekyb3d8bbwe.disabled"\r
+        Rename-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdgeDevToolsClient_8wekyb3d8bbwe" -NewName "Microsoft.MicrosoftEdgeDevToolsClient_8wekyb3d8bbwe.disabled"\r
+        \r
+        Write-Host "Legacy Microsoft Edge disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing legacy Microsoft Edge."\r
+\r
+        Stop-Process -Name MicrosoftEdge -ErrorAction SilentlyContinue\r
+        Stop-Process -Name MicrosoftEdgeCP -ErrorAction SilentlyContinue\r
+        Stop-Process -Name MicrosoftEdgeSH -ErrorAction SilentlyContinue\r
+\r
+        Start-Sleep -Seconds 5\r
+\r
+        If (Test-Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe")\r
+        {\r
+            Remove-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe" -Recurse -Force\r
+            Remove-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdgeDevToolsClient_8wekyb3d8bbwe" -Recurse -Force\r
+        }\r
+        \r
+        Else\r
+        {\r
+            Remove-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe.disabled" -Recurse -Force\r
+            Remove-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdgeDevToolsClient_8wekyb3d8bbwe.disabled" -Recurse -Force\r
+        }\r
+\r
+        Write-Host "Legacy Microsoft Edge removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable', 'Disable', and 'Remove'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft_PDF_Printer.ps1 b/Development_Files/Application_Settings/Set-Microsoft_PDF_Printer.ps1
new file mode 100755 (executable)
index 0000000..37a3690
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-Microsoft_PDF_Printer\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Microsoft P.D.F. Printer."\r
+\r
+        Enable-WindowsOptionalFeature -Online -FeatureName "Printing-PrintToPDFServices-Features" -NoRestart -WarningAction SilentlyContinue\r
+\r
+        Write-Host "Microsoft P.D.F. Printer enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Microsoft P.D.F. Printer."\r
+\r
+        Disable-WindowsOptionalFeature -Online -FeatureName "Printing-PrintToPDFServices-Features" -NoRestart -WarningAction SilentlyContinue\r
+\r
+        Write-Host "Microsoft P.D.F. Printer disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-Microsoft_XPS_DocumentWriter.ps1 b/Development_Files/Application_Settings/Set-Microsoft_XPS_DocumentWriter.ps1
new file mode 100755 (executable)
index 0000000..5caf957
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-Microsoft_XPS_DocumentWriter\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Microsoft X.P.S. Document Writer."\r
+\r
+        Enable-WindowsOptionalFeature -Online -FeatureName "Printing-XPSServices-Features" -NoRestart -WarningAction SilentlyContinue\r
+\r
+        Write-Host "Microsoft X.P.S. Document Writer enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Microsoft X.P.S. Document Writer."\r
+\r
+        Disable-WindowsOptionalFeature -Online -FeatureName "Printing-XPSServices-Features" -NoRestart -WarningAction SilentlyContinue\r
+\r
+        Write-Host "Microsoft X.P.S. Document Writer disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-OneDrive.ps1 b/Development_Files/Application_Settings/Set-OneDrive.ps1
new file mode 100755 (executable)
index 0000000..b44c1b9
--- /dev/null
@@ -0,0 +1,77 @@
+Function Set-OneDrive\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling OneDrive."\r
+        \r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive" -Name "DisableFileSyncNGSC" -ErrorAction SilentlyContinue\r
+        \r
+        Write-Host "OneDrive enabled."\r
+        Write-Host ""\r
+    }\r
+    \r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling OneDrive."\r
+        \r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive" -Name "DisableFileSyncNGSC" -Type DWord -Value 1\r
+        \r
+        Write-Host "OneDrive disabled."\r
+        Write-Host ""\r
+    }\r
+    \r
+    ElseIf ($Value -eq "Install")\r
+    {\r
+        Write-Host "Installing OneDrive."\r
+\r
+        cmd /c --% %SystemRoot%\SysWOW64\OneDriveSetup.exe /install\r
+\r
+        Write-Host "OneDrive installed."       \r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Uninstall")\r
+    {\r
+        Write-Host "Uninstalling OneDrive."\r
+\r
+        #Stop OneDrive process and uninstall OneDrive.\r
+            cmd /c --% taskkill /F /IM OneDrive.exe\r
+            cmd /c --% %SystemRoot%\SysWOW64\OneDriveSetup.exe /uninstall\r
+    \r
+        #Remove clutter left over from OneDrive.\r
+            If (Test-Path $env:USERPROFILE\OneDrive)\r
+            {\r
+                Remove-Item -Force -Recurse $env:USERPROFILE\OneDrive -ErrorAction SilentlyContinue\r
+            }\r
+\r
+            If (Test-Path $env:LOCALAPPDATA\Microsoft\OneDrive)\r
+            {\r
+                Remove-Item -Force -Recurse $env:LOCALAPPDATA\Microsoft\OneDrive -ErrorAction SilentlyContinue\r
+            }\r
+\r
+            If (Test-Path "$env:ProgramData\Microsoft OneDrive")\r
+            {\r
+                Remove-Item -Force -Recurse "$env:ProgramData\Microsoft OneDrive" -ErrorAction SilentlyContinue\r
+            }\r
+\r
+            If (Test-Path "C:\OneDriveTemp")\r
+            {\r
+                Remove-Item -Force -Recurse "C:\OneDriveTemp" -ErrorAction SilentlyContinue\r
+            }\r
+                                 \r
+        Write-Host "OneDrive uninstalled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable', 'Disable', 'Install', and 'Uninstall'."\r
+    }\r
+}\r
diff --git a/Development_Files/Application_Settings/Set-PhotoViewerAssociation.ps1 b/Development_Files/Application_Settings/Set-PhotoViewerAssociation.ps1
new file mode 100755 (executable)
index 0000000..09279ae
--- /dev/null
@@ -0,0 +1,51 @@
+Function Set-PhotoViewerAssociation\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Associate")\r
+    {\r
+        Write-Host "Associating Photo Viewer with .bmp, .gif, .jpg, .png, and .tif files."\r
+\r
+        If (!(Test-Path "HKCR:"))
+        {
+                   New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null
+           }
+       
+        ForEach ($type in @("Paint.Picture", "giffile", "jpegfile", "pngfile"))
+        {
+                   New-Item -Path $("HKCR:\$type\shell\open") -Force | Out-Null
+                   New-Item -Path $("HKCR:\$type\shell\open\command") | Out-Null
+                   Set-ItemProperty -Path $("HKCR:\$type\shell\open") -Name "MuiVerb" -Type ExpandString -Value "@%ProgramFiles%\Windows Photo Viewer\photoviewer.dll,-3043"
+                   Set-ItemProperty -Path $("HKCR:\$type\shell\open\command") -Name "(Default)" -Type ExpandString -Value "%SystemRoot%\System32\rundll32.exe `"%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll`", ImageView_Fullscreen %1"
+           }\r
+\r
+        Write-Host "Photo Viewer associated with .bmp, .gif, .jpg, .png, and .tif files."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disassociate")\r
+    {\r
+        Write-Host "Disassociating Photo Viewer with .bmp, .gif, .jpg, .png, and .tif files."\r
+\r
+        If (!(Test-Path "HKCR:"))
+        {
+                   New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null
+           }
+       
+        Remove-Item -Path "HKCR:\Paint.Picture\shell\open" -Recurse -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKCR:\giffile\shell\open" -Name "MuiVerb" -ErrorAction SilentlyContinue
+           Set-ItemProperty -Path "HKCR:\giffile\shell\open" -Name "CommandId" -Type String -Value "IE.File"
+           Set-ItemProperty -Path "HKCR:\giffile\shell\open\command" -Name "(Default)" -Type String -Value "`"$env:SystemDrive\Program Files\Internet Explorer\iexplore.exe`" %1"
+           Set-ItemProperty -Path "HKCR:\giffile\shell\open\command" -Name "DelegateExecute" -Type String -Value "{17FE9752-0B5A-4665-84CD-569794602F5C}"
+           Remove-Item -Path "HKCR:\jpegfile\shell\open" -Recurse -ErrorAction SilentlyContinue
+           Remove-Item -Path "HKCR:\pngfile\shell\open" -Recurse -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Photo Viewer disassociated with .bmp, .gif, .jpg, .png, and .tif files."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Associate' and 'Disassociate'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-ThirdPartyBloat.ps1 b/Development_Files/Application_Settings/Set-ThirdPartyBloat.ps1
new file mode 100755 (executable)
index 0000000..b403909
--- /dev/null
@@ -0,0 +1,85 @@
+Function Set-ThirdPartyBloat\r
+{\r
+    Param([string]$Value)\r
+        \r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing third party bloatware."\r
+        \r
+        Get-AppxPackage "2414FC7A.Viber" | Remove-AppxPackage\r
+           Get-AppxPackage "41038Axilesoft.ACGMediaPlayer" | Remove-AppxPackage\r
+           Get-AppxPackage "46928bounde.EclipseManager" | Remove-AppxPackage\r
+           Get-AppxPackage "4DF9E0F8.Netflix" | Remove-AppxPackage\r
+           Get-AppxPackage "64885BlueEdge.OneCalendar" | Remove-AppxPackage\r
+           Get-AppxPackage "7EE7776C.LinkedInforWindows" | Remove-AppxPackage\r
+           Get-AppxPackage "828B5831.HiddenCityMysteryofShadows" | Remove-AppxPackage\r
+           Get-AppxPackage "89006A2E.AutodeskSketchBook" | Remove-AppxPackage\r
+           Get-AppxPackage "9E2F88E3.Twitter" | Remove-AppxPackage\r
+           Get-AppxPackage "A278AB0D.DisneyMagicKingdoms" | Remove-AppxPackage\r
+           Get-AppxPackage "A278AB0D.MarchofEmpires" | Remove-AppxPackage\r
+           Get-AppxPackage "ActiproSoftwareLLC.562882FEEB491" | Remove-AppxPackage\r
+           Get-AppxPackage "AdobeSystemsIncorporated.AdobePhotoshopExpress" | Remove-AppxPackage\r
+           Get-AppxPackage "CAF9E577.Plex" | Remove-AppxPackage\r
+           Get-AppxPackage "D52A8D61.FarmVille2CountryEscape" | Remove-AppxPackage\r
+           Get-AppxPackage "D5EA27B7.Duolingo-LearnLanguagesforFree" | Remove-AppxPackage\r
+           Get-AppxPackage "DB6EA5DB.CyberLinkMediaSuiteEssentials" | Remove-AppxPackage\r
+           Get-AppxPackage "DolbyLaboratories.DolbyAccess" | Remove-AppxPackage\r
+           Get-AppxPackage "Drawboard.DrawboardPDF" | Remove-AppxPackage\r
+           Get-AppxPackage "Facebook.Facebook" | Remove-AppxPackage\r
+           Get-AppxPackage "flaregamesGmbH.RoyalRevolt2" | Remove-AppxPackage\r
+           Get-AppxPackage "GAMELOFTSA.Asphalt8Airborne" | Remove-AppxPackage\r
+           Get-AppxPackage "KeeperSecurityInc.Keeper" | Remove-AppxPackage\r
+           Get-AppxPackage "king.com.BubbleWitch3Saga" | Remove-AppxPackage\r
+           Get-AppxPackage "king.com.CandyCrushSodaSaga" | Remove-AppxPackage\r
+           Get-AppxPackage "PandoraMediaInc.29680B314EFC2" | Remove-AppxPackage\r
+           Get-AppxPackage "SpotifyAB.SpotifyMusic" | Remove-AppxPackage\r
+           Get-AppxPackage "WinZipComputing.WinZipUniversal" | Remove-AppxPackage\r
+           Get-AppxPackage "XINGAG.XING" | Remove-AppxPackage\r
+\r
+        Write-Host "Third party bloatware removed."\r
+        Write-Host ""\r
+    }\r
+    \r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring third party bloatware."\r
+\r
+        Get-AppxPackage -AllUsers "2414FC7A.Viber" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "41038Axilesoft.ACGMediaPlayer" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "46928bounde.EclipseManager" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "4DF9E0F8.Netflix" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "64885BlueEdge.OneCalendar" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "7EE7776C.LinkedInforWindows" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "828B5831.HiddenCityMysteryofShadows" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "89006A2E.AutodeskSketchBook" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "9E2F88E3.Twitter" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "A278AB0D.DisneyMagicKingdoms" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "A278AB0D.MarchofEmpires" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "ActiproSoftwareLLC.562882FEEB491" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "AdobeSystemsIncorporated.AdobePhotoshopExpress" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "CAF9E577.Plex" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "D52A8D61.FarmVille2CountryEscape" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "D5EA27B7.Duolingo-LearnLanguagesforFree" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "DB6EA5DB.CyberLinkMediaSuiteEssentials" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "DolbyLaboratories.DolbyAccess" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "Drawboard.DrawboardPDF" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "Facebook.Facebook" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "flaregamesGmbH.RoyalRevolt2" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "GAMELOFTSA.Asphalt8Airborne" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "KeeperSecurityInc.Keeper" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "king.com.BubbleWitch3Saga" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "king.com.CandyCrushSodaSaga" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "PandoraMediaInc.29680B314EFC2" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "SpotifyAB.SpotifyMusic" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "WinZipComputing.WinZipUniversal" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+           Get-AppxPackage -AllUsers "XINGAG.XING" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "Third party bloatware restored."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove' and 'Restore'."\r
+    }\r
+}\r
diff --git a/Development_Files/Application_Settings/Set-WindowsMediaPlayer.ps1 b/Development_Files/Application_Settings/Set-WindowsMediaPlayer.ps1
new file mode 100755 (executable)
index 0000000..5af1ff3
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-WindowsMediaPlayer\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Windows Media Player."\r
+\r
+        Enable-WindowsOptionalFeature -Online -FeatureName "WindowsMediaPlayer" -NoRestart -WarningAction SilentlyContinue\r
+\r
+        Write-Host "Windows Media Player enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Windows Media Player."\r
+\r
+        Disable-WindowsOptionalFeature -Online -FeatureName "WindowsMediaPlayer" -NoRestart -WarningAction SilentlyContinue\r
+\r
+        Write-Host "Windows Media Player disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-WindowsMessenger.ps1 b/Development_Files/Application_Settings/Set-WindowsMessenger.ps1
new file mode 100755 (executable)
index 0000000..970355d
--- /dev/null
@@ -0,0 +1,45 @@
+Function Set-WindowsMessenger\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Windows Messenger."\r
+\r
+        #Remove the appropriate registry settings and keys.\r
+            Remove-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Messenger -Recurse -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Windows Messenger enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Windows Messenger."\r
+\r
+        #Make "Messenger" and "Client" keys.\r
+            If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Messenger))\r
+            {\r
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft -Name "Messenger" -Force | Out-Null\r
+            }\r
+      \r
+            ####################\r
+\r
+            If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Messenger\Client))\r
+            {\r
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Messenger -Name "Client" -Force | Out-Null\r
+            }\r
+        \r
+        #Set the appropriate registry settings.\r
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Messenger\Client -Name "PreventAutoRun" -Type DWord -Value "1"\r
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Messenger\Client -Name "PreventRun" -Type DWord -Value "1"\r
+\r
+        Write-Host "Windows Messenger disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Application_Settings/Set-WorkFoldersClient.ps1 b/Development_Files/Application_Settings/Set-WorkFoldersClient.ps1
new file mode 100755 (executable)
index 0000000..e902817
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-WorkFoldersClient\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Work Folders Client."\r
+\r
+        Enable-WindowsOptionalFeature -Online -FeatureName "WorkFolders-Client" -NoRestart -WarningAction SilentlyContinue\r
+\r
+        Write-Host "Work Folders Client enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Work Folders Client."\r
+\r
+        Disable-WindowsOptionalFeature -Online -FeatureName "WorkFolders-Client" -NoRestart -WarningAction SilentlyContinue\r
+\r
+        Write-Host "Work Folders Client disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Application_Settings/Set-microsoft.windowscommunicationsapps.ps1 b/Development_Files/Application_Settings/Set-microsoft.windowscommunicationsapps.ps1
new file mode 100755 (executable)
index 0000000..4d647cf
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-microsoft.windowscommunicationsapps\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Remove")\r
+    {\r
+        Write-Host "Removing microsoft.windowscommunicationsapps."\r
+\r
+        Get-AppxPackage microsoft.windowscommunicationsapps | Remove-AppxPackage\r
+\r
+        Write-Host "microsoft.windowscommunicationsapps removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "PermanentlyRemove")\r
+    {\r
+        Write-Host "Permanently removing microsoft.windowscommunicationsapps."\r
+\r
+        Get-AppxPackage microsoft.windowscommunicationsapps | Remove-AppxPackage\r
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*microsoft.windowscommunicationsapps*"} | Remove-AppxProvisionedPackage -Online -Verbose\r
+\r
+        Write-Host "microsoft.windowscommunicationsapps permanently removed."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Restoring microsoft.windowscommunicationsapps."\r
+\r
+        Get-AppxPackage -AllUsers microsoft.windowscommunicationsapps | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}\r
+\r
+        Write-Host "microsoft.windowscommunicationsapps restored."\r
+        Write-Host ""\r
+    }\r
+        \r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-Display3D_ObjectsExplorer.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-Display3D_ObjectsExplorer.ps1
new file mode 100755 (executable)
index 0000000..7cf5ee5
--- /dev/null
@@ -0,0 +1,42 @@
+Function Set-Display3D_ObjectsExplorer\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting '3D Objects' icon to be shown in Explorer namespace."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Name "ThisPCPolicy" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Name "ThisPCPolicy" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "'3D Objects' icon set to be shown in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting '3D Objects' icon to be hidden in Explorer namespace."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+       
+        If (!(Test-Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Force | Out-Null
+           }
+       \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"\r
+\r
+        Write-Host "'3D Objects' icon set to be hidden in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-Display3D_ObjectsThisPC.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-Display3D_ObjectsThisPC.ps1
new file mode 100755 (executable)
index 0000000..7352fa3
--- /dev/null
@@ -0,0 +1,32 @@
+Function Set-Display3D_ObjectsThisPC\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting '3D Objects' icon to be shown in 'This PC'."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}" -Force | Out-Null\r
+           }\r
+\r
+        Write-Host "'3D Objects' icon set to be shown in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting '3D Objects' icon to be hidden in 'This PC'."\r
+\r
+        Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}" -Recurse -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "'3D Objects' icon set to be hidden in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}\r
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-DisplayDesktopExplorer.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-DisplayDesktopExplorer.ps1
new file mode 100755 (executable)
index 0000000..c43e57c
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-DisplayDesktopExplorer\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'Desktop' icon to be shown in Explorer namespace."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"\r
+\r
+        Write-Host "'Desktop' icon set to be shown in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'Desktop' icon to be hidden in Explorer namespace."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"\r
+\r
+        Write-Host "'Desktop' icon set to be hidden in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-DisplayDesktopThisPC.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-DisplayDesktopThisPC.ps1
new file mode 100755 (executable)
index 0000000..d8b5176
--- /dev/null
@@ -0,0 +1,32 @@
+Function Set-DisplayDesktopThisPC\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'Desktop' icon to be shown in 'This PC'."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}" -Force | Out-Null\r
+           }\r
+\r
+        Write-Host "'Desktop' icon set to be shown in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'Desktop' icon to be hidden in 'This PC'."\r
+\r
+        Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}" -Recurse -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "'Desktop' icon set to be hidden in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}\r
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-DisplayDocumentsExplorer.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-DisplayDocumentsExplorer.ps1
new file mode 100755 (executable)
index 0000000..d136e13
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-DisplayDocumentsExplorer\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'Documents' icon to be shown in Explorer namespace."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"\r
+\r
+        Write-Host "'Documents' icon set to be shown in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'Documents' icon to be hidden in Explorer namespace."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"\r
+\r
+        Write-Host "'Documents' icon set to be hidden in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-DisplayDocumentsThisPC.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-DisplayDocumentsThisPC.ps1
new file mode 100755 (executable)
index 0000000..976218d
--- /dev/null
@@ -0,0 +1,38 @@
+Function Set-DisplayDocumentsThisPC\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'Documents' icon to be shown in 'This PC'."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}" -Force | Out-Null\r
+           }\r
+       \r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}" -Force | Out-Null\r
+           }\r
+\r
+        Write-Host "'Documents' icon set to be shown in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'Documents' icon to be hidden in 'This PC'."\r
+\r
+        Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}" -Recurse -ErrorAction SilentlyContinue\r
+           Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}" -Recurse -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "'Documents' icon set to be hidden in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}\r
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-DisplayDownloadsExplorer.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-DisplayDownloadsExplorer.ps1
new file mode 100755 (executable)
index 0000000..448284f
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-DisplayDownloadsExplorer\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'Downloads' icon to be shown in Explorer namespace."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"\r
+\r
+        Write-Host "'Downloads' icon set to be shown in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'Downloads' icon to be hidden in Explorer namespace."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"\r
+\r
+        Write-Host "'Downloads' icon set to be hidden in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-DisplayDownloadsThisPC.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-DisplayDownloadsThisPC.ps1
new file mode 100755 (executable)
index 0000000..3defb2e
--- /dev/null
@@ -0,0 +1,38 @@
+Function Set-DisplayDownloadsThisPC\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'Downloads' icon to be shown in 'This PC'."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99428e115f}"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99428e115f}" -Force | Out-Null\r
+           }\r
+       \r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{374DE290-123F-4565-9164-39C4925E467B}"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{374DE290-123F-4565-9164-39C4925E467B}" -Force | Out-Null\r
+           }\r
+\r
+        Write-Host "'Downloads' icon set to be shown in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'Downloads' icon to be hidden in 'This PC'."\r
+\r
+        Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99428e115f}" -Recurse -ErrorAction SilentlyContinue\r
+           Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{374DE290-123F-4565-9164-39C4925E467B}" -Recurse -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "'Downloads' icon set to be hidden in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}\r
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-DisplayMusicExplorer.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-DisplayMusicExplorer.ps1
new file mode 100755 (executable)
index 0000000..56c0885
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-DisplayMusicExplorer\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'Music' icon to be shown in Explorer namespace."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"\r
+\r
+        Write-Host "'Music' icon set to be shown in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'Music' icon to be hidden in Explorer namespace."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"\r
+\r
+        Write-Host "'Music' icon set to be hidden in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-DisplayMusicThisPC.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-DisplayMusicThisPC.ps1
new file mode 100755 (executable)
index 0000000..857c037
--- /dev/null
@@ -0,0 +1,38 @@
+Function Set-DisplayMusicThisPC\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'Music' icon to be shown in 'This PC'."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}" -Force | Out-Null\r
+           }\r
+       \r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{1CF1260C-4DD0-4ebb-811F-33C572699FDE}"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{1CF1260C-4DD0-4ebb-811F-33C572699FDE}" -Force | Out-Null\r
+           }\r
+\r
+        Write-Host "'Music' icon set to be shown in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'Music' icon to be hidden in 'This PC'."\r
+\r
+        Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}" -Recurse -ErrorAction SilentlyContinue\r
+           Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{1CF1260C-4DD0-4ebb-811F-33C572699FDE}" -Recurse -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "'Music' icon set to be hidden in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}\r
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-DisplayPicturesExplorer.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-DisplayPicturesExplorer.ps1
new file mode 100755 (executable)
index 0000000..b82cb2b
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-DisplayPicturesExplorer\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'Pictures' icon to be shown in Explorer namespace."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"\r
+\r
+        Write-Host "'Pictures' icon set to be shown in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'Pictures' icon to be hidden in Explorer namespace."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"\r
+\r
+        Write-Host "'Pictures' icon set to be hidden in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-DisplayPicturesThisPC.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-DisplayPicturesThisPC.ps1
new file mode 100755 (executable)
index 0000000..1c9155b
--- /dev/null
@@ -0,0 +1,38 @@
+Function Set-DisplayPicturesThisPC\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'Pictures' icon to be shown in 'This PC'."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}" -Force | Out-Null\r
+           }\r
+       \r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3ADD1653-EB32-4cb0-BBD7-DFA0ABB5ACCA}"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3ADD1653-EB32-4cb0-BBD7-DFA0ABB5ACCA}" -Force | Out-Null\r
+           }\r
+\r
+        Write-Host "'Pictures' icon set to be shown in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'Pictures' icon to be hidden in 'This PC'."\r
+\r
+        Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}" -Recurse -ErrorAction SilentlyContinue\r
+           Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3ADD1653-EB32-4cb0-BBD7-DFA0ABB5ACCA}" -Recurse -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "'Pictures' icon set to be hidden in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}\r
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-DisplayVideosExplorer.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-DisplayVideosExplorer.ps1
new file mode 100755 (executable)
index 0000000..67af12d
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-DisplayVideosExplorer\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'Videos' icon to be shown in Explorer namespace."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"\r
+\r
+        Write-Host "'Videos' icon set to be shown in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'Videos' icon to be hidden in Explorer namespace."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"\r
+\r
+        Write-Host "'Videos' icon set to be hidden in Explorer namespace."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-DisplayVideosThisPC.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-DisplayVideosThisPC.ps1
new file mode 100755 (executable)
index 0000000..b8fcd43
--- /dev/null
@@ -0,0 +1,38 @@
+Function Set-DisplayVideosThisPC\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'Videos' icon to be shown in 'This PC'."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}" -Force | Out-Null\r
+           }\r
+       \r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A0953C92-50DC-43bf-BE83-3742FED03C9C}"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A0953C92-50DC-43bf-BE83-3742FED03C9C}" -Force | Out-Null\r
+           }\r
+\r
+        Write-Host "'Videos' icon set to be shown in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'Videos' icon to be hidden in 'This PC'."\r
+\r
+        Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}" -Recurse -ErrorAction SilentlyContinue\r
+           Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A0953C92-50DC-43bf-BE83-3742FED03C9C}" -Recurse -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "'Videos' icon set to be hidden in 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}\r
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-ExplorerStart.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-ExplorerStart.ps1
new file mode 100755 (executable)
index 0000000..3130c63
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-ExplorerStart\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "ThisPC")\r
+    {\r
+        Write-Host "Setting explorer start point to 'This PC'."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo" -Type DWord -Value 1\r
+\r
+        Write-Host "Explorer start point set to 'This PC'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "QuickAccess")\r
+    {\r
+        Write-Host "Setting explorer start point to 'Quick Access'."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Explorer start point set to 'Quick Access'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'ThisPC' and 'QuickAccess'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-HiddenFilesandFolders.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-HiddenFilesandFolders.ps1
new file mode 100755 (executable)
index 0000000..2391427
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-HiddenFilesandFolders\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Changing setting to show hidden files and folders."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Hidden" -Type DWord -Value 1\r
+\r
+        Write-Host "Setting changed to show hidden files and folders."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Changing setting to hide hidden files and folders."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Hidden" -Type DWord -Value 2\r
+\r
+        Write-Host "Setting changed to hide hidden files and folders."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-KnownFileExtensions.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-KnownFileExtensions.ps1
new file mode 100755 (executable)
index 0000000..843c66e
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-KnownFileExtensions\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Changing setting to show known file extensions."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Type DWord -Value 0\r
+\r
+        Write-Host "Setting changed to show known file extensions."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Changing setting to hide known file extensions."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Type DWord -Value 1\r
+\r
+        Write-Host "Setting changed to hide known file extensions."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-Recent_FrequentShortcuts.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-Recent_FrequentShortcuts.ps1
new file mode 100755 (executable)
index 0000000..afe7bce
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-Recent_FrequentShortcuts\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling shortcuts for recent and frequent items."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "Showrecent and frequent" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "ShowFrequent" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Shortcuts for recent and frequent items enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling shortcuts for recent and frequent items."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "Showrecent and frequent" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "ShowFrequent" -Type DWord -Value 0\r
+\r
+        Write-Host "Shortcuts for recent and frequent items disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-SynchronizationProviderNotifications.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-SynchronizationProviderNotifications.ps1
new file mode 100755 (executable)
index 0000000..96445ab
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-SynchronizationProviderNotifications\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling synchronization provider notifications."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowSyncProviderNotifications" -Type DWord -Value 1\r
+\r
+        Write-Host "Synchronization providers notifications enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling synchronization provider notifications."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowSyncProviderNotifications" -Type DWord -Value 0\r
+\r
+        Write-Host "Synchronization providers notifications disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-ThisPC_OnDesktop.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-ThisPC_OnDesktop.ps1
new file mode 100755 (executable)
index 0000000..8091700
--- /dev/null
@@ -0,0 +1,42 @@
+Function Set-ThisPC_OnDesktop\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'This PC' icon to be shown on desktop."\r
+\r
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu"))\r
+        {\r
+                   New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" -Type DWord -Value 0\r
+       \r
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel"))\r
+        {\r
+                   New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" -Type DWord -Value 0\r
+\r
+        Write-Host "'This PC' icon set to be shown on desktop."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'This PC' icon to be hidden on desktop."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" -ErrorAction SilentlyContinue\r
+           Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "'This PC' icon set to be hidden on desktop."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}\r
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-Thumbnails.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-Thumbnails.ps1
new file mode 100755 (executable)
index 0000000..d559c39
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-Thumbnails\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling thumbnails."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "IconsOnly" -Type DWord -Value 0\r
+\r
+        Write-Host "Thumbnails enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling thumbnails."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "IconsOnly" -Type DWord -Value 1\r
+\r
+        Write-Host "Thumbnails disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-ThumbnailsCache.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-ThumbnailsCache.ps1
new file mode 100755 (executable)
index 0000000..1b22956
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-ThumbnailsCache\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling thumbnails cache files (Thumbs.db)."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "DisableThumbnailCache" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "DisableThumbsDBOnNetworkFolders" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Thumbnails cache files enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling thumbnails cache files (Thumbs.db)."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "DisableThumbnailCache" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "DisableThumbsDBOnNetworkFolders" -Type DWord -Value 1\r
+\r
+        Write-Host "Thumbnails cache files disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Explorer_User_Interface_Settings/Set-UserFolderOnDesktop.ps1 b/Development_Files/Explorer_User_Interface_Settings/Set-UserFolderOnDesktop.ps1
new file mode 100755 (executable)
index 0000000..59fdfc6
--- /dev/null
@@ -0,0 +1,42 @@
+Function Set-UserFolderOnDesktop\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'User Folder' to be shown on desktop."\r
+\r
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu"))\r
+        {\r
+                   New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Name "{59031a47-3f72-44a7-89c5-5595fe6b30ee}" -Type DWord -Value 0\r
+       \r
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel"))\r
+        {\r
+                   New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Name "{59031a47-3f72-44a7-89c5-5595fe6b30ee}" -Type DWord -Value 0\r
+\r
+        Write-Host "'User Folder' set to be shown on desktop."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'User Folder' to be hidden on desktop."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Name "{59031a47-3f72-44a7-89c5-5595fe6b30ee}" -ErrorAction SilentlyContinue\r
+           Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Name "{59031a47-3f72-44a7-89c5-5595fe6b30ee}" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "'User Folder' set to be hidden on desktop."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}\r
diff --git a/Development_Files/Other_Functions/Hex.ps1 b/Development_Files/Other_Functions/Hex.ps1
new file mode 100755 (executable)
index 0000000..d275f76
--- /dev/null
@@ -0,0 +1,6 @@
+Function Hex\r
+    {\r
+        Param([string]$BinaryKey)\r
+        $HexBinaryKey = $BinaryKey.Split(',') | ForEach-Object {"0x$_"}\r
+        Return ([byte[]]$HexBinaryKey)\r
+    }
\ No newline at end of file
diff --git a/Development_Files/Other_Functions/Set-KMS_Activation.ps1 b/Development_Files/Other_Functions/Set-KMS_Activation.ps1
new file mode 100755 (executable)
index 0000000..49f4294
--- /dev/null
@@ -0,0 +1,47 @@
+Function Set-KMS_Activation\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Key Management Service activation."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name PaintDesktopVersion -Type DWord -Value 4\r
+        cmd /c --% gpupdate /force\r
+\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\svsvc" -Name Start -Type DWord -Value 4\r
+\r
+        \r
+        If (!(Test-Path "HKLM:\SYSTEM\CurrentControlSet\Services\svsvc\KMS"))\r
+        {\r
+            New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\svsvc" -Name KMS -Force | Out-Null\r
+        }\r
+\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\svsvc\KMS" -Name Default -Type String -Value "kms_4"\r
+        cmd /c --% gpupdate /force\r
+        \r
+        Write-Host "Key Management Service activation enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Key Management Service activation."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name PaintDesktopVersion -Type DWord -Value 0\r
+        cmd /c --% gpupdate /force\r
+\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\svsvc" -Name Start -Type DWord -Value 3\r
+           \r
+        Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\svsvc\KMS" -Force -Recurse -ErrorAction SilentlyContinue | Out-Null\r
+        cmd /c --% gpupdate /force\r
+\r
+        Write-Host "Key Management Service activation disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Other_Functions/Set-WindowsLicense_KMS.ps1 b/Development_Files/Other_Functions/Set-WindowsLicense_KMS.ps1
new file mode 100755 (executable)
index 0000000..a8ae4e7
--- /dev/null
@@ -0,0 +1,74 @@
+Function Set-WindowsLicense_KMS\r
+{\r
+    Param([string]$Action, [string]$HostAddress)\r
+\r
+    If ($Action -eq "Activate")\r
+    {\r
+        Write-Host "Activating Windows."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name PaintDesktopVersion -Type DWord -Value 4\r
+        cmd /c --% gpupdate /force\r
+               \r
+        $Edition = (Get-WindowsEdition -Online)[0].Edition\r
+\r
+        Switch ("$Edition")\r
+        {\r
+            Education\r
+            {$LicenseKey = "NW6C2-QMPVW-D7KKK-3GKT6-VCFB2"}\r
+\r
+            EducationN\r
+            {$LicenseKey = "2WH4N-8QGBV-H22JP-CT43Q-MDWWJ"}\r
+            \r
+            Professional\r
+            {$LicenseKey = "W269N-WFGWX-YVC9B-4J6C9-T83GX"}\r
+\r
+            ProfessionalEducation\r
+            {$LicenseKey = "6TP4R-GNPTD-KYYHQ-7B7DP-J447Y"}\r
+\r
+            ProfessionalEducationN\r
+            {$LicenseKey = "YVWGF-BXNMC-HTQYQ-CPQ99-66QFC"}\r
+\r
+            ProfessionalN\r
+            {$LicenseKey = "MH37W-N47XK-V7XM9-C7227-GCQG9"}\r
+\r
+            ProfessionalWorkstation\r
+            {$LicenseKey = "NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J"}\r
+\r
+            ProfessionalWorkstationN\r
+            {$LicenseKey = "9FNHH-K3HBT-3W4TD-6383H-6XYWF"}\r
+                        \r
+            Default\r
+            {\r
+                Write-Error "Unrecognized edition.  Supported editions are 'Education', 'EducationN', 'Professional', 'ProfessionalEducation', 'ProfessionalEducationN', 'ProfessionalN', 'ProfessionalWorkstation', and 'ProfessionalWorkstationN'."\r
+            }\r
+        }\r
+\r
+        slmgr /ipk $LicenseKey\r
+        slmgr /skms $HostAddress\r
+        Start-Sleep -Seconds 5\r
+        slmgr /ato\r
+\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name PaintDesktopVersion -Type DWord -Value 0\r
+        cmd /c --% gpupdate /force\r
+        Stop-Process -Name explorer\r
+\r
+        Write-Host "Windows activated."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Action -eq "Deactivate")\r
+    {\r
+        Write-Host "Deactivating Windows."\r
+\r
+        slmgr /upk\r
+        slmgr /cpky\r
+\r
+        Write-Host "Windows deactivated."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid actions.  Valid actions are 'Activate' and 'Deactivate'."\r
+    }    \r
+}
\ No newline at end of file
diff --git a/Development_Files/Privacy_Settings/Set-AdvertisingIdentification.ps1 b/Development_Files/Privacy_Settings/Set-AdvertisingIdentification.ps1
new file mode 100755 (executable)
index 0000000..c9f1212
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-AdvertisingIdentification\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Advertising Identification."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" -Name "DisabledByGroupPolicy" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Advertising Identification enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Advertising Identification."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo"))\r
+        {\r
+               New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" -Force | Out-Null\r
+        }\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" -Name "DisabledByGroupPolicy" -Type DWord -Value 1\r
+\r
+        Write-Host "Advertising Identification disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Privacy_Settings/Set-ApplicationLaunchTracking.ps1 b/Development_Files/Privacy_Settings/Set-ApplicationLaunchTracking.ps1
new file mode 100755 (executable)
index 0000000..5051e29
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-ApplicationLaunchTracking\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling application launch tracking."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name Start_TrackProgs -Type DWord -Value 1\r
+\r
+        Write-Host "Application launch tracking enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling application launch tracking."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name Start_TrackProgs -Type DWord -Value 0\r
+\r
+        Write-Host "Application launch tracking disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Privacy_Settings/Set-ApplicationSuggestion_and_AutomaticInstallation.ps1 b/Development_Files/Privacy_Settings/Set-ApplicationSuggestion_and_AutomaticInstallation.ps1
new file mode 100755 (executable)
index 0000000..8249364
--- /dev/null
@@ -0,0 +1,55 @@
+Function Set-ApplicationSuggestion_and_AutomaticInstallation\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling suggestion and automatic installation of applications."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "ContentDeliveryAllowed" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "OemPreInstalledAppsEnabled" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEnabled" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEverEnabled" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SilentInstalledAppsEnabled" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338388Enabled" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338389Enabled" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestionsEnabled" -Type DWord -Value 1
+        Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338387Enabled" -ErrorAction SilentlyContinue
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-353698Enabled" -ErrorAction SilentlyContinue
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableWindowsConsumerFeatures" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Suggestion and automatic installation of applications enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling suggestion and automatic installation of applications."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "ContentDeliveryAllowed" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "OemPreInstalledAppsEnabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEnabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEverEnabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SilentInstalledAppsEnabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338387Enabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338388Enabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338389Enabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-353698Enabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestionsEnabled" -Type DWord -Value 0
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent"))
+        {
+               New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent"
+        }
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableWindowsConsumerFeatures" -Type DWord -Value 1\r
+\r
+        Write-Host Write-Host "Suggestion and automatic installation of applications disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Privacy_Settings/Set-ApplicationsActionsPermissions.ps1 b/Development_Files/Privacy_Settings/Set-ApplicationsActionsPermissions.ps1
new file mode 100755 (executable)
index 0000000..d529b02
--- /dev/null
@@ -0,0 +1,83 @@
+Function Set-ApplicationsActionsPermissions\r
+{\r
+    Param([string]$Value, [string]$Action)\r
+\r
+    #Make "AppPrivacy" key.\r
+        If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy))\r
+        {\r
+            New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name AppPrivacy -Force | Out-Null\r
+        }\r
+   \r
+    If ($Action -eq "Grant")\r
+    {\r
+        $KeyValue = 1\r
+        $PresentVerb = "Granting"\r
+        $PastVerb = "granted"\r
+    }\r
+\r
+    ElseIf ($Action -eq "Deny")\r
+    {\r
+        $KeyValue = 2\r
+        $PresentVerb = "Denying"\r
+        $PastVerb = "denied"\r
+    }\r
+\r
+    ElseIf ($Action -eq "Reset")\r
+    {\r
+        $KeyValue = 0\r
+        $PresentVerb = "Resetting"\r
+        $PastVerb = "reset"\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid action.  Valid actions are 'Grant', 'Deny', and 'Reset'."\r
+        break\r
+    }\r
+      \r
+   \r
+    Write-Host $PresentVerb "selected action permissions of applications."\r
+    Write-Host ""      \r
+                  \r
+        Switch ("$Value")\r
+        {\r
+            Activate_with_Voice\r
+            {\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsActivateWithVoice" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsActivateWithVoiceAboveLock" -Type DWord -Value $KeyValue\r
+            }\r
+\r
+            GatherDiagnosticInformation\r
+            {\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsGetDiagnosticInfo" -Type DWord -Value $KeyValue\r
+            }\r
+\r
+            Run_in_Background\r
+            {\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsRunInBackground" -Type DWord -Value $KeyValue\r
+            }\r
+\r
+            Synchronize_with_Devices\r
+            {\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsSyncWithDevices" -Type DWord -Value $KeyValue\r
+            }\r
+\r
+            All\r
+            {\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsActivateWithVoice" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsActivateWithVoiceAboveLock" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsGetDiagnosticInfo" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsRunInBackground" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsSyncWithDevices" -Type DWord -Value $KeyValue\r
+            }\r
+\r
+            Default\r
+            {\r
+                Write-Error "Invalid value.  Valid values are 'Activate_with_Voice', 'GatherDiagnosticInformation', 'Run_in_Background', 'Synchronize_with_Devices', and 'All'."\r
+                throw\r
+            }\r
+        }\r
+                        \r
+   Write-Host "Selected action permissions of applications" $PastVerb"."\r
+   Write-Host ""\r
+}
\ No newline at end of file
diff --git a/Development_Files/Privacy_Settings/Set-ApplicationsGeneralAccessPermissions.ps1 b/Development_Files/Privacy_Settings/Set-ApplicationsGeneralAccessPermissions.ps1
new file mode 100755 (executable)
index 0000000..a1efb35
--- /dev/null
@@ -0,0 +1,121 @@
+Function Set-ApplicationsGeneralAccessPermissions\r
+{\r
+    Param([string]$Value, [string]$Action)\r
+\r
+    #Make "AppPrivacy" key.\r
+        If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy))\r
+        {\r
+            New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name AppPrivacy -Force | Out-Null\r
+        }\r
+   \r
+    If ($Action -eq "Grant")\r
+    {\r
+        $KeyValue = 1\r
+        $PresentVerb = "Granting"\r
+        $PastVerb = "granted"\r
+    }\r
+\r
+    ElseIf ($Action -eq "Deny")\r
+    {\r
+        $KeyValue = 2\r
+        $PresentVerb = "Denying"\r
+        $PastVerb = "denied"\r
+    }\r
+\r
+    ElseIf ($Action -eq "Reset")\r
+    {\r
+        $KeyValue = 0\r
+        $PresentVerb = "Resetting"\r
+        $PastVerb = "reset"\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid action.  Valid actions are 'Grant', 'Deny', and 'Reset'."\r
+        break\r
+    }\r
+        \r
+   \r
+    Write-Host $PresentVerb "selected general access permissions of applications."\r
+    Write-Host ""      \r
+                  \r
+        Switch ("$Value")\r
+        {\r
+            AccountInformation\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessAccountInfo" -Type DWord -Value $KeyValue}\r
+\r
+            Calendar\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessCalendar" -Type DWord -Value $KeyValue}\r
+\r
+            CallHistory\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessCallHistory" -Type DWord -Value $KeyValue}\r
+\r
+            Camera\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessCamera" -Type DWord -Value $KeyValue}\r
+\r
+            Contacts\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessContacts" -Type DWord -Value $KeyValue}\r
+\r
+            E-Mail\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessEmail" -Type DWord -Value $KeyValue}\r
+\r
+            GazeInput\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessGazeInput" -Type DWord -Value $KeyValue}\r
+\r
+            Location\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessLocation" -Type DWord -Value $KeyValue}\r
+\r
+            Messaging\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessMessaging" -Type DWord -Value $KeyValue}\r
+\r
+            Microphone\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessMicrophone" -Type DWord -Value $KeyValue}\r
+\r
+            Motion\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessMotion" -Type DWord -Value $KeyValue}\r
+\r
+            Notifications\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessNotifications" -Type DWord -Value $KeyValue}\r
+\r
+            Phone\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessPhone" -Type DWord -Value $KeyValue}\r
+\r
+            Radios\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessRadios" -Type DWord -Value $KeyValue}\r
+\r
+            Tasks\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessTasks" -Type DWord -Value $KeyValue}\r
+\r
+            TrustedDevices\r
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessTrustedDevices" -Type DWord -Value $KeyValue}\r
+\r
+            All\r
+            {\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessAccountInfo" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessCalendar" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessCallHistory" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessCamera" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessContacts" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessEmail" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessGazeInput" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessLocation" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessMessaging" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessMicrophone" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessMotion" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessNotifications" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessPhone" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessRadios" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessTasks" -Type DWord -Value $KeyValue\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessTrustedDevices" -Type DWord -Value $KeyValue\r
+            }\r
+\r
+            Default\r
+            {\r
+                Write-Error "Invalid value.  Valid values are 'AccountInformation', 'Calendar', 'CallHistory', 'Camera', 'Contacts', 'E-Mail', 'GazeInput', 'Location', 'Messaging', 'Microphone', 'Motion', 'Notifications', 'Phone', 'Radios', 'Tasks', 'TrustedDevices', and 'All'."\r
+                throw\r
+            }\r
+        }\r
+                        \r
+    Write-Host "Selected general access permissions of applications" $PastVerb"."\r
+    Write-Host ""\r
+}
\ No newline at end of file
diff --git a/Development_Files/Privacy_Settings/Set-ApplicationsLibraryAccessPermissions.ps1 b/Development_Files/Privacy_Settings/Set-ApplicationsLibraryAccessPermissions.ps1
new file mode 100755 (executable)
index 0000000..fd40002
--- /dev/null
@@ -0,0 +1,115 @@
+Function Set-ApplicationsLibraryAccessPermissions\r
+{\r
+    Param([string]$Value, [string]$Action)\r
+     \r
+    If ($Action -eq "Grant")\r
+    {\r
+        $KeyValue = "Allow"\r
+        $PresentVerb = "Granting"\r
+        $PastVerb = "granted"\r
+    }\r
+\r
+    ElseIf ($Action -eq "Deny")\r
+    {\r
+        $KeyValue = "Deny"\r
+        $PresentVerb = "Denying"\r
+        $PastVerb = "denied"\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid action.  Valid actions are 'Grant' and 'Deny'."\r
+        break\r
+    }\r
+\r
+    Write-Host $PresentVerb "selected library access permissions for applications."\r
+    Write-Host ""\r
+\r
+    Switch ("$Value")\r
+    {\r
+        Documents\r
+        {\r
+            If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\documentsLibrary))\r
+            {\r
+                New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name documentsLibrary -Force | Out-Null\r
+            }\r
+            \r
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\documentsLibrary -Name "Value" -Type String -Value $KeyValue\r
+        }\r
+\r
+        Filesystem\r
+        {\r
+            If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\broadFileSystemAccess))\r
+            {\r
+                New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name broadFileSystemAccess -Force | Out-Null\r
+            }\r
+            \r
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\broadFileSystemAccess -Name "Value" -Type String -Value $KeyValue\r
+        }\r
+\r
+        Pictures\r
+        {\r
+            If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\picturesLibrary))\r
+            {\r
+                New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name picturesLibrary -Force | Out-Null\r
+            }\r
+            \r
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\picturesLibrary -Name "Value" -Type String -Value $KeyValue\r
+        }\r
+\r
+        Videos\r
+        {\r
+            If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\videosLibrary))\r
+            {\r
+                New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name videosLibrary -Force | Out-Null\r
+            }\r
+            \r
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\videosLibrary -Name "Value" -Type String -Value $KeyValue\r
+        }\r
+\r
+        All\r
+        {\r
+            #Documents\r
+                If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\documentsLibrary))\r
+                {\r
+                    New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name documentsLibrary -Force | Out-Null\r
+                }\r
+            \r
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\documentsLibrary -Name "Value" -Type String -Value $KeyValue\r
+\r
+            #Filesystem\r
+                If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\broadFileSystemAccess))\r
+                {\r
+                    New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name broadFileSystemAccess -Force | Out-Null\r
+                }\r
+                \r
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\broadFileSystemAccess -Name "Value" -Type String -Value $KeyValue\r
+\r
+            #Pictures\r
+                If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\picturesLibrary))\r
+                {\r
+                    New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name picturesLibrary -Force | Out-Null\r
+                }\r
+                \r
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\picturesLibrary -Name "Value" -Type String -Value $KeyValue\r
+            \r
+            #Videos\r
+                If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\videosLibrary))\r
+                {\r
+                    New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name videosLibrary -Force | Out-Null\r
+                }\r
+                \r
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\videosLibrary -Name "Value" -Type String -Value $KeyValue\r
+        }\r
+\r
+        Default\r
+        {\r
+            Write-Error "Invalid value. Valid values are 'Documents', 'Filesystem', 'Pictures', 'Videos', and 'All'."\r
+            throw\r
+        }\r
+    }\r
+\r
+    Write-Host "Selected library access permissions for applications." $PastVerb"."\r
+    Write-Host ""\r
+    \r
+}
\ No newline at end of file
diff --git a/Development_Files/Privacy_Settings/Set-AutomaticMapUpdates.ps1 b/Development_Files/Privacy_Settings/Set-AutomaticMapUpdates.ps1
new file mode 100755 (executable)
index 0000000..f50b0ec
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-AutomaticMapUpdates\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling automatic map updates."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SYSTEM\Maps" -Name "AutoUpdateEnabled" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Automatic map updates enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling automatic map updates."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\Maps" -Name "AutoUpdateEnabled" -Type DWord -Value 0\r
+\r
+        Write-Host "Automatic map updates disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Privacy_Settings/Set-BackgroundApplicationAccess.ps1 b/Development_Files/Privacy_Settings/Set-BackgroundApplicationAccess.ps1
new file mode 100755 (executable)
index 0000000..1d3edf9
--- /dev/null
@@ -0,0 +1,35 @@
+Function Set-BackgroundApplicationAccess\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling background access to applications."\r
+\r
+        Get-ChildItem -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications" | ForEach {
+                       Remove-ItemProperty -Path $_.PsPath -Name "Disabled" -ErrorAction SilentlyContinue
+                       Remove-ItemProperty -Path $_.PsPath -Name "DisabledByUser" -ErrorAction SilentlyContinue
+               }\r
+\r
+        Write-Host "Background access to applications enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling background access to applications."\r
+\r
+        Get-ChildItem -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications" -Exclude "Microsoft.Windows.Cortana*" | ForEach {
+                       Set-ItemProperty -Path $_.PsPath -Name "Disabled" -Type DWord -Value 1
+                       Set-ItemProperty -Path $_.PsPath -Name "DisabledByUser" -Type DWord -Value 1
+               }\r
+\r
+        Write-Host "Background access to applications disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Privacy_Settings/Set-CEIP_DataUploads.ps1 b/Development_Files/Privacy_Settings/Set-CEIP_DataUploads.ps1
new file mode 100755 (executable)
index 0000000..c6868c0
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-CEIP_DataUploads\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enable data uploads for customer experience improvement program."    \r
+\r
+        Remove-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\BFE\Parameters\Policy\Options -Name "EnablePacketQueue" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Data uploads for customer experience improvement program enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disable data uploads for customer experience improvement program."    \r
+\r
+        Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\BFE\Parameters\Policy\Options -Name "EnablePacketQueue" -Type DWord -Value "0"\r
+\r
+        Write-Host "Data uploads for customer experience improvement program disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Privacy_Settings/Set-Cortana_and_WebSearch.ps1 b/Development_Files/Privacy_Settings/Set-Cortana_and_WebSearch.ps1
new file mode 100755 (executable)
index 0000000..662c411
--- /dev/null
@@ -0,0 +1,104 @@
+Function Set-Cortana_and_WebSearch\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Cortana and Web Search."\r
+\r
+        #Enable Cortana.\r
+\r
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "CortanaConsent" -Type DWord -Value 1\r
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "CortanaGlobalConsent" -Type DWord -Value 1\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization" -Name "RestrictImplicitTextCollection" -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization" -Name "RestrictImplicitInkCollection" -Type DWord -Value 0\r
+\r
+            Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization\TrainedDataStore" -Name "HarvestContacts" -ErrorAction SilentlyContinue\r
+            Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Personalization\Settings" -Name "AcceptedPrivacyPolicy" -ErrorAction SilentlyContinue\r
+\r
+            Set-MicrosoftCortana -Value Restore\r
+            \r
+            Set-CortanaButton -Value Show\r
+            Stop-Process -Name explorer\r
+                               \r
+        #Enable Web Search.\r
+       \r
+            Remove-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Recurse -ErrorAction SilentlyContinue \r
+            Remove-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "AllowSearchToUseLocation" -ErrorAction SilentlyContinue\r
+            Remove-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "BingSearchEnabled" -ErrorAction SilentlyContinue\r
+            \r
+            #Allow Internet Traffic of Web Search Function\r
+                #Windows 10 Allow\r
+                    Remove-NetFirewallRule -DisplayName "Block Web Search 10 - Ingoing"\r
+                    Remove-NetFirewallRule -DisplayName "Block Web Search 10 - Outgoing"\r
+                #Windows 11 Allow\r
+                    Remove-NetFirewallRule -DisplayName "Block Web Search 11 - Ingoing"\r
+                    Remove-NetFirewallRule -DisplayName "Block Web Search 11 - Outgoing"\r
+                \r
+        Write-Host "Cortana and Web Search enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Cortana and Web Search."\r
+\r
+        #Make "Windows Search", "Settings", "InputPersonalization", and "TrainedDataStore" keys.\r
+            If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search"))\r
+            {\r
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name "Windows Search" -Force | Out-Null\r
+            }\r
+\r
+            If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Personalization\Settings"))\r
+            {\r
+                New-Item -Path HKCU:\SOFTWARE\Microsoft\Personalization -Name "Settings" -Force | Out-Null\r
+            }\r
+\r
+            If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization"))\r
+            {\r
+                New-Item -Path HKCU:\SOFTWARE\Microsoft -Name "InputPersonalization" -Force | Out-Null\r
+            }\r
+\r
+            If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization\TrainedDataStore"))\r
+            {\r
+                New-Item -Path HKCU:\SOFTWARE\Microsoft\InputPersonalization -Name "TrainedDataStore" -Force | Out-Null\r
+            }\r
+                    \r
+        #Disable Cortana\r
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "CortanaConsent" -Type DWord -Value 0\r
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "CortanaGlobalConsent" -Type DWord -Value 0    \r
+            Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name "AllowCortana" -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Personalization\Settings" -Name "AcceptedPrivacyPolicy" -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization" -Name "RestrictImplicitTextCollection" -Type DWord -Value 1\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization" -Name "RestrictImplicitInkCollection" -Type DWord -Value 1\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization\TrainedDataStore" -Name "HarvestContacts" -Type DWord -Value 0\r
+\r
+            Set-MicrosoftCortana -Value Remove\r
+            \r
+            Set-CortanaButton -Value Hide\r
+            Stop-Process -Name explorer\r
+               \r
+        #Disable Web Search\r
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "AllowSearchToUseLocation" -Type DWord -Value 0\r
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "BingSearchEnabled" -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name "ConnectedSearchUseWeb" -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name "ConnectedSearchUseWebOverMeteredConnections" -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name "DisableWebSearch" -Type DWord -Value 1\r
+\r
+            #Block Internet Traffic of Web Search Function\r
+                #Windows 10 Block\r
+                    New-NetFirewallRule -DisplayName "Block Web Search 10 - Ingoing" -Direction Inbound -Program "C:\Windows\SystemApps\Microsoft.Windows.Search_cw5n1h2txyewy\SearchApp.exe" -Action Block\r
+                    New-NetFirewallRule -DisplayName "Block Web Search 10 - Outgoing" -Direction Outbound -Program "C:\Windows\SystemApps\Microsoft.Windows.Search_cw5n1h2txyewy\SearchApp.exe" -Action Block\r
+                #Windows 11 Block\r
+                    New-NetFirewallRule -DisplayName "Block Web Search 11 - Ingoing" -Direction Inbound -Program "C:\Windows\SystemApps\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\SearchHost.exe" -Action Block\r
+                    New-NetFirewallRule -DisplayName "Block Web Search 11 - Outgoing" -Direction Outbound -Program "C:\Windows\SystemApps\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\SearchHost.exe" -Action Block\r
+    \r
+        Write-Host "Cortana and Web Search disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Privacy_Settings/Set-DiagTrack.ps1 b/Development_Files/Privacy_Settings/Set-DiagTrack.ps1
new file mode 100755 (executable)
index 0000000..011199c
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-DiagTrack\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling DiagTrack."\r
+\r
+        Set-Service -Name DiagTrack -StartupType Automatic\r
+        Start-Service -Name DiagTrack\r
+\r
+        Write-Host "DiagTrack enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling DiagTrack."\r
+\r
+        Set-Service -Name DiagTrack -StartupType Disabled\r
+        Stop-Service -Name DiagTrack\r
+\r
+        Write-Host "DiagTrack disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Privacy_Settings/Set-ErrorReporting.ps1 b/Development_Files/Privacy_Settings/Set-ErrorReporting.ps1
new file mode 100755 (executable)
index 0000000..ab25228
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-ErrorReporting\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling error reporting."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name "Disabled" -ErrorAction SilentlyContinue
+        Enable-ScheduledTask -TaskName "Microsoft\Windows\Windows Error Reporting\QueueReporting"\r
+\r
+        Write-Host "Error reporting enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling error reporting."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name "Disabled" -Type DWord -Value 1
+        Disable-ScheduledTask -TaskName "Microsoft\Windows\Windows Error Reporting\QueueReporting"\r
+\r
+        Write-Host "Error reporting disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Privacy_Settings/Set-Feedback.ps1 b/Development_Files/Privacy_Settings/Set-Feedback.ps1
new file mode 100755 (executable)
index 0000000..52d5edc
--- /dev/null
@@ -0,0 +1,40 @@
+Function Set-Feedback\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling feedback."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules" -Name "NumberOfSIUFInPeriod" -ErrorAction SilentlyContinue\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "DoNotShowFeedbackNotifications" -ErrorAction SilentlyContinue\r
+        Enable-ScheduledTask -TaskName "Microsoft\Windows\Feedback\Siuf\DmClient" -ErrorAction SilentlyContinue\r
+        Enable-ScheduledTask -TaskName "Microsoft\Windows\Feedback\Siuf\DmClientOnScenarioDownload" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Feedback enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling feedback."\r
+\r
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules"))\r
+        {\r
+               New-Item -Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules" -Force | Out-Null\r
+        }\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules" -Name "NumberOfSIUFInPeriod" -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "DoNotShowFeedbackNotifications" -Type DWord -Value 1\r
+        Disable-ScheduledTask -TaskName "Microsoft\Windows\Feedback\Siuf\DmClient" -ErrorAction SilentlyContinue\r
+        Disable-ScheduledTask -TaskName "Microsoft\Windows\Feedback\Siuf\DmClientOnScenarioDownload" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Feedback disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Privacy_Settings/Set-InputPersonalization.ps1 b/Development_Files/Privacy_Settings/Set-InputPersonalization.ps1
new file mode 100755 (executable)
index 0000000..57d933f
--- /dev/null
@@ -0,0 +1,37 @@
+Function Set-InputPersonalization\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling input personalization."\r
+\r
+        #Remove the appropriate registry settings and keys.\r
+            Remove-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\InputPersonalization -Recurse -ErrorAction SilentlyContinue\r
+                    \r
+        Write-Host "Input personalization enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling input personalization."\r
+\r
+        #Make "Input Personalization" key.\r
+            If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\InputPersonalization))\r
+            {\r
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft -Name "InputPersonalization" -Force | Out-Null\r
+            }\r
+\r
+        #Set appropriate registry settings.\r
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\InputPersonalization -Name "AllowInputPersonalization" -Type DWord -Value "0"\r
+\r
+        Write-Host "Input personalization disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Privacy_Settings/Set-LanguagelistAccess.ps1 b/Development_Files/Privacy_Settings/Set-LanguagelistAccess.ps1
new file mode 100755 (executable)
index 0000000..50f7a34
--- /dev/null
@@ -0,0 +1,42 @@
+Function Set-LanguagelistAccess\r
+{\r
+    Param([string]$Value)\r
+\r
+    <#If ($Value -eq "Grant")\r
+    {\r
+        Write-Host "Setting website access to the languagelist to be granted."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\International\User Profile" -Name HttpAcceptLanguageOptOut -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Internet Explorer\International" -Name AcceptLanguage -Type String -Value ""\r
+\r
+        Write-Host "Website access to the languagelist set to be granted."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Deny")\r
+    {\r
+        Write-Host "Setting website access to the languagelist to be denied."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Internet Explorer\International" -Name AcceptLanguage\r
+\r
+        Write-Host "Website access to the languagelist set to be denied."\r
+        Write-Host ""\r
+    }#>\r
+\r
+    If ($Value -eq "Deny")\r
+    {\r
+        Write-Host "Setting website access to the languagelist to be denied."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\International\User Profile" -Name HttpAcceptLanguageOptOut -Type DWord -Value 1\r
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Internet Explorer\International" -Name AcceptLanguage -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Website access to the languagelist set to be denied."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        #Write-Error "Invalid value.  Valid values are 'Grant' and 'Deny'."\r
+        Write-Error "Invalid value.  Valid value is 'Deny'.  To grant permission, go to the Windows settings application under 'Privacy -> General', and set it manually."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Privacy_Settings/Set-LocationService_and_Sensors.ps1 b/Development_Files/Privacy_Settings/Set-LocationService_and_Sensors.ps1
new file mode 100755 (executable)
index 0000000..ab0c340
--- /dev/null
@@ -0,0 +1,42 @@
+Function Set-LocationService_and_Sensors\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling location service and sensors."\r
+\r
+        #Remove the appropriate registry settings and keys.\r
+            Remove-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors -Recurse -ErrorAction SilentlyContinue\r
+                            \r
+        Write-Host "Location services and sensors enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling location service and sensors."\r
+\r
+        #Make "LocationAndSensors" key.\r
+            If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors))\r
+            {\r
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name LocationAndSensors -Force | Out-Null\r
+            }\r
+       \r
+        #Deactivate location service.\r
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors -Name "DisableLocation" -Type DWord -Value "1"\r
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors -Name "DisableLocationScripting" -Type DWord -Value "1"\r
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors -Name "DisableWindowsLocationProvider" -Type DWord -Value "1"\r
+\r
+        #Deactivate sensors.\r
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors -Name "DisableSensors" -Type DWord -Value "1"\r
+        \r
+        Write-Host "Location services and sensors disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Privacy_Settings/Set-LocationTracking.ps1 b/Development_Files/Privacy_Settings/Set-LocationTracking.ps1
new file mode 100755 (executable)
index 0000000..bb3d8d3
--- /dev/null
@@ -0,0 +1,43 @@
+Function Set-LocationTracking\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling location tracking."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location"))\r
+        {\r
+               New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Force | Out-Null\r
+        }\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Name "Value" -Type String -Value "Allow"\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Sensor\Overrides\{BFA794E4-F964-4FDB-90F6-51056BFE4B44}" -Name "SensorPermissionState" -Type DWord -Value 1\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\lfsvc\Service\Configuration" -Name "Status" -Type DWord -Value 1\r
+\r
+        Write-Host "Location tracking enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling location tracking."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location"))\r
+        {\r
+               New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Force | Out-Null\r
+        }\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Name "Value" -Type String -Value "Deny"\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Sensor\Overrides\{BFA794E4-F964-4FDB-90F6-51056BFE4B44}" -Name "SensorPermissionState" -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\lfsvc\Service\Configuration" -Name "Status" -Type DWord -Value 0\r
+\r
+        Write-Host "Location tracking disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Privacy_Settings/Set-SmartScreenFilter.ps1 b/Development_Files/Privacy_Settings/Set-SmartScreenFilter.ps1
new file mode 100755 (executable)
index 0000000..7cb1caf
--- /dev/null
@@ -0,0 +1,37 @@
+Function Set-SmartScreenFilter\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Smart Screen Filter."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableSmartScreen" -ErrorAction SilentlyContinue\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\PhishingFilter" -Name "EnabledV9" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Smart Screen Filter enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Smart Screen Filter."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableSmartScreen" -Type DWord -Value 0\r
+       \r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\PhishingFilter"))\r
+        {\r
+            New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\PhishingFilter" -Force | Out-Null\r
+        }\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\PhishingFilter" -Name "EnabledV9" -Type DWord -Value 0\r
+\r
+        Write-Host "Smart Screen Filter disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Privacy_Settings/Set-TailoredExperiences.ps1 b/Development_Files/Privacy_Settings/Set-TailoredExperiences.ps1
new file mode 100755 (executable)
index 0000000..6a4e85d
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-TailoredExperiences\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling tailored experiences."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableTailoredExperiencesWithDiagnosticData" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Tailored experiences enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling tailored experiences."\r
+\r
+        If (!(Test-Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent"))\r
+        {\r
+               New-Item -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Force | Out-Null\r
+        }\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableTailoredExperiencesWithDiagnosticData" -Type DWord -Value 1\r
+\r
+        Write-Host "Tailored experiences disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Privacy_Settings/Set-Telemetry.ps1 b/Development_Files/Privacy_Settings/Set-Telemetry.ps1
new file mode 100755 (executable)
index 0000000..b3d03e7
--- /dev/null
@@ -0,0 +1,49 @@
+Function Set-Telemetry\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling telemetry."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 3
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 3
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry" -ErrorAction SilentlyContinue
+           Enable-ScheduledTask -TaskName "Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser" | Out-Null
+           Enable-ScheduledTask -TaskName "Microsoft\Windows\Application Experience\ProgramDataUpdater" | Out-Null
+           Enable-ScheduledTask -TaskName "Microsoft\Windows\Autochk\Proxy" | Out-Null
+           Enable-ScheduledTask -TaskName "Microsoft\Windows\Customer Experience Improvement Program\Consolidator" | Out-Null
+           Enable-ScheduledTask -TaskName "Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" | Out-Null
+           Enable-ScheduledTask -TaskName "Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" | Out-Null\r
+        \r
+        Set-DiagTrack -Value Enable\r
+\r
+        Write-Host "Telemetry enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling telemetry."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\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
+           Disable-ScheduledTask -TaskName "Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser" | Out-Null
+           Disable-ScheduledTask -TaskName "Microsoft\Windows\Application Experience\ProgramDataUpdater" | Out-Null
+           Disable-ScheduledTask -TaskName "Microsoft\Windows\Autochk\Proxy" | Out-Null
+           Disable-ScheduledTask -TaskName "Microsoft\Windows\Customer Experience Improvement Program\Consolidator" | Out-Null
+           Disable-ScheduledTask -TaskName "Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" | Out-Null
+           Disable-ScheduledTask -TaskName "Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" | Out-Null\r
+\r
+        Set-DiagTrack -Value Disable\r
+        \r
+        Write-Host "Telemetry disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Privacy_Settings/Set-UserActivityHistory.ps1 b/Development_Files/Privacy_Settings/Set-UserActivityHistory.ps1
new file mode 100755 (executable)
index 0000000..a2435f2
--- /dev/null
@@ -0,0 +1,37 @@
+Function Set-UserActivityHistory\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling user activity history."\r
+\r
+        Remove-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\System -Name "PublishUserActivities" -ErrorAction SilentlyContinue\r
+        Remove-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\System -Name "UploadUserActivities" -ErrorAction SilentlyContinue\r
+        Remove-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\System -Name "EnableActivityFeed" -ErrorAction SilentlyContinue\r
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer -Name NoRecentDocsHistory -Type DWord -Value 0\r
+        Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name Start_TrackDocs -Type DWord -Value 1\r
+\r
+        Write-Host "User activity history enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling user activity history."\r
+\r
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\System -Name "PublishUserActivities" -Type DWord -Value "0"\r
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\System -Name "UploadUserActivities" -Type DWord -Value "0"\r
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\System -Name "EnableActivityFeed" -Type DWord -Value "0"\r
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer -Name NoRecentDocsHistory -Type DWord -Value 1\r
+        Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name Start_TrackDocs -Type DWord -Value 0\r
+\r
+        Write-Host "User activity history disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Privacy_Settings/Set-WAP_PushService.ps1 b/Development_Files/Privacy_Settings/Set-WAP_PushService.ps1
new file mode 100755 (executable)
index 0000000..87fa7d1
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-WAP_PushService\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Wireless Application Protocol Push Service."\r
+\r
+        Set-Service "dmwappushservice" -StartupType Automatic\r
+        Start-Service "dmwappushservice"\r
+\r
+        Write-Host "Wireless Application Protocol Push Service enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Wireless Application Protocol Push Service."\r
+\r
+        Set-Service "dmwappushservice" -StartupType Disabled\r
+        Stop-Service "dmwappushservice"\r
+\r
+        Write-Host "Wireless Application Protocol Push Service disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Security_Settings/Set-ControlledFolderAccess.ps1 b/Development_Files/Security_Settings/Set-ControlledFolderAccess.ps1
new file mode 100755 (executable)
index 0000000..6feee4d
--- /dev/null
@@ -0,0 +1,33 @@
+Function Set-ControlledFolderAccess\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Windows Defender must be active for controlled folders.  Enabling Windows Defender."\r
+\r
+        Set-WindowsDefender -Value Enable\r
+        \r
+        Write-Host "Enabling controlled folder access."\r
+\r
+        Set-MpPreference -EnableControlledFolderAccess Enabled\r
+                \r
+        Write-Host "Controlled folder access enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling controlled folder access."\r
+\r
+        Set-MpPreference -EnableControlledFolderAccess Disabled\r
+\r
+        Write-Host "Controlled folder access disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Security_Settings/Set-CoreIsolationMemoryIntegrity.ps1 b/Development_Files/Security_Settings/Set-CoreIsolationMemoryIntegrity.ps1
new file mode 100755 (executable)
index 0000000..fc314f6
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-CoreIsolationMemoryIntegrity\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Core Isolation Memory Integrity."\r
+\r
+        If (!(Test-Path "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity"))\r
+        {\r
+                   New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" -Name "Enabled" -Type DWord -Value 1\r
+\r
+        Write-Host "Core Isolation Memory Integrity enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Core Isolation Memory Integrity."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" -Name "Enabled" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Core Isolation Memory Integrity disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Security_Settings/Set-CurrentNetworkProfile.ps1 b/Development_Files/Security_Settings/Set-CurrentNetworkProfile.ps1
new file mode 100755 (executable)
index 0000000..78aeb82
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-CurrentNetworkProfile\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Private")\r
+    {\r
+        Write-Host "Setting current network profile to private."\r
+\r
+        Set-NetConnectionProfile -NetworkCategory Private\r
+        \r
+        Write-Host "Current network profile set to private."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Public")\r
+    {\r
+        Write-Host "Setting current network profile to public."\r
+\r
+        Set-NetConnectionProfile -NetworkCategory Public\r
+\r
+        Write-Host "Current network profile set to public."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Private' and 'Public'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Security_Settings/Set-DEP_Policy.ps1 b/Development_Files/Security_Settings/Set-DEP_Policy.ps1
new file mode 100755 (executable)
index 0000000..90d3618
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-DEP_Policy\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "OptIn")\r
+    {\r
+        Write-Host "Setting Data Execution Prevention (D.E.P.) policy to OptIn."
+
+        bcdedit /set `{current`} nx OptIn
+
+        Write-Host "Data Execution Prevention (D.E.P.) policy set to OptIn."
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "OptOut")\r
+    {\r
+        Write-Host "Setting Data Execution Prevention (D.E.P.) policy to OptOut."
+
+        bcdedit /set `{current`} nx OptOut
+
+        Write-Host "Data Execution Prevention (D.E.P.) policy set to OptOut."
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'OptIn' and 'OptOut'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Security_Settings/Set-DotNetStrongCryptography.ps1 b/Development_Files/Security_Settings/Set-DotNetStrongCryptography.ps1
new file mode 100755 (executable)
index 0000000..18a03fe
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-DotNetStrongCryptography\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling .NET Strong Cryptography."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Type DWord -Value 1\r
+\r
+        Write-Host ".NET Strong Cryptography disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling .NET Strong Cryptography."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host ".NET Strong Cryptography disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Security_Settings/Set-F8_BootMenuOptions.ps1 b/Development_Files/Security_Settings/Set-F8_BootMenuOptions.ps1
new file mode 100755 (executable)
index 0000000..05a8ef5
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-F8_BootMenuOptions\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling F8 boot menu options."\r
+\r
+        bcdedit /set `{current`} bootmenupolicy Legacy\r
+\r
+        Write-Host "F8 boot menu options enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling F8 boot menu options."\r
+\r
+        bcdedit /set `{current`} bootmenupolicy Standard\r
+\r
+        Write-Host "F8 boot menu options disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Security_Settings/Set-Firewall.ps1 b/Development_Files/Security_Settings/Set-Firewall.ps1
new file mode 100755 (executable)
index 0000000..8245279
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-Firewall\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling firewall."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile" -Name "EnableFirewall" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Firewall enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling firewall."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile"))\r
+        {\r
+               New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile" -Force | Out-Null\r
+        }\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile" -Name "EnableFirewall" -Type DWord -Value 0\r
+\r
+        Write-Host "Firewall disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Security_Settings/Set-ImplicitAdministrativeShares.ps1 b/Development_Files/Security_Settings/Set-ImplicitAdministrativeShares.ps1
new file mode 100755 (executable)
index 0000000..410aa3f
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-ImplicitAdministrativeShares\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling implicit administrative shares."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "AutoShareWks" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Implicit administrative shares enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling implicit administrative shares."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "AutoShareWks" -Type DWord -Value 0\r
+\r
+        Write-Host "Implicit administrative shares disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Security_Settings/Set-LLMNR.ps1 b/Development_Files/Security_Settings/Set-LLMNR.ps1
new file mode 100755 (executable)
index 0000000..62a6a7f
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-LLMNR\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Link-Local Multicast Name Resolution (L.L.M.N.R.) protocol."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Name "EnableMulticast" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Link-Local Multicast Name Resolution (L.L.M.N.R.) protocol enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Link-Local Multicast Name Resolution (L.L.M.N.R.) protocol."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient"))\r
+        {\r
+               New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Force | Out-Null\r
+        }\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Name "EnableMulticast" -Type DWord -Value 0\r
+\r
+        Write-Host "Link-Local Multicast Name Resolution (L.L.M.N.R.) protocol disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Security_Settings/Set-MeltdownCompatibilityFlag.ps1 b/Development_Files/Security_Settings/Set-MeltdownCompatibilityFlag.ps1
new file mode 100755 (executable)
index 0000000..f37c3c6
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-MeltdownCompatibilityFlag\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Meltdown compatibility flag."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat" -Name "cadca5fe-87d3-4b96-b7fb-a231484277cc" -Type DWord -Value 0\r
+\r
+        Write-Host "Meltdown compatibility flag enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Meltdown compatibility flag."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat" -Name "cadca5fe-87d3-4b96-b7fb-a231484277cc" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Meltdown compatibility flag disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Security_Settings/Set-NetworkDeviceAutomaticInstallation.ps1 b/Development_Files/Security_Settings/Set-NetworkDeviceAutomaticInstallation.ps1
new file mode 100755 (executable)
index 0000000..903179c
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-NetworkDeviceAutomaticInstallation\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling automatic installation of network devices."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\NcdAutoSetup\Private" -Name "AutoSetup" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Automatic installation of network devices enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling automatic installation of network devices."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\NcdAutoSetup\Private"))\r
+        {\r
+               New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\NcdAutoSetup\Private" -Force | Out-Null\r
+        }\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\NcdAutoSetup\Private" -Name "AutoSetup" -Type DWord -Value 0\r
+\r
+        Write-Host "Automatic installation of network devices disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Security_Settings/Set-RemoteShellAccess.ps1 b/Development_Files/Security_Settings/Set-RemoteShellAccess.ps1
new file mode 100755 (executable)
index 0000000..0820b9d
--- /dev/null
@@ -0,0 +1,51 @@
+Function Set-RemoteShellAccess\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling remote shell access."\r
+\r
+        #Remove appropriate registry settings and keys.\r
+            Remove-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM -Recurse -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Remote shell access enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling remote shell access."\r
+\r
+        #Make "WinRM", "Service", and "WinRS" keys.\r
+            If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM))\r
+            {\r
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name "WinRM" -Force | Out-Null\r
+            }\r
+   \r
+            ####################\r
+\r
+            If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service))\r
+            {\r
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM -Name "Service" -Force | Out-Null\r
+            }\r
+\r
+            ####################\r
+\r
+            If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service\WinRS))\r
+            {\r
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service -Name "WinRS" -Force | Out-Null\r
+            }\r
+\r
+        #Set appropriate registry settings.\r
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service\WinRS -Name "AllowRemoteShellAccess" -Type DWord -Value "0"\r
+\r
+        Write-Host "Remote shell access disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Security_Settings/Set-SMB_Server.ps1 b/Development_Files/Security_Settings/Set-SMB_Server.ps1
new file mode 100755 (executable)
index 0000000..3c0158f
--- /dev/null
@@ -0,0 +1,30 @@
+Function Set-SMB_Server\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Server Message Block Server."\r
+\r
+        Set-SmbServerConfiguration -EnableSMB2Protocol $true -Force\r
+\r
+        Write-Host "Server Message Block Server enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Server Message Block Server."\r
+\r
+        Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force\r
+        Set-SmbServerConfiguration -EnableSMB2Protocol $false -Force\r
+\r
+        Write-Host "Server Message Block Server disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Security_Settings/Set-SharingMappedDrivesBetweenUsers.ps1 b/Development_Files/Security_Settings/Set-SharingMappedDrivesBetweenUsers.ps1
new file mode 100755 (executable)
index 0000000..2893dec
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-SharingMappedDrivesBetweenUsers\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling sharing mapped drives between users."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLinkedConnections" -Type DWord -Value 1\r
+\r
+        Write-Host "Sharing mapped drives between users enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling sharing mapped drives between users."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLinkedConnections" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Sharing mapped drives between users disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Security_Settings/Set-UAC_Level.ps1 b/Development_Files/Security_Settings/Set-UAC_Level.ps1
new file mode 100755 (executable)
index 0000000..d1675e3
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-UAC_Level\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Low")\r
+    {\r
+        Write-Host "Setting User Account Control Level to 'Low'."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ConsentPromptBehaviorAdmin" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "PromptOnSecureDesktop" -Type DWord -Value 0\r
+\r
+        Write-Host "User Account Control Level set to 'Low'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "High")\r
+    {\r
+        Write-Host "Setting User Account Control Level to 'High'."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ConsentPromptBehaviorAdmin" -Type DWord -Value 5
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "PromptOnSecureDesktop" -Type DWord -Value 1\r
+\r
+        Write-Host "User Account Control Level set to 'High'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Low' and 'High'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Security_Settings/Set-UnknownNetworksProfile.ps1 b/Development_Files/Security_Settings/Set-UnknownNetworksProfile.ps1
new file mode 100755 (executable)
index 0000000..ac7a1bb
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-UnknownNetworksProfile\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Private")\r
+    {\r
+        Write-Host "Setting unknown networks profile to private."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\010103000F0000F0010000000F0000F0C967A3643C3AD745950DA7859209176EF5B87C875FA20DF21951640E807D7C24"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\010103000F0000F0010000000F0000F0C967A3643C3AD745950DA7859209176EF5B87C875FA20DF21951640E807D7C24" -Force | Out-Null
+           }
+           \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\010103000F0000F0010000000F0000F0C967A3643C3AD745950DA7859209176EF5B87C875FA20DF21951640E807D7C24" -Name "Category" -Type DWord -Value 1\r
+        \r
+        Write-Host "Unknown networks profile set to private."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Public")\r
+    {\r
+        Write-Host "Setting unknown networks profile to public."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\010103000F0000F0010000000F0000F0C967A3643C3AD745950DA7859209176EF5B87C875FA20DF21951640E807D7C24" -Name "Category" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Unknown networks profile set to public."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Private' and 'Public'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Security_Settings/Set-WindowsDefender.ps1 b/Development_Files/Security_Settings/Set-WindowsDefender.ps1
new file mode 100755 (executable)
index 0000000..86a4d78
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-WindowsDefender\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Windows Defender."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Defender\Real-Time Protection" -Name DisableRealtimeMonitoring -Value 0\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Defender\Features" -Name TamperProtection -Value 5\r
+\r
+        Write-Host "Windows Defender enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Windows Defender."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Defender\Real-Time Protection" -Name DisableRealtimeMonitoring -Value 1\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Defender\Features" -Name TamperProtection -Value 4\r
+\r
+        Write-Host "Windows Defender disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Security_Settings/Set-WindowsDefenderCloud.ps1 b/Development_Files/Security_Settings/Set-WindowsDefenderCloud.ps1
new file mode 100755 (executable)
index 0000000..24d11e4
--- /dev/null
@@ -0,0 +1,36 @@
+Function Set-WindowsDefenderCloud\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Windows Defender Cloud."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet" -Name "SpynetReporting" -ErrorAction SilentlyContinue\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet" -Name "SubmitSamplesConsent" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Windows Defender Cloud enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Windows Defender Cloud."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet"))\r
+        {\r
+               New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet" -Force | Out-Null\r
+        }\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet" -Name "SpynetReporting" -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet" -Name "SubmitSamplesConsent" -Type DWord -Value 2\r
+\r
+        Write-Host "Windows Defender Cloud disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Security_Settings/Set-WindowsScriptHost.ps1 b/Development_Files/Security_Settings/Set-WindowsScriptHost.ps1
new file mode 100755 (executable)
index 0000000..46e7fc4
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-WindowsScriptHost\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Windows Script Host."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Script Host\Settings" -Name "Enabled" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Windows Script Host enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Windows Script Host."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Script Host\Settings" -Name "Enabled" -Type DWord -Value 0\r
+\r
+        Write-Host "Windows Script Host disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Server_Specific_Settings/Set-CtrlAltDelLogin.ps1 b/Development_Files/Server_Specific_Settings/Set-CtrlAltDelLogin.ps1
new file mode 100755 (executable)
index 0000000..fb69abb
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-CtrlAltDelLogin\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Ctrl+Alt+Del requirement before login."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "DisableCAD" -Type DWord -Value 0\r
+\r
+        Write-Host "Ctrl+Alt+Del requirement before login enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Ctrl+Alt+Del requirement before login."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "DisableCAD" -Type DWord -Value 1\r
+\r
+        Write-Host "Ctrl+Alt+Del requirement before login disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Server_Specific_Settings/Set-IE_EnhancedSecurity.ps1 b/Development_Files/Server_Specific_Settings/Set-IE_EnhancedSecurity.ps1
new file mode 100755 (executable)
index 0000000..510a03a
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-IE_EnhancedSecurity\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Internet Explorer enhanced security."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" -Name "IsInstalled" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}" -Name "IsInstalled" -Type DWord -Value 1\r
+\r
+        Write-Host "Internet Explorer enhanced security enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Internet Explorer enhanced security."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" -Name "IsInstalled" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}" -Name "IsInstalled" -Type DWord -Value 0\r
+\r
+        Write-Host "Internet Explorer enhanced security disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Server_Specific_Settings/Set-PasswordPolicy.ps1 b/Development_Files/Server_Specific_Settings/Set-PasswordPolicy.ps1
new file mode 100755 (executable)
index 0000000..9643c63
--- /dev/null
@@ -0,0 +1,37 @@
+Function Set-PasswordPolicy\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling password complexity and maximum age requirements."\r
+\r
+        $tmpfile = New-TemporaryFile
+           secedit /export /cfg $tmpfile /quiet
+           (Get-Content $tmpfile).Replace("PasswordComplexity = 0", "PasswordComplexity = 1").Replace("MaximumPasswordAge = -1", "MaximumPasswordAge = 42") | Out-File $tmpfile
+           secedit /configure /db "$env:SYSTEMROOT\security\database\local.sdb" /cfg $tmpfile /areas SECURITYPOLICY | Out-Null
+           Remove-Item -Path $tmpfile\r
+\r
+        Write-Host "Password complexity and maximum age requirements enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling password complexity and maximum age requirements."\r
+\r
+        $tmpfile = New-TemporaryFile
+           secedit /export /cfg $tmpfile /quiet
+           (Get-Content $tmpfile).Replace("PasswordComplexity = 1", "PasswordComplexity = 0").Replace("MaximumPasswordAge = 42", "MaximumPasswordAge = -1") | Out-File $tmpfile
+           secedit /configure /db "$env:SYSTEMROOT\security\database\local.sdb" /cfg $tmpfile /areas SECURITYPOLICY | Out-Null
+           Remove-Item -Path $tmpfile\r
+\r
+        Write-Host "Password complexity and maximum age requirements disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Server_Specific_Settings/Set-ServerManagerAtLogin.ps1 b/Development_Files/Server_Specific_Settings/Set-ServerManagerAtLogin.ps1
new file mode 100755 (executable)
index 0000000..d55fc35
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-ServerManagerAtLogin\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting server manager to be shown at login."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Server\ServerManager" -Name "DoNotOpenAtLogon" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Server manager set to be shown at login."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting server manager to be hidden at login."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Server\ServerManager"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Server\ServerManager" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Server\ServerManager" -Name "DoNotOpenAtLogon" -Type DWord -Value 1\r
+\r
+        Write-Host "Server manager set to be hidden at login."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}\r
diff --git a/Development_Files/Server_Specific_Settings/Set-ShutdownEventTracker.ps1 b/Development_Files/Server_Specific_Settings/Set-ShutdownEventTracker.ps1
new file mode 100755 (executable)
index 0000000..731dc1f
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-ShutdownEventTracker\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling shutdown event tracker."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Reliability" -Name "ShutdownReasonOn" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Shutdown event tracker enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling shutdown event tracker."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Reliability"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Reliability" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Reliability" -Name "ShutdownReasonOn" -Type DWord -Value 0\r
+\r
+        Write-Host "Shutdown event tracker disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Server_Specific_Settings/Set-Sound.ps1 b/Development_Files/Server_Specific_Settings/Set-Sound.ps1
new file mode 100755 (executable)
index 0000000..aa23dc2
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-Sound\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling sound."\r
+\r
+        Set-Service "Audiosrv" -StartupType Automatic
+           Start-Service "Audiosrv"\r
+\r
+        Write-Host "Sound enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling sound."\r
+\r
+        Set-Service "Audiosrv" -StartupType Manual
+        Stop-Service "Audiosrv"
+           \r
+        Write-Host "Sound disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-Autoplay.ps1 b/Development_Files/Service_Settings/Set-Autoplay.ps1
new file mode 100755 (executable)
index 0000000..da89fc5
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-Autoplay\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling autoplay."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers" -Name "DisableAutoplay" -Type DWord -Value 0\r
+\r
+        Write-Host "Autoplay enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling autoplay."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers" -Name "DisableAutoplay" -Type DWord -Value 1\r
+\r
+        Write-Host "Autoplay disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-BIOS_Time.ps1 b/Development_Files/Service_Settings/Set-BIOS_Time.ps1
new file mode 100755 (executable)
index 0000000..924dcb3
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-BIOS_Time\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Local")\r
+    {\r
+        Write-Host "Setting B.I.O.S. time to local time."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" -Name "RealTimeIsUniversal" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "B.I.O.S. time set to local time."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "UTC")\r
+    {\r
+        Write-Host "Setting B.I.O.S. time to U.T.C.."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" -Name "RealTimeIsUniversal" -Type DWord -Value 1\r
+\r
+        Write-Host "B.I.O.S. time set to U.T.C.."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Local' and 'UTC'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-Biometrics.ps1 b/Development_Files/Service_Settings/Set-Biometrics.ps1
new file mode 100755 (executable)
index 0000000..32d9416
--- /dev/null
@@ -0,0 +1,57 @@
+Function Set-Biometrics\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling biometrics."\r
+\r
+        #Remove the appropriate registry settings and keys.\r
+            Remove-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Biometrics -Recurse -ErrorAction SilentlyContinue\r
+    \r
+        #Start WbioSrvc and, Enable its startup.\r
+            Set-Service -Name WbioSrvc -StartupType Automatic\r
+            Start-Service -Name WbioSrvc\r
+\r
+        Write-Host "Biometrics enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling biometrics."\r
+\r
+        #Disable biometrics in registry settings.\r
+\r
+            #Make "Biometrics" and "Credential Provider" keys.\r
+                If (!(Test-Path HKLM:\SOFTWARE\Policies\Microsoft\Biometrics))\r
+                {\r
+                    New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft -Name "Biometrics" -Force | Out-Null\r
+                }\r
+\r
+                ####################\r
+        \r
+                If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Biometrics\Credential Provider"))\r
+                {\r
+                    New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Biometrics -Name "Credential Provider" -Force | Out-Null\r
+                }\r
+               \r
+            #Set the appropriate registry settings.\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Biometrics -Name "Enabled" -Type DWord -Value 0\r
+                Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Biometrics\Credential Provider" -Name "Enabled" -Type DWord -Value 0\r
+                Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Biometrics\Credential Provider" -Name "Domain Accounts" -Type DWord -Value 0\r
+        \r
+\r
+        #Stop WbioSrvc and, disable its startup.\r
+            Set-Service -Name WbioSrvc -StartupType Disabled\r
+            Stop-Service -Name WbioSrvc\r
+\r
+        Write-Host "Biometrics disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Service_Settings/Set-DisplayandSleepModeTimeouts.ps1 b/Development_Files/Service_Settings/Set-DisplayandSleepModeTimeouts.ps1
new file mode 100755 (executable)
index 0000000..f75172e
--- /dev/null
@@ -0,0 +1,35 @@
+Function Set-DisplayandSleepModeTimeouts\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling display and sleep mode timeouts."\r
+\r
+        powercfg /X monitor-timeout-ac 10
+        powercfg /X monitor-timeout-dc 5
+        powercfg /X standby-timeout-ac 30
+        powercfg /X standby-timeout-dc 15\r
+\r
+        Write-Host "Display and sleep mode timeouts enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling display and sleep mode timeouts."\r
+\r
+        powercfg /X monitor-timeout-ac 0
+        powercfg /X monitor-timeout-dc 0
+        powercfg /X standby-timeout-ac 0
+        powercfg /X standby-timeout-dc 0\r
+\r
+        Write-Host "Display and sleep mode timeouts disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-DriveAutorun.ps1 b/Development_Files/Service_Settings/Set-DriveAutorun.ps1
new file mode 100755 (executable)
index 0000000..d1f7537
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-DriveAutorun\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling drive autorun."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "NoDriveTypeAutoRun" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Drive autorun enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling drive autorun."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "NoDriveTypeAutoRun" -Type DWord -Value 255\r
+\r
+        Write-Host "Drive autorun disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Service_Settings/Set-FastStartupPolicy.ps1 b/Development_Files/Service_Settings/Set-FastStartupPolicy.ps1
new file mode 100755 (executable)
index 0000000..14bc6e7
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-FastStartupPolicy\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Fast Startup."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" -Name "HiberbootEnabled" -Type DWord -Value 1\r
+\r
+        Write-Host "Fast Startup enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Fast Startup."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" -Name "HiberbootEnabled" -Type DWord -Value 0\r
+\r
+        Write-Host "Fast Startup disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-FileIndexing.ps1 b/Development_Files/Service_Settings/Set-FileIndexing.ps1
new file mode 100755 (executable)
index 0000000..7b65613
--- /dev/null
@@ -0,0 +1,33 @@
+Function Set-FileIndexing\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling file indexing."\r
+\r
+        #Start "Windows Search" service, and Enable its startup.\r
+            Set-Service -Name WSearch -StartupType Automatic\r
+            Start-Service -Name WSearch\r
+    \r
+        Write-Host "File indexing enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling file indexing."\r
+\r
+        #Stop "Windows Search" service, and disable its startup.\r
+            Set-Service -Name WSearch -StartupType Disabled\r
+            Stop-Service -Name WSearch\r
+    \r
+        Write-Host "File indexing disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-Game_DVR.ps1 b/Development_Files/Service_Settings/Set-Game_DVR.ps1
new file mode 100755 (executable)
index 0000000..d08ab03
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-Game_DVR\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Game Digital Video Recording."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR" -Name "AllowGameDVR" -ErrorAction SilentlyContinue\r
+        \r
+        Write-Host "Game Digital Video Recording enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Game Digital Video Recording."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR" -Name "AllowGameDVR" -Type DWord -Value 0\r
+\r
+        Write-Host "Game Digital Video Recording disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Service_Settings/Set-Hibernation.ps1 b/Development_Files/Service_Settings/Set-Hibernation.ps1
new file mode 100755 (executable)
index 0000000..cc4e2d4
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-Hibernation\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling hibernation."\r
+\r
+        powercfg -h on\r
+\r
+        Write-Host "Hibernation enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling hibernation."\r
+\r
+        powercfg -h off\r
+        \r
+        Write-Host "Hibernation disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-RemoteAssistance.ps1 b/Development_Files/Service_Settings/Set-RemoteAssistance.ps1
new file mode 100755 (executable)
index 0000000..5e90a78
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-RemoteAssistance\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling remote assistance."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Remote Assistance" -Name "fAllowToGetHelp" -Type DWord -Value 1\r
+\r
+        Write-Host "Remote assistance enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling remote assistance."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Remote Assistance" -Name "fAllowToGetHelp" -Type DWord -Value 0\r
+\r
+        Write-Host "Remote assistance disabled."\r
+        Write-Host ""        \r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-RemoteDesktop.ps1 b/Development_Files/Service_Settings/Set-RemoteDesktop.ps1
new file mode 100755 (executable)
index 0000000..d6cbbc5
--- /dev/null
@@ -0,0 +1,33 @@
+Function Set-RemoteDesktop\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling remote desktop."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Type DWord -Value 0
+        Enable-NetFirewallRule -Name "RemoteDesktop*"\r
+\r
+        Write-Host "Remote desktop enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling remote desktop."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Type DWord -Value 1
+        Disable-NetFirewallRule -Name "RemoteDesktop*"\r
+\r
+        Write-Host "Remote desktop disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-ScheduledDefragmentation.ps1 b/Development_Files/Service_Settings/Set-ScheduledDefragmentation.ps1
new file mode 100755 (executable)
index 0000000..87a0d4b
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-ScheduledDefragmentation\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling scheduled defragmentation."\r
+\r
+        Enable-ScheduledTask -TaskName "Microsoft\Windows\Defrag\ScheduledDefrag"\r
+\r
+        Write-Host "Scheduled defragmentation enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling scheduled defragmentation."\r
+\r
+        Disable-ScheduledTask -TaskName "Microsoft\Windows\Defrag\ScheduledDefrag"\r
+\r
+        Write-Host "Scheduled defragmentation disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-SettingsSynchronization.ps1 b/Development_Files/Service_Settings/Set-SettingsSynchronization.ps1
new file mode 100755 (executable)
index 0000000..cf64f62
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-SettingsSynchronization\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling settings synchronization."\r
+\r
+        Remove-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\SettingSync -Name "DisableSettingSync" -ErrorAction SilentlyContinue\r
+        Remove-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection -Name "AllowTelemetry" -ErrorAction SilentlyContinue\r
+\r
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\SettingSync -Name "EnableBackupForWin8Apps" -Type DWord -Value "1"\r
+\r
+        Write-Host "Settings synchronization enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling settings synchronization."\r
+\r
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\SettingSync -Name "DisableSettingSync" -Type DWord -Value "2"\r
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\SettingSync -Name "DisableSettingSyncUserOverride" -Type DWord -Value "2"\r
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\SettingSync -Name "EnableBackupForWin8Apps" -Type DWord -Value "0"\r
+\r
+        Write-Host "Settings synchronization disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-SharedExperiences.ps1 b/Development_Files/Service_Settings/Set-SharedExperiences.ps1
new file mode 100755 (executable)
index 0000000..86299a7
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-SharedExperiences\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling shared experiences."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableCdp" -ErrorAction SilentlyContinue
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableMmx" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Shared experiences enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling shared experiences."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableCdp" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableMmx" -Type DWord -Value 0\r
+\r
+        Write-Host "Shared experiences disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-SleepButton.ps1 b/Development_Files/Service_Settings/Set-SleepButton.ps1
new file mode 100755 (executable)
index 0000000..d5d6465
--- /dev/null
@@ -0,0 +1,45 @@
+Function Set-SleepButton\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling start menu and keyboard sleep buttons."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Force | Out-Null\r
+           }\r
+           \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Name "ShowSleepOption" -Type Dword -Value 1\r
+       \r
+        powercfg /SETACVALUEINDEX SCHEME_CURRENT SUB_BUTTONS SBUTTONACTION 1\r
+           powercfg /SETDCVALUEINDEX SCHEME_CURRENT SUB_BUTTONS SBUTTONACTION 1\r
+\r
+        Write-Host "Start menu and keyboard sleep buttons enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling start menu and keyboard sleep buttons."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Name "ShowSleepOption" -Type Dword -Value 0\r
+       \r
+        powercfg /SETACVALUEINDEX SCHEME_CURRENT SUB_BUTTONS SBUTTONACTION 0\r
+           powercfg /SETDCVALUEINDEX SCHEME_CURRENT SUB_BUTTONS SBUTTONACTION 0\r
+\r
+        Write-Host "Start menu and keyboard sleep buttons disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Service_Settings/Set-Spellcheck.ps1 b/Development_Files/Service_Settings/Set-Spellcheck.ps1
new file mode 100755 (executable)
index 0000000..0d19682
--- /dev/null
@@ -0,0 +1,54 @@
+Function Set-Spellcheck\r
+{\r
+    Param([string]$Value)\r
+\r
+    If(!(Test-Path "HKCU:\SOFTWARE\Microsoft\Input\Settings"))\r
+    {\r
+        New-Item -Path "HKCU:\SOFTWARE\Microsoft\Input" -Name Settings -Force | Out-Null\r
+    }\r
+\r
+\r
+    If ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling spellcheck."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name Enableautocorrection -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnableSpellchecking -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name EnableHwkbAutocorrection2 -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\International\User Profile" -Name ShowAutoCorrection -Type DWord -Value 0\r
+\r
+        Write-Host "Spellcheck disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Highlight")\r
+    {\r
+        Write-Host "Setting spellcheck to 'Highlight'."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name Enableautocorrection -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnableSpellchecking -Type DWord -Value 1\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name EnableHwkbAutocorrection2 -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\International\User Profile" -Name ShowAutoCorrection -Type DWord -Value 0\r
+\r
+        Write-Host "Spellcheck set to 'Highlight'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Full")\r
+    {\r
+        Write-Host "Setting spellcheck to 'Full'."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name Enableautocorrection -Type DWord -Value 1\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnableSpellchecking -Type DWord -Value 1\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name EnableHwkbAutocorrection2 -Type DWord -Value 1\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\International\User Profile" -Name ShowAutoCorrection -Type DWord -Value 1\r
+\r
+        Write-Host "Spellcheck set to 'Full'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Disable', 'Highlight', and 'Full'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-StorageSense.ps1 b/Development_Files/Service_Settings/Set-StorageSense.ps1
new file mode 100755 (executable)
index 0000000..c6d63bc
--- /dev/null
@@ -0,0 +1,38 @@
+Function Set-StorageSense\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Storage Sense."\r
+\r
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy"))\r
+        {\r
+                   New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Name "01" -Type DWord -Value 1\r
+           Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Name "04" -Type DWord -Value 1\r
+           Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Name "08" -Type DWord -Value 1\r
+           Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Name "32" -Type DWord -Value 0\r
+           Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Name "StoragePoliciesNotified" -Type DWord -Value 1\r
+\r
+        Write-Host "Storage Sense enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Storage Sense."\r
+\r
+        Remove-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Recurse -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Storage Sense disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Service_Settings/Set-Superfetch.ps1 b/Development_Files/Service_Settings/Set-Superfetch.ps1
new file mode 100755 (executable)
index 0000000..ded9c4b
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-Superfetch\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Superfetch service."\r
+\r
+        Set-Service "SysMain" -StartupType Automatic\r
+        Start-Service "SysMain"\r
+\r
+        Write-Host "Superfetch service enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Superfetch service."\r
+\r
+        Set-Service "SysMain" -StartupType Disabled\r
+        Stop-Service "SysMain"\r
+\r
+        Write-Host "Superfetch service disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-TextPrediction.ps1 b/Development_Files/Service_Settings/Set-TextPrediction.ps1
new file mode 100755 (executable)
index 0000000..0c9823b
--- /dev/null
@@ -0,0 +1,77 @@
+Function Set-TextPrediction\r
+{\r
+    Param([string]$Value)\r
+\r
+    If(!(Test-Path "HKCU:\SOFTWARE\Microsoft\Input\Settings"))\r
+    {\r
+        New-Item -Path "HKCU:\SOFTWARE\Microsoft\Input" -Name Settings -Force | Out-Null\r
+    }\r
+    \r
+    If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Spelling"))\r
+    {\r
+        New-Item -Path "HKCU:\SOFTWARE\Microsoft" -Name "Spelling" -Force | Out-Null\r
+    }\r
+\r
+    If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Spelling\Options"))\r
+    {\r
+        New-Item -Path "HKCU:\SOFTWARE\Microsoft\Spelling" -Name "Options" -Force | Out-Null\r
+    }\r
+\r
+    \r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling text prediction."\r
+\r
+        #Change global settings.\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnableTextPrediction -Type DWord -Value 1\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnablePredictionSpaceInsertion -Type DWord -Value 1\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnableDoubleTapSpace -Type DWord -Value 1\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name EnableHwkbTextPrediction -Type DWord -Value 1\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name MultilingualEnabled -Type DWord -Value 1\r
+            Set-ItemProperty -Path "HKCU:\Control Panel\International\User Profile" -Name ShowTextPrediction -Type DWord -Value 1\r
+\r
+        #Change setting for all keyboard layouts individually.\r
+            $Languagelist = Get-WinUserLanguageList\r
+\r
+            For ($x=0; $x -lt $Languagelist.Count; $x++)\r
+            {\r
+                $Languagetag = ($Languagelist[$x])[0].LanguageTag\r
+                $Keyname = $Languagetag + ":1996Reform"\r
+                Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Spelling\Options" -Name "$Keyname" -Type DWord -Value 1\r
+            }\r
+\r
+        Write-Host "Text prediction enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling text prediction."\r
+\r
+        #Change global settings.\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnableTextPrediction -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnablePredictionSpaceInsertion -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnableDoubleTapSpace -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name EnableHwkbTextPrediction -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name MultilingualEnabled -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKCU:\Control Panel\International\User Profile" -Name ShowTextPrediction -Type DWord -Value 0\r
+\r
+        #Change setting for all keyboard layouts individually.\r
+            $Languagelist = Get-WinUserLanguageList\r
+\r
+            For ($x=0; $x -lt $Languagelist.Count; $x++)\r
+            {\r
+                $Languagetag = ($Languagelist[$x])[0].LanguageTag\r
+                $Keyname = $Languagetag + ":1996Reform"\r
+                Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Spelling\Options" -Name "$Keyname" -Type DWord -Value 0\r
+            }\r
+\r
+        Write-Host "Text prediction disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-TypingInsights.ps1 b/Development_Files/Service_Settings/Set-TypingInsights.ps1
new file mode 100755 (executable)
index 0000000..9dfec25
--- /dev/null
@@ -0,0 +1,37 @@
+Function Set-TypingInsights\r
+{\r
+    Param([string]$Value)\r
+    \r
+    If(!(Test-Path "HKCU:\SOFTWARE\Microsoft\Input\Settings"))\r
+    {\r
+        New-Item -Path "HKCU:\SOFTWARE\Microsoft\Input" -Name Settings -Force | Out-Null\r
+    }\r
+\r
+            \r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling typing insights."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name InsightsEnabled -Type DWord -Value 1\r
+\r
+        Write-Host "Typing insights enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling typing insights."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name InsightsEnabled -Type DWord -Value 0\r
+        $InsightsKey = "02,00,00,00,07,1d,e8,c1,31,cc,83,60,a3,d6,d9,c1,33,0a,68,6b,16,5a,ba,2e,23,5f,5a,5c"\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\TypingInsights" -Name Insights -Type Binary -Value (Hex -BinaryKey $InsightsKey)\r
+\r
+        Write-Host "Typing insights disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-WindowsUpdate.ps1 b/Development_Files/Service_Settings/Set-WindowsUpdate.ps1
new file mode 100755 (executable)
index 0000000..1fcd390
--- /dev/null
@@ -0,0 +1,57 @@
+Function Set-WindowsUpdate\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Windows Update."\r
+\r
+        #Enable Windows Update in registry settings.\r
+    \r
+            #Remove the appropriate registry settings and keys.\r
+                Remove-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate -Recurse -ErrorAction SilentlyContinue\r
+               \r
+        #Start Windows Update Service, and Enable its startup.\r
+            Set-Service -Name wuauserv -StartupType Automatic\r
+            Start-Service -Name wuauserv\r
+            \r
+        Write-Host "Windows Update enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Windows Update."\r
+\r
+        #Disable Windows Update in registry settings.\r
+    \r
+            #Make "WindowsUpdate" and "AU" keys.\r
+                If (!(Test-Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate))\r
+                {\r
+                    New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name "WindowsUpdate" -Force | Out-Null\r
+                }\r
+               \r
+                ####################\r
+        \r
+                If (!(Test-Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU))\r
+                {\r
+                    New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate -Name "AU" -Force | Out-Null\r
+                }\r
+                \r
+            #Set the appropriate registry settings.\r
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU -Name "NoAutoUpdate" -Type DWord -Value 1\r
+          \r
+\r
+        #Stop Windows Update Service, and disable its startup.\r
+            Set-Service -Name wuauserv -StartupType Disabled\r
+            Stop-Service -Name wuauserv\r
+            \r
+        Write-Host "Windows Update disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Service_Settings/Set-WindowsUpdateAutomaticRestart.ps1 b/Development_Files/Service_Settings/Set-WindowsUpdateAutomaticRestart.ps1
new file mode 100755 (executable)
index 0000000..155f3a0
--- /dev/null
@@ -0,0 +1,36 @@
+Function Set-WindowsUpdateAutomaticRestart\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Windows Update automatic restart."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoRebootWithLoggedOnUsers" -ErrorAction SilentlyContinue\r
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "AUPowerManagement" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Windows Update automatic restart enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Windows Update automatic restart."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Force | Out-Null\r
+           }\r
+\r
+       Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoRebootWithLoggedOnUsers" -Type DWord -Value 1\r
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "AUPowerManagement" -Type DWord -Value 0\r
+\r
+        Write-Host "Windows Update automatic restart disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Service_Settings/Set-WindowsUpdateTransferOptimization.ps1 b/Development_Files/Service_Settings/Set-WindowsUpdateTransferOptimization.ps1
new file mode 100755 (executable)
index 0000000..43af63c
--- /dev/null
@@ -0,0 +1,45 @@
+Function Set-WindowsUpdateTransferOptimization\r
+{\r
+    Param([string]$Value)\r
+\r
+    If (!(Test-Path "HKU:"))\r
+    {\r
+        New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS\r
+    }\r
+      \r
+\r
+    If ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling the downloading of Windows updates from non-Windows-Update-Server sources."\r
+\r
+        Set-ItemProperty -Path "HKU:\S-1-5-20\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Settings" -Name "DownloadMode" -Type DWord -Value 0\r
+        \r
+        Write-Host "Downloading of Windows updates from non-Windows-Update-Server sources disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Internet")\r
+    {\r
+        Write-Host "Setting Windows updates to be allowed to be downloaded from other computers in the local network and on the internet."\r
+\r
+        Set-ItemProperty -Path "HKU:\S-1-5-20\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Settings" -Name "DownloadMode" -Type DWord -Value 3\r
+                \r
+        Write-Host "Windows updates set to be allowed to be downloaded from other computers in the local network and on the internet."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "LocalNetwork")\r
+    {\r
+        Write-Host "Setting Windows updates to be allowed to be downloaded from other computers in the local network."\r
+\r
+        Set-ItemProperty -Path "HKU:\S-1-5-20\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Settings" -Name "DownloadMode" -Type DWord -Value 1\r
+        \r
+        Write-Host "Windows updates set to be allowed to be downloaded from other computers in the local network."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Disable', 'Internet', and 'LocalNetwork'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/Service_Settings/Set-WindowsUpdate_Drivers.ps1 b/Development_Files/Service_Settings/Set-WindowsUpdate_Drivers.ps1
new file mode 100755 (executable)
index 0000000..515ae85
--- /dev/null
@@ -0,0 +1,54 @@
+Function Set-WindowsUpdate_Drivers\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling offering of drivers through Windows Update."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Name "PreventDeviceMetadataFromNetwork" -ErrorAction SilentlyContinue\r
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontPromptForWindowsUpdate" -ErrorAction SilentlyContinue\r
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontSearchWindowsUpdate" -ErrorAction SilentlyContinue\r
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DriverUpdateWizardWuSearchEnabled" -ErrorAction SilentlyContinue\r
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Offering of drivers through Windows Update enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling offering of drivers through Windows Update."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Name "PreventDeviceMetadataFromNetwork" -Type DWord -Value 1\r
+       \r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontPromptForWindowsUpdate" -Type DWord -Value 1\r
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontSearchWindowsUpdate" -Type DWord -Value 1\r
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DriverUpdateWizardWuSearchEnabled" -Type DWord -Value 0\r
+       \r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate" -Type DWord -Value 1\r
+\r
+        Write-Host "Offering of drivers through Windows Update disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/Service_Settings/Set-WindowsUpdate_MSRT.ps1 b/Development_Files/Service_Settings/Set-WindowsUpdate_MSRT.ps1
new file mode 100755 (executable)
index 0000000..6150cb6
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-WindowsUpdate_MSRT\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling offering of Malicious Software Removal Tool through Windows Update."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT" -Name "DontOfferThroughWUAU" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "offering of Malicious Software Removal Tool through Windows Update enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling offering of Malicious Software Removal Tool through Windows Update."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT" -Name "DontOfferThroughWUAU" -Type DWord -Value 1\r
+\r
+        Write-Host "offering of Malicious Software Removal Tool through Windows Update disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/User_Interface_Settings/Set-AccentColor.ps1 b/Development_Files/User_Interface_Settings/Set-AccentColor.ps1
new file mode 100755 (executable)
index 0000000..5f4deea
--- /dev/null
@@ -0,0 +1,399 @@
+Function Set-AccentColor\r
+{\r
+    Param([string]$Value)\r
+       \r
+    Switch ("$Value")\r
+    {\r
+        BlueGray\r
+           {\r
+                   $AccentPaletteKey = "c2,e7,f2,00,ba,d7,e0,00,99,b1,b8,00,69,79,7e,00,43,58,5e,00,2e,40,45,00,1f,2b,2e,00,48,68,60,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff7e7969\r
+                   Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)\r
+                   Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff5e5843\r
+           }\r
+        \r
+        BrickRed\r
+           {\r
+            $AccentPaletteKey = "ff,b0,b3,00,ff,96,99,00,ff,64,69,00,d1,34,38,00,99,26,29,00,75,1d,1f,00,52,14,15,00,64,7c,64,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff3834d1\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff292699\r
+           }\r
+\r
+        Camouflage\r
+           {\r
+            $AccentPaletteKey = "d6,c3,a3,00,bd,ac,8f,00,a0,92,79,00,7e,73,5f,00,5e,56,47,00,45,3d,30,00,36,2f,24,00,00,b7,c3,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff5f737e\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff47565e\r
+           }\r
+\r
+        CoolBlue\r
+           {\r
+            $AccentPaletteKey = "a4,e8,ff,00,7c,d6,f5,00,4d,ac,cf,00,2d,7d,9a,00,21,5d,73,00,0e,43,57,00,0b,28,33,00,00,cc,6a,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff9a7d2d\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff735d21\r
+           }\r
+\r
+        DarkGray\r
+           {\r
+            $AccentPaletteKey = "98,ab,b6,00,7d,8d,96,00,63,70,77,00,4a,54,59,00,37,3f,42,00,2c,32,35,00,1f,23,25,00,00,b7,c3,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff59544a\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff423f37\r
+           }\r
+\r
+        DarkMint\r
+           {\r
+            $AccentPaletteKey = "99,f7,eb,00,64,de,ce,00,00,b3,9b,00,01,85,74,00,00,5e,52,00,00,40,37,00,00,2b,26,00,d1,34,38,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff748501\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff525e00\r
+           }\r
+\r
+        DarkOrange\r
+           {\r
+            $AccentPaletteKey = "ff,94,3e,00,f2,81,30,00,e8,6f,2e,00,ca,50,10,00,95,3b,0c,00,72,2d,09,00,50,20,06,00,52,5e,54,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff1050ca\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff0c3b95\r
+           }\r
+\r
+        DarkSeaGreen\r
+           {\r
+            $AccentPaletteKey = "b3,f4,f5,00,80,d6,d9,00,37,a9,ad,00,03,83,87,00,00,56,59,00,00,39,3b,00,00,26,26,00,ef,69,50,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff878303\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff595600\r
+           }\r
+\r
+        DarkShadedPurple\r
+           {\r
+            $AccentPaletteKey = "d5,d4,ff,00,ad,ac,f0,00,89,87,e4,00,6b,69,d6,00,4f,4d,9e,00,2d,2b,61,00,1f,1f,4d,00,00,cc,6a,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffd6696b\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff9e4d4f\r
+           }\r
+\r
+        DesertCamouflage\r
+           {\r
+            $AccentPaletteKey = "de,c7,7d,00,c3,af,6e,00,a9,97,5f,00,84,75,45,00,63,56,2c,00,4d,42,1f,00,3b,32,17,00,ef,69,50,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff457584\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff2c5663\r
+           }\r
+\r
+        Gold\r
+           {\r
+            $AccentPaletteKey = "ff,df,b8,00,ff,ca,8a,00,ff,af,4c,00,ff,8c,00,00,b3,62,00,00,73,3f,00,00,45,26,00,00,00,63,b1,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff008cff\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff0062b3\r
+           }\r
+\r
+        GrassGreen\r
+           {\r
+            $AccentPaletteKey = "c1,f7,dd,00,a6,f7,d0,00,68,e3,a8,00,00,cc,6a,00,00,87,46,00,00,52,2a,00,00,2b,16,00,e3,00,8c,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff6acc00\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff468700\r
+           }\r
+\r
+        Gray\r
+           {\r
+            $AccentPaletteKey = "d9,d1,ce,00,c8,c0,be,00,a7,a0,9f,00,7a,75,74,00,5f,5b,5a,00,39,36,36,00,26,25,25,00,ea,00,5e,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff74757a\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff5a5b5f\r
+           }\r
+\r
+        GrayBrown\r
+           {\r
+            $AccentPaletteKey = "c5,bf,b9,00,a3,9e,9a,00,87,83,80,00,5d,5a,58,00,3e,3c,3b,00,2b,2a,29,00,1f,1e,1d,00,ff,43,43,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff585a5d\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff3b3c3e\r
+           }\r
+\r
+        Green\r
+           {\r
+            $AccentPaletteKey = "90,d6,90,00,61,ba,61,00,3d,9c,3d,00,10,7c,10,00,0c,5c,0c,00,09,42,09,00,02,26,02,00,4c,4a,48,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff107c10\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff0c5c0c\r
+           }\r
+\r
+        LiddyGreen\r
+           {\r
+            $AccentPaletteKey = "b6,e0,b6,00,a5,cc,a5,00,89,aa,89,00,64,7c,64,00,48,59,48,00,32,42,32,00,24,30,24,00,d1,34,38,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff647c64\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff485948\r
+           }\r
+\r
+        LightCoolBlue\r
+           {\r
+            $AccentPaletteKey = "a9,ef,ff,00,79,e6,ff,00,48,d2,f2,00,00,99,bc,00,00,6b,83,00,00,4b,5c,00,00,32,3d,00,e3,00,8c,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffbc9900\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff836b00\r
+           }\r
+\r
+        LightMint\r
+           {\r
+            $AccentPaletteKey = "b5,f7,ec,00,91,eb,dc,00,32,e3,c5,00,00,b2,94,00,00,82,6c,00,00,4a,3e,00,00,29,22,00,68,76,8a,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff94b200\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff6c8200\r
+           }\r
+\r
+        LightOrange\r
+           {\r
+            $AccentPaletteKey = "fd,86,5f,00,fc,75,51,00,f8,63,42,00,f7,63,0c,00,d0,41,22,00,9c,31,1a,00,79,27,14,00,00,99,bc,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff0c63f7\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff2241d0\r
+           }\r
+\r
+        LightOrchid\r
+           {\r
+            $AccentPaletteKey = "ff,ab,f5,00,e9,89,de,00,cf,62,c3,00,c2,39,b3,00,8c,29,81,00,63,1d,5b,00,3b,08,36,00,2d,7d,9a,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffb339c2\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff81298c\r
+           }\r
+\r
+        LightPink\r
+           {\r
+            $AccentPaletteKey = "ff,a8,cb,00,f7,83,b2,00,f7,52,94,00,ea,00,5e,00,ac,00,46,00,88,00,37,00,6b,00,2b,00,7a,75,74,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff5e00ea\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff4600ac\r
+           }\r
+\r
+        LightPlum\r
+           {\r
+            $AccentPaletteKey = "ff,bd,e6,00,ff,91,d5,00,f7,5c,bc,00,e3,00,8c,00,a3,00,65,00,70,00,45,00,47,00,2c,00,00,99,bc,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff8c00e3\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff6500a3\r
+           }\r
+\r
+        LightVioletRed\r
+           {\r
+            $AccentPaletteKey = "f6,c0,ff,00,e5,9d,f0,00,cc,7b,d9,00,b1,46,c2,00,7d,31,89,00,51,20,59,00,38,16,3d,00,ff,8c,00,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffc246b1\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff89317d\r
+           }\r
+\r
+        MarineBlue\r
+           {\r
+            $AccentPaletteKey = "86,ca,ff,00,5f,b2,f2,00,1e,91,ea,00,00,63,b1,00,00,42,75,00,00,2d,4f,00,00,20,38,00,00,cc,6a,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffb16300\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff754200\r
+           }\r
+\r
+        MeadowGreen\r
+           {\r
+            $AccentPaletteKey = "b7,f2,6f,00,9e,d1,60,00,79,ab,3c,00,49,82,05,00,35,5e,03,00,24,40,01,00,15,26,00,00,48,68,60,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff058249\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff035e35\r
+           }\r
+\r
+        MetalBlue\r
+           {\r
+            $AccentPaletteKey = "9f,b4,d1,00,8a,9d,b6,00,6e,7d,91,00,51,5c,6b,00,3b,44,52,00,26,2f,3b,00,1c,23,2e,00,ef,69,50,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff6b5c51\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff52443b\r
+           }\r
+\r
+        MiddleRed\r
+           {\r
+            $AccentPaletteKey = "ff,c2,c2,00,ff,b2,b2,00,ff,83,83,00,ff,43,43,00,b8,2a,2a,00,80,12,12,00,57,08,08,00,00,b7,c3,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff4343ff\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff2a2ab8\r
+           }\r
+\r
+        Moss\r
+           {\r
+            $AccentPaletteKey = "97,cf,c1,00,7f,ad,a2,00,68,8f,85,00,48,68,60,00,33,4a,44,00,23,33,2f,00,15,24,20,00,49,82,05,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff606848\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff444a33\r
+           }\r
+\r
+        Orchid\r
+           {\r
+            $AccentPaletteKey = "fd,8d,f1,00,f2,66,e3,00,cb,3d,bb,00,9a,00,89,00,70,00,63,00,50,00,47,00,33,00,2d,00,00,cc,6a,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff89009a\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff630070\r
+           }\r
+\r
+        Overcast\r
+           {\r
+            $AccentPaletteKey = "cc,cc,cc,00,ae,ae,ae,00,92,92,92,00,76,76,76,00,4f,4f,4f,00,37,37,37,00,26,26,26,00,d1,34,38,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff767676\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff4f4f4f\r
+           }\r
+\r
+        PaleMoss\r
+           {\r
+            $AccentPaletteKey = "a4,e1,d2,00,8b,bf,b2,00,76,a2,97,00,56,7c,73,00,3a,54,4e,00,29,3a,36,00,1c,2b,28,00,c3,00,52,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff737c56\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff4e543a\r
+           }\r
+\r
+        PaleRed\r
+           {\r
+            $AccentPaletteKey = "ff,cf,d3,00,ff,ad,b4,00,f7,83,8d,00,e7,48,56,00,9e,21,2c,00,6e,10,18,00,40,06,0b,00,ff,8c,00,00,"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff5648e7\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff2c219e\r
+           }\r
+\r
+        PaleRust\r
+           {\r
+            $AccentPaletteKey = "ff,c9,bf,00,ff,b7,ab,00,fa,94,82,00,ef,69,50,00,9e,44,34,00,66,2c,22,00,33,12,0c,00,74,4d,a0,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff5069ef\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff34449e\r
+           }\r
+\r
+        PastelIris\r
+           {\r
+            $AccentPaletteKey = "d4,b5,ff,00,c0,96,fa,00,a8,82,dd,00,87,64,b8,00,5b,3e,83,00,3c,27,59,00,2b,1c,40,00,8e,8c,d8,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffb86487\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff833e5b\r
+           }\r
+\r
+        Pink\r
+           {\r
+            $AccentPaletteKey = "ff,ab,ce,00,ff,7f,b4,00,f7,4a,92,00,c3,00,52,00,8c,00,3a,00,69,00,2c,00,4d,00,20,00,56,7c,73,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff5200c3\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff3a008c\r
+           }\r
+\r
+        Plum\r
+           {\r
+            $AccentPaletteKey = "ff,8b,d3,00,e3,69,b5,00,c8,48,98,00,bf,00,77,00,8a,00,55,00,66,00,3f,00,4a,00,2e,00,88,17,98,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff7700bf\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff55008a\r
+           }\r
+\r
+        Red\r
+           {\r
+            $AccentPaletteKey = "ff,bd,c2,00,ff,99,a1,00,f0,59,65,00,e8,11,23,00,99,00,0d,00,6e,00,09,00,47,00,06,00,69,79,7e,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff2311e8\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff0d0099\r
+           }\r
+\r
+        Rust\r
+           {\r
+            $AccentPaletteKey = "ff,ba,a1,00,ff,98,73,00,e7,6b,3e,00,da,3b,01,00,9c,2b,02,00,66,1c,01,00,42,12,00,00,ff,8c,00,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff013bda\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff022b9c\r
+           }\r
+\r
+        Sage\r
+           {\r
+            $AccentPaletteKey = "b8,d4,c1,00,a3,bb,ab,00,80,93,86,00,52,5e,54,00,3a,43,3d,00,2a,33,2c,00,1d,26,20,00,ca,50,10,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff545e52\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff3d433a\r
+           }\r
+\r
+        SeaGreen\r
+           {\r
+            $AccentPaletteKey = "aa,f5,fa,00,8c,e7,ed,00,5c,dc,e6,00,00,b7,c3,00,00,7c,85,00,00,4a,4f,00,00,30,33,00,4a,54,59,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffc3b700\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff857c00\r
+           }\r
+\r
+        ShadedPurple\r
+           {\r
+            $AccentPaletteKey = "d4,d4,ff,00,c7,c5,fa,00,ab,a9,e8,00,8e,8c,d8,00,6f,6d,a8,00,56,55,82,00,3b,3a,59,00,87,64,b8,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffd88c8e\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xffa86d6f\r
+           }\r
+\r
+        SportGreen\r
+           {\r
+            $AccentPaletteKey = "94,e0,b1,00,75,c7,95,00,3d,ad,68,00,10,89,3e,00,0b,5c,2a,00,08,42,1e,00,05,2b,14,00,00,b7,c3,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff3e8910\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff2a5c0b\r
+           }\r
+\r
+        SpringIris\r
+           {\r
+            $AccentPaletteKey = "d0,ae,ff,00,b2,90,e2,00,8f,6b,c0,00,74,4d,a9,00,4e,30,78,00,37,22,54,00,24,15,3b,00,ef,69,50,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffa94d74\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff78304e\r
+           }\r
+\r
+        StandardBlue\r
+           {\r
+            $AccentPaletteKey = "a6,d8,ff,00,76,b9,ed,00,42,9c,e3,00,00,78,d7,00,00,5a,9e,00,00,42,75,00,00,26,42,00,f7,63,0c,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffd77800\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff9e5a00\r
+           }\r
+\r
+        SteelBlue\r
+           {\r
+            $AccentPaletteKey = "9e,b6,db,00,8f,a4,c2,00,7f,90,a8,00,68,76,8a,00,4f,5c,6e,00,37,40,4f,00,22,2b,38,00,00,b2,94,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff8a7668\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff6e5c4f\r
+           }\r
+\r
+        Storm\r
+           {\r
+            $AccentPaletteKey = "9b,9a,99,00,84,83,81,00,6d,6b,6a,00,4c,4a,48,00,36,35,33,00,26,25,24,00,19,19,19,00,10,7c,10,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff484a4c\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff333536\r
+           }\r
+\r
+        VioletRed\r
+           {\r
+            $AccentPaletteKey = "f7,b8,ff,00,e8,93,f4,00,d1,57,e2,00,88,17,98,00,62,11,6e,00,47,0c,4f,00,31,06,38,00,bf,00,77,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff981788\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff6e1162\r
+           }\r
+\r
+        YellowGold\r
+           {\r
+            $AccentPaletteKey = "ff,e8,a8,00,ff,e0,8c,00,ff,d3,5c,00,ff,b9,00,00,ba,89,00,00,80,5e,00,00,4d,38,00,00,00,b2,94,00"\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff00b9ff\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) \r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff0089ba\r
+           }\r
+        \r
+        Default\r
+        {\r
+            Write-Error "Invalid value.  The valid values are 'BlueGray','BrickRed','Camouflage','CoolBlue','DarkGray','DarkMint','DarkOrange','DarkSeaGreen','DarkShadedPurple','DesertCamouflage','Gold','GrassGreen','Gray','GrayBrown','Green','LiddyGreen','LightCoolBlue','LightMint','LightOrange','LightOrchid','LightPink','LightPlum','LightVioletRed','MarineBlue','MeadowGreen','MetalBlue','MiddleRed','Moss','Orchid','Overcast','PaleMoss','PaleRed','PaleRust','PastelIris','Pink','Plum','Red','Rust','Sage','SeaGreen','ShadedPurple','SportGreen','SpringIris','StandardBlue','SteelBlue','Storm','VioletRed', and 'YellowGold'."\r
+            throw\r
+        }\r
+    }\r
+\r
+    Stop-Process -Name explorer\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-ActionCenter.ps1 b/Development_Files/User_Interface_Settings/Set-ActionCenter.ps1
new file mode 100755 (executable)
index 0000000..4421e3b
--- /dev/null
@@ -0,0 +1,38 @@
+Function Set-ActionCenter\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Action Center."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name "DisableNotificationCenter" -ErrorAction SilentlyContinue\r
+           Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\PushNotifications" -Name "ToastEnabled" -ErrorAction SilentlyContinue\r
+        Stop-Process -Name explorer\r
+\r
+        Write-Host "Action Center enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Action Center."\r
+\r
+        If (!(Test-Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer"))\r
+        {\r
+                   New-Item -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Force | Out-Null\r
+           }\r
+           \r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name "DisableNotificationCenter" -Type DWord -Value 1\r
+           Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\PushNotifications" -Name "ToastEnabled" -Type DWord -Value 0\r
+        Stop-Process -Name explorer\r
+\r
+        Write-Host "Action Center disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/User_Interface_Settings/Set-ApplicationColorMode.ps1 b/Development_Files/User_Interface_Settings/Set-ApplicationColorMode.ps1
new file mode 100755 (executable)
index 0000000..2d0898f
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-ApplicationColorMode\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Dark")\r
+    {\r
+        Write-Host "Setting application color mode to 'Dark'."\r
+        \r
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -Type DWord -Value 0\r
+\r
+        Write-Host "Application color mode set to 'Dark'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Light")\r
+    {\r
+        Write-Host "Setting application color mode to 'Light'."\r
+        \r
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -Type DWord -Value 1\r
+\r
+        Write-Host "Application color mode set to 'Light'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Dark' and 'Light'."\r
+    }\r
+}\r
diff --git a/Development_Files/User_Interface_Settings/Set-ColorMode.ps1 b/Development_Files/User_Interface_Settings/Set-ColorMode.ps1
new file mode 100755 (executable)
index 0000000..b45e800
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-ColorMode\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Dark")\r
+    {\r
+        Write-Host "Setting color mode to 'Dark'."\r
+\r
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -Type DWord -Value 0\r
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -Type DWord -Value 0\r
+        \r
+        Write-Host "Color mode set to 'Dark'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Light")\r
+    {\r
+        Write-Host "Setting color mode to 'Light'."\r
+\r
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -Type DWord -Value 1\r
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -Type DWord -Value 1\r
+\r
+        Write-Host "Color mode set to 'Light'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Dark' and 'Light'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-ColorPrevalence.ps1 b/Development_Files/User_Interface_Settings/Set-ColorPrevalence.ps1
new file mode 100755 (executable)
index 0000000..551b6bf
--- /dev/null
@@ -0,0 +1,75 @@
+Function Set-ColorPrevalence\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "All")\r
+    {\r
+        Write-Host "Setting color prevalence to 'All'."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name ColorPrevalence -Type DWord -Value 1\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\DWM" -Name ColorPrevalence -Type DWord -Value 1\r
+\r
+        Write-Host "Color prevalence set to 'All'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "AST")\r
+    {\r
+        Write-Host "Setting color prevalence to 'AST'."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name ColorPrevalence -Type DWord -Value 1\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\DWM" -Name ColorPrevalence -Type DWord -Value 0\r
+\r
+        Write-Host "Color prevalence set to 'AST'."\r
+        Write-Host ""\r
+    }\r
+    \r
+    ElseIf ($Value -eq "Standard")\r
+    {\r
+        Write-Host "Setting color prevalence to 'Standard'."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name ColorPrevalence -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\DWM" -Name ColorPrevalence -Type DWord -Value 0\r
+\r
+        Write-Host "Color prevalence set to 'Standard'."\r
+        Write-Host ""\r
+    }\r
+        \r
+    ElseIf ($Value -eq "Taskbar")\r
+    {\r
+        Write-Host "Setting color prevalence to 'Taskbar'."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name ColorPrevalence -Type DWord -Value 2\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\DWM" -Name ColorPrevalence -Type DWord -Value 0\r
+\r
+        Write-Host "Color prevalence set to 'Taskbar'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "TaskbarWindow")\r
+    {\r
+        Write-Host "Setting color prevalence to 'TaskbarWindow'."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name ColorPrevalence -Type DWord -Value 2\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\DWM" -Name ColorPrevalence -Type DWord -Value 1\r
+\r
+        Write-Host "Color prevalence set to 'TaskbarWindow'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Window")\r
+    {\r
+        Write-Host "Setting color prevalence to 'Window'."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\DWM" -Name ColorPrevalence -Type DWord -Value 1\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name ColorPrevalence -Type DWord -Value 0\r
+\r
+        Write-Host "Color prevalence set to 'Window'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'All', 'AST', 'Standard', 'Taskbar', 'TaskbarWindow', and 'Window'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-ControlPanelView.ps1 b/Development_Files/User_Interface_Settings/Set-ControlPanelView.ps1
new file mode 100755 (executable)
index 0000000..846c348
--- /dev/null
@@ -0,0 +1,53 @@
+Function Set-ControlPanelView\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "SmallIcons")\r
+    {\r
+        Write-Host "Setting Control Panel view to small icons."\r
+\r
+        If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel"))\r
+        {\r
+                   New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Name "StartupPage" -Type DWord -Value 1\r
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Name "AllItemsIconView" -Type DWord -Value 1\r
+\r
+        Write-Host "Control Panel view set to small icons."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "BigIcons")\r
+    {\r
+        Write-Host "Setting Control Panel view to big icons."\r
+\r
+        \r
+           If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel"))\r
+        {\r
+                   New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Name "StartupPage" -Type DWord -Value 1\r
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Name "AllItemsIconView" -Type DWord -Value 0\r
+\r
+        Write-Host "Control Panel view set to big icons."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Categories")\r
+    {\r
+        Write-Host "Setting Control Panel view to categories."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Name "StartupPage" -ErrorAction SilentlyContinue\r
+           Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Name "AllItemsIconView" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Control Panel view set to categories."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'SmallIcons', 'BigIcons', and 'Categories'."\r
+    }\r
+}\r
diff --git a/Development_Files/User_Interface_Settings/Set-CortanaButton.ps1 b/Development_Files/User_Interface_Settings/Set-CortanaButton.ps1
new file mode 100755 (executable)
index 0000000..56e8a80
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-CortanaButton\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting Cortana button on the taskbar to be shown."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowCortanaButton" -Type DWord -Value 1\r
+\r
+        Write-Host "Cortana button on the taskbar set to be shown."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting Cortana button on the taskbar to be hidden."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowCortanaButton" -Type DWord -Value 0\r
+\r
+        Write-Host "Cortana button on the taskbar set to be hidden."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-FileDeletionConfirmation.ps1 b/Development_Files/User_Interface_Settings/Set-FileDeletionConfirmation.ps1
new file mode 100755 (executable)
index 0000000..c1af5fe
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-FileDeletionConfirmation\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling file deletion confirmation dialog."\r
+\r
+        If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"))\r
+        {\r
+                   New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Force | Out-Null\r
+           }\r
+\r
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "ConfirmFileDelete" -Type DWord -Value 1\r
+\r
+        Write-Host "File deletion confirmation dialog enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling file deletion confirmation dialog."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "ConfirmFileDelete" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "File deletion confirmation dialog disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/User_Interface_Settings/Set-FileOperationsDetails.ps1 b/Development_Files/User_Interface_Settings/Set-FileOperationsDetails.ps1
new file mode 100755 (executable)
index 0000000..88aad43
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-FileOperationsDetails\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting file operation details setting to 'Show'."\r
+\r
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager"))\r
+        {\r
+                   New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" -Name "EnthusiastMode" -Type DWord -Value 1\r
+\r
+        Write-Host "File operations details setting set to 'Show'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting file operation details setting to 'Hide'."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" -Name "EnthusiastMode" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "File operations details setting set to 'Hide'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}\r
diff --git a/Development_Files/User_Interface_Settings/Set-LiveTilePushNotifications.ps1 b/Development_Files/User_Interface_Settings/Set-LiveTilePushNotifications.ps1
new file mode 100755 (executable)
index 0000000..e301747
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-LiveTilePushNotifications\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling live tile push notifications."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\PushNotifications" -Name NoTileApplicationNotification -Type DWord -Value 0\r
+\r
+        Write-Host "Live tile push notifications enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling live tile push notifications."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\PushNotifications" -Name NoTileApplicationNotification -Type DWord -Value 1\r
+\r
+        Write-Host "Live tile push notifications disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-Lockscreen.ps1 b/Development_Files/User_Interface_Settings/Set-Lockscreen.ps1
new file mode 100755 (executable)
index 0000000..ec4642c
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-Lockscreen\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling lockscreen."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" -Name "NoLockScreen" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Lockscreen enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling lockscreen."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" -Name "NoLockScreen" -Type DWord -Value 1\r
+\r
+        Write-Host "Lockscreen disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/User_Interface_Settings/Set-LockscreenNetworkOptions.ps1 b/Development_Files/User_Interface_Settings/Set-LockscreenNetworkOptions.ps1
new file mode 100755 (executable)
index 0000000..2feae38
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-LockscreenNetworkOptions\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling lockscreen network options."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "DontDisplayNetworkSelectionUI" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Lockscreen network options enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling lockscreen network options."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "DontDisplayNetworkSelectionUI" -Type DWord -Value 1\r
+\r
+        Write-Host "Lockscreen network options disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-LockscreenShutdownOptions.ps1 b/Development_Files/User_Interface_Settings/Set-LockscreenShutdownOptions.ps1
new file mode 100755 (executable)
index 0000000..9d6cfaa
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-LockscreenShutdownOptions\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling lockscreen shutdown options."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ShutdownWithoutLogon" -Type DWord -Value 1\r
+\r
+        Write-Host "Lockscreen shutdown options enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling lockscreen shutdown options."\r
+\r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ShutdownWithoutLogon" -Type DWord -Value 0\r
+\r
+        Write-Host "Lockscreen shutdown options disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-NewApplicationPrompt.ps1 b/Development_Files/User_Interface_Settings/Set-NewApplicationPrompt.ps1
new file mode 100755 (executable)
index 0000000..d6d1d33
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-NewApplicationPrompt\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling 'How do you want to open this file?' prompt."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name "NoNewAppAlert" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "'How do you want to open this file?' prompt enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling 'How do you want to open this file?' prompt."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name "NoNewAppAlert" -Type DWord -Value 1\r
+\r
+        Write-Host "'How do you want to open this file?' prompt disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/User_Interface_Settings/Set-NumberlockAfterStartup.ps1 b/Development_Files/User_Interface_Settings/Set-NumberlockAfterStartup.ps1
new file mode 100755 (executable)
index 0000000..3ecf2de
--- /dev/null
@@ -0,0 +1,53 @@
+Function Set-NumberlockAfterStartup\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling numberlock after startup."\r
+\r
+        If (!(Test-Path "HKU:"))
+        {
+               New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKU:\.DEFAULT\Control Panel\Keyboard" -Name "InitialKeyboardIndicators" -Type DWord -Value 2147483650
+        Add-Type -AssemblyName System.Windows.Forms
+
+        If (!([System.Windows.Forms.Control]::IsKeyLocked('NumLock')))
+        {
+               $wsh = New-Object -ComObject WScript.Shell
+               $wsh.SendKeys('{NUMLOCK}')
+        }\r
+\r
+        Write-Host "Numberlock after startup enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling numberlock after startup."\r
+\r
+        If (!(Test-Path "HKU:"))
+        {
+               New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKU:\.DEFAULT\Control Panel\Keyboard" -Name "InitialKeyboardIndicators" -Type DWord -Value 2147483648
+        Add-Type -AssemblyName System.Windows.Forms
+
+        If ([System.Windows.Forms.Control]::IsKeyLocked('NumLock'))
+        {
+               $wsh = New-Object -ComObject WScript.Shell
+               $wsh.SendKeys('{NUMLOCK}')
+        }\r
+\r
+        Write-Host "Numberlock after startup disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-RecentlyAddedApplications.ps1 b/Development_Files/User_Interface_Settings/Set-RecentlyAddedApplications.ps1
new file mode 100755 (executable)
index 0000000..d79b80f
--- /dev/null
@@ -0,0 +1,38 @@
+Function Set-RecentlyAddedApplications\r
+{\r
+    Param([string]$Value)\r
+\r
+    If (!(Test-Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer"))\r
+    {\r
+           New-Item -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Force | Out-Null\r
+       }\r
+\r
+    \r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting 'Recently Added' applications section to be shown in Start Menu."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name HideRecentlyAddedApps -Type DWord -Value 0\r
+        Stop-Process -Name explorer\r
+\r
+        Write-Host "'Recently Added' applications section set to be shown in Start Menu."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting 'Recently Added' applications section to be hidden in Start Menu."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name HideRecentlyAddedApps -Type DWord -Value 1\r
+        Stop-Process -Name explorer\r
+\r
+        Write-Host "'Recently Added' applications section set to be hidden in Start Menu."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-SearchApplicationInStore.ps1 b/Development_Files/User_Interface_Settings/Set-SearchApplicationInStore.ps1
new file mode 100755 (executable)
index 0000000..e78d9e2
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-SearchApplicationInStore\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling searching for applications in the Windows Store for unknown extensions."\r
+\r
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name "NoUseStoreOpenWith" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Searching for applications in the Windows Store for unknown extensions enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling searching for applications in the Windows Store for unknown extensions."\r
+\r
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer"))\r
+        {\r
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name "NoUseStoreOpenWith" -Type DWord -Value 1\r
+\r
+        Write-Host "Searching for applications in the Windows Store for unknown extensions disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}\r
diff --git a/Development_Files/User_Interface_Settings/Set-Searchbox.ps1 b/Development_Files/User_Interface_Settings/Set-Searchbox.ps1
new file mode 100755 (executable)
index 0000000..d65f7f9
--- /dev/null
@@ -0,0 +1,33 @@
+Function Set-Searchbox\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting Searchbox mode to 'Hide'."\r
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "SearchboxTaskbarMode" -Type DWord -Value 0\r
+        Write-Host "Searchbox mode set to 'Hide'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Icon")\r
+    {\r
+        Write-Host "Setting Searchbox mode to 'Icon'."\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" -Name "SearchboxTaskbarMode" -Type DWord -Value 1\r
+        Write-Host "Searchbox mode set to 'Icon'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Box")\r
+    {\r
+        Write-Host "Setting Searchbox mode to 'Box'."\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" -Name "SearchboxTaskbarMode" -Type DWord -Value 2\r
+        Write-Host "Searchbox mode set to 'Box'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Hide', 'Icon', and 'Box'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-Shake_to_Minimize.ps1 b/Development_Files/User_Interface_Settings/Set-Shake_to_Minimize.ps1
new file mode 100755 (executable)
index 0000000..043a7b3
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-Shake_to_Minimize\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling 'Shake to Minimize' feature."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name DisallowShaking -Type DWord -Value 0\r
+\r
+        Write-Host "'Shake to Minimize' feature enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling 'Shake to Minimize' feature."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name DisallowShaking -Type DWord -Value 1\r
+\r
+        Write-Host "'Shake to Minimize' feature disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-StartMenuAlignment.ps1 b/Development_Files/User_Interface_Settings/Set-StartMenuAlignment.ps1
new file mode 100755 (executable)
index 0000000..3ae8d62
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-StartMenuAlignment
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Left")
+    {
+        Write-Host "Setting 'Start Menu' to be aligned to the left."
+
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name "TaskbarAl" -Type DWord -Value 0
+
+        Write-Host "'Start Menu' set to be aligned to the left."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Middle")
+    {
+        Write-Host "Setting 'Start Menu' to be aligned to the middle."
+
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name "TaskbarAl" -Type DWord -Value 1
+
+        Write-Host "'Start Menu' set to be aligned to the middle."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Left' and 'Middle'."
+    }
+}
diff --git a/Development_Files/User_Interface_Settings/Set-StartMenuLayout.ps1 b/Development_Files/User_Interface_Settings/Set-StartMenuLayout.ps1
new file mode 100755 (executable)
index 0000000..d3d8b28
--- /dev/null
@@ -0,0 +1,54 @@
+Function Set-StartMenuLayout\r
+{\r
+    Param([string]$Value)\r
+\r
+    If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"))\r
+    {\r
+        New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Force | Out-Null\r
+    }\r
+\r
+\r
+    If ($Value -eq "Shortcuts")\r
+    {\r
+        Write-Host "Setting start menu layout to only show shortcuts."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoStartMenuMorePrograms -Type DWord -Value 1\r
+        Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoStartMenuMorePrograms -Type DWord -Value 1\r
+\r
+        Stop-Process -Name explorer\r
+                \r
+        Write-Host "Start menu layout set to only show shortcuts."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Standard")\r
+    {\r
+        Write-Host "Setting start menu layout to 'Standard'."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoStartMenuMorePrograms -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoStartMenuMorePrograms -Type DWord -Value 0\r
+\r
+        Stop-Process -Name explorer\r
+                \r
+        Write-Host "Start menu layout set to 'Standard'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Switch")\r
+    {\r
+        Write-Host "Setting start menu layout to switch between shorcuts and applications."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoStartMenuMorePrograms -Type DWord -Value 2\r
+        Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoStartMenuMorePrograms -Type DWord -Value 2\r
+\r
+        Stop-Process -Name explorer\r
+        \r
+        Write-Host "Start menu layout set to switch between shorcuts and applications."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Shortcuts', 'Standard', and 'Switch'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-StickyKeys.ps1 b/Development_Files/User_Interface_Settings/Set-StickyKeys.ps1
new file mode 100755 (executable)
index 0000000..f0b6ed3
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-StickyKeys\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Sticky Keys."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\Accessibility\StickyKeys" -Name "Flags" -Type String -Value "510"\r
+\r
+        Write-Host "Sticky Keys enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Sticky Keys."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\Accessibility\StickyKeys" -Name "Flags" -Type String -Value "506"\r
+\r
+        Write-Host "Sticky Keys disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-SystemColorMode.ps1 b/Development_Files/User_Interface_Settings/Set-SystemColorMode.ps1
new file mode 100755 (executable)
index 0000000..68fb3da
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-SystemColorMode\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Dark")\r
+    {\r
+        Write-Host "Setting system color mode to 'Dark'."\r
+        \r
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -Type DWord -Value 0\r
+\r
+        Write-Host "System color mode set to 'Dark'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Light")\r
+    {\r
+        Write-Host "Setting system color mode to 'Light'."\r
+\r
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -Type DWord -Value 1\r
+\r
+        Write-Host "System color mode set to 'Light'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Dark' and 'Light'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-SystemTray.ps1 b/Development_Files/User_Interface_Settings/Set-SystemTray.ps1
new file mode 100755 (executable)
index 0000000..05c478a
--- /dev/null
@@ -0,0 +1,37 @@
+Function Set-SystemTray\r
+{\r
+    Param([string]$Value)\r
+\r
+    If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"))\r
+    {\r
+           New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Force | Out-Null\r
+       }\r
+\r
+    \r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting system tray on taskbar to be shown."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoTrayItemsDisplay -Type DWord -Value 0\r
+        Stop-Process -Name explorer\r
+\r
+        Write-Host "System tray on taskbar set to be shown."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting system tray on taskbar to be hidden."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoTrayItemsDisplay -Type DWord -Value 1\r
+        Stop-Process -Name explorer\r
+\r
+        Write-Host "System tray on taskbar set to be hidden."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-TaskManagerDetails.ps1 b/Development_Files/User_Interface_Settings/Set-TaskManagerDetails.ps1
new file mode 100755 (executable)
index 0000000..8cca2fe
--- /dev/null
@@ -0,0 +1,45 @@
+Function Set-TaskManagerDetails\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting Task Manager details to be shown."\r
+\r
+        $taskmgr = Start-Process -WindowStyle Hidden -FilePath taskmgr.exe -PassThru
+           Do 
+        {
+                   Start-Sleep -Milliseconds 100
+                   $preferences = Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager" -Name "Preferences" -ErrorAction SilentlyContinue
+           }
+
+        Until ($preferences)
+           Stop-Process $taskmgr
+           $preferences.Preferences[28] = 0
+           \r
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager" -Name "Preferences" -Type Binary -Value $preferences.Preferences\r
+\r
+        Write-Host "Task Manager details set to be shown."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting Task Manager details to be hidden."\r
+\r
+        $preferences = Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager" -Name "Preferences" -ErrorAction SilentlyContinue
+           If ($preferences)
+        {
+                   $preferences.Preferences[28] = 1
+                   Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager" -Name "Preferences" -Type Binary -Value $preferences.Preferences
+           }\r
+\r
+        Write-Host "Task Manager details set to be hidden."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-TaskViewButton.ps1 b/Development_Files/User_Interface_Settings/Set-TaskViewButton.ps1
new file mode 100755 (executable)
index 0000000..740bb07
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-TaskViewButton\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting taskview button to be shown."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowTaskViewButton" -ErrorAction SilentlyContinue\r
+        Stop-Process -Name explorer\r
+\r
+        Write-Host "Taskview button set to be shown."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting taskview button to be hidden."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowTaskViewButton" -Type DWord -Value 0\r
+        Stop-Process -Name explorer\r
+\r
+        Write-Host "Taskview button set to be hidden."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-TaskbarButtons.ps1 b/Development_Files/User_Interface_Settings/Set-TaskbarButtons.ps1
new file mode 100755 (executable)
index 0000000..2d96ab2
--- /dev/null
@@ -0,0 +1,39 @@
+Function Set-TaskbarButtons\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Never")\r
+    {\r
+        Write-Host "Setting taskbar buttons to show labels and never combine."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarGlomLevel" -Type DWord -Value 2\r
+\r
+        Write-Host "Taskbar buttons set to show labels and never combine."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Full")\r
+    {\r
+        Write-Host "Setting taskbar buttons to show labels and combine when the taskbar is full."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarGlomLevel" -Type DWord -Value 1\r
+\r
+        Write-Host "Taskbar buttons set to show labels and combine when the taskbar is full."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Always")\r
+    {\r
+        Write-Host "Setting taskbar buttons to hide labels and always combine."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarGlomLevel" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Taskbar buttons set to hide labels and always combine."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Never', 'Full', and 'Always'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-TaskbarClockSeconds.ps1 b/Development_Files/User_Interface_Settings/Set-TaskbarClockSeconds.ps1
new file mode 100755 (executable)
index 0000000..60fd64c
--- /dev/null
@@ -0,0 +1,31 @@
+Function Set-TaskbarClockSeconds\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling seconds in the taskbar clock."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name ShowSecondsInSystemClock -Type DWord -Value 1\r
+        Stop-Process -Name explorer\r
+        \r
+        Write-Host "Seconds in the taskbar clock enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling seconds in the taskbar clock."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name ShowSecondsInSystemClock -Type DWord -Value 0\r
+        Stop-Process -Name explorer\r
+\r
+        Write-Host "Seconds in the taskbar clock disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-TaskbarIcons.ps1 b/Development_Files/User_Interface_Settings/Set-TaskbarIcons.ps1
new file mode 100755 (executable)
index 0000000..10fca0b
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-TaskbarIcons\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Big")\r
+    {\r
+        Write-Host "Setting taskbar icon size to 'Big'."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarSmallIcons" -ErrorAction SilentlyContinue\r
+        \r
+        Write-Host "Taskbar icon size set to 'Big'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Small")\r
+    {\r
+        Write-Host "Setting taskbar icon size to 'Small'."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarSmallIcons" -Type DWord -Value 1\r
+\r
+        Write-Host "Taskbar icon size set to 'Small'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Big' and 'Small'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-TaskbarPeopleIcon.ps1 b/Development_Files/User_Interface_Settings/Set-TaskbarPeopleIcon.ps1
new file mode 100755 (executable)
index 0000000..e24735f
--- /dev/null
@@ -0,0 +1,34 @@
+Function Set-TaskbarPeopleIcon\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Show")\r
+    {\r
+        Write-Host "Setting taskbar people icon to be shown."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People" -Name "PeopleBand" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Taskbar people icon set to be shown."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Hide")\r
+    {\r
+        Write-Host "Setting taskbar people icon to be hidden."\r
+\r
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People"))\r
+        {\r
+                   New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People" -Force | Out-Null\r
+           }\r
+       \r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People" -Name "PeopleBand" -Type DWord -Value 0\r
+\r
+        Write-Host "Taskbar people icon set to be hidden."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."\r
+    }\r
+}\r
diff --git a/Development_Files/User_Interface_Settings/Set-Transparency.ps1 b/Development_Files/User_Interface_Settings/Set-Transparency.ps1
new file mode 100755 (executable)
index 0000000..e9d4c1b
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-Transparency\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling transparency."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name EnableTransparency -Type DWord -Value 1\r
+\r
+        Write-Host "Transparency enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling transparency."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name EnableTransparency -Type DWord -Value 0\r
+\r
+        Write-Host "Transparency disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-TrayIcons.ps1 b/Development_Files/User_Interface_Settings/Set-TrayIcons.ps1
new file mode 100755 (executable)
index 0000000..b446df0
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-TrayIcons\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "ShowAll")\r
+    {\r
+        Write-Host "Setting tray icons to all be shown."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "EnableAutoTray" -Type DWord -Value 0\r
+\r
+        Write-Host "Tray icons set to all be shown."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "HideAsNeeded")\r
+    {\r
+        Write-Host "Setting tray icons to be hidden as needed."\r
+\r
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "EnableAutoTray" -ErrorAction SilentlyContinue\r
+\r
+        Write-Host "Tray icons set to be hidden as needed."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'ShowAll' and 'HideAsNeeded'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-VisualEffectsProfile.ps1 b/Development_Files/User_Interface_Settings/Set-VisualEffectsProfile.ps1
new file mode 100755 (executable)
index 0000000..febd7f5
--- /dev/null
@@ -0,0 +1,51 @@
+Function Set-VisualEffectsProfile\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Appearance")\r
+    {\r
+        Write-Host "Setting visual effects profile to 'Appearance'."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "DragFullWindows" -Type String -Value 1
+           Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "MenuShowDelay" -Type String -Value 400
+           Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "UserPreferencesMask" -Type Binary -Value ([byte[]](158,30,7,128,18,0,0,0))
+           Set-ItemProperty -Path "HKCU:\Control Panel\Desktop\WindowMetrics" -Name "MinAnimate" -Type String -Value 1
+           Set-ItemProperty -Path "HKCU:\Control Panel\Keyboard" -Name "KeyboardDelay" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewAlphaSelect" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewShadow" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarAnimations" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects" -Name "VisualFXSetting" -Type DWord -Value 3
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\DWM" -Name "EnableAeroPeek" -Type DWord -Value 1\r
+\r
+        Set-Transparency -Value Enable\r
+\r
+        Write-Host "Visual effects profile set to 'Appearance'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Performance")\r
+    {\r
+        Write-Host "Setting visual effects profile to 'Performance'."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "DragFullWindows" -Type String -Value 0
+           Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "MenuShowDelay" -Type String -Value 0
+           Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "UserPreferencesMask" -Type Binary -Value ([byte[]](144,18,3,128,16,0,0,0))
+           Set-ItemProperty -Path "HKCU:\Control Panel\Desktop\WindowMetrics" -Name "MinAnimate" -Type String -Value 0
+           Set-ItemProperty -Path "HKCU:\Control Panel\Keyboard" -Name "KeyboardDelay" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewAlphaSelect" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewShadow" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarAnimations" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects" -Name "VisualFXSetting" -Type DWord -Value 3
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\DWM" -Name "EnableAeroPeek" -Type DWord -Value 0\r
+\r
+        Set-Transparency -Value Disable\r
+\r
+        Write-Host "Visual effects profile set to 'Performance'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Appearance' and 'Performance'."\r
+    }\r
+}
\ No newline at end of file
diff --git a/Development_Files/User_Interface_Settings/Set-WidgetsApplication.ps1 b/Development_Files/User_Interface_Settings/Set-WidgetsApplication.ps1
new file mode 100755 (executable)
index 0000000..7615a08
--- /dev/null
@@ -0,0 +1,29 @@
+Function Set-WidgetsApplication
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'Widgets' to be shown."
+
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name "TaskbarDa" -Type DWord -Value 1
+
+        Write-Host "'Widgets' set to be shown."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'Widgets' to be hidden."
+
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name "TaskbarDa" -Type DWord -Value 0
+
+        Write-Host "'Widgets' set to be hidden."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
diff --git a/Development_Files/Windows_Settings/WindowsSettings.ps1 b/Development_Files/Windows_Settings/WindowsSettings.ps1
new file mode 100755 (executable)
index 0000000..b9762f5
--- /dev/null
@@ -0,0 +1,483 @@
+Function WindowsSettings\r
+\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Maintain")\r
+    {\r
+        Write-Host "Running Windows maintenance script."\r
+\r
+        #region Application Settings\r
+        \r
+        Set-AppxPackages -Value Remove\r
+        Set-BrowserAdobeFlash -Value Disable\r
+        Set-DefaultFaxPrinter -Value Remove\r
+        #Set-HyperV -Value Install\r
+        Set-InternetExplorer -Value Disable\r
+        Set-LinuxSubsystem -Value Disable\r
+        #Set-MicrosoftEdge -Value Remove\r
+        Set-MicrosoftEdgeLegacy -Value Disable\r
+        #Set-Microsoft_PDF_Printer -Value Enable\r
+        #Set-Microsoft_XPS_DocumentWriter -Value Disable\r
+        Set-OneDrive -Value Uninstall\r
+        #Set-PhotoViewerAssociation -Value Associate\r
+        Set-ThirdPartyBloat -Value Remove\r
+        Set-WindowsMediaPlayer -Value Disable\r
+        Set-WindowsMessenger -Value Disable\r
+        Set-WindowsUpdate -Value Disable\r
+        Set-WorkFoldersClient -Value Disable\r
+        \r
+        #endregion\r
+                \r
+        #region Privacy Settings\r
+\r
+        Set-AdvertisingIdentification -Value Disable\r
+        Set-ApplicationLaunchTracking -Value Disable\r
+        Set-ApplicationsActionsPermissions -Value All -Action Deny\r
+        Set-ApplicationsGeneralAccessPermissions -Value All -Action Deny\r
+        Set-ApplicationsLibraryAccessPermissions -Value All -Action Deny\r
+        Set-ApplicationSuggestion_and_AutomaticInstallation -Value Disable \r
+        Set-AutomaticMapUpdates -Value Disable\r
+        Set-BackgroundApplicationAccess -Value Disable\r
+        Set-CEIP_DataUploads -Value Disable\r
+        Set-Cortana_and_WebSearch -Value Disable\r
+        Set-DiagTrack -Value Disable\r
+        Set-ErrorReporting -Value Disable\r
+        Set-Feedback -Value Disable\r
+        Set-InputPersonalization -Value Disable\r
+        Set-LanguagelistAccess -Value Deny\r
+        Set-LocationService_and_Sensors -Value Disable\r
+        Set-LocationTracking -Value Disable\r
+        Set-SmartScreenFilter -Value Disable\r
+        Set-TailoredExperiences -Value Disable\r
+        Set-Telemetry -Value Disable\r
+        Set-UserActivityHistory -Value Disable\r
+        Set-WAP_PushService -Value Disable\r
+                \r
+        #endregion\r
+\r
+        #region Security Settings\r
+        \r
+        #Set-ControlledFolderAccess -Value Enable\r
+        #Set-CoreIsolationMemoryIntegrity -Value Enable\r
+        Set-CurrentNetworkProfile -Value Public\r
+        #Set-DEP_Policy -Value OptIn\r
+        Set-DotNetStrongCryptography -Value Enable\r
+        Set-F8_BootMenuOptions -Value Enable\r
+        Set-Firewall -Value Enable\r
+        Set-ImplicitAdministrativeShares -Value Disable\r
+        Set-LLMNR -Value Enable\r
+        Set-MeltdownCompatibilityFlag -Value Enable\r
+        Set-NetworkDeviceAutomaticInstallation -Value Disable\r
+        Set-RemoteShellAccess -Value Disable\r
+        Set-SharingMappedDrivesBetweenUsers -Value Disable\r
+        Set-SMB_Server -Value Disable\r
+        #Set-UAC_Level -Value High\r
+        Set-UnknownNetworksProfile -Value Public\r
+        #Set-WindowsDefender -Value Enable\r
+        #Set-WindowsDefenderCloud -Value Disable\r
+        #Set-WindowsScriptHost -Value Enable\r
+\r
+        #endregion\r
+                \r
+        #region Service Settings\r
+        \r
+        Set-Autoplay -Value Disable\r
+        Set-Biometrics -Value Disable\r
+        Set-BIOS_Time -Value Local\r
+        Set-DisplayandSleepModeTimeouts -Value Disable\r
+        Set-DriveAutorun -Value Disable\r
+        Set-FastStartupPolicy -Value Disable\r
+        Set-FileIndexing -Value Disable\r
+        Set-Game_DVR -Value Disable\r
+        Set-Hibernation -Value Disable\r
+        Set-RemoteAssistance -Value Disable\r
+        Set-RemoteDesktop -Value Disable\r
+        Set-ScheduledDefragmentation -Value Disable\r
+        Set-SettingsSynchronization -Value Disable\r
+        Set-SharedExperiences -Value Disable\r
+        Set-SleepButton -Value Disable\r
+        Set-Spellcheck -Value Disable\r
+        Set-StorageSense -Value Disable\r
+        Set-Superfetch -Value Disable\r
+        Set-TextPrediction -Value Disable\r
+        Set-TypingInsights -Value Disable\r
+        Set-WindowsUpdate_Drivers -Value Disable\r
+        Set-WindowsUpdate_MSRT -Value Disable\r
+        Set-WindowsUpdateAutomaticRestart -Value Disable\r
+        Set-WindowsUpdateTransferOptimization -Value Disable\r
+        \r
+        #endregion\r
+                \r
+        Write-Host "Windows maintenance script finished."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Restore")\r
+    {\r
+        Write-Host "Running Windows restoration script."\r
+\r
+        #region Application Settings\r
+        \r
+        Set-AppxPackages -Value Restore\r
+        Set-BrowserAdobeFlash -Value Enable\r
+        Set-DefaultFaxPrinter -Value Add\r
+        #Set-HyperV -Value Install\r
+        Set-InternetExplorer -Value Enable\r
+        Set-LinuxSubsystem -Value Enable\r
+        Set-MicrosoftEdgeLegacy -Value Enable\r
+        #Set-Microsoft_PDF_Printer -Value Enable\r
+        #Set-Microsoft_XPS_DocumentWriter -Value Disable\r
+        Set-OneDrive -Value Install\r
+        #Set-PhotoViewerAssociation -Value Associate\r
+        Set-ThirdPartyBloat -Value Restore\r
+        Set-WindowsMediaPlayer -Value Enable\r
+        Set-WindowsMessenger -Value Enable\r
+        Set-WindowsUpdate -Value Enable\r
+        Set-WorkFoldersClient -Value Enable\r
+        \r
+        #endregion\r
+\r
+        #region Explorer_User_Interface_Settings\r
+        \r
+        Set-Display3D_ObjectsExplorer -Value Show\r
+        Set-Display3D_ObjectsThisPC -Value Show\r
+        #Set-DisplayDesktopExplorer -Value Show\r
+        #Set-DisplayDesktopThisPC -Value Show\r
+        #Set-DisplayDocumentsExplorer -Value Show\r
+        #Set-DisplayDocumentsThisPC -Value Show\r
+        #Set-DisplayDownloadsExplorer -Value Show\r
+        #Set-DisplayDownloadsThisPC -Value Show\r
+        #Set-DisplayMusicExplorer -Value Show\r
+        #Set-DisplayMusicThisPC -Value Show\r
+        #Set-DisplayPicturesExplorer -Value Show\r
+        #Set-DisplayPicturesThisPC -Value Show\r
+        #Set-DisplayVideosExplorer -Value Show\r
+        #Set-DisplayVideosThisPC -Value Show\r
+        Set-ExplorerStart -Value QuickAcces\r
+        #Set-HiddenFilesandFolders -Value Hide\r
+        Set-KnownFileExtensions -Value Hide\r
+        Set-Recent_FrequentShortcuts -Value Enable\r
+        #Set-SynchronizationProviderNotifications -Value Enabled\r
+        Set-ThisPC_OnDesktop -Value Show\r
+        #Set-Thumbnails -Value Enable\r
+        #Set-ThumbnailsCache -Value Enable\r
+        Set-UserFolderOnDesktop -Value Show\r
+        \r
+        #endregion\r
+\r
+        #region Privacy Settings\r
+\r
+        Set-AdvertisingIdentification -Value Enable\r
+        Set-ApplicationLaunchTracking -Value Enable\r
+        Set-ApplicationsActionsPermissions -Value All -Action Reset\r
+        Set-ApplicationsGeneralAccessPermissions -Value All -Action Reset\r
+        Set-ApplicationsLibraryAccessPermissions -Value All -Action Grant\r
+        Set-ApplicationSuggestion_and_AutomaticInstallation -Value Enable\r
+        Set-AutomaticMapUpdates -Value Enable\r
+        Set-BackgroundApplicationAccess -Value Enable\r
+        Set-CEIP_DataUploads -Value Enable\r
+        Set-Cortana_and_WebSearch -Value Enable\r
+        Set-DiagTrack -Value Enable\r
+        Set-ErrorReporting -Value Enable\r
+        Set-Feedback -Value Enable\r
+        Set-InputPersonalization -Value Enable\r
+        Set-LocationService_and_Sensors -Value Enable\r
+        Set-LocationTracking -Value Enable\r
+        Set-SmartScreenFilter -Value Enable\r
+        Set-TailoredExperiences -Value Enable\r
+        Set-Telemetry -Value Enable\r
+        Set-UserActivityHistory -Value Enable\r
+        Set-WAP_PushService -Value Enable\r
+                \r
+        #endregion\r
+\r
+        #region Security Settings\r
+        \r
+        #Set-ControlledFolderAccess -Value Enable\r
+        #Set-CoreIsolationMemoryIntegrity -Value Enable\r
+        Set-CurrentNetworkProfile -Value Private\r
+        #Set-DEP_Policy -Value OptIn\r
+        Set-DotNetStrongCryptography -Value Disable\r
+        Set-F8_BootMenuOptions -Value Disable\r
+        #Set-Firewall -Value Enable\r
+        Set-ImplicitAdministrativeShares -Value Enable\r
+        Set-LLMNR -Value Disable\r
+        #Set-MeltdownCompatibilityFlag -Value Enable\r
+        Set-NetworkDeviceAutomaticInstallation -Value Enable\r
+        Set-RemoteShellAccess -Value Enable\r
+        Set-SharingMappedDrivesBetweenUsers -Value Enable\r
+        Set-SMB_Server -Value Enable\r
+        #Set-UAC_Level -Value High\r
+        #Set-UnknownNetworksProfile -Value Public\r
+        #Set-WindowsDefender -Value Enable\r
+        #Set-WindowsDefenderCloud -Value Enable\r
+        #Set-WindowsScriptHost -Value Enable\r
+\r
+        #endregion\r
+\r
+        #region Server Specific Settings\r
+        \r
+        #Set-CtrlAltDelLogin -Value Enable\r
+        #Set-IE_EnhancedSecurity -Value Enable\r
+        #Set-PasswordPolicy -Value Enable\r
+        #Set-ServerManagerAtLogin -Value Hide\r
+        #Set-ShutdownEventTracker -Value Disable\r
+        #Set-Sound -Value Enable\r
+        \r
+        #endregion\r
+\r
+        #region Service Settings\r
+        \r
+        Set-Autoplay -Value Enable\r
+        Set-Biometrics -Value Enable\r
+        #Set-BIOS_Time -Value Local\r
+        Set-DisplayandSleepModeTimeouts -Value Enable\r
+        Set-DriveAutorun -Value Enable\r
+        Set-FastStartupPolicy -Value Enable\r
+        Set-FileIndexing -Value Enable\r
+        Set-Game_DVR -Value Enable\r
+        Set-Hibernation -Value Enable\r
+        Set-RemoteAssistance -Value Enable\r
+        Set-RemoteDesktop -Value Enable\r
+        Set-ScheduledDefragmentation -Value Enable\r
+        Set-SettingsSynchronization -Value Enable\r
+        #Set-SharedExperiences -Value Disable\r
+        Set-SleepButton -Value Enable\r
+        Set-Spellcheck -Value Enable\r
+        Set-StorageSense -Value Enable\r
+        Set-Superfetch -Value Enable\r
+        Set-TextPrediction -Value Enable\r
+        Set-TypingInsights -Value Enable\r
+        Set-WindowsUpdate_Drivers -Value Enable\r
+        Set-WindowsUpdate_MSRT -Value Enable\r
+        Set-WindowsUpdateAutomaticRestart -Value Enable\r
+        Set-WindowsUpdateTransferOptimization -Value LocalNetwork\r
+        \r
+        #endregion\r
+\r
+        #region User Interface Settings\r
+        \r
+        Set-ActionCenter -Value Enable\r
+        Set-ApplicationColorMode -Value Light\r
+        #Set-ColorMode -Value Dark\r
+        #Set-ControlPanelView -Value Categories\r
+        Set-FileDeletionConfirmation -Value Disable\r
+        Set-FileOperationsDetails -Value Hide\r
+        Set-LiveTilePushNotifications -Value Enable\r
+        Set-Lockscreen -Value Enable\r
+        Set-LockscreenNetworkOptions -Value Enable\r
+        Set-LockscreenShutdownOptions -Value Enable\r
+        #Set-NewApplicationPrompt -Value Enable\r
+        Set-NumberlockAfterStartup -Value Disable\r
+        Set-RecentlyAddedApplications -Value Show\r
+        Set-SearchApplicationInStore -Value Enable\r
+        Set-Searchbox -Value Box\r
+        Set-Shake_to_Minimize -Value Enable\r
+        #Set-StartMenuLayout -Value Standard\r
+        Set-StickyKeys -Value Enable\r
+        #Set-SystemColorMode -Value Dark\r
+        #Set-SystemTray -Value Show\r
+        #Set-TaskbarButtons -Value Full\r
+        #Set-TaskbarClockSeconds -Value Enable\r
+        #Set-TaskbarIcons -Value Big\r
+        Set-TaskbarPeopleIcon -Value Show\r
+        Set-TaskManagerDetails -Value Hide\r
+        #Set-TaskView -Value Enable\r
+        #Set-TrayIcons -Value HideAsNeeded\r
+        #Set-VisualEffectsProfile -Value Performance\r
+        \r
+        #endregion\r
+\r
+        Write-Host "Windows restoration script finished."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Setup")\r
+    {\r
+        Write-Host "Running Windows setup script."\r
+\r
+        #region Application Settings\r
+        \r
+        Set-AppxPackages -Value Remove\r
+        Set-BrowserAdobeFlash -Value Disable\r
+        Set-DefaultFaxPrinter -Value Remove\r
+        #Set-HyperV -Value Install\r
+        Set-InternetExplorer -Value Disable\r
+        Set-LinuxSubsystem -Value Disable\r
+        #Set-MicrosoftEdge -Value Remove\r
+        Set-MicrosoftEdgeLegacy -Value Disable\r
+        #Set-Microsoft_PDF_Printer -Value Enable\r
+        #Set-Microsoft_XPS_DocumentWriter -Value Disable\r
+        Set-OneDrive -Value Uninstall\r
+        #Set-PhotoViewerAssociation -Value Associate\r
+        Set-ThirdPartyBloat -Value Remove\r
+        Set-WindowsMediaPlayer -Value Disable\r
+        Set-WindowsMessenger -Value Disable\r
+        Set-WindowsUpdate -Value Disable\r
+        Set-WorkFoldersClient -Value Disable\r
+        \r
+        #endregion\r
+\r
+        #region Explorer_User_Interface_Settings\r
+        \r
+        Set-Display3D_ObjectsExplorer -Value Hide\r
+        Set-Display3D_ObjectsThisPC -Value Hide\r
+        #Set-DisplayDesktopExplorer -Value Show\r
+        #Set-DisplayDesktopThisPC -Value Show\r
+        #Set-DisplayDocumentsExplorer -Value Show\r
+        #Set-DisplayDocumentsThisPC -Value Show\r
+        #Set-DisplayDownloadsExplorer -Value Show\r
+        #Set-DisplayDownloadsThisPC -Value Show\r
+        #Set-DisplayMusicExplorer -Value Show\r
+        #Set-DisplayMusicThisPC -Value Show\r
+        #Set-DisplayPicturesExplorer -Value Show\r
+        #Set-DisplayPicturesThisPC -Value Show\r
+        #Set-DisplayVideosExplorer -Value Show\r
+        #Set-DisplayVideosThisPC -Value Show\r
+        Set-ExplorerStart -Value ThisPC\r
+        #Set-HiddenFilesandFolders -Value Hide\r
+        Set-KnownFileExtensions -Value Show\r
+        Set-Recent_FrequentShortcuts -Value Disable\r
+        #Set-SynchronizationProviderNotifications -Value Enabled\r
+        Set-ThisPC_OnDesktop -Value Hide\r
+        #Set-Thumbnails -Value Enable\r
+        #Set-ThumbnailsCache -Value Enable\r
+        Set-UserFolderOnDesktop -Value Hide\r
+                \r
+        #endregion\r
+\r
+        #region Privacy Settings\r
+\r
+        Set-AdvertisingIdentification -Value Disable\r
+        Set-ApplicationLaunchTracking -Value Disable\r
+        Set-ApplicationsActionsPermissions -Value All -Action Deny\r
+        Set-ApplicationsGeneralAccessPermissions -Value All -Action Deny\r
+        Set-ApplicationsLibraryAccessPermissions -Value All -Action Deny\r
+        Set-ApplicationSuggestion_and_AutomaticInstallation -Value Disable \r
+        Set-AutomaticMapUpdates -Value Disable\r
+        Set-BackgroundApplicationAccess -Value Disable\r
+        Set-CEIP_DataUploads -Value Disable\r
+        Set-Cortana_and_WebSearch -Value Disable\r
+        Set-DiagTrack -Value Disable\r
+        Set-ErrorReporting -Value Disable\r
+        Set-Feedback -Value Disable\r
+        Set-InputPersonalization -Value Disable\r
+        Set-LanguagelistAccess -Value Deny\r
+        Set-LocationService_and_Sensors -Value Disable\r
+        Set-LocationTracking -Value Disable\r
+        Set-SmartScreenFilter -Value Disable\r
+        Set-TailoredExperiences -Value Disable\r
+        Set-Telemetry -Value Disable\r
+        Set-UserActivityHistory -Value Disable\r
+        Set-WAP_PushService -Value Disable\r
+                \r
+        #endregion\r
+\r
+        #region Security Settings\r
+        \r
+        #Set-ControlledFolderAccess -Value Enable\r
+        #Set-CoreIsolationMemoryIntegrity -Value Enable\r
+        Set-CurrentNetworkProfile -Value Public\r
+        #Set-DEP_Policy -Value OptIn\r
+        Set-DotNetStrongCryptography -Value Enable\r
+        Set-F8_BootMenuOptions -Value Enable\r
+        Set-Firewall -Value Enable\r
+        Set-ImplicitAdministrativeShares -Value Disable\r
+        Set-LLMNR -Value Enable\r
+        Set-MeltdownCompatibilityFlag -Value Enable\r
+        Set-NetworkDeviceAutomaticInstallation -Value Disable\r
+        Set-RemoteShellAccess -Value Disable\r
+        Set-SharingMappedDrivesBetweenUsers -Value Disable\r
+        Set-SMB_Server -Value Disable\r
+        #Set-UAC_Level -Value High\r
+        Set-UnknownNetworksProfile -Value Public\r
+        #Set-WindowsDefender -Value Enable\r
+        #Set-WindowsDefenderCloud -Value Disable\r
+        #Set-WindowsScriptHost -Value Enable\r
+\r
+        #endregion\r
+\r
+        #region Server Specific Settings\r
+        \r
+        #Set-CtrlAltDelLogin -Value Enable\r
+        #Set-IE_EnhancedSecurity -Value Enable\r
+        #Set-PasswordPolicy -Value Enable\r
+        #Set-ServerManagerAtLogin -Value Hide\r
+        #Set-ShutdownEventTracker -Value Disable\r
+        #Set-Sound -Value Enable\r
+        \r
+        #endregion\r
+\r
+        #region Service Settings\r
+        \r
+        Set-Autoplay -Value Disable\r
+        Set-Biometrics -Value Disable\r
+        Set-BIOS_Time -Value Local\r
+        Set-DisplayandSleepModeTimeouts -Value Disable\r
+        Set-DriveAutorun -Value Disable\r
+        Set-FastStartupPolicy -Value Disable\r
+        Set-FileIndexing -Value Disable\r
+        Set-Game_DVR -Value Disable\r
+        Set-Hibernation -Value Disable\r
+        Set-RemoteAssistance -Value Disable\r
+        Set-RemoteDesktop -Value Disable\r
+        Set-ScheduledDefragmentation -Value Disable\r
+        Set-SettingsSynchronization -Value Disable\r
+        Set-SharedExperiences -Value Disable\r
+        Set-SleepButton -Value Disable\r
+        Set-Spellcheck -Value Disable\r
+        Set-StorageSense -Value Disable\r
+        Set-Superfetch -Value Disable\r
+        Set-TextPrediction -Value Disable\r
+        Set-TypingInsights -Value Disable\r
+        Set-WindowsUpdate_Drivers -Value Disable\r
+        Set-WindowsUpdate_MSRT -Value Disable\r
+        Set-WindowsUpdateAutomaticRestart -Value Disable\r
+        Set-WindowsUpdateTransferOptimization -Value Disable\r
+        \r
+        #endregion\r
+\r
+        #region User Interface Settings\r
+        \r
+        Set-ActionCenter -Value Disable\r
+        #Set-ApplicationColorMode -Value Dark\r
+        Set-ColorMode -Value Dark\r
+        #Set-ControlPanelView -Value Categories\r
+        Set-FileDeletionConfirmation -Value Enable\r
+        Set-FileOperationsDetails -Value Show\r
+        Set-LiveTilePushNotifications -Value Disable\r
+        Set-Lockscreen -Value Disable\r
+        Set-LockscreenNetworkOptions -Value Disable\r
+        Set-LockscreenShutdownOptions -Value Disable\r
+        Set-NewApplicationPrompt -Value Enable\r
+        Set-NumberlockAfterStartup -Value Enable\r
+        Set-RecentlyAddedApplications -Value Hide\r
+        Set-SearchApplicationInStore -Value Disable\r
+        Set-Searchbox -Value Hide\r
+        Set-Shake_to_Minimize -Value Disable\r
+        #Set-StartMenuLayout -Value Standard\r
+        Set-StickyKeys -Value Disable\r
+        #Set-SystemColorMode -Value Dark\r
+        #Set-SystemTray -Value Hide\r
+        #Set-TaskbarButtons -Value Full\r
+        #Set-TaskbarClockSeconds -Value Disable\r
+        #Set-TaskbarIcons -Value Big\r
+        Set-TaskbarPeopleIcon -Value Hide\r
+        Set-TaskManagerDetails -Value Show\r
+        #Set-TaskView -Value Enable\r
+        #Set-TrayIcons -Value HideAsNeeded\r
+        #Set-VisualEffectsProfile -Value Performance\r
+        \r
+        #endregion\r
+\r
+        Write-Host "Windows setup script finished."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Maintain', 'Restore', and 'Setup'."\r
+    }\r
+\r
+}\r
diff --git a/Functions_Documentation/Documentation-Applications_Settings_Group.md b/Functions_Documentation/Documentation-Applications_Settings_Group.md
new file mode 100755 (executable)
index 0000000..de19e2f
--- /dev/null
@@ -0,0 +1,556 @@
+## NOTE:  Syntax for all functions, unless otherwise specified, is of the following form: FunctionName -Value OptionName\r
+## NOTE:  Run all functions in a PowerShell instance with administrative rights.\r
+\r
+### Set-AppxPackages\r
+         This function adds and removes Windows Appx applications.\r
+        \r
+         Options:\r
+            - Remove:   This removes unnecessary Appx applications.   \r
+            \r
+            - Restore:  This restores all Appx applications.\r
+       \r
+### Set-BrowserAdobeFlash\r
+         This sets the state of built-in Adobe Flash in Internet Explorer and Edge.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-DefaultFaxPrinter\r
+         This adds or removes the default Windows fax printer „Microsoft Shared Fax Driver".\r
+        \r
+         Options:\r
+            - Add   \r
+            \r
+            - Remove  \r
+       \r
+### Set-HyperV\r
+         Installs or uninstalls Microsofts hypervisor based virtualisation.\r
+        \r
+         Options:\r
+            - Install\r
+            \r
+            - Uninstall  \r
+       \r
+### Set-InternetExplorer\r
+         Enables or disables the Internet Explorer Web Browser\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+                       \r
+           - Remove - This is irreversible.\r
+       \r
+### Set-LinuxSubsystem\r
+         Enables or disables the Linux subsystem, officially called the „Windows Subsystem for Linux".\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-Microsoft.BingWeather\r
+         Removes or restores Microsoft.BingWeather.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.DesktopAppInstaller\r
+         Removes or restores Microsoft.DesktopAppInstaller.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.GetHelp\r
+         Removes or restores Microsoft.GetHelp.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.Getstarted\r
+         Removes or restores Microsoft.Getstarted.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.HEIFImageExtension\r
+         Removes or restores Microsoft.HEIFImageExtension.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.Messaging\r
+         Removes or restores Microsoft.Messaging.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.Microsoft3DViewer\r
+         Removes or restores Microsoft.Microsoft3DViewer.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.MicrosoftOfficeHub\r
+         Removes or restores Microsoft.MicrosoftOfficeHub.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.MicrosoftSolitaireCollection\r
+         Removes or restores Microsoft.MicrosoftSolitaireCollection.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.MicrosoftStickyNotes\r
+         Removes or restores Microsoft.MicrosoftStickyNotes.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.MixedReality.Portal\r
+         Removes or restores Microsoft.MixedReality.Portal.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.MSPaint\r
+         Removes or restores Microsoft.MSPaint.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.Office.OneNote\r
+         Removes or restores Microsoft.Office.OneNote.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.OneConnect\r
+         Removes or restores Microsoft.OneConnect.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.People\r
+         Removes or restores Microsoft.People.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Set-Microsoft.Print3D\r
+         Removes or restores Set-Microsoft.Print3D.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.ScreenSketch\r
+         Removes or restores Microsoft.ScreenSketch.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.SkypeApp\r
+         Removes or restores Microsoft.SkypeApp.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.StorePurchaseApp\r
+         Removes or restores Microsoft.StorePurchaseApp.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.VP9VideoExtensions\r
+         Removes or restores Microsoft.VP9VideoExtensions.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.Wallet\r
+         Removes or restores Microsoft.Wallet.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.WebMediaExtensions\r
+         Removes or restores Microsoft.WebMediaExtensions.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.WebpImageExtension\r
+         Removes or restores Microsoft.WebpImageExtension.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.Windows.Photos\r
+         Removes or restores Microsoft.Windows.Photos.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.WindowsAlarms\r
+         Removes or restores Microsoft.WindowsAlarms.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.WindowsCalculator\r
+         Removes or restores Microsoft.WindowsCalculator.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.WindowsCamera\r
+         Removes or restores Microsoft.WindowsCamera.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-microsoft.windowscommunicationsapps\r
+         Removes or restores microsoft.windowscommunicationsapps.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.WindowsFeedbackHub\r
+         Removes or restores Microsoft.WindowsFeedbackHub.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.WindowsMaps\r
+         Removes or restores Microsoft.WindowsMaps.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.WindowsSoundRecorder\r
+         Removes or restores Microsoft.WindowsSoundRecorder.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.WindowsStore\r
+         Removes or restores Microsoft.WindowsStore.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.Xbox.TCUI\r
+         Removes or restores Microsoft.Xbox.TCUI.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.XboxApp\r
+         Removes or restores Microsoft.XboxApp.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.XboxGameOverlay\r
+         Removes or restores Microsoft.XboxGameOverlay.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.XboxGamingOverlay\r
+         Removes or restores Microsoft.XboxGamingOverlay.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.XboxIdentityProvider\r
+         Removes or restores Microsoft.XboxIdentityProvider.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.XboxSpeechToTextOverlay\r
+         Removes or restores Microsoft.XboxSpeechToTextOverlay.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.YourPhone\r
+         Removes or restores Set-Microsoft.YourPhone.\r
+        \r
+         Options:\r
+            - Remove\r
+            \r
+           -PermanentlyRemove - This is irreversible.\r
+\r
+            - Restore\r
+       \r
+### Set-Microsoft.ZuneMusic\r
+         Removes or restores Set-Microsoft.ZuneMusic.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft.ZuneVideo\r
+         Removes or restores Microsoft.ZuneVideo.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-Microsoft_PDF_Printer\r
+         Enables or disables the Microsoft P.D.F. Printer.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-Microsoft_XPS_DocumentWriter\r
+         Enables or Disables the Microsoft X.P.S. Document Writer.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+\r
+### Set-MicrosoftCortana\r
+         Removes or restores Microsoft Cortana.\r
+        \r
+         Options:\r
+            - Remove\r
+\r
+           -PermanentlyRemove - This is irreversible.\r
+            \r
+            - Restore\r
+       \r
+### Set-MicrosoftEdge\r
+                Removes Microsoft Edge.\r
+\r
+                Options:                       \r
+                       - Remove - This is irreversible.\r
+\r
+### Set-MicrosoftEdgeLegacy\r
+                Enables or disables legacy (old) Microsoft Edge.\r
+\r
+                Options:\r
+                       - Enable\r
+\r
+                       - Disable\r
+                       \r
+                       - Remove - This is irreversible.\r
+\r
+### Set-OneDrive\r
+         Sets the state of OneDrive and its operations.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+            - Install\r
+       \r
+            - Uninstall\r
+       \r
+### Set-PhotoViewerAssociation\r
+         Associates or disassociates Photo Viewer with .bmp, .gif, .jpg, .png, and .tif files.\r
+        \r
+         Options:\r
+            - Associate\r
+            \r
+            - Disassociate \r
+       \r
+### Set-ThirdPartyBloat\r
+         Removes or restores third party bloatware.\r
+        \r
+         Options:\r
+            - Remove\r
+            \r
+            - Restore\r
+       \r
+### Set-WindowsMediaPlayer\r
+         Enables or disables Windows Media Player.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-WindowsMessenger\r
+         Enables or disables Windows Messenger.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-WorkFoldersClient\r
+         Enables or disables „Work Folders", a tool for Bring-Your-Own-Device enhancement.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
diff --git a/Functions_Documentation/Documentation-Explorer_User_Interface_Settings_Group.md b/Functions_Documentation/Documentation-Explorer_User_Interface_Settings_Group.md
new file mode 100755 (executable)
index 0000000..22fdf1a
--- /dev/null
@@ -0,0 +1,186 @@
+## NOTE:  Syntax for all functions, unless otherwise specified, is of the following form: FunctionName -Value OptionName\r
+## NOTE:  Run all functions in a PowerShell instance with administrative rights.\r
+\r
+### Set-Display3D_ObjectsExplorer\r
+         Hides or shows the „3D-Objects" icon in Explorer.\r
+        \r
+         Options:\r
+            - Hide\r
+            \r
+            - Show\r
+       \r
+### Set-Display3D_ObjectsThisPC\r
+         Hides or shows the „3D-Objects" icon in „ThisPC".\r
+        \r
+         Options:\r
+            - Hide\r
+            \r
+            - Show\r
+       \r
+### Set-DisplayDesktopExplorer\r
+         Hides or shows the „Desktop" icon in Explorer.\r
+        \r
+         Options:\r
+            - Hide\r
+            \r
+            - Show\r
+       \r
+### Set-DisplayDesktopThisPC\r
+         Hides or shows the „Desktop" icon in „ThisPC".\r
+        \r
+         Options:\r
+            - Hide\r
+            \r
+            - Show\r
+       \r
+### Set-DisplayDocumentsExplorer\r
+         Hides or shows the „Documents" icon in Explorer.\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-DisplayDocumentsThisPC\r
+         Hides or shows the „Documents" icon in „ThisPC".\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-DisplayDownloadsExplorer\r
+         Hides or shows the „Downloads" icon in Explorer.\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-DisplayDownloadsThisPC\r
+         Hides or shows the „Downloads" icon in „ThisPC".\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-DisplayMusicExplorer\r
+         Hides or shows the „Music" icon in Explorer.\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-DisplayMusicThisPC\r
+         Hides or shows the „Music" icon in „ThisPC".\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-DisplayPicturesExplorer\r
+         Hides or shows the „Pictures" icon in Explorer.\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-DisplayPicturesThisPC\r
+         Hides or shows the „Pictures" icon in „ThisPC".\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-DisplayVideosExplorer\r
+         Hides or shows the „Videos" icon in Explorer.\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-DisplayVideosThisPC\r
+         Hides or shows the „Videos" icon in „ThisPC".\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-ExplorerStart\r
+         Sets the start directory of Explorer.\r
+        \r
+         Options:\r
+            - ThisPC\r
+            \r
+            - QuickAccess\r
+       \r
+### Set-HiddenFilesandFolders\r
+         Sets whether hidden files and folders are to be hidden or shown.\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-KnownFileExtensions\r
+         Sets whether hidden known file extensions are to be hidden or shown.\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-Recent_FrequentShortcuts\r
+         Enables or disables the recent activity and frequent files shorcuts.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-SynchronizationProviderNotifications\r
+         Enables or disables the display of synchronization provider notifications in the action center.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-ThisPC_OnDesktop\r
+         Sets whether the „ThisPC" icon is to be shown or hidden on the desktop.\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-Thumbnails\r
+         Enables or disables thumbnails.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-ThumbnailsCache\r
+         Enables or disables the thumbnails cache (Thumbs.db).\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-UserFolderOnDesktop\r
+         Sets whether the user folder icon is to be shown or hidden on the desktop.\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
diff --git a/Functions_Documentation/Documentation-Other_Functions_Group.md b/Functions_Documentation/Documentation-Other_Functions_Group.md
new file mode 100755 (executable)
index 0000000..0813ddd
--- /dev/null
@@ -0,0 +1,28 @@
+## NOTE:  Syntax for all functions, unless otherwise specified, is of the following form: FunctionName -Value OptionName\r
+## NOTE:  Run all functions in a PowerShell instance with administrative rights.\r
+\r
+### Hex\r
+                Takes a binary key, appends hexadecimal prefixes to it, and makes it acceptable as a registry value.\r
+\r
+                - Syntax: Hex -BinaryKey INPUT\r
+\r
+### Set-KMS_Activation\r
+                Enables or disables Windows activating using a Key Management Service.\r
+\r
+                Options:\r
+                       - Enable\r
+\r
+                       - Disable\r
+\r
+### Set-WindowsLicense_KMS\r
+                Activates or deactivates Windows.  Activating Windows is done using „Key Management Service" (K.M.S.).  The user must have his own K.M.S. host setup to do this.\r
+\r
+                ##Note: This only works with Windows 10.  Supported editions of Windows 10 are 'Education', 'EducationN', 'Professional', 'ProfessionalEducation', 'ProfessionalEducationN', 'ProfessionalN', 'ProfessionalWorkstation', and 'ProfessionalWorkstationN'.\r
+                ##Note: K.M.S. activation must first be enabled with „Set-KMS_Activation".\r
+\r
+                - Syntax: Set-WindowsLicense_KMS -Action OPTION -HostAddress K.M.S._Host_Address\r
+\r
+                Options:\r
+                       - Activate\r
+\r
+                       - Deactivate\r
diff --git a/Functions_Documentation/Documentation-Privacy_Settings_Group.md b/Functions_Documentation/Documentation-Privacy_Settings_Group.md
new file mode 100755 (executable)
index 0000000..6c132b6
--- /dev/null
@@ -0,0 +1,250 @@
+## NOTE:  Syntax for all functions, unless otherwise specified, is of the following form: FunctionName -Value OptionName\r
+## NOTE:  Run all functions in a PowerShell instance with administrative rights.\r
+\r
+### Set-AdvertisingIdentification\r
+         Enables or disables a user specific identification for advertising.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+\r
+###    Set-ApplicationLaunchTracking\r
+                Enables or disables application launch tracking.  Application launch tracking tracks which applications are started, in an effort to improve start menu and search results.\r
+\r
+                Options:\r
+                       - Enable\r
+\r
+                       - Disable\r
+\r
+### Set-ApplicationsActionsPermissions\r
+                Grants or denies applications ability to perform certain actions within the operating system.\r
+\r
+                Syntax: Set-ApplicationsActionsPermissions -Value VALUENAME -Action ACTIONNAME\r
+\r
+                Actions:\r
+                       - Grant\r
+\r
+                       - Deny\r
+\r
+                       - Reset\r
+\r
+                Values:\r
+\r
+                       - Activate_with_Voice\r
+\r
+                       - GatherDiagnosticInformation\r
+\r
+                       - Run_in_Background\r
+\r
+                       - Synchronize_with_Devices\r
+\r
+                       - All\r
+                               \r
+### Set-ApplicationsGeneralAccessPermissions\r
+                Grants or denies applications access to information and functions on the system.\r
+\r
+                Syntax: Set-ApplicationsActionsPermissions -Value VALUENAME -Action ACTIONNAME\r
+\r
+                Actions:\r
+                       - Grant\r
+\r
+                       - Deny\r
+\r
+                       - Reset\r
+\r
+                Values:\r
+\r
+                       - AccountInformation\r
+\r
+                       - Calendar\r
+\r
+                       - CallHistory\r
+\r
+                       - Camera\r
+\r
+                       - Contacts\r
+\r
+                       - E-Mail\r
+\r
+                       - GazeInput\r
+\r
+                       - Location\r
+\r
+                       - Messaging\r
+\r
+                       - Microphone\r
+\r
+                       - Motion\r
+\r
+                       - Notifications\r
+\r
+                       - Phone\r
+\r
+                       - Radios\r
+\r
+                       - Tasks\r
+\r
+                       - TrustedDevices\r
+\r
+                       - All\r
+\r
+### Set-ApplicationsLibraryAccessPermissions\r
+                Grants or denies applications access to libraries on the system.\r
+\r
+                Syntax: Set-ApplicationsActionsPermissions -Value VALUENAME -Action ACTIONNAME\r
+\r
+                Actions:\r
+                       - Grant\r
+\r
+                       - Deny\r
+\r
+                Values:\r
+\r
+                       - Documents\r
+\r
+                       - Filesystem\r
+\r
+                       - Pictures\r
+\r
+                       - Videos\r
+\r
+                       - All\r
+\r
+### Set-ApplicationSuggestion_and_AutomaticInstallation\r
+         Enables or disables suggestion of applications from the Windows Store, and automatic\r
+         installation of suggested applications from the Windows Store.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-AutomaticMapUpdates\r
+         Enables or disables automatic map updates.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-BackgroundApplicationAccess\r
+         Enables or disables the running of Windows Appx applications in background.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-CEIP_DataUploads\r
+         Enables or disables uploading of telemetry to the Microsoft Customer Experience Improvement Program.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-Cortana_and_WebSearch\r
+         Enables or disables the Cortana Virtual Assistant, and web search results in the start menu search.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-DiagTrack\r
+         Enables or disables the Microsoft telemetry gathering service DiagTrack.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-ErrorReporting\r
+         Enables or disables error or crash details being sent to Microsoft.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-Feedback\r
+         Enables or disables sending feedback to Microsoft.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-InputPersonalization\r
+         Enables or disables the handwriting recognition.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+\r
+### Set-LanguagelistAccess\r
+         Denies websites in Internet Explorer access to the language bar.  This is used to tailor content to the user.  This function cannot grant access.  To do so, go to the Windows settings application under „Privacy -> General", and set it manually.\r
+        \r
+         Options:\r
+            - Deny\r
+                       \r
+### Set-LocationService_and_Sensors\r
+         Enables or disables the use of location services and various sensors a device may have.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-LocationTracking\r
+         Enables or disables location tracking.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-SmartScreenFilter\r
+         Enables or disables the SmartScreen filter, an Microsoft program that watches the sites\r
+         a user visits on the internet, and compares them with a database of known dangerous sites.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-TailoredExperiences\r
+         Enables or disables the collecting of telemetry for the purpose of Microsoft promoting\r
+         and suggesting Microsoft products.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-Telemetry\r
+         Enables or disables the collection of telemetry.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-UserActivityHistory\r
+         Enables or disables user activity history.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-WAP_PushService\r
+         Enables or disables the use of Wireless Application Protocol.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       
\ No newline at end of file
diff --git a/Functions_Documentation/Documentation-Security_Settings_Group.md b/Functions_Documentation/Documentation-Security_Settings_Group.md
new file mode 100755 (executable)
index 0000000..a5a5f86
--- /dev/null
@@ -0,0 +1,167 @@
+## NOTE:  Syntax for all functions, unless otherwise specified, is of the following form: FunctionName -Value OptionName\r
+## NOTE:  Run all functions in a PowerShell instance with administrative rights.\r
+\r
+### Set-ControlledFolderAccess\r
+         Enables or disables controlled folders, also known as protected folders, which are folder the\r
+         operating system monitors for unauthorized changes, in an attempt to stop ransomware and other\r
+         types of malware from carrying out malicious operations on files within those folders.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-CoreIsolationMemoryIntegrity\r
+         Enables or disables Core Isolation and Memory Integrity, two more security measures designed\r
+         to prevent\r
+         ransomware.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-CurrentNetworkProfile\r
+         Sets the handling profile for the network the machine is currently connected to.\r
+        \r
+         Options:\r
+            - Private\r
+            \r
+            - Public\r
+       \r
+### Set-DEP_Policy\r
+         Enables or disables Data Execution Prevention, another security tool.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-DotNetStrongCryptography\r
+         Enables or disables stronger cryptography for .NET applications.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-F8_BootMenuOptions\r
+         Enables or disables the F8 boot menu, which offers options such as booting into safe mode\r
+         or accessing recovery tools.  Enabling this comes along with longer boot times.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-Firewall\r
+         Enables or disables the Windows Firewall.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-ImplicitAdministrativeShares\r
+         Enables or disables Administrative Shares, a tool for multiple users sharing a single resource,\r
+         such as fax machines and printers.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-LLMNR\r
+         Enables or disables Link-Local Multicast Name Resolution, a protocol that allows both IPv4 and\r
+         IPv6 host to carry out name resolution for hosts on a common local link.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-MeltdownCompatibilityFlag\r
+         Enables or disables the Meltdown Compatibility Flag, which protects the system from the Meltdown\r
+         exploit, which allows rogue unauthorized processes to read all memory.  Enabling this comes with\r
+         a hefty performance loss on Intel based systems, while disabling it comes with a hefty security loss.\r
+         A.M.D. based systems are unaffected by Meltdown.\r
+       \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-NetworkDeviceAutomaticInstallation\r
+         Enables or disabled the automatic installation and integration of devices found on the local network.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-RemoteShellAccess\r
+         Enables or disables remote shell access.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-SharingMappedDrivesBetweenUsers\r
+         Enables or disables the sharing of mapped drives between users.  Mapped drives are shortcuts to\r
+         specific drives in other devices.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-SMB_Server\r
+         Enables or disables the use of the Server Message Block protocol, which is used for shared access to\r
+         files and hardware on a network.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-UAC_Level\r
+         Sets the security level of User Account Control.\r
+        \r
+         Options:\r
+            - Low\r
+            \r
+            - High\r
+       \r
+### Set-UnknownNetworksProfile\r
+         Sets the security profile for unknown networks.\r
+        \r
+         Options:\r
+            - Private\r
+            \r
+            - Public\r
+       \r
+### Set-WindowsDefender\r
+         Enables or disables Windows Defender, the built-in Windows AntiMalware program.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-WindowsDefenderCloud\r
+         Enables or disables Windows Defender Cloud Based Protection, which sends telemetry and\r
+         information from the computer to Microsoft.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-WindowsScriptHost\r
+         Enables or disables the Windows Script Host.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
diff --git a/Functions_Documentation/Documentation-Server_Specific_Settings_Group.md b/Functions_Documentation/Documentation-Server_Specific_Settings_Group.md
new file mode 100755 (executable)
index 0000000..82c4ee3
--- /dev/null
@@ -0,0 +1,50 @@
+## NOTE:  Syntax for all functions, unless otherwise specified, is of the following form: FunctionName -Value OptionName\r
+## NOTE:  Run all functions in a PowerShell instance with administrative rights.\r
+\r
+### Set-CtrlAltDelLogin\r
+         Enables or disables Ctrl+Alt+Del requirement before login.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-IE_EnhancedSecurity\r
+         Enables or disables enhanced security in Internet Explorer.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-PasswordPolicy\r
+         Enables or disables password complexity and maximum age requirements.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-ServerManagerAtLogin\r
+         Sets whether the Server Manager is to be hidden or shown at login.\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-ShutdownEventTracker\r
+         Enables or disables the shutdown event tracker.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-Sound\r
+         Enables or disables sound.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
diff --git a/Functions_Documentation/Documentation-Service_Settings_Group.md b/Functions_Documentation/Documentation-Service_Settings_Group.md
new file mode 100755 (executable)
index 0000000..0f0172f
--- /dev/null
@@ -0,0 +1,209 @@
+## NOTE:  Syntax for all functions, unless otherwise specified, is of the following form: FunctionName -Value OptionName\r
+## NOTE:  Run all functions in a PowerShell instance with administrative rights.\r
+\r
+### Set-Autoplay\r
+         Enables or disables autoplay in Explorer.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-Biometrics\r
+         Enables or disables biometric authentication.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-BIOS_Time\r
+         Sets the time zone used.\r
+        \r
+         Options:\r
+            - Local\r
+            \r
+            - UTC\r
+       \r
+### Set-DisplayandSleepModeTimeouts\r
+         Enables or disables monitor and system going to sleep automatically.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-DriveAutorun\r
+         Enables or disables drive autorun.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-FastStartupPolicy\r
+         Enables or disables fast startup.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-FileIndexing\r
+         Enables or disables file indexing.  Disabling this saves drive space and wear on the drive.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-Game_DVR\r
+         Enables or disables Game Digital Video Recording.  This is an Xbox feature.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-Hibernation\r
+         Enables or disables hibernation.  Disabling hibernation frees drive space, and reduces wear on the\r
+         drive.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-RemoteAssistance\r
+         Enables or disables remote assistance.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-RemoteDesktop\r
+         Enables or disabled remote desktop.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-ScheduledDefragmentation\r
+         Enables or disables scheduled defragmentation.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-SettingsSynchronization\r
+         Enables or disables synchronizing settings with a Microsoft account.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-SharedExperiences\r
+         Enables or disables „Shared Experiences".  „Shared Experiences" allows for work and tasks to flow\r
+         from one device to other devices in the group.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-SleepButton\r
+         Enables or disables the start menu and keyboard sleep buttons.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+\r
+###    Set-Spellcheck\r
+                Enables or disables spellcheck in Windows.  This does not apply to applications that have a spellcheck implementation of their own.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-StorageSense\r
+         Enables or disables Storage Sense.  Storage Sense automatically scans files and deletes them\r
+         automatically, based on age and use frequency.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-Superfetch\r
+         Enables or disables Superfetch.  Superfetch watches which applications are most used, and\r
+         algorithmically decides to preload certain ones into R.A.M. without user input.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+\r
+###    Set-TextPrediction\r
+                Enables or disables text prediction in Windows.\r
+                 \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+\r
+###    Set-TypingInsights\r
+                Enables or disables typing insights in Windows.  Typing insights uses „Artificial Intelligence" to analyze the user's typing history, and suggest words and correct misspellings based on that analysis.\r
+                 \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-WindowsUpdate\r
+         Enables or disables Windows Update.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+\r
+### Set-WindowsUpdate_Drivers\r
+         Enables or disables offering and fetching of devices drivers through Windows Update.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-WindowsUpdate_MSRT\r
+         Enables or disables offering of the Malicious Software Removal Tool through Windows Update.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+\r
+### Set-WindowsUpdateAutomaticRestart\r
+         Enables or disables automatic system restart after Windows Update has installed an update that\r
+         requires it.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+\r
+### Set-WindowsUpdateTransferOptimization\r
+                Sets which non Windows Update server sources Windows updates can be downloaded from.\r
+\r
+                Options:\r
+                       - Disable - Updates can only be downloaded from official Windows Update servers.\r
+\r
+                       - Internet - Allows updates to be downloaded from other Windows machines on the internet.\r
+\r
+                       - LocalNetwork - Allows updates to be downloaded from other Windows machines on the local network.\r
diff --git a/Functions_Documentation/Documentation-User_Interface_Settings_Group.md b/Functions_Documentation/Documentation-User_Interface_Settings_Group.md
new file mode 100755 (executable)
index 0000000..84cc8c2
--- /dev/null
@@ -0,0 +1,371 @@
+## NOTE:  Syntax for all functions, unless otherwise specified, is of the following form: FunctionName -Value OptionName\r
+## NOTE:  Run all functions in a PowerShell instance with administrative rights.\r
+\r
+### Set-AccentColor\r
+         Sets the accent color for the system.  A logout and login may be required for the change to take place.\r
+        \r
+         Options:\r
+            - BlueGray\r
+            \r
+            - BrickRed\r
+\r
+                       - Camouflage\r
+       \r
+                       - CoolBlue\r
+\r
+                       - DarkGray\r
+\r
+                       - DarkMint\r
+\r
+                       - DarkOrange\r
+                       \r
+                       - DarkSeaGreen\r
+\r
+                       - DarkShadedPurple\r
+       \r
+                       - DesertCamouflage\r
+\r
+                       - Gold\r
+\r
+                       - GrassGreen\r
+\r
+                       - Gray\r
+\r
+                       - GrayBrown\r
+\r
+                       - Green\r
+\r
+                       - LiddyGreen\r
+\r
+                       - LightCoolBlue\r
+\r
+                       - LightMint\r
+\r
+                       - LightOrange\r
+\r
+                       - LightOrchid\r
+\r
+                       - LightPink\r
+\r
+                       - LightPlum\r
+\r
+                       - LightVioletRed\r
+\r
+                       - MarineBlue\r
+\r
+                       - MeadowGreen\r
+\r
+                       - MetalBlue\r
+\r
+                       - MiddleRed\r
+\r
+                       - Moss\r
+\r
+                       - Orchid\r
+\r
+                       - Overcast\r
+\r
+                       - PaleMoss\r
+\r
+                       - PaleRed\r
+\r
+                       - PaleRust\r
+\r
+                       - PastelIris\r
+\r
+                       - Pink\r
+\r
+                       - Plum\r
+\r
+                       - Red\r
+\r
+                       - Rust\r
+\r
+                       - Sage\r
+\r
+                       - SeaGreen\r
+\r
+                       - ShadedPurple\r
+\r
+                       - SportGreen\r
+\r
+                       - SpringIris\r
+\r
+                       - StandardBlue\r
+\r
+                       - SteelBlue\r
+\r
+                       - Storm\r
+\r
+                       - VioletRed\r
+\r
+                       - YellowGold\r
+\r
+### Set-ActionCenter\r
+         Enables or disables the Action Center.  The Action Center is also known as the Notification Center.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-ApplicationColorMode\r
+         Sets the color mode of applications running in Windows.\r
+        \r
+         Options:\r
+            - Dark\r
+            \r
+            - Light\r
+    \r
+### Set-ColorMode\r
+         Sets the color mode of both applications running in Windows and the Windows system itself.\r
+        \r
+         Options:\r
+            - Dark\r
+            \r
+            - Light\r
+       \r
+### Set-ColorPrevalence\r
+         Sets the the prevalence of the accent color in the Windows interface.\r
+        \r
+         Options:\r
+            - All -  Applies 'AST', 'Taskbar', and 'Window' options at the same time.\r
+\r
+                       - AST - The accent color is shown in the action center, \r
+                                   the start menu, and the taskbar.\r
+                       \r
+                       - Standard - The accent color is not shown in the action center, the start menu,\r
+                                                the taskbar, or the window titlebar and borders.\r
+               \r
+                       - Taskbar - The accent color is shown in the taskbar.\r
+\r
+                       - TaskbarWindow - The accent color is shown in the taskbar and the active \r
+                                                         window titlebar and window borders.\r
+                       \r
+                       - Window - The accent color is shown in the title bar and borders of the active\r
+                                          window.\r
+\r
+### Set-ControlPanelView\r
+         Sets the view mode of the control panel.\r
+        \r
+         Options:\r
+            - SmallIcons\r
+            \r
+            - BigIcons\r
+       \r
+            - Categories\r
+\r
+###    Set-CortanaButton\r
+            Sets whether the Cortana button on the taskbar is to be shown or hidden.\r
+\r
+            Options:\r
+                       - Show\r
+\r
+                       - Hide\r
+\r
+### Set-FileDeletionConfirmation\r
+         Enables or disables the confirmation dialog when deleting a file.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-FileOperationsDetails\r
+         Sets whether file operations details are to be shown or hidden.\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-LiveTilePushNotifications\r
+         Enables or disables the push notification (updates) to live tiles in the start menu.  This effectively disables live tiles.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+\r
+### Set-Lockscreen\r
+         Enables or disables the lockscreen.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-LockscreenNetworkOptions\r
+         Enables or disables lockscreen network options.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-LockscreenShutdownOptions\r
+         Enables or disables lockscreen shutdown options.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-NewApplicationPrompt\r
+         Enables or disables the „How do you want to open this file?" prompt.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-NumberlockAfterStartup\r
+         Enables or disables numberlock after startup.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+\r
+### Set-RecentlyAddedApplications\r
+         Shows or hides the recently added applications section in the start menu.\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-SearchApplicationInStore\r
+         Enables or disables searching for application in the Windows Store to handle files with unknown\r
+         file extensions.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-Searchbox\r
+         Sets the state of the searchbox on the taskbar.\r
+        \r
+         Options:\r
+            - Hide\r
+            \r
+            - Icon\r
+       \r
+            - Box\r
+       \r
+### Set-Shake_to_Minimize\r
+         Enables or disables the 'Shake to Minimize' feature.  To use this feature, one clicks and holds on the titlebar of a window and shakes it, and all other windows will minimize.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+\r
+### Set-StartMenuLayout\r
+         Sets the layout of the start menu.\r
+        \r
+         Options:\r
+            - Shortcuts - The menu is collaped down to the shortcuts menu.\r
+            \r
+            - Standard - Both the shortcuts and applications menus are shown.\r
+\r
+                       - Switch - The menu is collapsed down to the shortcuts menu, but it can be switched to the applications menu and back.\r
+\r
+### Set-StickyKeys\r
+         Enables or disables Sticky Keys.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-SystemColorMode\r
+         Sets the color mode of the Windows system.\r
+        \r
+         Options:\r
+            - Dark\r
+            \r
+            - Light\r
+\r
+### Set-SystemTray\r
+         Shows or hides the system tray in the taskbar\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-TaskbarButtons\r
+         Sets the when and if taskbar buttons combine.\r
+        \r
+         Options:\r
+            - Never\r
+            \r
+            - Full\r
+       \r
+            - Always\r
+\r
+### Set-TaskbarClockSeconds\r
+         Enables or disables seconds in the taskbar clock.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-TaskbarIcons\r
+         Sets the size of taskbar icons.\r
+        \r
+         Options:\r
+            - Big\r
+            \r
+            - Small\r
+       \r
+### Set-TaskbarPeopleIcon\r
+         Sets whether the taskbar people icon is to be hidden or shown.\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-TaskManagerDetails\r
+         Sets whether Task Manager details are to be shown or hidden.\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-TaskViewButton\r
+         Shows or hides the taskview button on the taskbar.\r
+        \r
+         Options:\r
+            - Show\r
+            \r
+            - Hide\r
+       \r
+### Set-Transparency\r
+         Enables or disables tranparency effects in the Windows interface.\r
+        \r
+         Options:\r
+            - Enable\r
+            \r
+            - Disable\r
+       \r
+### Set-TrayIcons\r
+         Sets the behavior of display of tray icons.\r
+        \r
+         Options:\r
+            - ShowAll\r
+            \r
+            - HideAsNeeded\r
+       \r
+### Set-VisualEffectsProfile\r
+         Sets the system Visual Effects Profile.\r
+        \r
+         Options:\r
+            - Appearance\r
+            \r
+            - Performance\r
diff --git a/Functions_Documentation/Documentation-Windows_Settings_Group.md b/Functions_Documentation/Documentation-Windows_Settings_Group.md
new file mode 100755 (executable)
index 0000000..922dc15
--- /dev/null
@@ -0,0 +1,17 @@
+## NOTE:  Syntax for all functions, unless otherwise specified, is of the following form: FunctionName -Value OptionName\r
+## NOTE:  Run all functions in a PowerShell instance with administrative rights.\r
+\r
+### WindowsSettings\r
+         This is the main function that calls to the smaller groups of functions, performs the tasks of\r
+         configuring the machine as a whole, and maintaining those settings.\r
+        \r
+         Options:\r
+            - Maintain: This will set application, privacy, security, and service settings to their desired\r
+              state.  This is meant to be run after Windows Update, as Windows Update tends to change these\r
+              settings.\r
+            \r
+            - Restore:  This sets the settings that are changed by the „Setup" option back to their standard\r
+              settings, with some minor security related exceptions.\r
+       \r
+            - Setup:  This sets the system up with many settings that clean Windows up, and enhance privacy and\r
+              security.\r
diff --git a/Modules/ApplicationSettings/ApplicationSettings.psm1 b/Modules/ApplicationSettings/ApplicationSettings.psm1
new file mode 100755 (executable)
index 0000000..3d8e9d3
--- /dev/null
@@ -0,0 +1,2798 @@
+##############################
+##                          ##
+##   Application Settings   ##        
+##                          ##
+##############################
+
+#region Set-AppxPackages
+
+Function Set-AppxPackages
+{
+    Param([string]$Value)
+        
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Appx Packages."
+        
+        Set-Microsoft.BingWeather -Value Remove
+        Set-Microsoft.DesktopAppInstaller -Value Remove
+        Set-Microsoft.GetHelp -Value Remove
+        Set-Microsoft.Getstarted -Value Remove
+        #Set-Microsoft.HEIFImageExtension -Value Remove
+        Set-Microsoft.Messaging -Value Remove
+        Set-Microsoft.Microsoft3DViewer -Value Remove
+        Set-Microsoft.MicrosoftOfficeHub -Value Remove
+        Set-Microsoft.MicrosoftSolitaireCollection -Value Remove
+        Set-Microsoft.MicrosoftStickyNotes -Value Remove
+        Set-Microsoft.MixedReality.Portal -Value Remove
+        Set-Microsoft.MSPaint -Value Remove
+        Set-Microsoft.Office.OneNote -Value Remove
+        Set-Microsoft.OneConnect -Value Remove
+        Set-Microsoft.People -Value Remove
+        Set-Microsoft.Print3D -Value Remove
+        Set-Microsoft.ScreenSketch -Value Remove
+        Set-Microsoft.SkypeApp -Value Remove
+        Set-Microsoft.StorePurchaseApp -Value Remove
+        #Set-Microsoft.VP9VideoExtensions -Value Remove
+        Set-Microsoft.Wallet -Value Remove
+        #Set-Microsoft.WebMediaExtensions -Value Remove
+        #Set-Microsoft.WebpImageExtension -Value Remove
+        Set-Microsoft.Windows.Photos -Value Remove
+        Set-Microsoft.WindowsAlarms -Value Remove
+        Set-Microsoft.WindowsCalculator -Value Remove
+        Set-Microsoft.WindowsCamera -Value Remove
+        Set-microsoft.windowscommunicationsapps -Value Remove
+        Set-Microsoft.WindowsFeedbackHub -Value Remove
+        Set-Microsoft.WindowsMaps -Value Remove
+        Set-Microsoft.WindowsSoundRecorder -Value Remove
+        Set-Microsoft.WindowsStore -Value Remove
+        Set-Microsoft.Xbox.TCUI -Value Remove
+        Set-Microsoft.XboxApp -Value Remove
+        Set-Microsoft.XboxGameOverlay -Value Remove
+        Set-Microsoft.XboxGamingOverlay -Value Remove
+        Set-Microsoft.XboxIdentityProvider -Value Remove
+        Set-Microsoft.XboxSpeechToTextOverlay -Value Remove
+        Set-Microsoft.YourPhone -Value Remove
+        Set-Microsoft.ZuneMusic -Value Remove
+        Set-Microsoft.ZuneVideo -Value Remove
+        Set-MicrosoftCortana -Value Remove
+
+        Write-Host "Appx Packages removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Appx Packages."
+        
+        Set-Microsoft.BingWeather -Value PermanentlyRemove
+        Set-Microsoft.DesktopAppInstaller -Value PermanentlyRemove
+        Set-Microsoft.GetHelp -Value PermanentlyRemove
+        Set-Microsoft.Getstarted -Value PermanentlyRemove
+        #Set-Microsoft.HEIFImageExtension -Value PermanentlyRemove
+        Set-Microsoft.Messaging -Value PermanentlyRemove
+        Set-Microsoft.Microsoft3DViewer -Value PermanentlyRemove
+        Set-Microsoft.MicrosoftOfficeHub -Value PermanentlyRemove
+        Set-Microsoft.MicrosoftSolitaireCollection -Value PermanentlyRemove
+        Set-Microsoft.MicrosoftStickyNotes -Value PermanentlyRemove
+        Set-Microsoft.MixedReality.Portal -Value PermanentlyRemove
+        Set-Microsoft.MSPaint -Value PermanentlyRemove
+        Set-Microsoft.Office.OneNote -Value PermanentlyRemove
+        Set-Microsoft.OneConnect -Value PermanentlyRemove
+        Set-Microsoft.People -Value PermanentlyRemove
+        Set-Microsoft.Print3D -Value PermanentlyRemove
+        Set-Microsoft.ScreenSketch -Value PermanentlyRemove
+        Set-Microsoft.SkypeApp -Value PermanentlyRemove
+        Set-Microsoft.StorePurchaseApp -Value PermanentlyRemove
+        #Set-Microsoft.VP9VideoExtensions -Value PermanentlyRemove
+        Set-Microsoft.Wallet -Value PermanentlyRemove
+        #Set-Microsoft.WebMediaExtensions -Value PermanentlyRemove
+        #Set-Microsoft.WebpImageExtension -Value PermanentlyRemove
+        Set-Microsoft.Windows.Photos -Value PermanentlyRemove
+        Set-Microsoft.WindowsAlarms -Value PermanentlyRemove
+        Set-Microsoft.WindowsCalculator -Value PermanentlyRemove
+        Set-Microsoft.WindowsCamera -Value PermanentlyRemove
+        Set-microsoft.windowscommunicationsapps -Value PermanentlyRemove
+        Set-Microsoft.WindowsFeedbackHub -Value PermanentlyRemove
+        Set-Microsoft.WindowsMaps -Value PermanentlyRemove
+        Set-Microsoft.WindowsSoundRecorder -Value PermanentlyRemove
+        Set-Microsoft.WindowsStore -Value PermanentlyRemove
+        Set-Microsoft.Xbox.TCUI -Value PermanentlyRemove
+        Set-Microsoft.XboxApp -Value PermanentlyRemove
+        Set-Microsoft.XboxGameOverlay -Value PermanentlyRemove
+        Set-Microsoft.XboxGamingOverlay -Value PermanentlyRemove
+        Set-Microsoft.XboxIdentityProvider -Value PermanentlyRemove
+        Set-Microsoft.XboxSpeechToTextOverlay -Value PermanentlyRemove
+        Set-Microsoft.YourPhone -Value PermanentlyRemove
+        Set-Microsoft.ZuneMusic -Value PermanentlyRemove
+        Set-Microsoft.ZuneVideo -Value PermanentlyRemove
+        Set-MicrosoftCortana -Value PermanentlyRemove
+
+        Write-Host "Appx Packages permanently removed."
+        Write-Host ""
+    }
+    
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Appx Packages."
+
+        Set-Microsoft.BingWeather -Value Restore
+        Set-Microsoft.DesktopAppInstaller -Value Restore
+        Set-Microsoft.GetHelp -Value Restore
+        Set-Microsoft.Getstarted -Value Restore
+        #Set-Microsoft.HEIFImageExtension -Value Restore
+        Set-Microsoft.Messaging -Value Restore
+        Set-Microsoft.Microsoft3DViewer -Value Restore
+        Set-Microsoft.MicrosoftOfficeHub -Value Restore
+        Set-Microsoft.MicrosoftSolitaireCollection -Value Restore
+        Set-Microsoft.MicrosoftStickyNotes -Value Restore
+        Set-Microsoft.MixedReality.Portal -Value Restore
+        Set-Microsoft.MSPaint -Value Restore
+        Set-Microsoft.Office.OneNote -Value Restore
+        Set-Microsoft.OneConnect -Value Restore
+        Set-Microsoft.People -Value Restore
+        Set-Microsoft.Print3D -Value Restore
+        Set-Microsoft.ScreenSketch -Value Restore
+        Set-Microsoft.SkypeApp -Value Restore
+        Set-Microsoft.StorePurchaseApp -Value Restore
+        #Set-Microsoft.VP9VideoExtensions -Value Restore
+        Set-Microsoft.Wallet -Value Restore
+        #Set-Microsoft.WebMediaExtensions -Value Restore
+        #Set-Microsoft.WebpImageExtension -Value Restore
+        Set-Microsoft.Windows.Photos -Value Restore
+        Set-Microsoft.WindowsAlarms -Value Restore
+        Set-Microsoft.WindowsCalculator -Value Restore
+        Set-Microsoft.WindowsCamera -Value Restore
+        Set-microsoft.windowscommunicationsapps -Value Restore
+        Set-Microsoft.WindowsFeedbackHub -Value Restore
+        Set-Microsoft.WindowsMaps -Value Restore
+        Set-Microsoft.WindowsSoundRecorder -Value Restore
+        Set-Microsoft.WindowsStore -Value Restore
+        Set-Microsoft.Xbox.TCUI -Value Restore
+        Set-Microsoft.XboxApp -Value Restore
+        Set-Microsoft.XboxGameOverlay -Value Restore
+        Set-Microsoft.XboxGamingOverlay -Value Restore
+        Set-Microsoft.XboxIdentityProvider -Value Restore
+        Set-Microsoft.XboxSpeechToTextOverlay -Value Restore
+        Set-Microsoft.YourPhone -Value Restore
+        Set-Microsoft.ZuneMusic -Value Restore
+        Set-Microsoft.ZuneVideo -Value Restore
+        Set-MicrosoftCortana -Value Restore
+
+        Write-Host "Appx Packages restored."
+        Write-Host ""
+    }      
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove' and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-BrowserAdobeFlash
+
+Function Set-BrowserAdobeFlash
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling built-in Adobe Flash in Internet Explorer and Edge."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Internet Explorer" -Name "DisableFlashInIE" -ErrorAction SilentlyContinue
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\Addons" -Name "FlashPlayerEnabled" -ErrorAction SilentlyContinue
+
+        Write-Host "Built-in Adobe Flash in Internet Explorer and Edge enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling built-in Adobe Flash in Internet Explorer and Edge."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Internet Explorer"))
+        {
+               New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Internet Explorer" -Force | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Internet Explorer" -Name "DisableFlashInIE" -Type DWord -Value 1
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\Addons"))
+        {
+               New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\Addons" -Force | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\Addons" -Name "FlashPlayerEnabled" -Type DWord -Value 0
+
+        Write-Host "Built-in Adobe Flash in Internet Explorer and Edge disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-DefaultFaxPrinter
+
+Function Set-DefaultFaxPrinter
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Add")
+    {
+        Write-Host "Adding default fax printer."
+
+        Add-Printer -Name "Fax" -DriverName "Microsoft Shared Fax Driver" -PortName "SHRFAX:" -ErrorAction SilentlyContinue
+
+        Write-Host "Default fax printer added."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Remove")
+    {
+        Write-Host "Removing default fax printer."
+
+        Remove-Printer -Name "Fax" -ErrorAction SilentlyContinue
+
+        Write-Host "Default fax printer removed."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Add' and 'Remove'."
+    }
+}
+
+#endregion
+
+#region Set-HyperV
+
+Function Set-HyperV
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Install")
+    {
+        Write-Host "Installing Hyper-V."
+
+        If ((Get-WmiObject -Class "Win32_OperatingSystem").Caption -like "*Server*")
+        {
+               Install-WindowsFeature -Name "Hyper-V" -IncludeManagementTools -WarningAction SilentlyContinue
+        }
+
+        Else
+        {
+               Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-All" -NoRestart -WarningAction SilentlyContinue
+        }
+        
+        Write-Host "Hyper-V installed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Uninstall")
+    {
+        Write-Host "Uninstalling Hyper-V."
+
+        If ((Get-WmiObject -Class "Win32_OperatingSystem").Caption -like "*Server*")
+        {
+               Uninstall-WindowsFeature -Name "Hyper-V" -IncludeManagementTools -WarningAction SilentlyContinue
+        }
+
+        Else
+        {
+               Disable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V-All" -NoRestart -WarningAction SilentlyContinue
+        }
+        
+        Write-Host "Hyper-V uninstalled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Install' and 'Uninstall'."
+    }
+}
+
+#endregion
+
+#region Set-InternetExplorer
+
+Function Set-InternetExplorer
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Internet Explorer."
+
+        Enable-WindowsOptionalFeature -Online -FeatureName "Internet-Explorer-Optional-$env:PROCESSOR_ARCHITECTURE" -NoRestart -WarningAction SilentlyContinue
+
+        Write-Host "Internet Explorer enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Internet Explorer."
+
+        Disable-WindowsOptionalFeature -Online -FeatureName "Internet-Explorer-Optional-$env:PROCESSOR_ARCHITECTURE" -NoRestart -WarningAction SilentlyContinue
+
+        Write-Host "Internet Explorer disabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Remove")
+    {
+        Write-Host "Remove Internet Explorer."
+
+        $ControlLevel = ":F"
+        takeown /f "C:\Program Files (x86)\Internet Explorer" /a /r
+        icacls "C:\Program Files (x86)\Internet Explorer" /grant $env:USERNAME$ControlLevel /T
+
+        Remove-Item -Path "C:\Program Files (x86)\Internet Explorer" -Recurse -Force
+
+        Write-Host "Internet Explorer removed."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable', 'Disable', and 'Remove'."
+    }
+}
+
+#endregion
+
+#region Set-LinuxSubsystem
+
+Function Set-LinuxSubsystem
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Linux Subsystem."
+
+        If ([System.Environment]::OSVersion.Version.Build -eq 14393)
+        {
+               # 1607 needs developer mode to be enabled
+               Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -Name "AllowDevelopmentWithoutDevLicense" -Type DWord -Value 1
+               Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -Name "AllowAllTrustedApps" -Type DWord -Value 1
+        }
+
+        Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Windows-Subsystem-Linux" -NoRestart -WarningAction SilentlyContinue
+        
+        Write-Host "Linux Subsystem enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Linux Subsystem."
+
+        If ([System.Environment]::OSVersion.Version.Build -eq 14393)
+        {
+               Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -Name "AllowDevelopmentWithoutDevLicense" -Type DWord -Value 0
+               Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -Name "AllowAllTrustedApps" -Type DWord -Value 0
+        }
+
+        Disable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Windows-Subsystem-Linux" -NoRestart -WarningAction SilentlyContinue
+        
+        Write-Host "Linux Subsystem disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.BingWeather
+
+Function Set-Microsoft.BingWeather
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.BingWeather."
+
+        Get-AppxPackage Microsoft.BingWeather | Remove-AppxPackage
+
+        Write-Host "Microsoft.BingWeather removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.BingWeather."
+
+        Get-AppxPackage Microsoft.BingWeather | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.BingWeather*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.BingWeather permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.BingWeather."
+
+        Get-AppxPackage -AllUsers Microsoft.BingWeather | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.BingWeather restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.DesktopAppInstaller
+
+Function Set-Microsoft.DesktopAppInstaller
+{
+   Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.DesktopAppInstaller."
+
+        Get-AppxPackage Microsoft.DesktopAppInstaller | Remove-AppxPackage
+
+        Write-Host "Microsoft.DesktopAppInstaller removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.DesktopAppInstaller."
+
+        Get-AppxPackage Microsoft.DesktopAppInstaller | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.DesktopAppInstaller*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.DesktopAppInstaller permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.DesktopAppInstaller."
+
+        Get-AppxPackage -AllUsers Microsoft.DesktopAppInstaller | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.DesktopAppInstaller restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.GetHelp
+
+Function Set-Microsoft.GetHelp
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.GetHelp."
+
+        Get-AppxPackage Microsoft.GetHelp | Remove-AppxPackage
+
+        Write-Host "Microsoft.GetHelp removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.GetHelp."
+
+        Get-AppxPackage Microsoft.GetHelp | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.GetHelp*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.GetHelp permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.GetHelp."
+
+        Get-AppxPackage -AllUsers Microsoft.GetHelp | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.GetHelp restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.Getstarted
+
+Function Set-Microsoft.Getstarted
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.Getstarted."
+
+        Get-AppxPackage Microsoft.Getstarted | Remove-AppxPackage
+
+        Write-Host "Microsoft.Getstarted removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.Getstarted."
+
+        Get-AppxPackage Microsoft.Getstarted | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Getstarted*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.Getstarted permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.Getstarted."
+
+        Get-AppxPackage -AllUsers Microsoft.Getstarted | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.Getstarted restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.HEIFImageExtension
+
+Function Set-Microsoft.HEIFImageExtension
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.HEIFImageExtension."
+
+        Get-AppxPackage Microsoft.HEIFImageExtension | Remove-AppxPackage
+
+        Write-Host "Microsoft.HEIFImageExtension removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.HEIFImageExtension."
+
+        Get-AppxPackage Microsoft.HEIFImageExtension | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.HEIFImageExtension*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.HEIFImageExtension permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.HEIFImageExtension."
+
+        Get-AppxPackage -AllUsers Microsoft.HEIFImageExtension | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.HEIFImageExtension restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.Messaging
+
+Function Set-Microsoft.Messaging
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.Messaging."
+
+        Get-AppxPackage Microsoft.Messaging | Remove-AppxPackage
+
+        Write-Host "Microsoft.Messaging removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.Messaging."
+
+        Get-AppxPackage Microsoft.Messaging | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Messaging*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.Messaging permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.Messaging."
+
+        Get-AppxPackage -AllUsers Microsoft.Messaging | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.Messaging restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.Microsoft3DViewer
+
+Function Set-Microsoft.Microsoft3DViewer
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.Microsoft3DViewer."
+
+        Get-AppxPackage Microsoft.Microsoft3DViewer | Remove-AppxPackage
+
+        Write-Host "Microsoft.Microsoft3DViewer removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.Microsoft3DViewer."
+
+        Get-AppxPackage Microsoft.Microsoft3DViewer | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Microsoft3DViewer*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.Microsoft3DViewer permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.Microsoft3DViewer."
+
+        Get-AppxPackage -AllUsers Microsoft.Microsoft3DViewer | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.Microsoft3DViewer restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.MicrosoftOfficeHub
+
+Function Set-Microsoft.MicrosoftOfficeHub
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.MicrosoftOfficeHub."
+
+        Get-AppxPackage Microsoft.MicrosoftOfficeHub | Remove-AppxPackage
+
+        Write-Host "Microsoft.MicrosoftOfficeHub removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.MicrosoftOfficeHub."
+
+        Get-AppxPackage Microsoft.MicrosoftOfficeHub | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.MicrosoftOfficeHub*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.MicrosoftOfficeHub permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.MicrosoftOfficeHub."
+
+        Get-AppxPackage -AllUsers Microsoft.MicrosoftOfficeHub | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.MicrosoftOfficeHub restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.MicrosoftSolitaireCollection
+
+Function Set-Microsoft.MicrosoftSolitaireCollection
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.MicrosoftSolitaireCollection."
+
+        Get-AppxPackage Microsoft.MicrosoftSolitaireCollection | Remove-AppxPackage
+
+        Write-Host "Microsoft.MicrosoftSolitaireCollection removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.MicrosoftSolitaireCollection."
+
+        Get-AppxPackage Microsoft.MicrosoftSolitaireCollection | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.MicrosoftSolitaireCollection*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.MicrosoftSolitaireCollection permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.MicrosoftSolitaireCollection."
+
+        Get-AppxPackage -AllUsers Microsoft.MicrosoftSolitaireCollection | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.MicrosoftSolitaireCollection restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.MicrosoftStickyNotes
+
+Function Set-Microsoft.MicrosoftStickyNotes
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.MicrosoftStickyNotes."
+
+        Get-AppxPackage Microsoft.MicrosoftStickyNotes | Remove-AppxPackage
+
+        Write-Host "Microsoft.MicrosoftStickyNotes removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.MicrosoftStickyNotes."
+
+        Get-AppxPackage Microsoft.MicrosoftStickyNotes | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.MicrosoftStickyNotes*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.MicrosoftStickyNotes permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.MicrosoftStickyNotes."
+
+        Get-AppxPackage -AllUsers Microsoft.MicrosoftStickyNotes | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.MicrosoftStickyNotes restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.MixedReality.Portal
+
+Function Set-Microsoft.MixedReality.Portal
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.MixedReality.Portal."
+
+        Get-AppxPackage Microsoft.MixedReality.Portal | Remove-AppxPackage
+
+        Write-Host "Microsoft.MixedReality.Portal removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.MixedReality.Portal."
+
+        Get-AppxPackage Microsoft.MixedReality.Portal | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.MixedReality.Portal*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.MixedReality.Portal permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.MixedReality.Portal."
+
+        Get-AppxPackage -AllUsers Microsoft.MixedReality.Portal | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.MixedReality.Portal restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.MSPaint
+
+Function Set-Microsoft.MSPaint
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.MSPaint."
+
+        Get-AppxPackage Microsoft.MSPaint | Remove-AppxPackage
+
+        Write-Host "Microsoft.MSPaint removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.MSPaint."
+
+        Get-AppxPackage Microsoft.MSPaint | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.MSPaint*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.MSPaint permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.MSPaint."
+
+        Get-AppxPackage -AllUsers Microsoft.MSPaint | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.MSPaint restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.Office.OneNote
+
+Function Set-Microsoft.Office.OneNote
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.Office.OneNote."
+
+        Get-AppxPackage Microsoft.Office.OneNote | Remove-AppxPackage
+
+        Write-Host "Microsoft.Office.OneNote removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.Office.OneNote."
+
+        Get-AppxPackage Microsoft.Office.OneNote | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Office.OneNote*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.Office.OneNote permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.Office.OneNote."
+
+        Get-AppxPackage -AllUsers Microsoft.Office.OneNote | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.Office.OneNote restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.OneConnect
+
+Function Set-Microsoft.OneConnect
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.OneConnect."
+
+        Get-AppxPackage Microsoft.OneConnect | Remove-AppxPackage
+
+        Write-Host "Microsoft.OneConnect removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.OneConnect."
+
+        Get-AppxPackage Microsoft.OneConnect | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.OneConnect*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.OneConnect permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.OneConnect."
+
+        Get-AppxPackage -AllUsers Microsoft.OneConnect | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.OneConnect restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.People
+
+Function Set-Microsoft.People
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.People."
+
+        Get-AppxPackage Microsoft.People | Remove-AppxPackage
+
+        Write-Host "Microsoft.People removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.People."
+
+        Get-AppxPackage Microsoft.People | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.People*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.People permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.People."
+
+        Get-AppxPackage -AllUsers Microsoft.People | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.People restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Set-Microsoft.Print3D
+
+Function Set-Microsoft.Print3D
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.Print3D."
+
+        Get-AppxPackage Microsoft.Print3D | Remove-AppxPackage
+
+        Write-Host "Microsoft.Print3D removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.Print3D."
+
+        Get-AppxPackage Microsoft.Print3D | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Print3D*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.Print3D permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.Print3D."
+
+        Get-AppxPackage -AllUsers Microsoft.Print3D | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.Print3D restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.ScreenSketch
+
+Function Set-Microsoft.ScreenSketch
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.ScreenSketch."
+
+        Get-AppxPackage Microsoft.ScreenSketch | Remove-AppxPackage
+
+        Write-Host "Microsoft.ScreenSketch removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.ScreenSketch."
+
+        Get-AppxPackage Microsoft.ScreenSketch | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.ScreenSketch*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.ScreenSketch permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.ScreenSketch."
+
+        Get-AppxPackage -AllUsers Microsoft.ScreenSketch | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.ScreenSketch restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.SkypeApp
+
+Function Set-Microsoft.SkypeApp
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.SkypeApp."
+
+        Get-AppxPackage Microsoft.SkypeApp | Remove-AppxPackage
+
+        Write-Host "Microsoft.SkypeApp removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.SkypeApp."
+
+        Get-AppxPackage Microsoft.SkypeApp | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.SkypeApp*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.SkypeApp permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.SkypeApp."
+
+        Get-AppxPackage -AllUsers Microsoft.SkypeApp | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.SkypeApp restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.StorePurchaseApp
+
+Function Set-Microsoft.StorePurchaseApp
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.StorePurchaseApp."
+
+        Get-AppxPackage Microsoft.StorePurchaseApp | Remove-AppxPackage
+
+        Write-Host "Microsoft.StorePurchaseApp removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.StorePurchaseApp."
+
+        Get-AppxPackage Microsoft.StorePurchaseApp | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.StorePurchaseApp*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.StorePurchaseApp permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.StorePurchaseApp."
+
+        Get-AppxPackage -AllUsers Microsoft.StorePurchaseApp | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.StorePurchaseApp restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.VP9VideoExtensions
+
+Function Set-Microsoft.VP9VideoExtensions
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.VP9VideoExtensions."
+
+        Get-AppxPackage Microsoft.VP9VideoExtensions | Remove-AppxPackage
+
+        Write-Host "Microsoft.VP9VideoExtensions removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.VP9VideoExtensions."
+
+        Get-AppxPackage Microsoft.VP9VideoExtensions | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.VP9VideoExtensions*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.VP9VideoExtensions permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.VP9VideoExtensions."
+
+        Get-AppxPackage -AllUsers Microsoft.VP9VideoExtensions | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.VP9VideoExtensions restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.Wallet
+
+Function Set-Microsoft.Wallet
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.Wallet."
+
+        Get-AppxPackage Microsoft.Wallet | Remove-AppxPackage
+
+        Write-Host "Microsoft.Wallet removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.Wallet."
+
+        Get-AppxPackage Microsoft.Wallet | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Wallet*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.Wallet permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.Wallet."
+
+        Get-AppxPackage -AllUsers Microsoft.Wallet | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.Wallet restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.WebMediaExtensions
+
+Function Set-Microsoft.WebMediaExtensions
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.WebMediaExtensions."
+
+        Get-AppxPackage Microsoft.WebMediaExtensions | Remove-AppxPackage
+
+        Write-Host "Microsoft.WebMediaExtensions removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.WebMediaExtensions."
+
+        Get-AppxPackage Microsoft.WebMediaExtensions | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WebMediaExtensions*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.WebMediaExtensions permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.WebMediaExtensions."
+
+        Get-AppxPackage -AllUsers Microsoft.WebMediaExtensions | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.WebMediaExtensions restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.WebpImageExtension
+
+Function Set-Microsoft.WebpImageExtension
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.WebpImageExtension."
+
+        Get-AppxPackage Microsoft.WebpImageExtension | Remove-AppxPackage
+
+        Write-Host "Microsoft.WebpImageExtension removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.WebpImageExtension."
+
+        Get-AppxPackage Microsoft.WebpImageExtension | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WebpImageExtension*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.WebpImageExtension permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.WebpImageExtension."
+
+        Get-AppxPackage -AllUsers Microsoft.WebpImageExtension | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.WebpImageExtension restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.Windows.Photos
+
+Function Set-Microsoft.Windows.Photos
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.Windows.Photos."
+
+        Get-AppxPackage Microsoft.Windows.Photos | Remove-AppxPackage
+
+        Write-Host "Microsoft.Windows.Photos removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.Windows.Photos."
+
+        Get-AppxPackage Microsoft.Windows.Photos | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Windows.Photos*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.Windows.Photos permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.Windows.Photos."
+
+        Get-AppxPackage -AllUsers Microsoft.Windows.Photos | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.Windows.Photos restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.WindowsAlarms
+
+Function Set-Microsoft.WindowsAlarms
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.WindowsAlarms."
+
+        Get-AppxPackage Microsoft.WindowsAlarms | Remove-AppxPackage
+
+        Write-Host "Microsoft.WindowsAlarms removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.WindowsAlarms."
+
+        Get-AppxPackage Microsoft.WindowsAlarms | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WindowsAlarms*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.WindowsAlarms permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.WindowsAlarms."
+
+        Get-AppxPackage -AllUsers Microsoft.WindowsAlarms | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.WindowsAlarms restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.WindowsCalculator
+
+Function Set-Microsoft.WindowsCalculator
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.WindowsCalculator."
+
+        Get-AppxPackage Microsoft.WindowsCalculator | Remove-AppxPackage
+
+        Write-Host "Microsoft.WindowsCalculator removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.WindowsCalculator."
+
+        Get-AppxPackage Microsoft.WindowsCalculator | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WindowsCalculator*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.WindowsCalculator permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.WindowsCalculator."
+
+        Get-AppxPackage -AllUsers Microsoft.WindowsCalculator | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.WindowsCalculator restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.WindowsCamera
+
+Function Set-Microsoft.WindowsCamera
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.WindowsCamera."
+
+        Get-AppxPackage Microsoft.WindowsCamera | Remove-AppxPackage
+
+        Write-Host "Microsoft.WindowsCamera removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.WindowsCamera."
+
+        Get-AppxPackage Microsoft.WindowsCamera | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WindowsCamera*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.WindowsCamera permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.WindowsCamera."
+
+        Get-AppxPackage -AllUsers Microsoft.WindowsCamera | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.WindowsCamera restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-microsoft.windowscommunicationsapps
+
+Function Set-microsoft.windowscommunicationsapps
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing microsoft.windowscommunicationsapps."
+
+        Get-AppxPackage microsoft.windowscommunicationsapps | Remove-AppxPackage
+
+        Write-Host "microsoft.windowscommunicationsapps removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing microsoft.windowscommunicationsapps."
+
+        Get-AppxPackage microsoft.windowscommunicationsapps | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*microsoft.windowscommunicationsapps*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "microsoft.windowscommunicationsapps permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring microsoft.windowscommunicationsapps."
+
+        Get-AppxPackage -AllUsers microsoft.windowscommunicationsapps | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "microsoft.windowscommunicationsapps restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.WindowsFeedbackHub
+
+Function Set-Microsoft.WindowsFeedbackHub
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.WindowsFeedbackHub."
+
+        Get-AppxPackage Microsoft.WindowsFeedbackHub | Remove-AppxPackage
+
+        Write-Host "Microsoft.WindowsFeedbackHub removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.WindowsFeedbackHub."
+
+        Get-AppxPackage Microsoft.WindowsFeedbackHub | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WindowsFeedbackHub*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.WindowsFeedbackHub permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.WindowsFeedbackHub."
+
+        Get-AppxPackage -AllUsers Microsoft.WindowsFeedbackHub | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.WindowsFeedbackHub restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.WindowsMaps
+
+Function Set-Microsoft.WindowsMaps
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.WindowsMaps."
+
+        Get-AppxPackage Microsoft.WindowsMaps | Remove-AppxPackage
+
+        Write-Host "Microsoft.WindowsMaps removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.WindowsMaps."
+
+        Get-AppxPackage Microsoft.WindowsMaps | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WindowsMaps*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.WindowsMaps permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.WindowsMaps."
+
+        Get-AppxPackage -AllUsers Microsoft.WindowsMaps | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.WindowsMaps restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.WindowsSoundRecorder
+
+Function Set-Microsoft.WindowsSoundRecorder
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.WindowsSoundRecorder."
+
+        Get-AppxPackage Microsoft.WindowsSoundRecorder | Remove-AppxPackage
+
+        Write-Host "Microsoft.WindowsSoundRecorder removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.WindowsSoundRecorder."
+
+        Get-AppxPackage Microsoft.WindowsSoundRecorder | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WindowsSoundRecorder*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.WindowsSoundRecorder permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.WindowsSoundRecorder."
+
+        Get-AppxPackage -AllUsers Microsoft.WindowsSoundRecorder | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.WindowsSoundRecorder restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.WindowsStore
+
+Function Set-Microsoft.WindowsStore
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.WindowsStore."
+
+        Get-AppxPackage Microsoft.WindowsStore | Remove-AppxPackage
+
+        Write-Host "Microsoft.WindowsStore removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.WindowsStore."
+
+        Get-AppxPackage Microsoft.WindowsStore | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.WindowsStore*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.WindowsStore permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.WindowsStore."
+
+        Get-AppxPackage -AllUsers Microsoft.WindowsStore | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.WindowsStore restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.Xbox.TCUI
+
+Function Set-Microsoft.Xbox.TCUI
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.Xbox.TCUI."
+
+        Get-AppxPackage Microsoft.Xbox.TCUI | Remove-AppxPackage
+
+        Write-Host "Microsoft.Xbox.TCUI removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.Xbox.TCUI."
+
+        Get-AppxPackage Microsoft.Xbox.TCUI | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.Xbox.TCUI*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.Xbox.TCUI permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.Xbox.TCUI."
+
+        Get-AppxPackage -AllUsers Microsoft.Xbox.TCUI | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.Xbox.TCUI restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.XboxApp
+
+Function Set-Microsoft.XboxApp
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.XboxApp."
+
+        Get-AppxPackage Microsoft.XboxApp | Remove-AppxPackage
+
+        Write-Host "Microsoft.XboxApp removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.XboxApp."
+
+        Get-AppxPackage Microsoft.XboxApp | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.XboxApp*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.XboxApp permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.XboxApp."
+
+        Get-AppxPackage -AllUsers Microsoft.XboxApp | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.XboxApp restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.XboxGameOverlay
+
+Function Set-Microsoft.XboxGameOverlay
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.XboxGameOverlay."
+
+        Get-AppxPackage Microsoft.XboxGameOverlay | Remove-AppxPackage
+
+        Write-Host "Microsoft.XboxGameOverlay removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.XboxGameOverlay."
+
+        Get-AppxPackage Microsoft.XboxGameOverlay | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.XboxGameOverlay*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.XboxGameOverlay permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.XboxGameOverlay."
+
+        Get-AppxPackage -AllUsers Microsoft.XboxGameOverlay | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.XboxGameOverlay restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.XboxGamingOverlay
+
+Function Set-Microsoft.XboxGamingOverlay
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.XboxGamingOverlay."
+
+        Get-AppxPackage Microsoft.XboxGamingOverlay | Remove-AppxPackage
+
+        Write-Host "Microsoft.XboxGamingOverlay removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.XboxGamingOverlay."
+
+        Get-AppxPackage Microsoft.XboxGamingOverlay | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.XboxGamingOverlay*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.XboxGamingOverlay permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.XboxGamingOverlay."
+
+        Get-AppxPackage -AllUsers Microsoft.XboxGamingOverlay | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.XboxGamingOverlay restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.XboxIdentityProvider
+
+Function Set-Microsoft.XboxIdentityProvider
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.XboxIdentityProvider."
+
+        Get-AppxPackage Microsoft.XboxIdentityProvider | Remove-AppxPackage
+
+        Write-Host "Microsoft.XboxIdentityProvider removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.XboxIdentityProvider."
+
+        Get-AppxPackage Microsoft.XboxIdentityProvider | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.XboxIdentityProvider*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.XboxIdentityProvider permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.XboxIdentityProvider."
+
+        Get-AppxPackage -AllUsers Microsoft.XboxIdentityProvider | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.XboxIdentityProvider restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.XboxSpeechToTextOverlay
+
+Function Set-Microsoft.XboxSpeechToTextOverlay
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.XboxSpeechToTextOverlay."
+
+        Get-AppxPackage Microsoft.XboxSpeechToTextOverlay | Remove-AppxPackage
+
+        Write-Host "Microsoft.XboxSpeechToTextOverlay removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.XboxSpeechToTextOverlay."
+
+        Get-AppxPackage Microsoft.XboxSpeechToTextOverlay | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.XboxSpeechToTextOverlay*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.XboxSpeechToTextOverlay permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.XboxSpeechToTextOverlay."
+
+        Get-AppxPackage -AllUsers Microsoft.XboxSpeechToTextOverlay | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.XboxSpeechToTextOverlay restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.YourPhone
+
+Function Set-Microsoft.YourPhone
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.YourPhone."
+
+        Get-AppxPackage Microsoft.YourPhone | Remove-AppxPackage
+
+        Write-Host "Microsoft.YourPhone removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.YourPhone."
+
+        Get-AppxPackage Microsoft.YourPhone | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.YourPhone*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.YourPhone permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.YourPhone."
+
+        Get-AppxPackage -AllUsers Microsoft.YourPhone | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.YourPhone restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.ZuneMusic
+
+Function Set-Microsoft.ZuneMusic
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.ZuneMusic."
+
+        Get-AppxPackage Microsoft.ZuneMusic | Remove-AppxPackage
+
+        Write-Host "Microsoft.ZuneMusic removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.ZuneMusic."
+
+        Get-AppxPackage Microsoft.ZuneMusic | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.ZuneMusic*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.ZuneMusic permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.ZuneMusic."
+
+        Get-AppxPackage -AllUsers Microsoft.ZuneMusic | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.ZuneMusic restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft.ZuneVideo
+
+Function Set-Microsoft.ZuneVideo
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.ZuneVideo."
+
+        Get-AppxPackage Microsoft.ZuneVideo | Remove-AppxPackage
+
+        Write-Host "Microsoft.ZuneVideo removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.ZuneVideo."
+
+        Get-AppxPackage Microsoft.ZuneVideo | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.ZuneVideo*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.ZuneVideo permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.ZuneVideo."
+
+        Get-AppxPackage -AllUsers Microsoft.ZuneVideo | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.ZuneVideo restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft_PDF_Printer
+
+Function Set-Microsoft_PDF_Printer
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Microsoft P.D.F. Printer."
+
+        Enable-WindowsOptionalFeature -Online -FeatureName "Printing-PrintToPDFServices-Features" -NoRestart -WarningAction SilentlyContinue
+
+        Write-Host "Microsoft P.D.F. Printer enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Microsoft P.D.F. Printer."
+
+        Disable-WindowsOptionalFeature -Online -FeatureName "Printing-PrintToPDFServices-Features" -NoRestart -WarningAction SilentlyContinue
+
+        Write-Host "Microsoft P.D.F. Printer disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-Microsoft_XPS_DocumentWriter
+
+Function Set-Microsoft_XPS_DocumentWriter
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Microsoft X.P.S. Document Writer."
+
+        Enable-WindowsOptionalFeature -Online -FeatureName "Printing-XPSServices-Features" -NoRestart -WarningAction SilentlyContinue
+
+        Write-Host "Microsoft X.P.S. Document Writer enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Microsoft X.P.S. Document Writer."
+
+        Disable-WindowsOptionalFeature -Online -FeatureName "Printing-XPSServices-Features" -NoRestart -WarningAction SilentlyContinue
+
+        Write-Host "Microsoft X.P.S. Document Writer disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-MicrosoftCortana
+
+Function Set-MicrosoftCortana
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft.549981C3F5F10 (Cortana)."
+
+        Get-AppxPackage Microsoft.549981C3F5F10 | Remove-AppxPackage
+
+        Write-Host "Microsoft.549981C3F5F10 (Cortana) removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "PermanentlyRemove")
+    {
+        Write-Host "Permanently removing Microsoft.549981C3F5F10 (Cortana)."
+
+        Get-AppxPackage Microsoft.549981C3F5F10 | Remove-AppxPackage
+        Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Microsoft.549981C3F5F10*"} | Remove-AppxProvisionedPackage -Online -Verbose
+
+        Write-Host "Microsoft.549981C3F5F10 (Cortana) permanently removed."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring Microsoft.549981C3F5F10 (Cortana)."
+
+        Get-AppxPackage -AllUsers Microsoft.549981C3F5F10 | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Microsoft.549981C3F5F10 (Cortana) restored."
+        Write-Host ""
+    }
+        
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove', 'PermanentlyRemove', and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-MicrosoftEdge
+
+Function Set-MicrosoftEdge
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing Microsoft Edge."
+
+        Stop-Process -Name msedge -ErrorAction SilentlyContinue -Force
+        Stop-Process -Name MicrosoftEdgeUpdate -Force -ErrorAction SilentlyContinue
+        
+        Start-Sleep -Seconds 5
+        
+        Remove-Item -Path "C:\Program Files (x86)\Microsoft\*Edge*" -Recurse -Force
+                
+        Write-Host "Microsoft Edge removed."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  The only valid value is 'Remove'."
+    }
+}
+
+#endregion
+
+#region Set-MicrosoftEdgeLegacy
+
+Function Set-MicrosoftEdgeLegacy
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling legacy Microsoft Edge."
+
+        Rename-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe.disabled" -NewName "Microsoft.MicrosoftEdge_8wekyb3d8bbwe"
+        Rename-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdgeDevToolsClient_8wekyb3d8bbwe.disabled" -NewName "Microsoft.MicrosoftEdgeDevToolsClient_8wekyb3d8bbwe"
+
+        Write-Host "Legacy Microsoft Edge enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling legacy Microsoft Edge."
+
+        Stop-Process -Name MicrosoftEdge -ErrorAction SilentlyContinue
+        Stop-Process -Name MicrosoftEdgeCP -ErrorAction SilentlyContinue
+        Stop-Process -Name MicrosoftEdgeSH -ErrorAction SilentlyContinue
+
+        Start-Sleep -Seconds 5
+        Rename-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe" -NewName "Microsoft.MicrosoftEdge_8wekyb3d8bbwe.disabled"
+        Rename-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdgeDevToolsClient_8wekyb3d8bbwe" -NewName "Microsoft.MicrosoftEdgeDevToolsClient_8wekyb3d8bbwe.disabled"
+        
+        Write-Host "Legacy Microsoft Edge disabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Remove")
+    {
+        Write-Host "Removing legacy Microsoft Edge."
+
+        Stop-Process -Name MicrosoftEdge -ErrorAction SilentlyContinue
+        Stop-Process -Name MicrosoftEdgeCP -ErrorAction SilentlyContinue
+        Stop-Process -Name MicrosoftEdgeSH -ErrorAction SilentlyContinue
+
+        Start-Sleep -Seconds 5
+
+        If (Test-Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe")
+        {
+            Remove-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe" -Recurse -Force
+            Remove-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdgeDevToolsClient_8wekyb3d8bbwe" -Recurse -Force
+        }
+        
+        Else
+        {
+            Remove-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe.disabled" -Recurse -Force
+            Remove-Item -Path "C:\Windows\SystemApps\Microsoft.MicrosoftEdgeDevToolsClient_8wekyb3d8bbwe.disabled" -Recurse -Force
+        }
+
+        Write-Host "Legacy Microsoft Edge removed."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable', 'Disable', and 'Remove'."
+    }
+}
+
+#endregion
+
+#region Set-OneDrive
+
+Function Set-OneDrive
+{
+    Param([string]$Value)
+
+    If ($value -eq "Enable")
+    {
+        Write-Host "Enabling OneDrive."
+        
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive" -Name "DisableFileSyncNGSC" -ErrorAction SilentlyContinue
+        
+        Write-Host "OneDrive enabled."
+        Write-Host ""
+    }
+    
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling OneDrive."
+        
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive" -Name "DisableFileSyncNGSC" -Type DWord -Value 1
+        
+        Write-Host "OneDrive disabled."
+        Write-Host ""
+    }
+    
+    ElseIf ($Value -eq "Install")
+    {
+        Write-Host "Installing OneDrive."
+
+        cmd /c --% %SystemRoot%\SysWOW64\OneDriveSetup.exe /install
+
+        Write-Host "OneDrive installed."       
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Uninstall")
+    {
+        Write-Host "Uninstalling OneDrive."
+
+        #Stop OneDrive process and uninstall OneDrive.
+            cmd /c --% taskkill /F /IM OneDrive.exe
+            cmd /c --% %SystemRoot%\SysWOW64\OneDriveSetup.exe /uninstall
+    
+        #Remove clutter left over from OneDrive.
+            If (Test-Path $env:USERPROFILE\OneDrive)
+            {
+                Remove-Item -Force -Recurse $env:USERPROFILE\OneDrive -ErrorAction SilentlyContinue
+            }
+
+            If (Test-Path $env:LOCALAPPDATA\Microsoft\OneDrive)
+            {
+                Remove-Item -Force -Recurse $env:LOCALAPPDATA\Microsoft\OneDrive -ErrorAction SilentlyContinue
+            }
+
+            If (Test-Path "$env:ProgramData\Microsoft OneDrive")
+            {
+                Remove-Item -Force -Recurse "$env:ProgramData\Microsoft OneDrive" -ErrorAction SilentlyContinue
+            }
+
+            If (Test-Path "C:\OneDriveTemp")
+            {
+                Remove-Item -Force -Recurse "C:\OneDriveTemp" -ErrorAction SilentlyContinue
+            }
+                                 
+        Write-Host "OneDrive uninstalled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable', 'Disable', 'Install', and 'Uninstall'."
+    }
+}
+
+#endregion
+
+#region Set-PhotoViewerAssociation
+
+Function Set-PhotoViewerAssociation
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Associate")
+    {
+        Write-Host "Associating Photo Viewer with .bmp, .gif, .jpg, .png, and .tif files."
+
+        If (!(Test-Path "HKCR:"))
+        {
+                   New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null
+           }
+       
+        ForEach ($type in @("Paint.Picture", "giffile", "jpegfile", "pngfile"))
+        {
+                   New-Item -Path $("HKCR:\$type\shell\open") -Force | Out-Null
+                   New-Item -Path $("HKCR:\$type\shell\open\command") | Out-Null
+                   Set-ItemProperty -Path $("HKCR:\$type\shell\open") -Name "MuiVerb" -Type ExpandString -Value "@%ProgramFiles%\Windows Photo Viewer\photoviewer.dll,-3043"
+                   Set-ItemProperty -Path $("HKCR:\$type\shell\open\command") -Name "(Default)" -Type ExpandString -Value "%SystemRoot%\System32\rundll32.exe `"%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll`", ImageView_Fullscreen %1"
+           }
+
+        Write-Host "Photo Viewer associated with .bmp, .gif, .jpg, .png, and .tif files."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disassociate")
+    {
+        Write-Host "Disassociating Photo Viewer with .bmp, .gif, .jpg, .png, and .tif files."
+
+        If (!(Test-Path "HKCR:"))
+        {
+                   New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null
+           }
+       
+        Remove-Item -Path "HKCR:\Paint.Picture\shell\open" -Recurse -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKCR:\giffile\shell\open" -Name "MuiVerb" -ErrorAction SilentlyContinue
+           Set-ItemProperty -Path "HKCR:\giffile\shell\open" -Name "CommandId" -Type String -Value "IE.File"
+           Set-ItemProperty -Path "HKCR:\giffile\shell\open\command" -Name "(Default)" -Type String -Value "`"$env:SystemDrive\Program Files\Internet Explorer\iexplore.exe`" %1"
+           Set-ItemProperty -Path "HKCR:\giffile\shell\open\command" -Name "DelegateExecute" -Type String -Value "{17FE9752-0B5A-4665-84CD-569794602F5C}"
+           Remove-Item -Path "HKCR:\jpegfile\shell\open" -Recurse -ErrorAction SilentlyContinue
+           Remove-Item -Path "HKCR:\pngfile\shell\open" -Recurse -ErrorAction SilentlyContinue
+
+        Write-Host "Photo Viewer disassociated with .bmp, .gif, .jpg, .png, and .tif files."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Associate' and 'Disassociate'."
+    }
+}
+
+#endregion
+
+#region Set-ThirdPartyBloat
+
+Function Set-ThirdPartyBloat
+{
+    Param([string]$Value)
+        
+    If ($Value -eq "Remove")
+    {
+        Write-Host "Removing third party bloatware."
+        
+        Get-AppxPackage "2414FC7A.Viber" | Remove-AppxPackage
+           Get-AppxPackage "41038Axilesoft.ACGMediaPlayer" | Remove-AppxPackage
+           Get-AppxPackage "46928bounde.EclipseManager" | Remove-AppxPackage
+           Get-AppxPackage "4DF9E0F8.Netflix" | Remove-AppxPackage
+           Get-AppxPackage "64885BlueEdge.OneCalendar" | Remove-AppxPackage
+           Get-AppxPackage "7EE7776C.LinkedInforWindows" | Remove-AppxPackage
+           Get-AppxPackage "828B5831.HiddenCityMysteryofShadows" | Remove-AppxPackage
+           Get-AppxPackage "89006A2E.AutodeskSketchBook" | Remove-AppxPackage
+           Get-AppxPackage "9E2F88E3.Twitter" | Remove-AppxPackage
+           Get-AppxPackage "A278AB0D.DisneyMagicKingdoms" | Remove-AppxPackage
+           Get-AppxPackage "A278AB0D.MarchofEmpires" | Remove-AppxPackage
+           Get-AppxPackage "ActiproSoftwareLLC.562882FEEB491" | Remove-AppxPackage
+           Get-AppxPackage "AdobeSystemsIncorporated.AdobePhotoshopExpress" | Remove-AppxPackage
+           Get-AppxPackage "CAF9E577.Plex" | Remove-AppxPackage
+           Get-AppxPackage "D52A8D61.FarmVille2CountryEscape" | Remove-AppxPackage
+           Get-AppxPackage "D5EA27B7.Duolingo-LearnLanguagesforFree" | Remove-AppxPackage
+           Get-AppxPackage "DB6EA5DB.CyberLinkMediaSuiteEssentials" | Remove-AppxPackage
+           Get-AppxPackage "DolbyLaboratories.DolbyAccess" | Remove-AppxPackage
+           Get-AppxPackage "Drawboard.DrawboardPDF" | Remove-AppxPackage
+           Get-AppxPackage "Facebook.Facebook" | Remove-AppxPackage
+           Get-AppxPackage "flaregamesGmbH.RoyalRevolt2" | Remove-AppxPackage
+           Get-AppxPackage "GAMELOFTSA.Asphalt8Airborne" | Remove-AppxPackage
+           Get-AppxPackage "KeeperSecurityInc.Keeper" | Remove-AppxPackage
+           Get-AppxPackage "king.com.BubbleWitch3Saga" | Remove-AppxPackage
+           Get-AppxPackage "king.com.CandyCrushSodaSaga" | Remove-AppxPackage
+           Get-AppxPackage "PandoraMediaInc.29680B314EFC2" | Remove-AppxPackage
+           Get-AppxPackage "SpotifyAB.SpotifyMusic" | Remove-AppxPackage
+           Get-AppxPackage "WinZipComputing.WinZipUniversal" | Remove-AppxPackage
+           Get-AppxPackage "XINGAG.XING" | Remove-AppxPackage
+
+        Write-Host "Third party bloatware removed."
+        Write-Host ""
+    }
+    
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Restoring third party bloatware."
+
+        Get-AppxPackage -AllUsers "2414FC7A.Viber" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "41038Axilesoft.ACGMediaPlayer" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "46928bounde.EclipseManager" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "4DF9E0F8.Netflix" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "64885BlueEdge.OneCalendar" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "7EE7776C.LinkedInforWindows" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "828B5831.HiddenCityMysteryofShadows" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "89006A2E.AutodeskSketchBook" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "9E2F88E3.Twitter" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "A278AB0D.DisneyMagicKingdoms" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "A278AB0D.MarchofEmpires" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "ActiproSoftwareLLC.562882FEEB491" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "AdobeSystemsIncorporated.AdobePhotoshopExpress" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "CAF9E577.Plex" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "D52A8D61.FarmVille2CountryEscape" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "D5EA27B7.Duolingo-LearnLanguagesforFree" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "DB6EA5DB.CyberLinkMediaSuiteEssentials" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "DolbyLaboratories.DolbyAccess" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "Drawboard.DrawboardPDF" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "Facebook.Facebook" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "flaregamesGmbH.RoyalRevolt2" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "GAMELOFTSA.Asphalt8Airborne" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "KeeperSecurityInc.Keeper" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "king.com.BubbleWitch3Saga" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "king.com.CandyCrushSodaSaga" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "PandoraMediaInc.29680B314EFC2" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "SpotifyAB.SpotifyMusic" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "WinZipComputing.WinZipUniversal" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+           Get-AppxPackage -AllUsers "XINGAG.XING" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
+
+        Write-Host "Third party bloatware restored."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Remove' and 'Restore'."
+    }
+}
+
+#endregion
+
+#region Set-WindowsMediaPlayer
+
+Function Set-WindowsMediaPlayer
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Windows Media Player."
+
+        Enable-WindowsOptionalFeature -Online -FeatureName "WindowsMediaPlayer" -NoRestart -WarningAction SilentlyContinue
+
+        Write-Host "Windows Media Player enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Windows Media Player."
+
+        Disable-WindowsOptionalFeature -Online -FeatureName "WindowsMediaPlayer" -NoRestart -WarningAction SilentlyContinue
+
+        Write-Host "Windows Media Player disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-WindowsMessenger
+
+Function Set-WindowsMessenger
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Windows Messenger."
+
+        #Remove the appropriate registry settings and keys.
+            Remove-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Messenger -Recurse -ErrorAction SilentlyContinue
+
+        Write-Host "Windows Messenger enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Windows Messenger."
+
+        #Make "Messenger" and "Client" keys.
+            If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Messenger))
+            {
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft -Name "Messenger" -Force | Out-Null
+            }
+      
+            ####################
+
+            If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Messenger\Client))
+            {
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Messenger -Name "Client" -Force | Out-Null
+            }
+        
+        #Set the appropriate registry settings.
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Messenger\Client -Name "PreventAutoRun" -Type DWord -Value "1"
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Messenger\Client -Name "PreventRun" -Type DWord -Value "1"
+
+        Write-Host "Windows Messenger disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-WorkFoldersClient
+
+Function Set-WorkFoldersClient
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Work Folders Client."
+
+        Enable-WindowsOptionalFeature -Online -FeatureName "WorkFolders-Client" -NoRestart -WarningAction SilentlyContinue
+
+        Write-Host "Work Folders Client enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Work Folders Client."
+
+        Disable-WindowsOptionalFeature -Online -FeatureName "WorkFolders-Client" -NoRestart -WarningAction SilentlyContinue
+
+        Write-Host "Work Folders Client disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
diff --git a/Modules/ExplorerUserInterfaceSettings/ExplorerUserInterfaceSettings.psm1 b/Modules/ExplorerUserInterfaceSettings/ExplorerUserInterfaceSettings.psm1
new file mode 100755 (executable)
index 0000000..05e77fb
--- /dev/null
@@ -0,0 +1,894 @@
+##############################
+##                          ##
+##         Explorer         ##        
+## User Interface Settings  ##
+##                          ##
+##############################
+
+#region Set-Display3D_ObjectsExplorer
+
+Function Set-Display3D_ObjectsExplorer
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting '3D Objects' icon to be shown in Explorer namespace."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Name "ThisPCPolicy" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Name "ThisPCPolicy" -ErrorAction SilentlyContinue
+
+        Write-Host "'3D Objects' icon set to be shown in Explorer namespace."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting '3D Objects' icon to be hidden in Explorer namespace."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+       
+        If (!(Test-Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+
+        Write-Host "'3D Objects' icon set to be hidden in Explorer namespace."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-Display3D_ObjectsThisPC
+
+Function Set-Display3D_ObjectsThisPC
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting '3D Objects' icon to be shown in 'This PC'."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}" -Force | Out-Null
+           }
+
+        Write-Host "'3D Objects' icon set to be shown in 'This PC'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting '3D Objects' icon to be hidden in 'This PC'."
+
+        Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}" -Recurse -ErrorAction SilentlyContinue
+
+        Write-Host "'3D Objects' icon set to be hidden in 'This PC'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-DisplayDesktopExplorer
+
+Function Set-DisplayDesktopExplorer
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'Desktop' icon to be shown in Explorer namespace."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+
+        Write-Host "'Desktop' icon set to be shown in Explorer namespace."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'Desktop' icon to be hidden in Explorer namespace."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+
+        Write-Host "'Desktop' icon set to be hidden in Explorer namespace."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-DisplayDesktopThisPC
+
+Function Set-DisplayDesktopThisPC
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'Desktop' icon to be shown in 'This PC'."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}" -Force | Out-Null
+           }
+
+        Write-Host "'Desktop' icon set to be shown in 'This PC'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'Desktop' icon to be hidden in 'This PC'."
+
+        Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}" -Recurse -ErrorAction SilentlyContinue
+
+        Write-Host "'Desktop' icon set to be hidden in 'This PC'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-DisplayDocumentsExplorer
+
+Function Set-DisplayDocumentsExplorer
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'Documents' icon to be shown in Explorer namespace."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+
+        Write-Host "'Documents' icon set to be shown in Explorer namespace."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'Documents' icon to be hidden in Explorer namespace."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+
+        Write-Host "'Documents' icon set to be hidden in Explorer namespace."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-DisplayDocumentsThisPC
+
+Function Set-DisplayDocumentsThisPC
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'Documents' icon to be shown in 'This PC'."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}" -Force | Out-Null
+           }
+       
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}" -Force | Out-Null
+           }
+
+        Write-Host "'Documents' icon set to be shown in 'This PC'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'Documents' icon to be hidden in 'This PC'."
+
+        Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}" -Recurse -ErrorAction SilentlyContinue
+           Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}" -Recurse -ErrorAction SilentlyContinue
+
+        Write-Host "'Documents' icon set to be hidden in 'This PC'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-DisplayDownloadsExplorer
+
+Function Set-DisplayDownloadsExplorer
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'Downloads' icon to be shown in Explorer namespace."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+
+        Write-Host "'Downloads' icon set to be shown in Explorer namespace."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'Downloads' icon to be hidden in Explorer namespace."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+
+        Write-Host "'Downloads' icon set to be hidden in Explorer namespace."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-DisplayDownloadsThisPC
+
+Function Set-DisplayDownloadsThisPC
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'Downloads' icon to be shown in 'This PC'."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99428e115f}"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99428e115f}" -Force | Out-Null
+           }
+       
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{374DE290-123F-4565-9164-39C4925E467B}"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{374DE290-123F-4565-9164-39C4925E467B}" -Force | Out-Null
+           }
+
+        Write-Host "'Downloads' icon set to be shown in 'This PC'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'Downloads' icon to be hidden in 'This PC'."
+
+        Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99428e115f}" -Recurse -ErrorAction SilentlyContinue
+           Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{374DE290-123F-4565-9164-39C4925E467B}" -Recurse -ErrorAction SilentlyContinue
+
+        Write-Host "'Downloads' icon set to be hidden in 'This PC'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-DisplayMusicExplorer
+
+Function Set-DisplayMusicExplorer
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'Music' icon to be shown in Explorer namespace."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+
+        Write-Host "'Music' icon set to be shown in Explorer namespace."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'Music' icon to be hidden in Explorer namespace."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+
+        Write-Host "'Music' icon set to be hidden in Explorer namespace."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-DisplayMusicThisPC
+
+Function Set-DisplayMusicThisPC
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'Music' icon to be shown in 'This PC'."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}" -Force | Out-Null
+           }
+       
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{1CF1260C-4DD0-4ebb-811F-33C572699FDE}"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{1CF1260C-4DD0-4ebb-811F-33C572699FDE}" -Force | Out-Null
+           }
+
+        Write-Host "'Music' icon set to be shown in 'This PC'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'Music' icon to be hidden in 'This PC'."
+
+        Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}" -Recurse -ErrorAction SilentlyContinue
+           Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{1CF1260C-4DD0-4ebb-811F-33C572699FDE}" -Recurse -ErrorAction SilentlyContinue
+
+        Write-Host "'Music' icon set to be hidden in 'This PC'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-DisplayPicturesExplorer
+
+Function Set-DisplayPicturesExplorer
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'Pictures' icon to be shown in Explorer namespace."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+
+        Write-Host "'Pictures' icon set to be shown in Explorer namespace."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'Pictures' icon to be hidden in Explorer namespace."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+
+        Write-Host "'Pictures' icon set to be hidden in Explorer namespace."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-DisplayPicturesThisPC
+
+Function Set-DisplayPicturesThisPC
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'Pictures' icon to be shown in 'This PC'."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}" -Force | Out-Null
+           }
+       
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3ADD1653-EB32-4cb0-BBD7-DFA0ABB5ACCA}"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3ADD1653-EB32-4cb0-BBD7-DFA0ABB5ACCA}" -Force | Out-Null
+           }
+
+        Write-Host "'Pictures' icon set to be shown in 'This PC'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'Pictures' icon to be hidden in 'This PC'."
+
+        Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}" -Recurse -ErrorAction SilentlyContinue
+           Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3ADD1653-EB32-4cb0-BBD7-DFA0ABB5ACCA}" -Recurse -ErrorAction SilentlyContinue
+
+        Write-Host "'Pictures' icon set to be hidden in 'This PC'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-DisplayVideosExplorer
+
+Function Set-DisplayVideosExplorer
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'Videos' icon to be shown in Explorer namespace."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
+
+        Write-Host "'Videos' icon set to be shown in Explorer namespace."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'Videos' icon to be hidden in Explorer namespace."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
+
+        Write-Host "'Videos' icon set to be hidden in Explorer namespace."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-DisplayVideosThisPC
+
+Function Set-DisplayVideosThisPC
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'Videos' icon to be shown in 'This PC'."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}" -Force | Out-Null
+           }
+       
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A0953C92-50DC-43bf-BE83-3742FED03C9C}"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A0953C92-50DC-43bf-BE83-3742FED03C9C}" -Force | Out-Null
+           }
+
+        Write-Host "'Videos' icon set to be shown in 'This PC'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'Videos' icon to be hidden in 'This PC'."
+
+        Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}" -Recurse -ErrorAction SilentlyContinue
+           Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{A0953C92-50DC-43bf-BE83-3742FED03C9C}" -Recurse -ErrorAction SilentlyContinue
+
+        Write-Host "'Videos' icon set to be hidden in 'This PC'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-ExplorerStart
+
+Function Set-ExplorerStart
+{
+    Param([string]$Value)
+
+    If ($Value -eq "ThisPC")
+    {
+        Write-Host "Setting explorer start point to 'This PC'."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo" -Type DWord -Value 1
+
+        Write-Host "Explorer start point set to 'This PC'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "QuickAccess")
+    {
+        Write-Host "Setting explorer start point to 'Quick Access'."
+
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo" -ErrorAction SilentlyContinue
+
+        Write-Host "Explorer start point set to 'Quick Access'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'ThisPC' and 'QuickAccess'."
+    }
+}
+
+#endregion
+
+#region Set-HiddenFilesandFolders
+
+Function Set-HiddenFilesandFolders
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Changing setting to show hidden files and folders."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Hidden" -Type DWord -Value 1
+
+        Write-Host "Setting changed to show hidden files and folders."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Changing setting to hide hidden files and folders."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Hidden" -Type DWord -Value 2
+
+        Write-Host "Setting changed to hide hidden files and folders."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-KnownFileExtensions
+
+Function Set-KnownFileExtensions
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Changing setting to show known file extensions."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Type DWord -Value 0
+
+        Write-Host "Setting changed to show known file extensions."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Changing setting to hide known file extensions."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Type DWord -Value 1
+
+        Write-Host "Setting changed to hide known file extensions."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-Recent_FrequentShortcuts
+
+Function Set-Recent_FrequentShortcuts
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling shortcuts for recent and frequent items."
+
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "Showrecent and frequent" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "ShowFrequent" -ErrorAction SilentlyContinue
+
+        Write-Host "Shortcuts for recent and frequent items enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling shortcuts for recent and frequent items."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "Showrecent and frequent" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "ShowFrequent" -Type DWord -Value 0
+
+        Write-Host "Shortcuts for recent and frequent items disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-SynchronizationProviderNotifications
+
+Function Set-SynchronizationProviderNotifications
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling synchronization provider notifications."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowSyncProviderNotifications" -Type DWord -Value 1
+
+        Write-Host "Synchronization providers notifications enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling synchronization provider notifications."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowSyncProviderNotifications" -Type DWord -Value 0
+
+        Write-Host "Synchronization providers notifications disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-ThisPC_OnDesktop
+
+Function Set-ThisPC_OnDesktop
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'This PC' icon to be shown on desktop."
+
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu"))
+        {
+                   New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" -Type DWord -Value 0
+       
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel"))
+        {
+                   New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" -Type DWord -Value 0
+
+        Write-Host "'This PC' icon set to be shown on desktop."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'This PC' icon to be hidden on desktop."
+
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" -ErrorAction SilentlyContinue
+
+        Write-Host "'This PC' icon set to be hidden on desktop."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-Thumbnails
+
+Function Set-Thumbnails
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling thumbnails."
+
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "IconsOnly" -Type DWord -Value 0
+
+        Write-Host "Thumbnails enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling thumbnails."
+
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "IconsOnly" -Type DWord -Value 1
+
+        Write-Host "Thumbnails disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-ThumbnailsCache
+
+Function Set-ThumbnailsCache
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling thumbnails cache files (Thumbs.db)."
+
+        Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "DisableThumbnailCache" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "DisableThumbsDBOnNetworkFolders" -ErrorAction SilentlyContinue
+
+        Write-Host "Thumbnails cache files enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling thumbnails cache files (Thumbs.db)."
+
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "DisableThumbnailCache" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "DisableThumbsDBOnNetworkFolders" -Type DWord -Value 1
+
+        Write-Host "Thumbnails cache files disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-UserFolderOnDesktop
+
+Function Set-UserFolderOnDesktop
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'User Folder' to be shown on desktop."
+
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu"))
+        {
+                   New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Name "{59031a47-3f72-44a7-89c5-5595fe6b30ee}" -Type DWord -Value 0
+       
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel"))
+        {
+                   New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Name "{59031a47-3f72-44a7-89c5-5595fe6b30ee}" -Type DWord -Value 0
+
+        Write-Host "'User Folder' set to be shown on desktop."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'User Folder' to be hidden on desktop."
+
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Name "{59031a47-3f72-44a7-89c5-5595fe6b30ee}" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Name "{59031a47-3f72-44a7-89c5-5595fe6b30ee}" -ErrorAction SilentlyContinue
+
+        Write-Host "'User Folder' set to be hidden on desktop."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
diff --git a/Modules/OtherFunctions/OtherFunctions.psm1 b/Modules/OtherFunctions/OtherFunctions.psm1
new file mode 100755 (executable)
index 0000000..b3e379d
--- /dev/null
@@ -0,0 +1,147 @@
+##############################
+##                          ##
+##      Other Functions     ##
+##                          ##
+##############################
+
+#region Hex
+
+Function Hex\r
+    {\r
+        Param([string]$BinaryKey)\r
+        $HexBinaryKey = $BinaryKey.Split(',') | ForEach-Object {"0x$_"}\r
+        Return ([byte[]]$HexBinaryKey)\r
+    }
+
+#endregion
+
+#region Set-KMS_Activation
+
+Function Set-KMS_Activation\r
+{\r
+    Param([string]$Value)\r
+\r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling Key Management Service activation."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name PaintDesktopVersion -Type DWord -Value 4\r
+        cmd /c --% gpupdate /force\r
+\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\svsvc" -Name Start -Type DWord -Value 4\r
+\r
+        \r
+        If (!(Test-Path "HKLM:\SYSTEM\CurrentControlSet\Services\svsvc\KMS"))\r
+        {\r
+            New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\svsvc" -Name KMS -Force | Out-Null\r
+        }\r
+\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\svsvc\KMS" -Name Default -Type String -Value "kms_4"\r
+        cmd /c --% gpupdate /force\r
+        \r
+        Write-Host "Key Management Service activation enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling Key Management Service activation."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name PaintDesktopVersion -Type DWord -Value 0\r
+        cmd /c --% gpupdate /force\r
+\r
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\svsvc" -Name Start -Type DWord -Value 3\r
+           \r
+        Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\svsvc\KMS" -Force -Recurse -ErrorAction SilentlyContinue | Out-Null\r
+        cmd /c --% gpupdate /force\r
+\r
+        Write-Host "Key Management Service activation disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
+
+#endregion
+
+#region Set-WindowsLicense_KMS
+
+Function Set-WindowsLicense_KMS\r
+{\r
+    Param([string]$Action, [string]$HostAddress)\r
+\r
+    If ($Action -eq "Activate")\r
+    {\r
+        Write-Host "Activating Windows."\r
+\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name PaintDesktopVersion -Type DWord -Value 4\r
+        cmd /c --% gpupdate /force\r
+               \r
+        $Edition = (Get-WindowsEdition -Online)[0].Edition\r
+\r
+        Switch ("$Edition")\r
+        {\r
+            Education\r
+            {$LicenseKey = "NW6C2-QMPVW-D7KKK-3GKT6-VCFB2"}\r
+\r
+            EducationN\r
+            {$LicenseKey = "2WH4N-8QGBV-H22JP-CT43Q-MDWWJ"}\r
+            \r
+            Professional\r
+            {$LicenseKey = "W269N-WFGWX-YVC9B-4J6C9-T83GX"}\r
+\r
+            ProfessionalEducation\r
+            {$LicenseKey = "6TP4R-GNPTD-KYYHQ-7B7DP-J447Y"}\r
+\r
+            ProfessionalEducationN\r
+            {$LicenseKey = "YVWGF-BXNMC-HTQYQ-CPQ99-66QFC"}\r
+\r
+            ProfessionalN\r
+            {$LicenseKey = "MH37W-N47XK-V7XM9-C7227-GCQG9"}\r
+\r
+            ProfessionalWorkstation\r
+            {$LicenseKey = "NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J"}\r
+\r
+            ProfessionalWorkstationN\r
+            {$LicenseKey = "9FNHH-K3HBT-3W4TD-6383H-6XYWF"}\r
+                        \r
+            Default\r
+            {\r
+                Write-Error "Unrecognized edition.  Supported editions are 'Education', 'EducationN', 'Professional', 'ProfessionalEducation', 'ProfessionalEducationN', 'ProfessionalN', 'ProfessionalWorkstation', and 'ProfessionalWorkstationN'."\r
+            }\r
+        }\r
+\r
+        slmgr /ipk $LicenseKey\r
+        slmgr /skms $HostAddress\r
+        Start-Sleep -Seconds 5\r
+        slmgr /ato\r
+\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name PaintDesktopVersion -Type DWord -Value 0\r
+        cmd /c --% gpupdate /force\r
+        Stop-Process -Name explorer\r
+\r
+        Write-Host "Windows activated."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Action -eq "Deactivate")\r
+    {\r
+        Write-Host "Deactivating Windows."\r
+\r
+        slmgr /upk\r
+        slmgr /cpky\r
+\r
+        Write-Host "Windows deactivated."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid actions.  Valid actions are 'Activate' and 'Deactivate'."\r
+    }    \r
+}
+
+#endregion
\ No newline at end of file
diff --git a/Modules/PrivacySettings/PrivacySettings.psm1 b/Modules/PrivacySettings/PrivacySettings.psm1
new file mode 100755 (executable)
index 0000000..d8058f4
--- /dev/null
@@ -0,0 +1,1361 @@
+##############################
+##                          ##
+##     Privacy Settings     ##        
+##                          ##
+##############################
+
+#region Set-AdvertisingIdentification
+
+Function Set-AdvertisingIdentification
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Advertising Identification."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" -Name "DisabledByGroupPolicy" -ErrorAction SilentlyContinue
+
+        Write-Host "Advertising Identification enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Advertising Identification."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo"))
+        {
+               New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" -Force | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" -Name "DisabledByGroupPolicy" -Type DWord -Value 1
+
+        Write-Host "Advertising Identification disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-ApplicationLaunchTracking
+
+Function Set-ApplicationLaunchTracking
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling application launch tracking."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name Start_TrackProgs -Type DWord -Value 1
+
+        Write-Host "Application launch tracking enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling application launch tracking."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name Start_TrackProgs -Type DWord -Value 0
+
+        Write-Host "Application launch tracking disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-ApplicationsActionsPermissions
+
+Function Set-ApplicationsActionsPermissions
+{
+    Param([string]$Value, [string]$Action)
+
+    #Make "AppPrivacy" key.
+        If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy))
+        {
+            New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name AppPrivacy -Force | Out-Null
+        }
+   
+    If ($Action -eq "Grant")
+    {
+        $KeyValue = 1
+        $PresentVerb = "Granting"
+        $PastVerb = "granted"
+    }
+
+    ElseIf ($Action -eq "Deny")
+    {
+        $KeyValue = 2
+        $PresentVerb = "Denying"
+        $PastVerb = "denied"
+    }
+
+    ElseIf ($Action -eq "Reset")
+    {
+        $KeyValue = 0
+        $PresentVerb = "Resetting"
+        $PastVerb = "reset"
+    }
+
+    Else
+    {
+        Write-Error "Invalid action.  Valid actions are 'Grant', 'Deny', and 'Reset'."
+        break
+    }
+      
+   
+    Write-Host $PresentVerb "selected action permissions of applications."
+    Write-Host ""      
+                  
+        Switch ("$Value")
+        {
+            Activate_with_Voice
+            {
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsActivateWithVoice" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsActivateWithVoiceAboveLock" -Type DWord -Value $KeyValue
+            }
+
+            GatherDiagnosticInformation
+            {
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsGetDiagnosticInfo" -Type DWord -Value $KeyValue
+            }
+
+            Run_in_Background
+            {
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsRunInBackground" -Type DWord -Value $KeyValue
+            }
+
+            Synchronize_with_Devices
+            {
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsSyncWithDevices" -Type DWord -Value $KeyValue
+            }
+
+            All
+            {
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsActivateWithVoice" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsActivateWithVoiceAboveLock" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsGetDiagnosticInfo" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsRunInBackground" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsSyncWithDevices" -Type DWord -Value $KeyValue
+            }
+
+            Default
+            {
+                Write-Error "Invalid value.  Valid values are 'Activate_with_Voice', 'GatherDiagnosticInformation', 'Run_in_Background', 'Synchronize_with_Devices', and 'All'."
+                throw
+            }
+        }
+                        
+   Write-Host "Selected action permissions of applications" $PastVerb"."
+   Write-Host ""
+}
+
+#endregion
+
+#region Set-ApplicationsGeneralAccessPermissions
+
+Function Set-ApplicationsGeneralAccessPermissions
+{
+    Param([string]$Value, [string]$Action)
+
+    #Make "AppPrivacy" key.
+        If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy))
+        {
+            New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name AppPrivacy -Force | Out-Null
+        }
+   
+    If ($Action -eq "Grant")
+    {
+        $KeyValue = 1
+        $PresentVerb = "Granting"
+        $PastVerb = "granted"
+    }
+
+    ElseIf ($Action -eq "Deny")
+    {
+        $KeyValue = 2
+        $PresentVerb = "Denying"
+        $PastVerb = "denied"
+    }
+
+    ElseIf ($Action -eq "Reset")
+    {
+        $KeyValue = 0
+        $PresentVerb = "Resetting"
+        $PastVerb = "reset"
+    }
+
+    Else
+    {
+        Write-Error "Invalid action.  Valid actions are 'Grant', 'Deny', and 'Reset'."
+        break
+    }
+        
+   
+    Write-Host $PresentVerb "selected general access permissions of applications."
+    Write-Host ""      
+                  
+        Switch ("$Value")
+        {
+            AccountInformation
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessAccountInfo" -Type DWord -Value $KeyValue}
+
+            Calendar
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessCalendar" -Type DWord -Value $KeyValue}
+
+            CallHistory
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessCallHistory" -Type DWord -Value $KeyValue}
+
+            Camera
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessCamera" -Type DWord -Value $KeyValue}
+
+            Contacts
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessContacts" -Type DWord -Value $KeyValue}
+
+            E-Mail
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessEmail" -Type DWord -Value $KeyValue}
+
+            GazeInput
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessGazeInput" -Type DWord -Value $KeyValue}
+
+            Location
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessLocation" -Type DWord -Value $KeyValue}
+
+            Messaging
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessMessaging" -Type DWord -Value $KeyValue}
+
+            Microphone
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessMicrophone" -Type DWord -Value $KeyValue}
+
+            Motion
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessMotion" -Type DWord -Value $KeyValue}
+
+            Notifications
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessNotifications" -Type DWord -Value $KeyValue}
+
+            Phone
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessPhone" -Type DWord -Value $KeyValue}
+
+            Radios
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessRadios" -Type DWord -Value $KeyValue}
+
+            Tasks
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessTasks" -Type DWord -Value $KeyValue}
+
+            TrustedDevices
+            {Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessTrustedDevices" -Type DWord -Value $KeyValue}
+
+            All
+            {
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessAccountInfo" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessCalendar" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessCallHistory" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessCamera" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessContacts" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessEmail" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessGazeInput" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessLocation" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessMessaging" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessMicrophone" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessMotion" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessNotifications" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessPhone" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessRadios" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessTasks" -Type DWord -Value $KeyValue
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessTrustedDevices" -Type DWord -Value $KeyValue
+            }
+
+            Default
+            {
+                Write-Error "Invalid value.  Valid values are 'AccountInformation', 'Calendar', 'CallHistory', 'Camera', 'Contacts', 'E-Mail', 'GazeInput', 'Location', 'Messaging', 'Microphone', 'Motion', 'Notifications', 'Phone', 'Radios', 'Tasks', 'TrustedDevices', and 'All'."
+                throw
+            }
+        }
+                        
+    Write-Host "Selected general access permissions of applications" $PastVerb"."
+    Write-Host ""
+}
+
+#endregion
+
+#region Set-ApplicationsLibraryAccessPermissions
+
+Function Set-ApplicationsLibraryAccessPermissions
+{
+    Param([string]$Value, [string]$Action)
+     
+    If ($Action -eq "Grant")
+    {
+        $KeyValue = "Allow"
+        $PresentVerb = "Granting"
+        $PastVerb = "granted"
+    }
+
+    ElseIf ($Action -eq "Deny")
+    {
+        $KeyValue = "Deny"
+        $PresentVerb = "Denying"
+        $PastVerb = "denied"
+    }
+
+    Else
+    {
+        Write-Error "Invalid action.  Valid actions are 'Grant' and 'Deny'."
+        break
+    }
+
+    Write-Host $PresentVerb "selected library access permissions for applications."
+    Write-Host ""
+
+    Switch ("$Value")
+    {
+        Documents
+        {
+            If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\documentsLibrary))
+            {
+                New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name documentsLibrary -Force | Out-Null
+            }
+            
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\documentsLibrary -Name "Value" -Type String -Value $KeyValue
+        }
+
+        Filesystem
+        {
+            If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\broadFileSystemAccess))
+            {
+                New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name broadFileSystemAccess -Force | Out-Null
+            }
+            
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\broadFileSystemAccess -Name "Value" -Type String -Value $KeyValue
+        }
+
+        Pictures
+        {
+            If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\picturesLibrary))
+            {
+                New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name picturesLibrary -Force | Out-Null
+            }
+            
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\picturesLibrary -Name "Value" -Type String -Value $KeyValue
+        }
+
+        Videos
+        {
+            If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\videosLibrary))
+            {
+                New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name videosLibrary -Force | Out-Null
+            }
+            
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\videosLibrary -Name "Value" -Type String -Value $KeyValue
+        }
+
+        All
+        {
+            #Documents
+                If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\documentsLibrary))
+                {
+                    New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name documentsLibrary -Force | Out-Null
+                }
+            
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\documentsLibrary -Name "Value" -Type String -Value $KeyValue
+
+            #Filesystem
+                If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\broadFileSystemAccess))
+                {
+                    New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name broadFileSystemAccess -Force | Out-Null
+                }
+                
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\broadFileSystemAccess -Name "Value" -Type String -Value $KeyValue
+
+            #Pictures
+                If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\picturesLibrary))
+                {
+                    New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name picturesLibrary -Force | Out-Null
+                }
+                
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\picturesLibrary -Name "Value" -Type String -Value $KeyValue
+            
+            #Videos
+                If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\videosLibrary))
+                {
+                    New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name videosLibrary -Force | Out-Null
+                }
+                
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\videosLibrary -Name "Value" -Type String -Value $KeyValue
+        }
+
+        Default
+        {
+            Write-Error "Invalid value. Valid values are 'Documents', 'Filesystem', 'Pictures', 'Videos', and 'All'."
+            throw
+        }
+    }
+
+    Write-Host "Selected library access permissions for applications." $PastVerb"."
+    Write-Host ""
+    
+}
+
+#endregion
+
+#region Set-ApplicationSuggestion_and_AutomaticInstallation
+
+Function Set-ApplicationSuggestion_and_AutomaticInstallation
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling suggestion and automatic installation of applications."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "ContentDeliveryAllowed" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "OemPreInstalledAppsEnabled" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEnabled" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEverEnabled" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SilentInstalledAppsEnabled" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338388Enabled" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338389Enabled" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestionsEnabled" -Type DWord -Value 1
+        Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338387Enabled" -ErrorAction SilentlyContinue
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-353698Enabled" -ErrorAction SilentlyContinue
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableWindowsConsumerFeatures" -ErrorAction SilentlyContinue
+
+        Write-Host "Suggestion and automatic installation of applications enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling suggestion and automatic installation of applications."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "ContentDeliveryAllowed" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "OemPreInstalledAppsEnabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEnabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEverEnabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SilentInstalledAppsEnabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338387Enabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338388Enabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338389Enabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-353698Enabled" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestionsEnabled" -Type DWord -Value 0
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent"))
+        {
+               New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent"
+        }
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableWindowsConsumerFeatures" -Type DWord -Value 1
+
+        Write-Host Write-Host "Suggestion and automatic installation of applications disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-AutomaticMapUpdates
+
+Function Set-AutomaticMapUpdates
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling automatic map updates."
+
+        Remove-ItemProperty -Path "HKLM:\SYSTEM\Maps" -Name "AutoUpdateEnabled" -ErrorAction SilentlyContinue
+
+        Write-Host "Automatic map updates enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling automatic map updates."
+
+        Set-ItemProperty -Path "HKLM:\SYSTEM\Maps" -Name "AutoUpdateEnabled" -Type DWord -Value 0
+
+        Write-Host "Automatic map updates disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-BackgroundApplicationAccess
+
+Function Set-BackgroundApplicationAccess
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling background access to applications."
+
+        Get-ChildItem -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications" | ForEach {
+                       Remove-ItemProperty -Path $_.PsPath -Name "Disabled" -ErrorAction SilentlyContinue
+                       Remove-ItemProperty -Path $_.PsPath -Name "DisabledByUser" -ErrorAction SilentlyContinue
+               }
+
+        Write-Host "Background access to applications enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling background access to applications."
+
+        Get-ChildItem -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications" -Exclude "Microsoft.Windows.Cortana*" | ForEach {
+                       Set-ItemProperty -Path $_.PsPath -Name "Disabled" -Type DWord -Value 1
+                       Set-ItemProperty -Path $_.PsPath -Name "DisabledByUser" -Type DWord -Value 1
+               }
+
+        Write-Host "Background access to applications disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-CEIP_DataUploads
+
+Function Set-CEIP_DataUploads
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enable data uploads for customer experience improvement program."    
+
+        Remove-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\BFE\Parameters\Policy\Options -Name "EnablePacketQueue" -ErrorAction SilentlyContinue
+
+        Write-Host "Data uploads for customer experience improvement program enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disable data uploads for customer experience improvement program."    
+
+        Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\BFE\Parameters\Policy\Options -Name "EnablePacketQueue" -Type DWord -Value "0"
+
+        Write-Host "Data uploads for customer experience improvement program disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-Cortana_and_WebSearch
+
+Function Set-Cortana_and_WebSearch
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Cortana and Web Search."
+
+        #Enable Cortana.
+
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "CortanaConsent" -Type DWord -Value 1
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "CortanaGlobalConsent" -Type DWord -Value 1
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization" -Name "RestrictImplicitTextCollection" -Type DWord -Value 0
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization" -Name "RestrictImplicitInkCollection" -Type DWord -Value 0
+
+            Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization\TrainedDataStore" -Name "HarvestContacts" -ErrorAction SilentlyContinue
+            Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Personalization\Settings" -Name "AcceptedPrivacyPolicy" -ErrorAction SilentlyContinue
+
+            Set-MicrosoftCortana -Value Restore
+            
+            Set-CortanaButton -Value Show
+            Stop-Process -Name explorer
+                               
+        #Enable Web Search.
+       
+            Remove-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Recurse -ErrorAction SilentlyContinue 
+            Remove-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "AllowSearchToUseLocation" -ErrorAction SilentlyContinue
+            Remove-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "BingSearchEnabled" -ErrorAction SilentlyContinue
+            
+            #Allow Internet Traffic of Web Search Function
+                #Windows 10 Allow
+                    Remove-NetFirewallRule -DisplayName "Block Web Search 10 - Ingoing"
+                    Remove-NetFirewallRule -DisplayName "Block Web Search 10 - Outgoing"
+                #Windows 11 Allow
+                    Remove-NetFirewallRule -DisplayName "Block Web Search 11 - Ingoing"
+                    Remove-NetFirewallRule -DisplayName "Block Web Search 11 - Outgoing"
+                
+        Write-Host "Cortana and Web Search enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Cortana and Web Search."
+
+        #Make "Windows Search", "Settings", "InputPersonalization", and "TrainedDataStore" keys.
+            If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search"))
+            {
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name "Windows Search" -Force | Out-Null
+            }
+
+            If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Personalization\Settings"))
+            {
+                New-Item -Path HKCU:\SOFTWARE\Microsoft\Personalization -Name "Settings" -Force | Out-Null
+            }
+
+            If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization"))
+            {
+                New-Item -Path HKCU:\SOFTWARE\Microsoft -Name "InputPersonalization" -Force | Out-Null
+            }
+
+            If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization\TrainedDataStore"))
+            {
+                New-Item -Path HKCU:\SOFTWARE\Microsoft\InputPersonalization -Name "TrainedDataStore" -Force | Out-Null
+            }
+                    
+        #Disable Cortana
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "CortanaConsent" -Type DWord -Value 0
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "CortanaGlobalConsent" -Type DWord -Value 0    
+            Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name "AllowCortana" -Type DWord -Value 0
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Personalization\Settings" -Name "AcceptedPrivacyPolicy" -Type DWord -Value 0
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization" -Name "RestrictImplicitTextCollection" -Type DWord -Value 1
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization" -Name "RestrictImplicitInkCollection" -Type DWord -Value 1
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization\TrainedDataStore" -Name "HarvestContacts" -Type DWord -Value 0
+
+            Set-MicrosoftCortana -Value Remove
+            
+            Set-CortanaButton -Value Hide
+            Stop-Process -Name explorer
+               
+        #Disable Web Search
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "AllowSearchToUseLocation" -Type DWord -Value 0
+            Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "BingSearchEnabled" -Type DWord -Value 0
+            Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name "ConnectedSearchUseWeb" -Type DWord -Value 0
+            Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name "ConnectedSearchUseWebOverMeteredConnections" -Type DWord -Value 0
+            Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name "DisableWebSearch" -Type DWord -Value 1
+
+            #Block Internet Traffic of Web Search Function
+                #Windows 10 Block
+                    New-NetFirewallRule -DisplayName "Block Web Search 10 - Ingoing" -Direction Inbound -Program "C:\Windows\SystemApps\Microsoft.Windows.Search_cw5n1h2txyewy\SearchApp.exe" -Action Block
+                    New-NetFirewallRule -DisplayName "Block Web Search 10 - Outgoing" -Direction Outbound -Program "C:\Windows\SystemApps\Microsoft.Windows.Search_cw5n1h2txyewy\SearchApp.exe" -Action Block
+                #Windows 11 Block
+                    New-NetFirewallRule -DisplayName "Block Web Search 11 - Ingoing" -Direction Inbound -Program "C:\Windows\SystemApps\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\SearchHost.exe" -Action Block
+                    New-NetFirewallRule -DisplayName "Block Web Search 11 - Outgoing" -Direction Outbound -Program "C:\Windows\SystemApps\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\SearchHost.exe" -Action Block
+    
+        Write-Host "Cortana and Web Search disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-DiagTrack
+
+Function Set-DiagTrack
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling DiagTrack."
+
+        Set-Service -Name DiagTrack -StartupType Automatic
+        Start-Service -Name DiagTrack
+
+        Write-Host "DiagTrack enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling DiagTrack."
+
+        Set-Service -Name DiagTrack -StartupType Disabled
+        Stop-Service -Name DiagTrack
+
+        Write-Host "DiagTrack disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-ErrorReporting
+
+Function Set-ErrorReporting
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling error reporting."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name "Disabled" -ErrorAction SilentlyContinue
+        Enable-ScheduledTask -TaskName "Microsoft\Windows\Windows Error Reporting\QueueReporting"
+
+        Write-Host "Error reporting enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling error reporting."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name "Disabled" -Type DWord -Value 1
+        Disable-ScheduledTask -TaskName "Microsoft\Windows\Windows Error Reporting\QueueReporting"
+
+        Write-Host "Error reporting disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-Feedback
+
+Function Set-Feedback
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling feedback."
+
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules" -Name "NumberOfSIUFInPeriod" -ErrorAction SilentlyContinue
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "DoNotShowFeedbackNotifications" -ErrorAction SilentlyContinue
+        Enable-ScheduledTask -TaskName "Microsoft\Windows\Feedback\Siuf\DmClient" -ErrorAction SilentlyContinue
+        Enable-ScheduledTask -TaskName "Microsoft\Windows\Feedback\Siuf\DmClientOnScenarioDownload" -ErrorAction SilentlyContinue
+
+        Write-Host "Feedback enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling feedback."
+
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules"))
+        {
+               New-Item -Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules" -Force | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules" -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" -ErrorAction SilentlyContinue
+        Disable-ScheduledTask -TaskName "Microsoft\Windows\Feedback\Siuf\DmClientOnScenarioDownload" -ErrorAction SilentlyContinue
+
+        Write-Host "Feedback disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-InputPersonalization
+
+Function Set-InputPersonalization
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling input personalization."
+
+        #Remove the appropriate registry settings and keys.
+            Remove-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\InputPersonalization -Recurse -ErrorAction SilentlyContinue
+                    
+        Write-Host "Input personalization enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling input personalization."
+
+        #Make "Input Personalization" key.
+            If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\InputPersonalization))
+            {
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft -Name "InputPersonalization" -Force | Out-Null
+            }
+
+        #Set appropriate registry settings.
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\InputPersonalization -Name "AllowInputPersonalization" -Type DWord -Value "0"
+
+        Write-Host "Input personalization disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-LanguagelistAccess
+
+Function Set-LanguagelistAccess
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Deny")
+    {
+        Write-Host "Setting website access to the languagelist to be denied."
+
+        Set-ItemProperty -Path "HKCU:\Control Panel\International\User Profile" -Name HttpAcceptLanguageOptOut -Type DWord -Value 1
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Internet Explorer\International" -Name AcceptLanguage -ErrorAction SilentlyContinue
+
+        Write-Host "Website access to the languagelist set to be denied."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid value is 'Deny'.  To grant permission, go to the Windows settings application under 'Privacy -> General', and set it manually."
+    }
+}
+
+#endregion
+
+#region Set-LocationService_and_Sensors
+
+Function Set-LocationService_and_Sensors
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling location service and sensors."
+
+        #Remove the appropriate registry settings and keys.
+            Remove-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors -Recurse -ErrorAction SilentlyContinue
+                            
+        Write-Host "Location services and sensors enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling location service and sensors."
+
+        #Make "LocationAndSensors" key.
+            If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors))
+            {
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name LocationAndSensors -Force | Out-Null
+            }
+       
+        #Deactivate location service.
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors -Name "DisableLocation" -Type DWord -Value "1"
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors -Name "DisableLocationScripting" -Type DWord -Value "1"
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors -Name "DisableWindowsLocationProvider" -Type DWord -Value "1"
+
+        #Deactivate sensors.
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors -Name "DisableSensors" -Type DWord -Value "1"
+        
+        Write-Host "Location services and sensors disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-LocationTracking
+
+Function Set-LocationTracking
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling location tracking."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location"))
+        {
+               New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Force | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Name "Value" -Type String -Value "Allow"
+        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
+
+        Write-Host "Location tracking enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling location tracking."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location"))
+        {
+               New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Force | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Name "Value" -Type String -Value "Deny"
+        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
+
+        Write-Host "Location tracking disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-SmartScreenFilter
+
+Function Set-SmartScreenFilter
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Smart Screen Filter."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableSmartScreen" -ErrorAction SilentlyContinue
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\PhishingFilter" -Name "EnabledV9" -ErrorAction SilentlyContinue
+
+        Write-Host "Smart Screen Filter enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Smart Screen Filter."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableSmartScreen" -Type DWord -Value 0
+       
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\PhishingFilter"))
+        {
+            New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\PhishingFilter" -Force | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\PhishingFilter" -Name "EnabledV9" -Type DWord -Value 0
+
+        Write-Host "Smart Screen Filter disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-TailoredExperiences
+
+Function Set-TailoredExperiences
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling tailored experiences."
+
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableTailoredExperiencesWithDiagnosticData" -ErrorAction SilentlyContinue
+
+        Write-Host "Tailored experiences enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling tailored experiences."
+
+        If (!(Test-Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent"))
+        {
+               New-Item -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Force | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableTailoredExperiencesWithDiagnosticData" -Type DWord -Value 1
+
+        Write-Host "Tailored experiences disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-Telemetry
+
+Function Set-Telemetry
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling telemetry."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 3
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 3
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry" -ErrorAction SilentlyContinue
+           Enable-ScheduledTask -TaskName "Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser" | Out-Null
+           Enable-ScheduledTask -TaskName "Microsoft\Windows\Application Experience\ProgramDataUpdater" | Out-Null
+           Enable-ScheduledTask -TaskName "Microsoft\Windows\Autochk\Proxy" | Out-Null
+           Enable-ScheduledTask -TaskName "Microsoft\Windows\Customer Experience Improvement Program\Consolidator" | Out-Null
+           Enable-ScheduledTask -TaskName "Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" | Out-Null
+           Enable-ScheduledTask -TaskName "Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" | Out-Null
+        
+        Set-DiagTrack -Value Enable
+
+        Write-Host "Telemetry enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling telemetry."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\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
+           Disable-ScheduledTask -TaskName "Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser" | Out-Null
+           Disable-ScheduledTask -TaskName "Microsoft\Windows\Application Experience\ProgramDataUpdater" | Out-Null
+           Disable-ScheduledTask -TaskName "Microsoft\Windows\Autochk\Proxy" | Out-Null
+           Disable-ScheduledTask -TaskName "Microsoft\Windows\Customer Experience Improvement Program\Consolidator" | Out-Null
+           Disable-ScheduledTask -TaskName "Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" | Out-Null
+           Disable-ScheduledTask -TaskName "Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" | Out-Null
+
+        Set-DiagTrack -Value Disable
+        
+        Write-Host "Telemetry disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-UserActivityHistory
+
+Function Set-UserActivityHistory
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling user activity history."
+
+        Remove-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\System -Name "PublishUserActivities" -ErrorAction SilentlyContinue
+        Remove-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\System -Name "UploadUserActivities" -ErrorAction SilentlyContinue
+        Remove-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\System -Name "EnableActivityFeed" -ErrorAction SilentlyContinue
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer -Name NoRecentDocsHistory -Type DWord -Value 0
+        Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name Start_TrackDocs -Type DWord -Value 1
+
+        Write-Host "User activity history enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling user activity history."
+
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\System -Name "PublishUserActivities" -Type DWord -Value "0"
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\System -Name "UploadUserActivities" -Type DWord -Value "0"
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\System -Name "EnableActivityFeed" -Type DWord -Value "0"
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer -Name NoRecentDocsHistory -Type DWord -Value 1
+        Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name Start_TrackDocs -Type DWord -Value 0
+
+        Write-Host "User activity history disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-WAP_PushService
+
+Function Set-WAP_PushService
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Wireless Application Protocol Push Service."
+
+        Set-Service "dmwappushservice" -StartupType Automatic
+        Start-Service "dmwappushservice"
+
+        Write-Host "Wireless Application Protocol Push Service enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Wireless Application Protocol Push Service."
+
+        Set-Service "dmwappushservice" -StartupType Disabled
+        Stop-Service "dmwappushservice"
+
+        Write-Host "Wireless Application Protocol Push Service disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-WindowsApplicationsPermissions
+
+Function Set-WindowsApplicationsPermissions
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Grant")
+    {
+        Write-Host "Granting permissions of Windows applications."
+        Write-Host ""
+
+        #region Grant action and general access permissions of Windows applications.
+            Write-Host "Granting action and general access permissions of Windows applications."
+
+            Remove-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Recurse -ErrorAction SilentlyContinue
+
+            Write-Host "Action and general access permissions of Windows applications granted."
+            Write-Host ""
+        #endregion
+
+        #region Grant library access permissions of Windows Applications.
+            Write-Host "Granting library access permissions of Windows Applications."
+
+            ##Documents
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\documentsLibrary -Name "Value" -Type String -Value "Allow"
+
+            ##Filesystem
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\broadFileSystemAccess -Name "Value" -Type String -Value "Allow"
+
+            ##Pictures
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\picturesLibrary -Name "Value" -Type String -Value "Allow"
+
+            ##Videos
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\videosLibrary -Name "Value" -Type String -Value "Allow"
+
+            Write-Host "Library access permissions of Windows Applications granted."
+            Write-Host ""
+        #endregion
+
+        Write-Host "Permissions of Windows applications granted."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Deny")
+    {
+        Write-Host "Denying permissions of Windows applications."
+        Write-Host ""
+
+        #Make "AppPrivacy" key.
+            If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy))
+            {
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name AppPrivacy -Force | Out-Null
+            }
+       
+        #region Deny action permissions of Windows applications.
+            Write-Host "Denying action permissions of Windows applications."
+        
+            ##Activate with Voice.
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsActivateWithVoice" -Type DWord -Value 2
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsActivateWithVoiceAboveLock" -Type DWord -Value 2
+
+            ##Get Diagnostic Information of other applications.
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsGetDiagnosticInfo" -Type DWord -Value 2
+
+            ##Run in background.
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsRunInBackground" -Type DWord -Value 2
+
+            ##Synchronize with Devices
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsSyncWithDevices" -Type DWord -Value 2
+
+            Write-Host "Action permissions of Windows applications denied."
+               Write-Host ""
+        #endregion
+
+        #region Deny general access permissions of Windows applications.
+            Write-Host "Denying general access permissions of Windows applications."
+
+            ##Account Information
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessAccountInfo" -Type DWord -Value 2
+    
+            ##Calendar
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessCalendar" -Type DWord -Value 2
+
+            ##Call History
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessCallHistory" -Type DWord -Value 2
+
+            ##Camera
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessCamera" -Type DWord -Value 2
+
+            ##Contacts
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessContacts" -Type DWord -Value 2
+
+            ##Electronic Mail
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessEmail" -Type DWord -Value 2
+
+            ##Gaze Input
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessGazeInput" -Type DWord -Value 2
+
+            ##Location
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessLocation" -Type DWord -Value 2
+
+            ##Messaging
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessMessaging" -Type DWord -Value 2
+
+            ##Microphone
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessMicrophone" -Type DWord -Value 2
+
+            ##Motion
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessMotion" -Type DWord -Value 2
+
+            ##Notifications
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessNotifications" -Type DWord -Value 2
+
+            ##Phone
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessPhone" -Type DWord -Value 2
+
+            ##Radios
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessRadios" -Type DWord -Value 2
+
+            ##Tasks
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessTasks" -Type DWord -Value 2
+
+            ##Trusted Devices
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy -Name "LetAppsAccessTrustedDevices" -Type DWord -Value 2
+
+            Write-Host "General access permissions of Windows applications denied."
+            Write-Host ""
+        #endregion
+
+        #region Deny library access permissions of Windows applications.
+            Write-Host "Denying library access permissions of Windows applications."
+
+            ##Documents
+                If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\documentsLibrary))
+                {
+                    New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name documentsLibrary -Force | Out-Null
+                }
+                
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\documentsLibrary -Name "Value" -Type String -Value "Deny"
+
+            ##Filesystem
+                If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\broadFileSystemAccess))
+                {
+                    New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name broadFileSystemAccess -Force | Out-Null
+                }
+                
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\broadFileSystemAccess -Name "Value" -Type String -Value "Deny"
+
+            ##Pictures
+                If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\picturesLibrary))
+                {
+                    New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name picturesLibrary -Force | Out-Null
+                }
+                
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\picturesLibrary -Name "Value" -Type String -Value "Deny"
+
+            ##Videos
+                If (!(Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\videosLibrary))
+                {
+                    New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore -Name videosLibrary -Force | Out-Null
+                }
+                
+                Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\videosLibrary -Name "Value" -Type String -Value "Deny"
+
+            Write-Host "Library access permissions of Windows applications denied."
+            Write-Host ""
+        #endregion
+
+        Write-Host "Permissions of Windows applications denied."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Grant' and 'Deny'."
+    }
+}
+
+#endregion
diff --git a/Modules/SecuritySettings/SecuritySettings.psm1 b/Modules/SecuritySettings/SecuritySettings.psm1
new file mode 100755 (executable)
index 0000000..81388bc
--- /dev/null
@@ -0,0 +1,744 @@
+##############################
+##                          ##
+##    Security Settings     ##        
+##                          ##
+##############################
+
+#region Set-ControlledFolderAccess
+
+Function Set-ControlledFolderAccess
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Windows Defender must be active for controlled folders.  Enabling Windows Defender."
+
+        Set-WindowsDefender -Value Enable
+        
+        Write-Host "Enabling controlled folder access."
+
+        Set-MpPreference -EnableControlledFolderAccess Enabled
+                
+        Write-Host "Controlled folder access enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling controlled folder access."
+
+        Set-MpPreference -EnableControlledFolderAccess Disabled
+
+        Write-Host "Controlled folder access disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-CoreIsolationMemoryIntegrity
+
+Function Set-CoreIsolationMemoryIntegrity
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Core Isolation Memory Integrity."
+
+        If (!(Test-Path "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity"))
+        {
+                   New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" -Name "Enabled" -Type DWord -Value 1
+
+        Write-Host "Core Isolation Memory Integrity enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Core Isolation Memory Integrity."
+
+        Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" -Name "Enabled" -ErrorAction SilentlyContinue
+
+        Write-Host "Core Isolation Memory Integrity disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-CurrentNetworkProfile
+
+Function Set-CurrentNetworkProfile
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Private")
+    {
+        Write-Host "Setting current network profile to private."
+
+        Set-NetConnectionProfile -NetworkCategory Private
+        
+        Write-Host "Current network profile set to private."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Public")
+    {
+        Write-Host "Setting current network profile to public."
+
+        Set-NetConnectionProfile -NetworkCategory Public
+
+        Write-Host "Current network profile set to public."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Private' and 'Public'."
+    }
+}
+
+#endregion
+
+#region Set-DEP_Policy
+
+Function Set-DEP_Policy
+{
+    Param([string]$Value)
+
+    If ($Value -eq "OptIn")
+    {
+        Write-Host "Setting Data Execution Prevention (D.E.P.) policy to OptIn."
+
+        bcdedit /set `{current`} nx OptIn
+
+        Write-Host "Data Execution Prevention (D.E.P.) policy set to OptIn."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "OptOut")
+    {
+        Write-Host "Setting Data Execution Prevention (D.E.P.) policy to OptOut."
+
+        bcdedit /set `{current`} nx OptOut
+
+        Write-Host "Data Execution Prevention (D.E.P.) policy set to OptOut."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'OptIn' and 'OptOut'."
+    }
+}
+
+#endregion
+
+#region Set-DotNetStrongCryptography
+
+Function Set-DotNetStrongCryptography
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling .NET Strong Cryptography."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Type DWord -Value 1
+
+        Write-Host ".NET Strong Cryptography disabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling .NET Strong Cryptography."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -ErrorAction SilentlyContinue
+
+        Write-Host ".NET Strong Cryptography disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-F8_BootMenuOptions
+
+Function Set-F8_BootMenuOptions
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling F8 boot menu options."
+
+        bcdedit /set `{current`} bootmenupolicy Legacy
+
+        Write-Host "F8 boot menu options enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling F8 boot menu options."
+
+        bcdedit /set `{current`} bootmenupolicy Standard
+
+        Write-Host "F8 boot menu options disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-Firewall
+
+Function Set-Firewall
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling firewall."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile" -Name "EnableFirewall" -ErrorAction SilentlyContinue
+
+        Write-Host "Firewall enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling firewall."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile"))
+        {
+               New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile" -Force | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile" -Name "EnableFirewall" -Type DWord -Value 0
+
+        Write-Host "Firewall disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-ImplicitAdministrativeShares
+
+Function Set-ImplicitAdministrativeShares
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling implicit administrative shares."
+
+        Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "AutoShareWks" -ErrorAction SilentlyContinue
+
+        Write-Host "Implicit administrative shares enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling implicit administrative shares."
+
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "AutoShareWks" -Type DWord -Value 0
+
+        Write-Host "Implicit administrative shares disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-LLMNR
+
+Function Set-LLMNR
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Link-Local Multicast Name Resolution (L.L.M.N.R.) protocol."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Name "EnableMulticast" -ErrorAction SilentlyContinue
+
+        Write-Host "Link-Local Multicast Name Resolution (L.L.M.N.R.) protocol enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Link-Local Multicast Name Resolution (L.L.M.N.R.) protocol."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient"))
+        {
+               New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Force | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Name "EnableMulticast" -Type DWord -Value 0
+
+        Write-Host "Link-Local Multicast Name Resolution (L.L.M.N.R.) protocol disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-MeltdownCompatibilityFlag
+
+Function Set-MeltdownCompatibilityFlag
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Meltdown compatibility flag."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat" -Name "cadca5fe-87d3-4b96-b7fb-a231484277cc" -Type DWord -Value 0
+
+        Write-Host "Meltdown compatibility flag enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Meltdown compatibility flag."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat" -Name "cadca5fe-87d3-4b96-b7fb-a231484277cc" -ErrorAction SilentlyContinue
+
+        Write-Host "Meltdown compatibility flag disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-NetworkDeviceAutomaticInstallation
+
+Function Set-NetworkDeviceAutomaticInstallation
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling automatic installation of network devices."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\NcdAutoSetup\Private" -Name "AutoSetup" -ErrorAction SilentlyContinue
+
+        Write-Host "Automatic installation of network devices enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling automatic installation of network devices."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\NcdAutoSetup\Private"))
+        {
+               New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\NcdAutoSetup\Private" -Force | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\NcdAutoSetup\Private" -Name "AutoSetup" -Type DWord -Value 0
+
+        Write-Host "Automatic installation of network devices disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-RemoteShellAccess
+
+Function Set-RemoteShellAccess
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling remote shell access."
+
+        #Remove appropriate registry settings and keys.
+            Remove-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM -Recurse -ErrorAction SilentlyContinue
+
+        Write-Host "Remote shell access enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling remote shell access."
+
+        #Make "WinRM", "Service", and "WinRS" keys.
+            If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM))
+            {
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name "WinRM" -Force | Out-Null
+            }
+   
+            ####################
+
+            If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service))
+            {
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM -Name "Service" -Force | Out-Null
+            }
+
+            ####################
+
+            If (!(Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service\WinRS))
+            {
+                New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service -Name "WinRS" -Force | Out-Null
+            }
+
+        #Set appropriate registry settings.
+            Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service\WinRS -Name "AllowRemoteShellAccess" -Type DWord -Value "0"
+
+        Write-Host "Remote shell access disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-SharingMappedDrivesBetweenUsers
+
+Function Set-SharingMappedDrivesBetweenUsers
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling sharing mapped drives between users."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLinkedConnections" -Type DWord -Value 1
+
+        Write-Host "Sharing mapped drives between users enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling sharing mapped drives between users."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLinkedConnections" -ErrorAction SilentlyContinue
+
+        Write-Host "Sharing mapped drives between users disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-SMB_Server
+
+Function Set-SMB_Server
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Server Message Block Server."
+
+        Set-SmbServerConfiguration -EnableSMB2Protocol $true -Force
+
+        Write-Host "Server Message Block Server enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Server Message Block Server."
+
+        Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
+        Set-SmbServerConfiguration -EnableSMB2Protocol $false -Force
+
+        Write-Host "Server Message Block Server disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-UAC_Level
+
+Function Set-UAC_Level
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Low")
+    {
+        Write-Host "Setting User Account Control Level to 'Low'."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ConsentPromptBehaviorAdmin" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "PromptOnSecureDesktop" -Type DWord -Value 0
+
+        Write-Host "User Account Control Level set to 'Low'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "High")
+    {
+        Write-Host "Setting User Account Control Level to 'High'."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ConsentPromptBehaviorAdmin" -Type DWord -Value 5
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "PromptOnSecureDesktop" -Type DWord -Value 1
+
+        Write-Host "User Account Control Level set to 'High'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Low' and 'High'."
+    }
+}
+
+#endregion
+
+#region Set-UnknownNetworksProfile
+
+Function Set-UnknownNetworksProfile
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Private")
+    {
+        Write-Host "Setting unknown networks profile to private."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\010103000F0000F0010000000F0000F0C967A3643C3AD745950DA7859209176EF5B87C875FA20DF21951640E807D7C24"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\010103000F0000F0010000000F0000F0C967A3643C3AD745950DA7859209176EF5B87C875FA20DF21951640E807D7C24" -Force | Out-Null
+           }
+           
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\010103000F0000F0010000000F0000F0C967A3643C3AD745950DA7859209176EF5B87C875FA20DF21951640E807D7C24" -Name "Category" -Type DWord -Value 1
+        
+        Write-Host "Unknown networks profile set to private."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Public")
+    {
+        Write-Host "Setting unknown networks profile to public."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\010103000F0000F0010000000F0000F0C967A3643C3AD745950DA7859209176EF5B87C875FA20DF21951640E807D7C24" -Name "Category" -ErrorAction SilentlyContinue
+
+        Write-Host "Unknown networks profile set to public."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Private' and 'Public'."
+    }
+}
+
+#endregion
+
+#region Set-WindowsDefender
+
+Function Set-WindowsDefender
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Windows Defender."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name "DisableAntiSpyware" -ErrorAction SilentlyContinue
+
+        If ([System.Environment]::OSVersion.Version.Build -eq 14393)
+        {
+               Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -Name "WindowsDefender" -Type ExpandString -Value "`"%ProgramFiles%\Windows Defender\MSASCuiL.exe`""
+        }
+
+        ElseIf ([System.Environment]::OSVersion.Version.Build -ge 15063)
+        {
+               Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -Name "SecurityHealth" -Type ExpandString -Value "`"%ProgramFiles%\Windows Defender\MSASCuiL.exe`""
+        }
+
+        Write-Host "Windows Defender enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Windows Defender."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender"))
+        {
+               New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Force | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name "DisableAntiSpyware" -Type DWord -Value 1
+
+        If ([System.Environment]::OSVersion.Version.Build -eq 14393)
+        {
+               Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -Name "WindowsDefender" -ErrorAction SilentlyContinue
+        }
+
+        ElseIf ([System.Environment]::OSVersion.Version.Build -ge 15063)
+        {
+               Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -Name "SecurityHealth" -ErrorAction SilentlyContinue
+        }
+
+        Write-Host "Windows Defender disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-WindowsDefenderCloud
+
+Function Set-WindowsDefenderCloud
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Windows Defender Cloud."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet" -Name "SpynetReporting" -ErrorAction SilentlyContinue
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet" -Name "SubmitSamplesConsent" -ErrorAction SilentlyContinue
+
+        Write-Host "Windows Defender Cloud enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Windows Defender Cloud."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet"))
+        {
+               New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet" -Force | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet" -Name "SpynetReporting" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet" -Name "SubmitSamplesConsent" -Type DWord -Value 2
+
+        Write-Host "Windows Defender Cloud disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-WindowsScriptHost
+
+Function Set-WindowsScriptHost
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Windows Script Host."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Script Host\Settings" -Name "Enabled" -ErrorAction SilentlyContinue
+
+        Write-Host "Windows Script Host enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Windows Script Host."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Script Host\Settings" -Name "Enabled" -Type DWord -Value 0
+
+        Write-Host "Windows Script Host disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
diff --git a/Modules/ServerSpecificSettings/ServerSpecificSettings.psm1 b/Modules/ServerSpecificSettings/ServerSpecificSettings.psm1
new file mode 100755 (executable)
index 0000000..0683e61
--- /dev/null
@@ -0,0 +1,231 @@
+##############################
+##                          ##
+## Server Specific Settings ##        
+##                          ##
+##############################
+
+#region Set-CtrlAltDelLogin
+
+Function Set-CtrlAltDelLogin
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Ctrl+Alt+Del requirement before login."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "DisableCAD" -Type DWord -Value 0
+
+        Write-Host "Ctrl+Alt+Del requirement before login enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Ctrl+Alt+Del requirement before login."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "DisableCAD" -Type DWord -Value 1
+
+        Write-Host "Ctrl+Alt+Del requirement before login disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-IE_EnhancedSecurity
+
+Function Set-IE_EnhancedSecurity
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Internet Explorer enhanced security."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" -Name "IsInstalled" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}" -Name "IsInstalled" -Type DWord -Value 1
+
+        Write-Host "Internet Explorer enhanced security enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Internet Explorer enhanced security."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" -Name "IsInstalled" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}" -Name "IsInstalled" -Type DWord -Value 0
+
+        Write-Host "Internet Explorer enhanced security disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-PasswordPolicy
+
+Function Set-PasswordPolicy
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling password complexity and maximum age requirements."
+
+        $tmpfile = New-TemporaryFile
+           secedit /export /cfg $tmpfile /quiet
+           (Get-Content $tmpfile).Replace("PasswordComplexity = 0", "PasswordComplexity = 1").Replace("MaximumPasswordAge = -1", "MaximumPasswordAge = 42") | Out-File $tmpfile
+           secedit /configure /db "$env:SYSTEMROOT\security\database\local.sdb" /cfg $tmpfile /areas SECURITYPOLICY | Out-Null
+           Remove-Item -Path $tmpfile
+
+        Write-Host "Password complexity and maximum age requirements enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling password complexity and maximum age requirements."
+
+        $tmpfile = New-TemporaryFile
+           secedit /export /cfg $tmpfile /quiet
+           (Get-Content $tmpfile).Replace("PasswordComplexity = 1", "PasswordComplexity = 0").Replace("MaximumPasswordAge = 42", "MaximumPasswordAge = -1") | Out-File $tmpfile
+           secedit /configure /db "$env:SYSTEMROOT\security\database\local.sdb" /cfg $tmpfile /areas SECURITYPOLICY | Out-Null
+           Remove-Item -Path $tmpfile
+
+        Write-Host "Password complexity and maximum age requirements disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-ServerManagerAtLogin
+
+Function Set-ServerManagerAtLogin
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting server manager to be shown at login."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Server\ServerManager" -Name "DoNotOpenAtLogon" -ErrorAction SilentlyContinue
+
+        Write-Host "Server manager set to be shown at login."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting server manager to be hidden at login."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Server\ServerManager"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Server\ServerManager" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Server\ServerManager" -Name "DoNotOpenAtLogon" -Type DWord -Value 1
+
+        Write-Host "Server manager set to be hidden at login."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-ShutdownEventTracker
+
+Function Set-ShutdownEventTracker
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling shutdown event tracker."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Reliability" -Name "ShutdownReasonOn" -ErrorAction SilentlyContinue
+
+        Write-Host "Shutdown event tracker enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling shutdown event tracker."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Reliability"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Reliability" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Reliability" -Name "ShutdownReasonOn" -Type DWord -Value 0
+
+        Write-Host "Shutdown event tracker disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-Sound
+
+Function Set-Sound
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling sound."
+
+        Set-Service "Audiosrv" -StartupType Automatic
+           Start-Service "Audiosrv"
+
+        Write-Host "Sound enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling sound."
+
+        Set-Service "Audiosrv" -StartupType Manual
+        Stop-Service "Audiosrv"
+           
+        Write-Host "Sound disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
diff --git a/Modules/ServiceSettings/ServiceSettings.psm1 b/Modules/ServiceSettings/ServiceSettings.psm1
new file mode 100755 (executable)
index 0000000..47c7af1
--- /dev/null
@@ -0,0 +1,1103 @@
+##############################
+##                          ##
+##     Service Settings     ##        
+##                          ##
+##############################
+
+#region Set-Autoplay
+
+Function Set-Autoplay
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling autoplay."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers" -Name "DisableAutoplay" -Type DWord -Value 0
+
+        Write-Host "Autoplay enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling autoplay."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers" -Name "DisableAutoplay" -Type DWord -Value 1
+
+        Write-Host "Autoplay disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-Biometrics
+
+Function Set-Biometrics
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling biometrics."
+
+        #Remove the appropriate registry settings and keys.
+            Remove-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Biometrics -Recurse -ErrorAction SilentlyContinue
+    
+        #Start WbioSrvc and, Enable its startup.
+            Set-Service -Name WbioSrvc -StartupType Automatic
+            Start-Service -Name WbioSrvc
+
+        Write-Host "Biometrics enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling biometrics."
+
+        #Disable biometrics in registry settings.
+
+            #Make "Biometrics" and "Credential Provider" keys.
+                If (!(Test-Path HKLM:\SOFTWARE\Policies\Microsoft\Biometrics))
+                {
+                    New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft -Name "Biometrics" -Force | Out-Null
+                }
+
+                ####################
+        
+                If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Biometrics\Credential Provider"))
+                {
+                    New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Biometrics -Name "Credential Provider" -Force | Out-Null
+                }
+               
+            #Set the appropriate registry settings.
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Biometrics -Name "Enabled" -Type DWord -Value 0
+                Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Biometrics\Credential Provider" -Name "Enabled" -Type DWord -Value 0
+                Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Biometrics\Credential Provider" -Name "Domain Accounts" -Type DWord -Value 0
+        
+
+        #Stop WbioSrvc and, disable its startup.
+            Set-Service -Name WbioSrvc -StartupType Disabled
+            Stop-Service -Name WbioSrvc
+
+        Write-Host "Biometrics disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-BIOS_Time
+
+Function Set-BIOS_Time
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Local")
+    {
+        Write-Host "Setting B.I.O.S. time to local time."
+
+        Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" -Name "RealTimeIsUniversal" -ErrorAction SilentlyContinue
+
+        Write-Host "B.I.O.S. time set to local time."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "UTC")
+    {
+        Write-Host "Setting B.I.O.S. time to U.T.C.."
+
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" -Name "RealTimeIsUniversal" -Type DWord -Value 1
+
+        Write-Host "B.I.O.S. time set to U.T.C.."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Local' and 'UTC'."
+    }
+}
+
+#endregion
+
+#region Set-DisplayandSleepModeTimeouts
+
+Function Set-DisplayandSleepModeTimeouts
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling display and sleep mode timeouts."
+
+        powercfg /X monitor-timeout-ac 10
+        powercfg /X monitor-timeout-dc 5
+        powercfg /X standby-timeout-ac 30
+        powercfg /X standby-timeout-dc 15
+
+        Write-Host "Display and sleep mode timeouts enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling display and sleep mode timeouts."
+
+        powercfg /X monitor-timeout-ac 0
+        powercfg /X monitor-timeout-dc 0
+        powercfg /X standby-timeout-ac 0
+        powercfg /X standby-timeout-dc 0
+
+        Write-Host "Display and sleep mode timeouts disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-DriveAutorun
+
+Function Set-DriveAutorun
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling drive autorun."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "NoDriveTypeAutoRun" -ErrorAction SilentlyContinue
+
+        Write-Host "Drive autorun enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling drive autorun."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "NoDriveTypeAutoRun" -Type DWord -Value 255
+
+        Write-Host "Drive autorun disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-FastStartupPolicy
+
+Function Set-FastStartupPolicy
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Fast Startup."
+
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" -Name "HiberbootEnabled" -Type DWord -Value 1
+
+        Write-Host "Fast Startup enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Fast Startup."
+
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" -Name "HiberbootEnabled" -Type DWord -Value 0
+
+        Write-Host "Fast Startup disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-FileIndexing
+
+Function Set-FileIndexing
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling file indexing."
+
+        #Start "Windows Search" service, and Enable its startup.
+            Set-Service -Name WSearch -StartupType Automatic
+            Start-Service -Name WSearch
+    
+        Write-Host "File indexing enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling file indexing."
+
+        #Stop "Windows Search" service, and disable its startup.
+            Set-Service -Name WSearch -StartupType Disabled
+            Stop-Service -Name WSearch
+    
+        Write-Host "File indexing disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-Game_DVR
+
+Function Set-Game_DVR
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Game Digital Video Recording."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR" -Name "AllowGameDVR" -ErrorAction SilentlyContinue
+        
+        Write-Host "Game Digital Video Recording enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Game Digital Video Recording."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR" -Name "AllowGameDVR" -Type DWord -Value 0
+
+        Write-Host "Game Digital Video Recording disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-Hibernation
+
+Function Set-Hibernation
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling hibernation."
+
+        powercfg -h on
+
+        Write-Host "Hibernation enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling hibernation."
+
+        powercfg -h off
+        
+        Write-Host "Hibernation disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-RemoteAssistance
+
+Function Set-RemoteAssistance
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling remote assistance."
+
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Remote Assistance" -Name "fAllowToGetHelp" -Type DWord -Value 1
+
+        Write-Host "Remote assistance enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling remote assistance."
+
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Remote Assistance" -Name "fAllowToGetHelp" -Type DWord -Value 0
+
+        Write-Host "Remote assistance disabled."
+        Write-Host ""        
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-RemoteDesktop
+
+Function Set-RemoteDesktop
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling remote desktop."
+
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Type DWord -Value 0
+        Enable-NetFirewallRule -Name "RemoteDesktop*"
+
+        Write-Host "Remote desktop enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling remote desktop."
+
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Type DWord -Value 1
+        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Type DWord -Value 1
+        Disable-NetFirewallRule -Name "RemoteDesktop*"
+
+        Write-Host "Remote desktop disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-ScheduledDefragmentation
+
+Function Set-ScheduledDefragmentation
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling scheduled defragmentation."
+
+        Enable-ScheduledTask -TaskName "Microsoft\Windows\Defrag\ScheduledDefrag"
+
+        Write-Host "Scheduled defragmentation enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling scheduled defragmentation."
+
+        Disable-ScheduledTask -TaskName "Microsoft\Windows\Defrag\ScheduledDefrag"
+
+        Write-Host "Scheduled defragmentation disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-SettingsSynchronization
+
+Function Set-SettingsSynchronization
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling settings synchronization."
+
+        Remove-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\SettingSync -Name "DisableSettingSync" -ErrorAction SilentlyContinue
+        Remove-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection -Name "AllowTelemetry" -ErrorAction SilentlyContinue
+
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\SettingSync -Name "EnableBackupForWin8Apps" -Type DWord -Value "1"
+
+        Write-Host "Settings synchronization enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling settings synchronization."
+
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\SettingSync -Name "DisableSettingSync" -Type DWord -Value "2"
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\SettingSync -Name "DisableSettingSyncUserOverride" -Type DWord -Value "2"
+        Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\SettingSync -Name "EnableBackupForWin8Apps" -Type DWord -Value "0"
+
+        Write-Host "Settings synchronization disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-SharedExperiences
+
+Function Set-SharedExperiences
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling shared experiences."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableCdp" -ErrorAction SilentlyContinue
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableMmx" -ErrorAction SilentlyContinue
+
+        Write-Host "Shared experiences enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling shared experiences."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableCdp" -Type DWord -Value 0
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableMmx" -Type DWord -Value 0
+
+        Write-Host "Shared experiences disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-SleepButton
+
+Function Set-SleepButton
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling start menu and keyboard sleep buttons."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Force | Out-Null
+           }
+           
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Name "ShowSleepOption" -Type Dword -Value 1
+       
+        powercfg /SETACVALUEINDEX SCHEME_CURRENT SUB_BUTTONS SBUTTONACTION 1
+           powercfg /SETDCVALUEINDEX SCHEME_CURRENT SUB_BUTTONS SBUTTONACTION 1
+
+        Write-Host "Start menu and keyboard sleep buttons enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling start menu and keyboard sleep buttons."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Name "ShowSleepOption" -Type Dword -Value 0
+       
+        powercfg /SETACVALUEINDEX SCHEME_CURRENT SUB_BUTTONS SBUTTONACTION 0
+           powercfg /SETDCVALUEINDEX SCHEME_CURRENT SUB_BUTTONS SBUTTONACTION 0
+
+        Write-Host "Start menu and keyboard sleep buttons disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-Spellcheck
+
+Function Set-Spellcheck\r
+{\r
+    Param([string]$Value)\r
+\r
+    If(!(Test-Path "HKCU:\SOFTWARE\Microsoft\Input\Settings"))\r
+    {\r
+        New-Item -Path "HKCU:\SOFTWARE\Microsoft\Input" -Name Settings -Force | Out-Null\r
+    }\r
+\r
+\r
+    If ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling spellcheck."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name Enableautocorrection -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnableSpellchecking -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name EnableHwkbAutocorrection2 -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\International\User Profile" -Name ShowAutoCorrection -Type DWord -Value 0\r
+\r
+        Write-Host "Spellcheck disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Highlight")\r
+    {\r
+        Write-Host "Setting spellcheck to 'Highlight'."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name Enableautocorrection -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnableSpellchecking -Type DWord -Value 1\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name EnableHwkbAutocorrection2 -Type DWord -Value 0\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\International\User Profile" -Name ShowAutoCorrection -Type DWord -Value 0\r
+\r
+        Write-Host "Spellcheck set to 'Highlight'."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Full")\r
+    {\r
+        Write-Host "Setting spellcheck to 'Full'."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name Enableautocorrection -Type DWord -Value 1\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnableSpellchecking -Type DWord -Value 1\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name EnableHwkbAutocorrection2 -Type DWord -Value 1\r
+        Set-ItemProperty -Path "HKCU:\Control Panel\International\User Profile" -Name ShowAutoCorrection -Type DWord -Value 1\r
+\r
+        Write-Host "Spellcheck set to 'Full'."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Disable', 'Highlight', and 'Full'."\r
+    }\r
+}
+
+#endregion
+
+#region Set-StorageSense
+
+Function Set-StorageSense
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Storage Sense."
+
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy"))
+        {
+                   New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Name "01" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Name "04" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Name "08" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Name "32" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Name "StoragePoliciesNotified" -Type DWord -Value 1
+
+        Write-Host "Storage Sense enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Storage Sense."
+
+        Remove-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Recurse -ErrorAction SilentlyContinue
+
+        Write-Host "Storage Sense disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-Superfetch
+
+Function Set-Superfetch
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Superfetch service."
+
+        Set-Service "SysMain" -StartupType Automatic
+        Start-Service "SysMain"
+
+        Write-Host "Superfetch service enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Superfetch service."
+
+        Set-Service "SysMain" -StartupType Disabled
+        Stop-Service "SysMain"
+
+        Write-Host "Superfetch service disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-TextPrediction
+
+Function Set-TextPrediction\r
+{\r
+    Param([string]$Value)\r
+\r
+    If(!(Test-Path "HKCU:\SOFTWARE\Microsoft\Input\Settings"))\r
+    {\r
+        New-Item -Path "HKCU:\SOFTWARE\Microsoft\Input" -Name Settings -Force | Out-Null\r
+    }\r
+    \r
+    If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Spelling"))\r
+    {\r
+        New-Item -Path "HKCU:\SOFTWARE\Microsoft" -Name "Spelling" -Force | Out-Null\r
+    }\r
+\r
+    If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Spelling\Options"))\r
+    {\r
+        New-Item -Path "HKCU:\SOFTWARE\Microsoft\Spelling" -Name "Options" -Force | Out-Null\r
+    }\r
+\r
+    \r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling text prediction."\r
+\r
+        #Change global settings.\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnableTextPrediction -Type DWord -Value 1\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnablePredictionSpaceInsertion -Type DWord -Value 1\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnableDoubleTapSpace -Type DWord -Value 1\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name EnableHwkbTextPrediction -Type DWord -Value 1\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name MultilingualEnabled -Type DWord -Value 1\r
+            Set-ItemProperty -Path "HKCU:\Control Panel\International\User Profile" -Name ShowTextPrediction -Type DWord -Value 1\r
+\r
+        #Change setting for all keyboard layouts individually.\r
+            $Languagelist = Get-WinUserLanguageList\r
+\r
+            For ($x=0; $x -lt $Languagelist.Count; $x++)\r
+            {\r
+                $Languagetag = ($Languagelist[$x])[0].LanguageTag\r
+                $Keyname = $Languagetag + ":1996Reform"\r
+                Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Spelling\Options" -Name "$Keyname" -Type DWord -Value 1\r
+            }\r
+\r
+        Write-Host "Text prediction enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling text prediction."\r
+\r
+        #Change global settings.\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnableTextPrediction -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnablePredictionSpaceInsertion -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\TabletTip\1.7" -Name EnableDoubleTapSpace -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name EnableHwkbTextPrediction -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name MultilingualEnabled -Type DWord -Value 0\r
+            Set-ItemProperty -Path "HKCU:\Control Panel\International\User Profile" -Name ShowTextPrediction -Type DWord -Value 0\r
+\r
+        #Change setting for all keyboard layouts individually.\r
+            $Languagelist = Get-WinUserLanguageList\r
+\r
+            For ($x=0; $x -lt $Languagelist.Count; $x++)\r
+            {\r
+                $Languagetag = ($Languagelist[$x])[0].LanguageTag\r
+                $Keyname = $Languagetag + ":1996Reform"\r
+                Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Spelling\Options" -Name "$Keyname" -Type DWord -Value 0\r
+            }\r
+\r
+        Write-Host "Text prediction disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
+
+#endregion
+
+#region Set-TypingInsights
+
+Function Set-TypingInsights\r
+{\r
+    Param([string]$Value)\r
+    \r
+    If(!(Test-Path "HKCU:\SOFTWARE\Microsoft\Input\Settings"))\r
+    {\r
+        New-Item -Path "HKCU:\SOFTWARE\Microsoft\Input" -Name Settings -Force | Out-Null\r
+    }\r
+\r
+            \r
+    If ($Value -eq "Enable")\r
+    {\r
+        Write-Host "Enabling typing insights."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name InsightsEnabled -Type DWord -Value 1\r
+\r
+        Write-Host "Typing insights enabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling typing insights."\r
+\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\Settings" -Name InsightsEnabled -Type DWord -Value 0\r
+        $InsightsKey = "02,00,00,00,07,1d,e8,c1,31,cc,83,60,a3,d6,d9,c1,33,0a,68,6b,16,5a,ba,2e,23,5f,5a,5c"\r
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Input\TypingInsights" -Name Insights -Type Binary -Value (Hex -BinaryKey $InsightsKey)\r
+\r
+        Write-Host "Typing insights disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."\r
+    }\r
+}
+
+#endregion
+
+#region Set-WindowsUpdate
+
+Function Set-WindowsUpdate
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Windows Update."
+
+        #Enable Windows Update in registry settings.
+    
+            #Remove the appropriate registry settings and keys.
+                Remove-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate -Recurse -ErrorAction SilentlyContinue
+               
+        #Start Windows Update Service, and Enable its startup.
+            Set-Service -Name wuauserv -StartupType Automatic
+            Start-Service -Name wuauserv
+            
+        Write-Host "Windows Update enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Windows Update."
+
+        #Disable Windows Update in registry settings.
+    
+            #Make "WindowsUpdate" and "AU" keys.
+                If (!(Test-Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate))
+                {
+                    New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name "WindowsUpdate" -Force | Out-Null
+                }
+               
+                ####################
+        
+                If (!(Test-Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU))
+                {
+                    New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate -Name "AU" -Force | Out-Null
+                }
+                
+            #Set the appropriate registry settings.
+                Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU -Name "NoAutoUpdate" -Type DWord -Value 1
+          
+
+        #Stop Windows Update Service, and disable its startup.
+            Set-Service -Name wuauserv -StartupType Disabled
+            Stop-Service -Name wuauserv
+            
+        Write-Host "Windows Update disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-WindowsUpdate_Drivers
+
+Function Set-WindowsUpdate_Drivers
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling offering of drivers through Windows Update."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Name "PreventDeviceMetadataFromNetwork" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontPromptForWindowsUpdate" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontSearchWindowsUpdate" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DriverUpdateWizardWuSearchEnabled" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate" -ErrorAction SilentlyContinue
+
+        Write-Host "Offering of drivers through Windows Update enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling offering of drivers through Windows Update."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Name "PreventDeviceMetadataFromNetwork" -Type DWord -Value 1
+       
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontPromptForWindowsUpdate" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontSearchWindowsUpdate" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DriverUpdateWizardWuSearchEnabled" -Type DWord -Value 0
+       
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate" -Type DWord -Value 1
+
+        Write-Host "Offering of drivers through Windows Update disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-WindowsUpdate_MSRT
+
+Function Set-WindowsUpdate_MSRT
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling offering of Malicious Software Removal Tool through Windows Update."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT" -Name "DontOfferThroughWUAU" -ErrorAction SilentlyContinue
+
+        Write-Host "offering of Malicious Software Removal Tool through Windows Update enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling offering of Malicious Software Removal Tool through Windows Update."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT" -Name "DontOfferThroughWUAU" -Type DWord -Value 1
+
+        Write-Host "offering of Malicious Software Removal Tool through Windows Update disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-WindowsUpdateAutomaticRestart
+
+Function Set-WindowsUpdateAutomaticRestart
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Windows Update automatic restart."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoRebootWithLoggedOnUsers" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "AUPowerManagement" -ErrorAction SilentlyContinue
+
+        Write-Host "Windows Update automatic restart enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Windows Update automatic restart."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Force | Out-Null
+           }
+
+       Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoRebootWithLoggedOnUsers" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "AUPowerManagement" -Type DWord -Value 0
+
+        Write-Host "Windows Update automatic restart disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-WindowsUpdateTransferOptimization
+
+Function Set-WindowsUpdateTransferOptimization\r
+{\r
+    Param([string]$Value)\r
+\r
+    If (!(Test-Path "HKU:"))\r
+    {\r
+        New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS\r
+    }\r
+      \r
+\r
+    If ($Value -eq "Disable")\r
+    {\r
+        Write-Host "Disabling the downloading of Windows updates from non-Windows-Update-Server sources."\r
+\r
+        Set-ItemProperty -Path "HKU:\S-1-5-20\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Settings" -Name "DownloadMode" -Type DWord -Value 0\r
+        \r
+        Write-Host "Downloading of Windows updates from non-Windows-Update-Server sources disabled."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "Internet")\r
+    {\r
+        Write-Host "Setting Windows updates to be allowed to be downloaded from other computers in the local network and on the internet."\r
+\r
+        Set-ItemProperty -Path "HKU:\S-1-5-20\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Settings" -Name "DownloadMode" -Type DWord -Value 3\r
+                \r
+        Write-Host "Windows updates set to be allowed to be downloaded from other computers in the local network and on the internet."\r
+        Write-Host ""\r
+    }\r
+\r
+    ElseIf ($Value -eq "LocalNetwork")\r
+    {\r
+        Write-Host "Setting Windows updates to be allowed to be downloaded from other computers in the local network."\r
+\r
+        Set-ItemProperty -Path "HKU:\S-1-5-20\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Settings" -Name "DownloadMode" -Type DWord -Value 1\r
+        \r
+        Write-Host "Windows updates set to be allowed to be downloaded from other computers in the local network."\r
+        Write-Host ""\r
+    }\r
+\r
+    Else\r
+    {\r
+        Write-Error "Invalid value.  Valid values are 'Disable', 'Internet', and 'LocalNetwork'."\r
+    }\r
+}
+
+#endregion
\ No newline at end of file
diff --git a/Modules/UserInterfaceSettings/UserInterfaceSettings.psm1 b/Modules/UserInterfaceSettings/UserInterfaceSettings.psm1
new file mode 100755 (executable)
index 0000000..0821cb0
--- /dev/null
@@ -0,0 +1,1764 @@
+##############################
+##                          ##
+## User Interface Settings  ##        
+##                          ##
+##############################
+
+#region Set-AccentColor
+
+Function Set-AccentColor
+{
+    Param([string]$Value)
+       
+    Switch ("$Value")
+    {
+        BlueGray
+           {
+                   $AccentPaletteKey = "c2,e7,f2,00,ba,d7,e0,00,99,b1,b8,00,69,79,7e,00,43,58,5e,00,2e,40,45,00,1f,2b,2e,00,48,68,60,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff7e7969
+                   Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)
+                   Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff5e5843
+           }
+        
+        BrickRed
+           {
+            $AccentPaletteKey = "ff,b0,b3,00,ff,96,99,00,ff,64,69,00,d1,34,38,00,99,26,29,00,75,1d,1f,00,52,14,15,00,64,7c,64,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff3834d1
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff292699
+           }
+
+        Camouflage
+           {
+            $AccentPaletteKey = "d6,c3,a3,00,bd,ac,8f,00,a0,92,79,00,7e,73,5f,00,5e,56,47,00,45,3d,30,00,36,2f,24,00,00,b7,c3,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff5f737e
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff47565e
+           }
+
+        CoolBlue
+           {
+            $AccentPaletteKey = "a4,e8,ff,00,7c,d6,f5,00,4d,ac,cf,00,2d,7d,9a,00,21,5d,73,00,0e,43,57,00,0b,28,33,00,00,cc,6a,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff9a7d2d
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff735d21
+           }
+
+        DarkGray
+           {
+            $AccentPaletteKey = "98,ab,b6,00,7d,8d,96,00,63,70,77,00,4a,54,59,00,37,3f,42,00,2c,32,35,00,1f,23,25,00,00,b7,c3,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff59544a
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff423f37
+           }
+
+        DarkMint
+           {
+            $AccentPaletteKey = "99,f7,eb,00,64,de,ce,00,00,b3,9b,00,01,85,74,00,00,5e,52,00,00,40,37,00,00,2b,26,00,d1,34,38,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff748501
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff525e00
+           }
+
+        DarkOrange
+           {
+            $AccentPaletteKey = "ff,94,3e,00,f2,81,30,00,e8,6f,2e,00,ca,50,10,00,95,3b,0c,00,72,2d,09,00,50,20,06,00,52,5e,54,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff1050ca
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff0c3b95
+           }
+
+        DarkSeaGreen
+           {
+            $AccentPaletteKey = "b3,f4,f5,00,80,d6,d9,00,37,a9,ad,00,03,83,87,00,00,56,59,00,00,39,3b,00,00,26,26,00,ef,69,50,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff878303
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff595600
+           }
+
+        DarkShadedPurple
+           {
+            $AccentPaletteKey = "d5,d4,ff,00,ad,ac,f0,00,89,87,e4,00,6b,69,d6,00,4f,4d,9e,00,2d,2b,61,00,1f,1f,4d,00,00,cc,6a,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffd6696b
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff9e4d4f
+           }
+
+        DesertCamouflage
+           {
+            $AccentPaletteKey = "de,c7,7d,00,c3,af,6e,00,a9,97,5f,00,84,75,45,00,63,56,2c,00,4d,42,1f,00,3b,32,17,00,ef,69,50,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff457584
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff2c5663
+           }
+
+        Gold
+           {
+            $AccentPaletteKey = "ff,df,b8,00,ff,ca,8a,00,ff,af,4c,00,ff,8c,00,00,b3,62,00,00,73,3f,00,00,45,26,00,00,00,63,b1,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff008cff
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff0062b3
+           }
+
+        GrassGreen
+           {
+            $AccentPaletteKey = "c1,f7,dd,00,a6,f7,d0,00,68,e3,a8,00,00,cc,6a,00,00,87,46,00,00,52,2a,00,00,2b,16,00,e3,00,8c,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff6acc00
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff468700
+           }
+
+        Gray
+           {
+            $AccentPaletteKey = "d9,d1,ce,00,c8,c0,be,00,a7,a0,9f,00,7a,75,74,00,5f,5b,5a,00,39,36,36,00,26,25,25,00,ea,00,5e,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff74757a
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff5a5b5f
+           }
+
+        GrayBrown
+           {
+            $AccentPaletteKey = "c5,bf,b9,00,a3,9e,9a,00,87,83,80,00,5d,5a,58,00,3e,3c,3b,00,2b,2a,29,00,1f,1e,1d,00,ff,43,43,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff585a5d
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff3b3c3e
+           }
+
+        Green
+           {
+            $AccentPaletteKey = "90,d6,90,00,61,ba,61,00,3d,9c,3d,00,10,7c,10,00,0c,5c,0c,00,09,42,09,00,02,26,02,00,4c,4a,48,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff107c10
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff0c5c0c
+           }
+
+        LiddyGreen
+           {
+            $AccentPaletteKey = "b6,e0,b6,00,a5,cc,a5,00,89,aa,89,00,64,7c,64,00,48,59,48,00,32,42,32,00,24,30,24,00,d1,34,38,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff647c64
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff485948
+           }
+
+        LightCoolBlue
+           {
+            $AccentPaletteKey = "a9,ef,ff,00,79,e6,ff,00,48,d2,f2,00,00,99,bc,00,00,6b,83,00,00,4b,5c,00,00,32,3d,00,e3,00,8c,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffbc9900
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff836b00
+           }
+
+        LightMint
+           {
+            $AccentPaletteKey = "b5,f7,ec,00,91,eb,dc,00,32,e3,c5,00,00,b2,94,00,00,82,6c,00,00,4a,3e,00,00,29,22,00,68,76,8a,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff94b200
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff6c8200
+           }
+
+        LightOrange
+           {
+            $AccentPaletteKey = "fd,86,5f,00,fc,75,51,00,f8,63,42,00,f7,63,0c,00,d0,41,22,00,9c,31,1a,00,79,27,14,00,00,99,bc,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff0c63f7
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff2241d0
+           }
+
+        LightOrchid
+           {
+            $AccentPaletteKey = "ff,ab,f5,00,e9,89,de,00,cf,62,c3,00,c2,39,b3,00,8c,29,81,00,63,1d,5b,00,3b,08,36,00,2d,7d,9a,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffb339c2
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff81298c
+           }
+
+        LightPink
+           {
+            $AccentPaletteKey = "ff,a8,cb,00,f7,83,b2,00,f7,52,94,00,ea,00,5e,00,ac,00,46,00,88,00,37,00,6b,00,2b,00,7a,75,74,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff5e00ea
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff4600ac
+           }
+
+        LightPlum
+           {
+            $AccentPaletteKey = "ff,bd,e6,00,ff,91,d5,00,f7,5c,bc,00,e3,00,8c,00,a3,00,65,00,70,00,45,00,47,00,2c,00,00,99,bc,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff8c00e3
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff6500a3
+           }
+
+        LightVioletRed
+           {
+            $AccentPaletteKey = "f6,c0,ff,00,e5,9d,f0,00,cc,7b,d9,00,b1,46,c2,00,7d,31,89,00,51,20,59,00,38,16,3d,00,ff,8c,00,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffc246b1
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff89317d
+           }
+
+        MarineBlue
+           {
+            $AccentPaletteKey = "86,ca,ff,00,5f,b2,f2,00,1e,91,ea,00,00,63,b1,00,00,42,75,00,00,2d,4f,00,00,20,38,00,00,cc,6a,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffb16300
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff754200
+           }
+
+        MeadowGreen
+           {
+            $AccentPaletteKey = "b7,f2,6f,00,9e,d1,60,00,79,ab,3c,00,49,82,05,00,35,5e,03,00,24,40,01,00,15,26,00,00,48,68,60,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff058249
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff035e35
+           }
+
+        MetalBlue
+           {
+            $AccentPaletteKey = "9f,b4,d1,00,8a,9d,b6,00,6e,7d,91,00,51,5c,6b,00,3b,44,52,00,26,2f,3b,00,1c,23,2e,00,ef,69,50,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff6b5c51
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff52443b
+           }
+
+        MiddleRed
+           {
+            $AccentPaletteKey = "ff,c2,c2,00,ff,b2,b2,00,ff,83,83,00,ff,43,43,00,b8,2a,2a,00,80,12,12,00,57,08,08,00,00,b7,c3,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff4343ff
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff2a2ab8
+           }
+
+        Moss
+           {
+            $AccentPaletteKey = "97,cf,c1,00,7f,ad,a2,00,68,8f,85,00,48,68,60,00,33,4a,44,00,23,33,2f,00,15,24,20,00,49,82,05,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff606848
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff444a33
+           }
+
+        Orchid
+           {
+            $AccentPaletteKey = "fd,8d,f1,00,f2,66,e3,00,cb,3d,bb,00,9a,00,89,00,70,00,63,00,50,00,47,00,33,00,2d,00,00,cc,6a,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff89009a
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff630070
+           }
+
+        Overcast
+           {
+            $AccentPaletteKey = "cc,cc,cc,00,ae,ae,ae,00,92,92,92,00,76,76,76,00,4f,4f,4f,00,37,37,37,00,26,26,26,00,d1,34,38,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff767676
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey)
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff4f4f4f
+           }
+
+        PaleMoss
+           {
+            $AccentPaletteKey = "a4,e1,d2,00,8b,bf,b2,00,76,a2,97,00,56,7c,73,00,3a,54,4e,00,29,3a,36,00,1c,2b,28,00,c3,00,52,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff737c56
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff4e543a
+           }
+
+        PaleRed
+           {
+            $AccentPaletteKey = "ff,cf,d3,00,ff,ad,b4,00,f7,83,8d,00,e7,48,56,00,9e,21,2c,00,6e,10,18,00,40,06,0b,00,ff,8c,00,00,"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff5648e7
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff2c219e
+           }
+
+        PaleRust
+           {
+            $AccentPaletteKey = "ff,c9,bf,00,ff,b7,ab,00,fa,94,82,00,ef,69,50,00,9e,44,34,00,66,2c,22,00,33,12,0c,00,74,4d,a0,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff5069ef
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff34449e
+           }
+
+        PastelIris
+           {
+            $AccentPaletteKey = "d4,b5,ff,00,c0,96,fa,00,a8,82,dd,00,87,64,b8,00,5b,3e,83,00,3c,27,59,00,2b,1c,40,00,8e,8c,d8,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffb86487
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff833e5b
+           }
+
+        Pink
+           {
+            $AccentPaletteKey = "ff,ab,ce,00,ff,7f,b4,00,f7,4a,92,00,c3,00,52,00,8c,00,3a,00,69,00,2c,00,4d,00,20,00,56,7c,73,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff5200c3
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff3a008c
+           }
+
+        Plum
+           {
+            $AccentPaletteKey = "ff,8b,d3,00,e3,69,b5,00,c8,48,98,00,bf,00,77,00,8a,00,55,00,66,00,3f,00,4a,00,2e,00,88,17,98,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff7700bf
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff55008a
+           }
+
+        Red
+           {
+            $AccentPaletteKey = "ff,bd,c2,00,ff,99,a1,00,f0,59,65,00,e8,11,23,00,99,00,0d,00,6e,00,09,00,47,00,06,00,69,79,7e,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff2311e8
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff0d0099
+           }
+
+        Rust
+           {
+            $AccentPaletteKey = "ff,ba,a1,00,ff,98,73,00,e7,6b,3e,00,da,3b,01,00,9c,2b,02,00,66,1c,01,00,42,12,00,00,ff,8c,00,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff013bda
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff022b9c
+           }
+
+        Sage
+           {
+            $AccentPaletteKey = "b8,d4,c1,00,a3,bb,ab,00,80,93,86,00,52,5e,54,00,3a,43,3d,00,2a,33,2c,00,1d,26,20,00,ca,50,10,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff545e52
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff3d433a
+           }
+
+        SeaGreen
+           {
+            $AccentPaletteKey = "aa,f5,fa,00,8c,e7,ed,00,5c,dc,e6,00,00,b7,c3,00,00,7c,85,00,00,4a,4f,00,00,30,33,00,4a,54,59,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffc3b700
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff857c00
+           }
+
+        ShadedPurple
+           {
+            $AccentPaletteKey = "d4,d4,ff,00,c7,c5,fa,00,ab,a9,e8,00,8e,8c,d8,00,6f,6d,a8,00,56,55,82,00,3b,3a,59,00,87,64,b8,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffd88c8e
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xffa86d6f
+           }
+
+        SportGreen
+           {
+            $AccentPaletteKey = "94,e0,b1,00,75,c7,95,00,3d,ad,68,00,10,89,3e,00,0b,5c,2a,00,08,42,1e,00,05,2b,14,00,00,b7,c3,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff3e8910
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff2a5c0b
+           }
+
+        SpringIris
+           {
+            $AccentPaletteKey = "d0,ae,ff,00,b2,90,e2,00,8f,6b,c0,00,74,4d,a9,00,4e,30,78,00,37,22,54,00,24,15,3b,00,ef,69,50,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffa94d74
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff78304e
+           }
+
+        StandardBlue
+           {
+            $AccentPaletteKey = "a6,d8,ff,00,76,b9,ed,00,42,9c,e3,00,00,78,d7,00,00,5a,9e,00,00,42,75,00,00,26,42,00,f7,63,0c,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xffd77800
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff9e5a00
+           }
+
+        SteelBlue
+           {
+            $AccentPaletteKey = "9e,b6,db,00,8f,a4,c2,00,7f,90,a8,00,68,76,8a,00,4f,5c,6e,00,37,40,4f,00,22,2b,38,00,00,b2,94,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff8a7668
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff6e5c4f
+           }
+
+        Storm
+           {
+            $AccentPaletteKey = "9b,9a,99,00,84,83,81,00,6d,6b,6a,00,4c,4a,48,00,36,35,33,00,26,25,24,00,19,19,19,00,10,7c,10,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff484a4c
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff333536
+           }
+
+        VioletRed
+           {
+            $AccentPaletteKey = "f7,b8,ff,00,e8,93,f4,00,d1,57,e2,00,88,17,98,00,62,11,6e,00,47,0c,4f,00,31,06,38,00,bf,00,77,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff981788
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff6e1162
+           }
+
+        YellowGold
+           {
+            $AccentPaletteKey = "ff,e8,a8,00,ff,e0,8c,00,ff,d3,5c,00,ff,b9,00,00,ba,89,00,00,80,5e,00,00,4d,38,00,00,00,b2,94,00"
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentColorMenu -Type DWord -Value 0xff00b9ff
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name AccentPalette -Type Binary -Value (Hex -BinaryKey $AccentPaletteKey) 
+            Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent" -Name StartColorMenu -Type DWord -Value 0xff0089ba
+           }
+        
+        Default
+        {
+            Write-Error "Invalid value.  The valid values are 'BlueGray','BrickRed','Camouflage','CoolBlue','DarkGray','DarkMint','DarkOrange','DarkSeaGreen','DarkShadedPurple','DesertCamouflage','Gold','GrassGreen','Gray','GrayBrown','Green','LiddyGreen','LightCoolBlue','LightMint','LightOrange','LightOrchid','LightPink','LightPlum','LightVioletRed','MarineBlue','MeadowGreen','MetalBlue','MiddleRed','Moss','Orchid','Overcast','PaleMoss','PaleRed','PaleRust','PastelIris','Pink','Plum','Red','Rust','Sage','SeaGreen','ShadedPurple','SportGreen','SpringIris','StandardBlue','SteelBlue','Storm','VioletRed', and 'YellowGold'."
+            throw
+        }
+    }
+
+    Stop-Process -Name explorer
+}
+
+#endregion
+
+#region Set-ActionCenter
+
+Function Set-ActionCenter
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Action Center."
+
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name "DisableNotificationCenter" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\PushNotifications" -Name "ToastEnabled" -ErrorAction SilentlyContinue
+        Stop-Process -Name explorer
+
+        Write-Host "Action Center enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Action Center."
+
+        If (!(Test-Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer"))
+        {
+                   New-Item -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Force | Out-Null
+           }
+           
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name "DisableNotificationCenter" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\PushNotifications" -Name "ToastEnabled" -Type DWord -Value 0
+        Stop-Process -Name explorer
+
+        Write-Host "Action Center disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-ApplicationColorMode
+
+Function Set-ApplicationColorMode
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Dark")
+    {
+        Write-Host "Setting application color mode to 'Dark'."
+        
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -Type DWord -Value 0
+
+        Write-Host "Application color mode set to 'Dark'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Light")
+    {
+        Write-Host "Setting application color mode to 'Light'."
+        
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -Type DWord -Value 1
+
+        Write-Host "Application color mode set to 'Light'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Dark' and 'Light'."
+    }
+}
+
+#endregion
+
+#region Set-ColorMode
+
+Function Set-ColorMode
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Dark")
+    {
+        Write-Host "Setting color mode to 'Dark'."
+
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -Type DWord -Value 0
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -Type DWord -Value 0
+        
+        Write-Host "Color mode set to 'Dark'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Light")
+    {
+        Write-Host "Setting color mode to 'Light'."
+
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -Type DWord -Value 1
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -Type DWord -Value 1
+
+        Write-Host "Color mode set to 'Light'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Dark' and 'Light'."
+    }
+}
+
+#endregion
+
+#region Set-ColorPrevalence
+
+Function Set-ColorPrevalence
+{
+    Param([string]$Value)
+
+    If ($Value -eq "All")
+    {
+        Write-Host "Setting color prevalence to 'All'."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name ColorPrevalence -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\DWM" -Name ColorPrevalence -Type DWord -Value 1
+
+        Write-Host "Color prevalence set to 'All'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "AST")
+    {
+        Write-Host "Setting color prevalence to 'AST'."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name ColorPrevalence -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\DWM" -Name ColorPrevalence -Type DWord -Value 0
+
+        Write-Host "Color prevalence set to 'AST'."
+        Write-Host ""
+    }
+    
+    ElseIf ($Value -eq "Standard")
+    {
+        Write-Host "Setting color prevalence to 'Standard'."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name ColorPrevalence -Type DWord -Value 0
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\DWM" -Name ColorPrevalence -Type DWord -Value 0
+
+        Write-Host "Color prevalence set to 'Standard'."
+        Write-Host ""
+    }
+        
+    ElseIf ($Value -eq "Taskbar")
+    {
+        Write-Host "Setting color prevalence to 'Taskbar'."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name ColorPrevalence -Type DWord -Value 2
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\DWM" -Name ColorPrevalence -Type DWord -Value 0
+
+        Write-Host "Color prevalence set to 'Taskbar'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "TaskbarWindow")
+    {
+        Write-Host "Setting color prevalence to 'TaskbarWindow'."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name ColorPrevalence -Type DWord -Value 2
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\DWM" -Name ColorPrevalence -Type DWord -Value 1
+
+        Write-Host "Color prevalence set to 'TaskbarWindow'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Window")
+    {
+        Write-Host "Setting color prevalence to 'Window'."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\DWM" -Name ColorPrevalence -Type DWord -Value 1
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name ColorPrevalence -Type DWord -Value 0
+
+        Write-Host "Color prevalence set to 'Window'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'All', 'AST', 'Standard', 'Taskbar', 'TaskbarWindow', and 'Window'."
+    }
+}
+
+#endregion
+
+#region Set-ControlPanelView
+
+Function Set-ControlPanelView
+{
+    Param([string]$Value)
+
+    If ($Value -eq "SmallIcons")
+    {
+        Write-Host "Setting Control Panel view to small icons."
+
+        If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel"))
+        {
+                   New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Name "StartupPage" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Name "AllItemsIconView" -Type DWord -Value 1
+
+        Write-Host "Control Panel view set to small icons."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "BigIcons")
+    {
+        Write-Host "Setting Control Panel view to big icons."
+
+        
+           If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel"))
+        {
+                   New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Name "StartupPage" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Name "AllItemsIconView" -Type DWord -Value 0
+
+        Write-Host "Control Panel view set to big icons."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Categories")
+    {
+        Write-Host "Setting Control Panel view to categories."
+
+        Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Name "StartupPage" -ErrorAction SilentlyContinue
+           Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" -Name "AllItemsIconView" -ErrorAction SilentlyContinue
+
+        Write-Host "Control Panel view set to categories."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'SmallIcons', 'BigIcons', and 'Categories'."
+    }
+}
+
+#endregion
+
+#region Set-CortanaButton
+
+Function Set-CortanaButton
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting Cortana button on the taskbar to be shown."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowCortanaButton" -Type DWord -Value 1
+
+        Write-Host "Cortana button on the taskbar set to be shown."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting Cortana button on the taskbar to be hidden."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowCortanaButton" -Type DWord -Value 0
+
+        Write-Host "Cortana button on the taskbar set to be hidden."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-FileDeletionConfirmation
+
+Function Set-FileDeletionConfirmation
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling file deletion confirmation dialog."
+
+        If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"))
+        {
+                   New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Force | Out-Null
+           }
+
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "ConfirmFileDelete" -Type DWord -Value 1
+
+        Write-Host "File deletion confirmation dialog enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling file deletion confirmation dialog."
+
+        Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "ConfirmFileDelete" -ErrorAction SilentlyContinue
+
+        Write-Host "File deletion confirmation dialog disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-FileOperationsDetails
+
+Function Set-FileOperationsDetails
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting file operation details setting to 'Show'."
+
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager"))
+        {
+                   New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" -Name "EnthusiastMode" -Type DWord -Value 1
+
+        Write-Host "File operations details setting set to 'Show'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting file operation details setting to 'Hide'."
+
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" -Name "EnthusiastMode" -ErrorAction SilentlyContinue
+
+        Write-Host "File operations details setting set to 'Hide'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-LiveTilePushNotifications
+
+Function Set-LiveTilePushNotifications
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling live tile push notifications."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\PushNotifications" -Name NoTileApplicationNotification -Type DWord -Value 0
+
+        Write-Host "Live tile push notifications enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling live tile push notifications."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\PushNotifications" -Name NoTileApplicationNotification -Type DWord -Value 1
+
+        Write-Host "Live tile push notifications disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-Lockscreen
+
+Function Set-Lockscreen
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling lockscreen."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" -Name "NoLockScreen" -ErrorAction SilentlyContinue
+
+        Write-Host "Lockscreen enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling lockscreen."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" -Name "NoLockScreen" -Type DWord -Value 1
+
+        Write-Host "Lockscreen disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-LockscreenNetworkOptions
+
+Function Set-LockscreenNetworkOptions
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling lockscreen network options."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "DontDisplayNetworkSelectionUI" -ErrorAction SilentlyContinue
+
+        Write-Host "Lockscreen network options enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling lockscreen network options."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "DontDisplayNetworkSelectionUI" -Type DWord -Value 1
+
+        Write-Host "Lockscreen network options disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-LockscreenShutdownOptions
+
+Function Set-LockscreenShutdownOptions
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling lockscreen shutdown options."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ShutdownWithoutLogon" -Type DWord -Value 1
+
+        Write-Host "Lockscreen shutdown options enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling lockscreen shutdown options."
+
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ShutdownWithoutLogon" -Type DWord -Value 0
+
+        Write-Host "Lockscreen shutdown options disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-NewApplicationPrompt
+
+Function Set-NewApplicationPrompt
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling 'How do you want to open this file?' prompt."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name "NoNewAppAlert" -ErrorAction SilentlyContinue
+
+        Write-Host "'How do you want to open this file?' prompt enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling 'How do you want to open this file?' prompt."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name "NoNewAppAlert" -Type DWord -Value 1
+
+        Write-Host "'How do you want to open this file?' prompt disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-NumberlockAfterStartup
+
+Function Set-NumberlockAfterStartup
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling numberlock after startup."
+
+        If (!(Test-Path "HKU:"))
+        {
+               New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKU:\.DEFAULT\Control Panel\Keyboard" -Name "InitialKeyboardIndicators" -Type DWord -Value 2147483650
+        Add-Type -AssemblyName System.Windows.Forms
+
+        If (!([System.Windows.Forms.Control]::IsKeyLocked('NumLock')))
+        {
+               $wsh = New-Object -ComObject WScript.Shell
+               $wsh.SendKeys('{NUMLOCK}')
+        }
+
+        Write-Host "Numberlock after startup enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling numberlock after startup."
+
+        If (!(Test-Path "HKU:"))
+        {
+               New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS | Out-Null
+        }
+
+        Set-ItemProperty -Path "HKU:\.DEFAULT\Control Panel\Keyboard" -Name "InitialKeyboardIndicators" -Type DWord -Value 2147483648
+        Add-Type -AssemblyName System.Windows.Forms
+
+        If ([System.Windows.Forms.Control]::IsKeyLocked('NumLock'))
+        {
+               $wsh = New-Object -ComObject WScript.Shell
+               $wsh.SendKeys('{NUMLOCK}')
+        }
+
+        Write-Host "Numberlock after startup disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-RecentlyAddedApplications
+
+Function Set-RecentlyAddedApplications
+{
+    Param([string]$Value)
+
+    If (!(Test-Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer"))
+    {
+           New-Item -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Force | Out-Null
+       }
+
+    
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'Recently Added' applications section to be shown in Start Menu."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name HideRecentlyAddedApps -Type DWord -Value 0
+        Stop-Process -Name explorer
+
+        Write-Host "'Recently Added' applications section set to be shown in Start Menu."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'Recently Added' applications section to be hidden in Start Menu."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name HideRecentlyAddedApps -Type DWord -Value 1
+        Stop-Process -Name explorer
+
+        Write-Host "'Recently Added' applications section set to be hidden in Start Menu."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+
+}
+
+#endregion
+
+#region Set-SearchApplicationInStore
+
+Function Set-SearchApplicationInStore
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling searching for applications in the Windows Store for unknown extensions."
+
+        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name "NoUseStoreOpenWith" -ErrorAction SilentlyContinue
+
+        Write-Host "Searching for applications in the Windows Store for unknown extensions enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling searching for applications in the Windows Store for unknown extensions."
+
+        If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer"))
+        {
+                   New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name "NoUseStoreOpenWith" -Type DWord -Value 1
+
+        Write-Host "Searching for applications in the Windows Store for unknown extensions disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-Searchbox
+
+Function Set-Searchbox
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Hide")
+    {
+        Write-Host "Setting Searchbox mode to 'Hide'."
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Search -Name "SearchboxTaskbarMode" -Type DWord -Value 0
+        Write-Host "Searchbox mode set to 'Hide'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Icon")
+    {
+        Write-Host "Setting Searchbox mode to 'Icon'."
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" -Name "SearchboxTaskbarMode" -Type DWord -Value 1
+        Write-Host "Searchbox mode set to 'Icon'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Box")
+    {
+        Write-Host "Setting Searchbox mode to 'Box'."
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" -Name "SearchboxTaskbarMode" -Type DWord -Value 2
+        Write-Host "Searchbox mode set to 'Box'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Hide', 'Icon', and 'Box'."
+    }
+}
+
+#endregion
+
+#region Set-Shake_to_Minimize
+
+Function Set-Shake_to_Minimize
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling 'Shake to Minimize' feature."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name DisallowShaking -Type DWord -Value 0
+
+        Write-Host "'Shake to Minimize' feature enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling 'Shake to Minimize' feature."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name DisallowShaking -Type DWord -Value 1
+
+        Write-Host "'Shake to Minimize' feature disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-StartMenuAlignment
+
+Function Set-StartMenuAlignment
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Left")
+    {
+        Write-Host "Setting 'Start Menu' to be aligned to the left."
+
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name "TaskbarAl" -Type DWord -Value 0
+
+        Write-Host "'Start Menu' set to be aligned to the left."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Middle")
+    {
+        Write-Host "Setting 'Start Menu' to be aligned to the middle."
+
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name "TaskbarAl" -Type DWord -Value 1
+
+        Write-Host "'Start Menu' set to be aligned to the middle."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Left' and 'Middle'."
+    }
+}
+
+#endregion
+
+#region Set-StartMenuLayout
+
+Function Set-StartMenuLayout
+{
+    Param([string]$Value)
+
+    If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"))
+    {
+        New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Force | Out-Null
+    }
+
+
+    If ($Value -eq "Shortcuts")
+    {
+        Write-Host "Setting start menu layout to only show shortcuts."
+
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoStartMenuMorePrograms -Type DWord -Value 1
+        Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoStartMenuMorePrograms -Type DWord -Value 1
+
+        Stop-Process -Name explorer
+                
+        Write-Host "Start menu layout set to only show shortcuts."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Standard")
+    {
+        Write-Host "Setting start menu layout to 'Standard'."
+
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoStartMenuMorePrograms -Type DWord -Value 0
+        Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoStartMenuMorePrograms -Type DWord -Value 0
+
+        Stop-Process -Name explorer
+                
+        Write-Host "Start menu layout set to 'Standard'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Switch")
+    {
+        Write-Host "Setting start menu layout to switch between shorcuts and applications."
+
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoStartMenuMorePrograms -Type DWord -Value 2
+        Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoStartMenuMorePrograms -Type DWord -Value 2
+
+        Stop-Process -Name explorer
+        
+        Write-Host "Start menu layout set to switch between shorcuts and applications."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Shortcuts', 'Standard', and 'Switch'."
+    }
+}
+
+#endregion
+
+#region Set-StickyKeys
+
+Function Set-StickyKeys
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling Sticky Keys."
+
+        Set-ItemProperty -Path "HKCU:\Control Panel\Accessibility\StickyKeys" -Name "Flags" -Type String -Value "510"
+
+        Write-Host "Sticky Keys enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling Sticky Keys."
+
+        Set-ItemProperty -Path "HKCU:\Control Panel\Accessibility\StickyKeys" -Name "Flags" -Type String -Value "506"
+
+        Write-Host "Sticky Keys disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-SystemColorMode
+
+Function Set-SystemColorMode
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Dark")
+    {
+        Write-Host "Setting system color mode to 'Dark'."
+        
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -Type DWord -Value 0
+
+        Write-Host "System color mode set to 'Dark'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Light")
+    {
+        Write-Host "Setting system color mode to 'Light'."
+
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -Type DWord -Value 1
+
+        Write-Host "System color mode set to 'Light'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Dark' and 'Light'."
+    }
+}
+
+#endregion
+
+#region Set-SystemTray
+
+Function Set-SystemTray
+{
+    Param([string]$Value)
+
+    If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"))
+    {
+           New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Force | Out-Null
+       }
+
+    
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting system tray on taskbar to be shown."
+
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoTrayItemsDisplay -Type DWord -Value 0
+        Stop-Process -Name explorer
+
+        Write-Host "System tray on taskbar set to be shown."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting system tray on taskbar to be hidden."
+
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name NoTrayItemsDisplay -Type DWord -Value 1
+        Stop-Process -Name explorer
+
+        Write-Host "System tray on taskbar set to be hidden."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-TaskbarButtons
+
+Function Set-TaskbarButtons
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Never")
+    {
+        Write-Host "Setting taskbar buttons to show labels and never combine."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarGlomLevel" -Type DWord -Value 2
+
+        Write-Host "Taskbar buttons set to show labels and never combine."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Full")
+    {
+        Write-Host "Setting taskbar buttons to show labels and combine when the taskbar is full."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarGlomLevel" -Type DWord -Value 1
+
+        Write-Host "Taskbar buttons set to show labels and combine when the taskbar is full."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Always")
+    {
+        Write-Host "Setting taskbar buttons to hide labels and always combine."
+
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarGlomLevel" -ErrorAction SilentlyContinue
+
+        Write-Host "Taskbar buttons set to hide labels and always combine."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Never', 'Full', and 'Always'."
+    }
+}
+
+#endregion
+
+#region Set-TaskbarClockSeconds
+
+Function Set-TaskbarClockSeconds
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling seconds in the taskbar clock."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name ShowSecondsInSystemClock -Type DWord -Value 1
+        Stop-Process -Name explorer
+        
+        Write-Host "Seconds in the taskbar clock enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling seconds in the taskbar clock."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name ShowSecondsInSystemClock -Type DWord -Value 0
+        Stop-Process -Name explorer
+
+        Write-Host "Seconds in the taskbar clock disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-TaskbarIcons
+
+Function Set-TaskbarIcons
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Big")
+    {
+        Write-Host "Setting taskbar icon size to 'Big'."
+
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarSmallIcons" -ErrorAction SilentlyContinue
+        
+        Write-Host "Taskbar icon size set to 'Big'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Small")
+    {
+        Write-Host "Setting taskbar icon size to 'Small'."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarSmallIcons" -Type DWord -Value 1
+
+        Write-Host "Taskbar icon size set to 'Small'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Big' and 'Small'."
+    }
+}
+
+#endregion
+
+#region Set-TaskbarPeopleIcon
+
+Function Set-TaskbarPeopleIcon
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting taskbar people icon to be shown."
+
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People" -Name "PeopleBand" -ErrorAction SilentlyContinue
+
+        Write-Host "Taskbar people icon set to be shown."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting taskbar people icon to be hidden."
+
+        If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People"))
+        {
+                   New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People" -Force | Out-Null
+           }
+       
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People" -Name "PeopleBand" -Type DWord -Value 0
+
+        Write-Host "Taskbar people icon set to be hidden."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-TaskManagerDetails
+
+Function Set-TaskManagerDetails
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting Task Manager details to be shown."
+
+        $taskmgr = Start-Process -WindowStyle Hidden -FilePath taskmgr.exe -PassThru
+           Do 
+        {
+                   Start-Sleep -Milliseconds 100
+                   $preferences = Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager" -Name "Preferences" -ErrorAction SilentlyContinue
+           }
+
+        Until ($preferences)
+           Stop-Process $taskmgr
+           $preferences.Preferences[28] = 0
+           
+        Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager" -Name "Preferences" -Type Binary -Value $preferences.Preferences
+
+        Write-Host "Task Manager details set to be shown."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting Task Manager details to be hidden."
+
+        $preferences = Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager" -Name "Preferences" -ErrorAction SilentlyContinue
+           If ($preferences)
+        {
+                   $preferences.Preferences[28] = 1
+                   Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager" -Name "Preferences" -Type Binary -Value $preferences.Preferences
+           }
+
+        Write-Host "Task Manager details set to be hidden."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-TaskViewButton
+
+Function Set-TaskViewButton
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting taskview button to be shown."
+
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowTaskViewButton" -ErrorAction SilentlyContinue
+        Stop-Process -Name explorer
+
+        Write-Host "Taskview button set to be shown."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting taskview button to be hidden."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowTaskViewButton" -Type DWord -Value 0
+        Stop-Process -Name explorer
+
+        Write-Host "Taskview button set to be hidden."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
+
+#region Set-Transparency
+
+Function Set-Transparency
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Enable")
+    {
+        Write-Host "Enabling transparency."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name EnableTransparency -Type DWord -Value 1
+
+        Write-Host "Transparency enabled."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Disable")
+    {
+        Write-Host "Disabling transparency."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name EnableTransparency -Type DWord -Value 0
+
+        Write-Host "Transparency disabled."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Enable' and 'Disable'."
+    }
+}
+
+#endregion
+
+#region Set-TrayIcons
+
+Function Set-TrayIcons
+{
+    Param([string]$Value)
+
+    If ($Value -eq "ShowAll")
+    {
+        Write-Host "Setting tray icons to all be shown."
+
+        Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "EnableAutoTray" -Type DWord -Value 0
+
+        Write-Host "Tray icons set to all be shown."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "HideAsNeeded")
+    {
+        Write-Host "Setting tray icons to be hidden as needed."
+
+        Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "EnableAutoTray" -ErrorAction SilentlyContinue
+
+        Write-Host "Tray icons set to be hidden as needed."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'ShowAll' and 'HideAsNeeded'."
+    }
+}
+
+#endregion
+
+#region Set-VisualEffectsProfile
+
+Function Set-VisualEffectsProfile
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Appearance")
+    {
+        Write-Host "Setting visual effects profile to 'Appearance'."
+
+        Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "DragFullWindows" -Type String -Value 1
+           Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "MenuShowDelay" -Type String -Value 400
+           Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "UserPreferencesMask" -Type Binary -Value ([byte[]](158,30,7,128,18,0,0,0))
+           Set-ItemProperty -Path "HKCU:\Control Panel\Desktop\WindowMetrics" -Name "MinAnimate" -Type String -Value 1
+           Set-ItemProperty -Path "HKCU:\Control Panel\Keyboard" -Name "KeyboardDelay" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewAlphaSelect" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewShadow" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarAnimations" -Type DWord -Value 1
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects" -Name "VisualFXSetting" -Type DWord -Value 3
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\DWM" -Name "EnableAeroPeek" -Type DWord -Value 1
+
+        Set-Transparency -Value Enable
+
+        Write-Host "Visual effects profile set to 'Appearance'."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Performance")
+    {
+        Write-Host "Setting visual effects profile to 'Performance'."
+
+        Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "DragFullWindows" -Type String -Value 0
+           Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "MenuShowDelay" -Type String -Value 0
+           Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "UserPreferencesMask" -Type Binary -Value ([byte[]](144,18,3,128,16,0,0,0))
+           Set-ItemProperty -Path "HKCU:\Control Panel\Desktop\WindowMetrics" -Name "MinAnimate" -Type String -Value 0
+           Set-ItemProperty -Path "HKCU:\Control Panel\Keyboard" -Name "KeyboardDelay" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewAlphaSelect" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ListviewShadow" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarAnimations" -Type DWord -Value 0
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects" -Name "VisualFXSetting" -Type DWord -Value 3
+           Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\DWM" -Name "EnableAeroPeek" -Type DWord -Value 0
+
+        Set-Transparency -Value Disable
+
+        Write-Host "Visual effects profile set to 'Performance'."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Appearance' and 'Performance'."
+    }
+}
+
+#endregion
+
+#region Set-WidgetsApplication
+
+Function Set-WidgetsApplication
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Show")
+    {
+        Write-Host "Setting 'Widgets' to be shown."
+
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name "TaskbarDa" -Type DWord -Value 1
+
+        Write-Host "'Widgets' set to be shown."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Hide")
+    {
+        Write-Host "Setting 'Widgets' to be hidden."
+
+        Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name "TaskbarDa" -Type DWord -Value 0
+
+        Write-Host "'Widgets' set to be hidden."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Show' and 'Hide'."
+    }
+}
+
+#endregion
diff --git a/Modules/WindowsSettings/WindowsSettings.psm1 b/Modules/WindowsSettings/WindowsSettings.psm1
new file mode 100755 (executable)
index 0000000..7b72b19
--- /dev/null
@@ -0,0 +1,489 @@
+##############################
+##                          ##
+##     Windows Settings     ##        
+##                          ##
+##############################
+
+Function WindowsSettings
+
+{
+    Param([string]$Value)
+
+    If ($Value -eq "Maintain")
+    {
+        Write-Host "Running Windows maintenance script."
+
+        #region Application Settings
+        
+        Set-AppxPackages -Value Remove
+        Set-BrowserAdobeFlash -Value Disable
+        Set-DefaultFaxPrinter -Value Remove
+        #Set-HyperV -Value Install
+        Set-InternetExplorer -Value Disable
+        Set-LinuxSubsystem -Value Disable
+        #Set-MicrosoftEdge -Value Remove
+        Set-MicrosoftEdgeLegacy -Value Disable
+        #Set-Microsoft_PDF_Printer -Value Enable
+        #Set-Microsoft_XPS_DocumentWriter -Value Disable
+        Set-OneDrive -Value Uninstall
+        #Set-PhotoViewerAssociation -Value Associate
+        Set-ThirdPartyBloat -Value Remove
+        Set-WindowsMediaPlayer -Value Disable
+        Set-WindowsMessenger -Value Disable
+        Set-WorkFoldersClient -Value Disable
+        
+        #endregion
+                
+        #region Privacy Settings
+
+        Set-AdvertisingIdentification -Value Disable
+        Set-ApplicationLaunchTracking -Value Disable
+        Set-ApplicationsActionsPermissions -Value All -Action Deny
+        Set-ApplicationsGeneralAccessPermissions -Value All -Action Deny
+        Set-ApplicationsLibraryAccessPermissions -Value All -Action Deny
+        Set-ApplicationSuggestion_and_AutomaticInstallation -Value Disable 
+        Set-AutomaticMapUpdates -Value Disable
+        Set-BackgroundApplicationAccess -Value Disable
+        Set-CEIP_DataUploads -Value Disable
+        Set-Cortana_and_WebSearch -Value Disable
+        Set-DiagTrack -Value Disable
+        Set-ErrorReporting -Value Disable
+        Set-Feedback -Value Disable
+        Set-InputPersonalization -Value Disable
+        Set-LanguagelistAccess -Value Deny
+        Set-LocationService_and_Sensors -Value Disable
+        Set-LocationTracking -Value Disable
+        Set-SmartScreenFilter -Value Disable
+        Set-TailoredExperiences -Value Disable
+        Set-Telemetry -Value Disable
+        Set-UserActivityHistory -Value Disable
+        Set-WAP_PushService -Value Disable
+                
+        #endregion
+
+        #region Security Settings
+        
+        #Set-ControlledFolderAccess -Value Enable
+        #Set-CoreIsolationMemoryIntegrity -Value Enable
+        Set-CurrentNetworkProfile -Value Public
+        #Set-DEP_Policy -Value OptIn
+        Set-DotNetStrongCryptography -Value Enable
+        Set-F8_BootMenuOptions -Value Enable
+        Set-Firewall -Value Enable
+        Set-ImplicitAdministrativeShares -Value Disable
+        Set-LLMNR -Value Enable
+        Set-MeltdownCompatibilityFlag -Value Enable
+        Set-NetworkDeviceAutomaticInstallation -Value Disable
+        Set-RemoteShellAccess -Value Disable
+        Set-SharingMappedDrivesBetweenUsers -Value Disable
+        Set-SMB_Server -Value Disable
+        #Set-UAC_Level -Value High
+        Set-UnknownNetworksProfile -Value Public
+        #Set-WindowsDefender -Value Enable
+        #Set-WindowsDefenderCloud -Value Disable
+        #Set-WindowsScriptHost -Value Enable
+
+        #endregion
+                
+        #region Service Settings
+        
+        Set-Autoplay -Value Disable
+        Set-Biometrics -Value Disable
+        Set-BIOS_Time -Value Local
+        Set-DisplayandSleepModeTimeouts -Value Disable
+        Set-DriveAutorun -Value Disable
+        Set-FastStartupPolicy -Value Disable
+        Set-FileIndexing -Value Disable
+        Set-Game_DVR -Value Disable
+        Set-Hibernation -Value Disable
+        Set-RemoteAssistance -Value Disable
+        Set-RemoteDesktop -Value Disable
+        Set-ScheduledDefragmentation -Value Disable
+        Set-SettingsSynchronization -Value Disable
+        Set-SharedExperiences -Value Disable
+        Set-SleepButton -Value Disable
+        Set-Spellcheck -Value Disable
+        Set-StorageSense -Value Disable
+        Set-Superfetch -Value Disable
+        Set-TextPrediction -Value Disable
+        Set-TypingInsights -Value Disable
+        Set-WindowsUpdate -Value Disable        
+        Set-WindowsUpdate_Drivers -Value Disable
+        Set-WindowsUpdate_MSRT -Value Disable
+        Set-WindowsUpdateAutomaticRestart -Value Disable
+        Set-WindowsUpdateTransferOptimization -Value Disable
+        
+        #endregion
+                
+        Write-Host "Windows maintenance script finished."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Restore")
+    {
+        Write-Host "Running Windows restoration script."
+
+        #region Application Settings
+        
+        Set-AppxPackages -Value Restore
+        Set-BrowserAdobeFlash -Value Enable
+        Set-DefaultFaxPrinter -Value Add
+        #Set-HyperV -Value Install
+        Set-InternetExplorer -Value Enable
+        Set-LinuxSubsystem -Value Enable
+        Set-MicrosoftEdgeLegacy -Value Enable
+        #Set-Microsoft_PDF_Printer -Value Enable
+        #Set-Microsoft_XPS_DocumentWriter -Value Disable
+        Set-OneDrive -Value Install
+        #Set-PhotoViewerAssociation -Value Associate
+        Set-ThirdPartyBloat -Value Restore
+        Set-WindowsMediaPlayer -Value Enable
+        Set-WindowsMessenger -Value Enable
+        Set-WorkFoldersClient -Value Enable
+        
+        #endregion
+
+        #region Explorer_User_Interface_Settings
+        
+        Set-Display3D_ObjectsExplorer -Value Show
+        Set-Display3D_ObjectsThisPC -Value Show
+        #Set-DisplayDesktopExplorer -Value Show
+        #Set-DisplayDesktopThisPC -Value Show
+        #Set-DisplayDocumentsExplorer -Value Show
+        #Set-DisplayDocumentsThisPC -Value Show
+        #Set-DisplayDownloadsExplorer -Value Show
+        #Set-DisplayDownloadsThisPC -Value Show
+        #Set-DisplayMusicExplorer -Value Show
+        #Set-DisplayMusicThisPC -Value Show
+        #Set-DisplayPicturesExplorer -Value Show
+        #Set-DisplayPicturesThisPC -Value Show
+        #Set-DisplayVideosExplorer -Value Show
+        #Set-DisplayVideosThisPC -Value Show
+        Set-ExplorerStart -Value QuickAcces
+        #Set-HiddenFilesandFolders -Value Hide
+        Set-KnownFileExtensions -Value Hide
+        Set-Recent_FrequentShortcuts -Value Enable
+        #Set-SynchronizationProviderNotifications -Value Enabled
+        Set-ThisPC_OnDesktop -Value Show
+        #Set-Thumbnails -Value Enable
+        #Set-ThumbnailsCache -Value Enable
+        Set-UserFolderOnDesktop -Value Show
+        
+        #endregion
+
+        #region Privacy Settings
+
+        Set-AdvertisingIdentification -Value Enable
+        Set-ApplicationLaunchTracking -Value Enable
+        Set-ApplicationsActionsPermissions -Value All -Action Reset
+        Set-ApplicationsGeneralAccessPermissions -Value All -Action Reset
+        Set-ApplicationsLibraryAccessPermissions -Value All -Action Grant
+        Set-ApplicationSuggestion_and_AutomaticInstallation -Value Enable
+        Set-AutomaticMapUpdates -Value Enable
+        Set-BackgroundApplicationAccess -Value Enable
+        Set-CEIP_DataUploads -Value Enable
+        Set-Cortana_and_WebSearch -Value Enable
+        Set-DiagTrack -Value Enable
+        Set-ErrorReporting -Value Enable
+        Set-Feedback -Value Enable
+        Set-InputPersonalization -Value Enable
+        Set-LocationService_and_Sensors -Value Enable
+        Set-LocationTracking -Value Enable
+        Set-SmartScreenFilter -Value Enable
+        Set-TailoredExperiences -Value Enable
+        Set-Telemetry -Value Enable
+        Set-UserActivityHistory -Value Enable
+        Set-WAP_PushService -Value Enable
+                
+        #endregion
+
+        #region Security Settings
+        
+        #Set-ControlledFolderAccess -Value Enable
+        #Set-CoreIsolationMemoryIntegrity -Value Enable
+        Set-CurrentNetworkProfile -Value Private
+        #Set-DEP_Policy -Value OptIn
+        Set-DotNetStrongCryptography -Value Disable
+        Set-F8_BootMenuOptions -Value Disable
+        #Set-Firewall -Value Enable
+        Set-ImplicitAdministrativeShares -Value Enable
+        Set-LLMNR -Value Disable
+        #Set-MeltdownCompatibilityFlag -Value Enable
+        Set-NetworkDeviceAutomaticInstallation -Value Enable
+        Set-RemoteShellAccess -Value Enable
+        Set-SharingMappedDrivesBetweenUsers -Value Enable
+        Set-SMB_Server -Value Enable
+        #Set-UAC_Level -Value High
+        #Set-UnknownNetworksProfile -Value Public
+        #Set-WindowsDefender -Value Enable
+        #Set-WindowsDefenderCloud -Value Enable
+        #Set-WindowsScriptHost -Value Enable
+
+        #endregion
+
+        #region Server Specific Settings
+        
+        #Set-CtrlAltDelLogin -Value Enable
+        #Set-IE_EnhancedSecurity -Value Enable
+        #Set-PasswordPolicy -Value Enable
+        #Set-ServerManagerAtLogin -Value Hide
+        #Set-ShutdownEventTracker -Value Disable
+        #Set-Sound -Value Enable
+        
+        #endregion
+
+        #region Service Settings
+        
+        Set-Autoplay -Value Enable
+        Set-Biometrics -Value Enable
+        #Set-BIOS_Time -Value Local
+        Set-DisplayandSleepModeTimeouts -Value Enable
+        Set-DriveAutorun -Value Enable
+        Set-FastStartupPolicy -Value Enable
+        Set-FileIndexing -Value Enable
+        Set-Game_DVR -Value Enable
+        Set-Hibernation -Value Enable
+        Set-RemoteAssistance -Value Enable
+        Set-RemoteDesktop -Value Enable
+        Set-ScheduledDefragmentation -Value Enable
+        Set-SettingsSynchronization -Value Enable
+        #Set-SharedExperiences -Value Disable
+        Set-SleepButton -Value Enable
+        Set-Spellcheck -Value Enable
+        Set-StorageSense -Value Enable
+        Set-Superfetch -Value Enable
+        Set-TextPrediction -Value Enable
+        Set-TypingInsights -Value Enable
+        Set-WindowsUpdate -Value Enable        
+        Set-WindowsUpdate_Drivers -Value Enable
+        Set-WindowsUpdate_MSRT -Value Enable
+        Set-WindowsUpdateAutomaticRestart -Value Enable
+        Set-WindowsUpdateTransferOptimization -Value LocalNetwork
+        
+        #endregion
+
+        #region User Interface Settings
+        
+        Set-ActionCenter -Value Enable
+        Set-ApplicationColorMode -Value Light
+        #Set-ColorMode -Value Dark
+        #Set-ControlPanelView -Value Categories
+        Set-FileDeletionConfirmation -Value Disable
+        Set-FileOperationsDetails -Value Hide
+        Set-LiveTilePushNotifications -Value Enable
+        Set-Lockscreen -Value Enable
+        Set-LockscreenNetworkOptions -Value Enable
+        Set-LockscreenShutdownOptions -Value Enable
+        #Set-NewApplicationPrompt -Value Enable
+        Set-NumberlockAfterStartup -Value Disable
+        Set-RecentlyAddedApplications -Value Show
+        Set-SearchApplicationInStore -Value Enable
+        Set-Searchbox -Value Box
+        Set-Shake_to_Minimize -Value Enable
+        #Set-StartMenuLayout -Value Standard
+        Set-StickyKeys -Value Enable
+        #Set-SystemColorMode -Value Dark
+        #Set-SystemTray -Value Show
+        #Set-TaskbarButtons -Value Full
+        #Set-TaskbarClockSeconds -Value Enable
+        #Set-TaskbarIcons -Value Big
+        Set-TaskbarPeopleIcon -Value Show
+        Set-TaskManagerDetails -Value Hide
+        #Set-TaskView -Value Enable
+        #Set-TrayIcons -Value HideAsNeeded
+        #Set-VisualEffectsProfile -Value Performance
+        
+        #endregion
+
+        Write-Host "Windows restoration script finished."
+        Write-Host ""
+    }
+
+    ElseIf ($Value -eq "Setup")
+    {
+        Write-Host "Running Windows setup script."
+
+        #region Application Settings
+        
+        Set-AppxPackages -Value Remove
+        Set-BrowserAdobeFlash -Value Disable
+        Set-DefaultFaxPrinter -Value Remove
+        #Set-HyperV -Value Install
+        Set-InternetExplorer -Value Disable
+        Set-LinuxSubsystem -Value Disable
+        #Set-MicrosoftEdge -Value Remove
+        Set-MicrosoftEdgeLegacy -Value Disable
+        #Set-Microsoft_PDF_Printer -Value Enable
+        #Set-Microsoft_XPS_DocumentWriter -Value Disable
+        Set-OneDrive -Value Uninstall
+        #Set-PhotoViewerAssociation -Value Associate
+        Set-ThirdPartyBloat -Value Remove
+        Set-WindowsMediaPlayer -Value Disable
+        Set-WindowsMessenger -Value Disable
+        Set-WorkFoldersClient -Value Disable
+        
+        #endregion
+
+        #region Explorer_User_Interface_Settings
+        
+        Set-Display3D_ObjectsExplorer -Value Hide
+        Set-Display3D_ObjectsThisPC -Value Hide
+        #Set-DisplayDesktopExplorer -Value Show
+        #Set-DisplayDesktopThisPC -Value Show
+        #Set-DisplayDocumentsExplorer -Value Show
+        #Set-DisplayDocumentsThisPC -Value Show
+        #Set-DisplayDownloadsExplorer -Value Show
+        #Set-DisplayDownloadsThisPC -Value Show
+        #Set-DisplayMusicExplorer -Value Show
+        #Set-DisplayMusicThisPC -Value Show
+        #Set-DisplayPicturesExplorer -Value Show
+        #Set-DisplayPicturesThisPC -Value Show
+        #Set-DisplayVideosExplorer -Value Show
+        #Set-DisplayVideosThisPC -Value Show
+        Set-ExplorerStart -Value ThisPC
+        #Set-HiddenFilesandFolders -Value Hide
+        Set-KnownFileExtensions -Value Show
+        Set-Recent_FrequentShortcuts -Value Disable
+        #Set-SynchronizationProviderNotifications -Value Enabled
+        Set-ThisPC_OnDesktop -Value Hide
+        #Set-Thumbnails -Value Enable
+        #Set-ThumbnailsCache -Value Enable
+        Set-UserFolderOnDesktop -Value Hide
+                
+        #endregion
+
+        #region Privacy Settings
+
+        Set-AdvertisingIdentification -Value Disable
+        Set-ApplicationLaunchTracking -Value Disable
+        Set-ApplicationsActionsPermissions -Value All -Action Deny
+        Set-ApplicationsGeneralAccessPermissions -Value All -Action Deny
+        Set-ApplicationsLibraryAccessPermissions -Value All -Action Deny
+        Set-ApplicationSuggestion_and_AutomaticInstallation -Value Disable 
+        Set-AutomaticMapUpdates -Value Disable
+        Set-BackgroundApplicationAccess -Value Disable
+        Set-CEIP_DataUploads -Value Disable
+        Set-Cortana_and_WebSearch -Value Disable
+        Set-DiagTrack -Value Disable
+        Set-ErrorReporting -Value Disable
+        Set-Feedback -Value Disable
+        Set-InputPersonalization -Value Disable
+        Set-LanguagelistAccess -Value Deny
+        Set-LocationService_and_Sensors -Value Disable
+        Set-LocationTracking -Value Disable
+        Set-SmartScreenFilter -Value Disable
+        Set-TailoredExperiences -Value Disable
+        Set-Telemetry -Value Disable
+        Set-UserActivityHistory -Value Disable
+        Set-WAP_PushService -Value Disable
+                
+        #endregion
+
+        #region Security Settings
+        
+        #Set-ControlledFolderAccess -Value Enable
+        #Set-CoreIsolationMemoryIntegrity -Value Enable
+        Set-CurrentNetworkProfile -Value Public
+        #Set-DEP_Policy -Value OptIn
+        Set-DotNetStrongCryptography -Value Enable
+        Set-F8_BootMenuOptions -Value Enable
+        Set-Firewall -Value Enable
+        Set-ImplicitAdministrativeShares -Value Disable
+        Set-LLMNR -Value Enable
+        Set-MeltdownCompatibilityFlag -Value Enable
+        Set-NetworkDeviceAutomaticInstallation -Value Disable
+        Set-RemoteShellAccess -Value Disable
+        Set-SharingMappedDrivesBetweenUsers -Value Disable
+        Set-SMB_Server -Value Disable
+        #Set-UAC_Level -Value High
+        Set-UnknownNetworksProfile -Value Public
+        #Set-WindowsDefender -Value Enable
+        #Set-WindowsDefenderCloud -Value Disable
+        #Set-WindowsScriptHost -Value Enable
+
+        #endregion
+
+        #region Server Specific Settings
+        
+        #Set-CtrlAltDelLogin -Value Enable
+        #Set-IE_EnhancedSecurity -Value Enable
+        #Set-PasswordPolicy -Value Enable
+        #Set-ServerManagerAtLogin -Value Hide
+        #Set-ShutdownEventTracker -Value Disable
+        #Set-Sound -Value Enable
+        
+        #endregion
+
+        #region Service Settings
+        
+        Set-Autoplay -Value Disable
+        Set-Biometrics -Value Disable
+        Set-BIOS_Time -Value Local
+        Set-DisplayandSleepModeTimeouts -Value Disable
+        Set-DriveAutorun -Value Disable
+        Set-FastStartupPolicy -Value Disable
+        Set-FileIndexing -Value Disable
+        Set-Game_DVR -Value Disable
+        Set-Hibernation -Value Disable
+        Set-RemoteAssistance -Value Disable
+        Set-RemoteDesktop -Value Disable
+        Set-ScheduledDefragmentation -Value Disable
+        Set-SettingsSynchronization -Value Disable
+        Set-SharedExperiences -Value Disable
+        Set-SleepButton -Value Disable
+        Set-Spellcheck -Value Disable
+        Set-StorageSense -Value Disable
+        Set-Superfetch -Value Disable
+        Set-TextPrediction -Value Disable
+        Set-TypingInsights -Value Disable
+        Set-WindowsUpdate -Value Disable        
+        Set-WindowsUpdate_Drivers -Value Disable
+        Set-WindowsUpdate_MSRT -Value Disable
+        Set-WindowsUpdateAutomaticRestart -Value Disable
+        Set-WindowsUpdateTransferOptimization -Value Disable
+        
+        #endregion
+
+        #region User Interface Settings
+        
+        Set-ActionCenter -Value Disable
+        #Set-ApplicationColorMode -Value Dark
+        Set-ColorMode -Value Dark
+        #Set-ControlPanelView -Value Categories
+        Set-FileDeletionConfirmation -Value Enable
+        Set-FileOperationsDetails -Value Show
+        Set-LiveTilePushNotifications -Value Disable
+        Set-Lockscreen -Value Disable
+        Set-LockscreenNetworkOptions -Value Disable
+        Set-LockscreenShutdownOptions -Value Disable
+        Set-NewApplicationPrompt -Value Enable
+        Set-NumberlockAfterStartup -Value Enable
+        Set-RecentlyAddedApplications -Value Hide
+        Set-SearchApplicationInStore -Value Disable
+        Set-Searchbox -Value Hide
+        Set-Shake_to_Minimize -Value Disable
+        #Set-StartMenuLayout -Value Standard
+        Set-StickyKeys -Value Disable
+        #Set-SystemColorMode -Value Dark
+        #Set-SystemTray -Value Hide
+        #Set-TaskbarButtons -Value Full
+        #Set-TaskbarClockSeconds -Value Disable
+        #Set-TaskbarIcons -Value Big
+        Set-TaskbarPeopleIcon -Value Hide
+        Set-TaskManagerDetails -Value Show
+        #Set-TaskView -Value Enable
+        #Set-TrayIcons -Value HideAsNeeded
+        #Set-VisualEffectsProfile -Value Performance
+        
+        #endregion
+
+        Write-Host "Windows setup script finished."
+        Write-Host ""
+    }
+
+    Else
+    {
+        Write-Error "Invalid value.  Valid values are 'Maintain', 'Restore', and 'Setup'."
+    }
+
+}
diff --git a/Project_Functions.md b/Project_Functions.md
new file mode 100755 (executable)
index 0000000..2f2cbfb
--- /dev/null
@@ -0,0 +1,235 @@
+# Project Functions - Windows Setup
+
+## Chris Titus Project Additions ##
+The following functions were built from code in functions from the Chris Titus project mentioned in „READ_ME.md".
+
+- Set-ActionCenter
+- Set-AdvertisingIdentification
+- Set-ApplicationColorMode
+- Set-ApplicationSuggestion_and_AutomaticInstallation
+- Set-AutomaticMapUpdates
+- Set-Autoplay
+- Set-BackgroundApplicationAccess
+- Set-BIOS_Time
+- Set-BrowserAdobeFlash
+- Set-ColorMode
+- Set-ControlledFolderAccess
+- Set-ControlPanelView
+- Set-CoreIsolationMemoryIntegrity
+- Set-CtrlAltDelLogin
+- Set-CurrentNetworkProfile
+- Set-DefaultFaxPrinter
+- Set-DEP_Policy
+- Set-Display3D_ObjectsExplorer
+- Set-Display3D_ObjectsThisPC
+- Set-DisplayandSleepModeTimeouts
+- Set-DisplayDesktopExplorer
+- Set-DisplayDesktopThisPC
+- Set-DisplayDocumentsExplorer
+- Set-DisplayDocumentsThisPC
+- Set-DisplayDownloadsExplorer
+- Set-DisplayDownloadsThisPC
+- Set-DisplayMusicExplorer
+- Set-DisplayMusicThisPC
+- Set-DisplayPicturesExplorer
+- Set-DisplayPicturesThisPC
+- Set-DisplayVideosExplorer
+- Set-DisplayVideosThisPC
+- Set-DotNetStrongCryptography
+- Set-DriveAutorun
+- Set-ErrorReporting
+- Set-ExplorerStart
+- Set-F8_BootMenuOptions
+- Set-FastStartupPolicy
+- Set-Feedback
+- Set-FileDeletionConfirmation
+- Set-FileOperationsDetails
+- Set-Firewall
+- Set-Game_DVR
+- Set-HiddenFilesandFolders
+- Set-HyperV
+- Set-IE_EnhancedSecurity
+- Set-ImplicitAdministrativeShares
+- Set-InternetExplorer
+- Set-KnownFileExtensions
+- Set-LinuxSubsystem
+- Set-LLMNR
+- Set-LocationTracking
+- Set-Lockscreen
+- Set-LockscreenNetworkOptions
+- Set-LockscreenShutdownOptions
+- Set-MeltdownCompatibilityFlag
+- Set-Microsoft_PDF_Printer
+- Set-Microsoft_XPS_DocumentWriter
+- Set-NetworkDeviceAutomaticInstallation
+- Set-NewApplicationPrompt
+- Set-NumberlockAfterStartup
+- Set-PasswordPolicy
+- Set-PhotoViewerAssociation
+- Set-Recent_FrequentShortcuts
+- Set-RemoteAssistance
+- Set-RemoteDesktop
+- Set-ScheduledDefragmentation
+- Set-SearchApplicationInStore
+- Set-ServerManagerAtLogin
+- Set-SharedExperiences
+- Set-SharingMappedDrivesBetweenUsers
+- Set-ShutdownEventTracker
+- Set-SleepButton
+- Set-SmartScreenFilter
+- Set-SMB_Server
+- Set-Sound
+- Set-StickyKeys
+- Set-StorageSense
+- Set-Superfetch
+- Set-SynchronizationProviderNotifications
+- Set-SystemColorMode
+- Set-TailoredExperiences
+- Set-TaskbarButtons
+- Set-TaskbarIcons
+- Set-TaskbarPeopleIcon
+- Set-TaskManagerDetails
+- Set-TaskView
+- Set-ThirdPartyBloat
+- Set-ThisPC_OnDesktop
+- Set-Thumbnails
+- Set-ThumbnailsCache
+- Set-TrayIcons
+- Set-UAC_Level
+- Set-UnknownNetworksProfile
+- Set-UserFolderOnDesktop
+- Set-VisualEffectsProfile
+- Set-WAP_PushService
+- Set-WiFi_Sense
+- Set-WindowsDefender
+- Set-WindowsDefenderCloud
+- Set-WindowsMediaPlayer
+- Set-WindowsScriptHost
+- Set-WindowsUpdateAutomaticRestart
+- Set-WindowsUpdate_Drivers
+- Set-WindowsUpdate_MSRT
+- Set-WorkFoldersClient
+
+----------
+
+## Functions Imported from „Windows 10 Cleanup" ##
+
+- Set-AppxPackages
+- Set-Biometrics
+- Set-CEIP_DataUploads
+- Set-Cortana_and_WebSearch
+- Set-DiagTrack
+- Set-FileIndexing
+- Set-Hibernation
+- Set-InputPersonalization
+- Set-LocationService_and_Sensors
+- Set-OneDrive
+- Set-RemoteShellAccess
+- Set-Searchbox
+- Set-SettingsSynchronization
+- Set-Telemetry
+- Set-WindowsMessenger
+- Set-WindowsUpdate
+
+----------
+
+## Enhancements of Functions Imported from „Windows 10 Cleanup", by way of Additions from Similar Functions in the Chris Titus project. ##
+
+- Enhanced disabling of web search and Cortana.
+- Added options for removing the searchbox from the taskbar.
+- Enhanced disabling of telemetry.
+- Added options for OneDrive.
+- Enhanced ability to stop automatic application installation.
+
+----------
+
+## New Functions
+### Version 1.9
+-Set-WidgetsApplication
+-Set-StartMenuAlignment
+
+### Version 1.8
+- Set-MicrosoftEdge
+
+### Version 1.7
+- Set-ApplicationsActionsPermissions
+- Set-ApplicationsGeneralAccessPermissions
+- Set-ApplicationsLibraryAccessPermissions 
+
+### Version 1.6
+- Set-KMS_Activation
+
+### Version 1.5
+- Set-WindowsLicense - Renamed to Set-WindowsLicense_KMS in version 1.6.
+
+### Version 1.4
+- Set-RecentlyAddedApplications
+- Set-Shake_to_Minimize
+- Set-LiveTilePushNotifications
+- Set-SystemTray
+- Set-TaskbarClockSeconds
+- Set-StartMenuLayout
+- Set-UserActivityHistory
+
+### Version 1.3
+- Set-WindowsUpdateTransferOptimization
+- Set-MicrosoftEdgeLegacy
+- Set-ApplicationLaunchTracking
+- Hex
+- Set-Spellcheck
+- Set-TextPrediction
+- Set-TypingInsights
+- Set-LanguagelistAccess
+
+### Version 1.2
+- Set-ColorPrevalence
+- Set-Transparency
+- Set-AccentColor
+
+### Version 1.1
+- Set-Microsoft.BingWeather
+- Set-Microsoft.Cortana
+- Set-Microsoft.DesktopAppInstaller
+- Set-Microsoft.GetHelp
+- Set-Microsoft.Getstarted
+- Set-Microsoft.HEIFImageExtension
+- Set-Microsoft.Messaging
+- Set-Microsoft.Microsoft3DViewer
+- Set-Microsoft.MicrosoftOfficeHub
+- Set-Microsoft.MicrosoftSolitaireCollection
+- Set-Microsoft.MicrosoftStickyNotes
+- Set-Microsoft.MixedReality.Portal
+- Set-Microsoft.MSPaint
+- Set-Microsoft.Office.OneNote
+- Set-Microsoft.OneConnect
+- Set-Microsoft.People
+- Set-Microsoft.Print3D
+- Set-Microsoft.ScreenSketch
+- Set-Microsoft.SkypeApp
+- Set-Microsoft.StorePurchaseApp
+- Set-Microsoft.VP9VideoExtensions
+- Set-Microsoft.Wallet
+- Set-Microsoft.WebMediaExtensions
+- Set-Microsoft.WebpImageExtension
+- Set-Microsoft.Windows.Photos
+- Set-Microsoft.WindowsAlarms
+- Set-Microsoft.WindowsCalculator
+- Set-Microsoft.WindowsCamera
+- Set-microsoft.windowscommunicationsapps
+- Set-Microsoft.WindowsFeedbackHub
+- Set-Microsoft.WindowsMaps
+- Set-Microsoft.WindowsSoundRecorder
+- Set-Microsoft.WindowsStore
+- Set-Microsoft.Xbox.TCUI
+- Set-Microsoft.XboxApp
+- Set-Microsoft.XboxGameOverlay
+- Set-Microsoft.XboxGamingOverlay
+- Set-Microsoft.XboxIdentityProvider
+- Set-Microsoft.XboxSpeechToTextOverlay
+- Set-Microsoft.YourPhone
+- Set-Microsoft.ZuneMusic
+- Set-Microsoft.ZuneVideo
+
+### Version 1.0.1
+- Set-CortanaButton
+
diff --git a/READ_ME.md b/READ_ME.md
new file mode 100755 (executable)
index 0000000..7d6e17b
--- /dev/null
@@ -0,0 +1,47 @@
+# Windows Setup
+
+## Project Description
+
+This project has functions to manage settings in Windows 10 and Windows 11. It combines functionality from my now deprecated „Windows 10 Cleanup" project with functionality from the Chris Titus project mentioned in the „Acknowledgments"
+section, under a function based form that allows it to be used directly from a PowerShell instance without calling on script files.
+
+## Acknowledgments
+- This project would not be possible without the work of Chris Titus and others whose work was used in Chris Titus's project at the following U.R.L..
+
+- https://github.com/ChrisTitusTech/win10script/tree/master
+
+- Details of what was brought in from the Chris Titus project can be found in the „Project_Functions.md" file.
+
+## How to Use
+  1. Open PowerShell or PowerShell I.S.E. in Administrator Mode and change the Execution Policy.
+    
+               Set-ExecutionPolicy Bypass
+
+  2. As an administrator, run „Update_Windows_Setup.ps1" or „Update_Windows_Setup.bat".
+
+       2a. These scripts will automatically update to the latest version of the project in its working directory (the directory it is launched from) and install it, replacing the previously installed one, if applicable.
+               First, install Git from „https://git-scm.com/".  These scripts will not work if Git is not installed.
+
+       2b. To use the .bat version, right click on it and click „Run as Administrator".
+
+       2c. To use the .ps1 version, open a PowerShell terminal with administrative rights, go to the directory the file is in, and run it.
+       
+  3. In Powershell with administrative rights, type the following:
+     WindowsSettings -Value TASKNAME
+     
+     with „TASKNAME" replaced with „Maintain", „Restore", or „Setup", depending on what you would like to do.
+
+  4. Individual commands may be run in a PowerShell instance on their own, as the project is function based.  There is no need to import functions after installing, as they will have already been incorporated into PowerShell.
+
+  5. Documentation for individual functions can be found in the „Functions_Documentation.md" directory.
+
+  6. To get updates, run „Update_Windows_Setup.bat", as described in step 2b.
+
+### NOTE:  The „Maintain" and „Setup" options of the „WindowsSettings" function disable Windows Update by default.  If you do not want this, you must edit „WindowsSettings.psm1" in „/Modules/WindowsSettings" to change it.
+
+### NOTE:  Syntax for all functions, unless otherwise specified, is of the following form: FunctionName -Value OptionName
+
+### NOTE:  Run all functions in a PowerShell instance with administrative rights.
+
+## Contributors
+- Tyr Bergsteiger
diff --git a/Uninstall_Windows_Setup.bat b/Uninstall_Windows_Setup.bat
new file mode 100755 (executable)
index 0000000..2b5d2a2
--- /dev/null
@@ -0,0 +1,15 @@
+echo "Uninstalling Windows Setup..."\r
+\r
+cd %ProgramFiles%\WindowsPowerShell\Modules\r
+\r
+rmdir ApplicationSettings /S /Q\r
+rmdir ExplorerUserInterfaceSettings /S /Q\r
+rmdir OtherFunctions /S /Q\r
+rmdir PrivacySettings /S /Q\r
+rmdir SecuritySettings /S /Q\r
+rmdir ServerSpecificSettings /S /Q\r
+rmdir ServiceSettings /S /Q\r
+rmdir UserInterfaceSettings /S /Q\r
+rmdir WindowsSettings /S /Q\r
+\r
+echo "Uninstallation done."\r
diff --git a/Update_Windows_Setup.bat b/Update_Windows_Setup.bat
new file mode 100755 (executable)
index 0000000..b6a75b1
--- /dev/null
@@ -0,0 +1,6 @@
+echo "Installing newest version of Windows Setup..."\r
+cd "%~dp0"\r
+git pull "https://nachbildung.anwendungenbau.skilabod.org/Windows_Setup.git"\r
+xcopy "Modules" "%ProgramFiles%\WindowsPowerShell\Modules" /S /Y\r
+echo "Modules installed."\r
+timeout /t 10\r
diff --git a/Update_Windows_Setup.ps1 b/Update_Windows_Setup.ps1
new file mode 100755 (executable)
index 0000000..e636a21
--- /dev/null
@@ -0,0 +1,17 @@
+Write-Host "Installing modules."\r
+\r
+Write-Host "Installing newest version of Windows Setup..."\r
+Set-Location $PSScriptRoot\r
+git pull "https://nachbildung.anwendungenbau.skilabod.org/Windows_Setup.git"\r
+\r
+Copy-Item -Path $PSScriptRoot\Modules\ApplicationSettings -Destination $env:ProgramFiles\WindowsPowerShell\Modules -Recurse -Force\r
+Copy-Item -Path $PSScriptRoot\Modules\ExplorerUserInterfaceSettings -Destination $env:ProgramFiles\WindowsPowerShell\Modules -Recurse -Force\r
+Copy-Item -Path $PSScriptRoot\Modules\OtherFunctions -Destination $env:ProgramFiles\WindowsPowerShell\Modules -Recurse -Force\r
+Copy-Item -Path $PSScriptRoot\Modules\PrivacySettings -Destination $env:ProgramFiles\WindowsPowerShell\Modules -Recurse -Force\r
+Copy-Item -Path $PSScriptRoot\Modules\SecuritySettings -Destination $env:ProgramFiles\WindowsPowerShell\Modules -Recurse -Force\r
+Copy-Item -Path $PSScriptRoot\Modules\ServerSpecificSettings -Destination $env:ProgramFiles\WindowsPowerShell\Modules -Recurse -Force\r
+Copy-Item -Path $PSScriptRoot\Modules\ServiceSettings -Destination $env:ProgramFiles\WindowsPowerShell\Modules -Recurse -Force\r
+Copy-Item -Path $PSScriptRoot\Modules\UserInterfaceSettings -Destination $env:ProgramFiles\WindowsPowerShell\Modules -Recurse -Force\r
+Copy-Item -Path $PSScriptRoot\Modules\WindowsSettings -Destination $env:ProgramFiles\WindowsPowerShell\Modules -Recurse -Force\r
+\r
+Write-Host "Modules installed."\r