mirror of
https://github.com/Disassembler0/Win10-Initial-Setup-Script.git
synced 2026-01-11 23:18:19 -05:00
Compare commits
37 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
94216899a5 | ||
|
|
d427ae7354 | ||
|
|
8b88e2deeb | ||
|
|
3fa306ac8f | ||
|
|
61763b3c63 | ||
|
|
58ff7a00d1 | ||
|
|
727bf0d09b | ||
|
|
70033c0a11 | ||
|
|
ef8e0074c4 | ||
|
|
2e93e01aa1 | ||
|
|
9da73e107a | ||
|
|
db90cefd5b | ||
|
|
303eaf737f | ||
|
|
f5d849a32d | ||
|
|
8169e550ea | ||
|
|
fcae96daa4 | ||
|
|
2f20cacfdf | ||
|
|
4d419b722b | ||
|
|
4085887741 | ||
|
|
2fd170080e | ||
|
|
f870886df7 | ||
|
|
4167b3b6be | ||
|
|
a2e9fede9f | ||
|
|
ed1524589b | ||
|
|
8f599210e3 | ||
|
|
1fe7cad283 | ||
|
|
90399bdd07 | ||
|
|
3bc4e67d00 | ||
|
|
b31bfe5ee8 | ||
|
|
5cfec604ef | ||
|
|
56845c817b | ||
|
|
7934a1ad75 | ||
|
|
770059d362 | ||
|
|
7fa9d1a1e5 | ||
|
|
4332b46084 | ||
|
|
320590c2d5 | ||
|
|
e62abd0cfc |
73
README.md
73
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
This is a PowerShell script for automation of routine tasks done after fresh installations of Windows 10 and Windows Server 2016. This is by no means any complete set of all existing Windows tweaks and neither is it another "antispying" type of script. It's simply a setting which I like to use and which in my opinion make the system less obtrusive.
|
||||
|
||||
This repository has been originally created as complementary to article https://www.dasm.cz/clanek/jak-z-windows-10-udelat-desktopovy-system (written in Czech) which explains the respective snippets a bit more in detail. The article was last updated on 2016-08-15 and will not be updated further. All development and discussion has been moved here.
|
||||
This repository has been originally created as complementary to article <https://www.dasm.cz/clanek/jak-z-windows-10-udelat-desktopovy-system> (written in Czech) which explains the respective snippets a bit more in detail. The article was last updated on 2016-08-15 and will not be updated further. All development and discussion has been moved here.
|
||||
|
||||
## Usage
|
||||
If you just want to run the script with default preset, simply right click on the *Win10.ps1* file, choose *Run with PowerShell*, and confirm execution policy change. Make sure your account is a member of *Administrators* group as the script attempts to run with elevated privileges.
|
||||
@@ -38,7 +38,7 @@ Command using the preset file above:
|
||||
**A:** Yes! In fact the script has been written to support exactly this as it's not uncommon that big Windows Updates reset some of the settings.
|
||||
|
||||
**Q:** Can I run the script in multi-user environment?
|
||||
**A:** Yes, to certain extent. Some tweaks (most notably UI tweaks) are set only for the user currently executing the script. As stated above, the script can be run repeatedly; therefore it's possible to run it multiple times, each time as different user. Due to the nature of authentication and privilege escalation mechanisms in Windows, the script can be successfully applied only for users belonging to *Administrators* group. Standard users will get an UAC prompt asking for admin credentials which then causes the tweaks to be applied to the given admin account instead of the original non-privileged one. To circumvent this, add the standard user to the *Administrators* group, run the script, and then remove the user from *Administrators* group again. There are a few ways how the same functionality can be achieved programmatically, but I'm not planning to include any of them as it would negatively impact code complexity and readability.
|
||||
**A:** Yes, to certain extent. Some tweaks (most notably UI tweaks) are set only for the user currently executing the script. As stated above, the script can be run repeatedly; therefore it's possible to run it multiple times, each time as different user. Due to the nature of authentication and privilege escalation mechanisms in Windows, the script can be successfully applied only for users belonging to *Administrators* group. Standard users will get an UAC prompt asking for admin credentials which then causes the tweaks to be applied to the given admin account instead of the original non-privileged one. To circumvent this, add the standard user to the *Administrators* group, run the script, and then remove the user from *Administrators* group again. There are a few ways how the same functionality can be achieved programmatically, but I'm not planning to include any of them as it would negatively impact code complexity and readability. If you still wish to try to use the script in multi-user environment, check [this answer in issue #29](https://github.com/Disassembler0/Win10-Initial-Setup-Script/issues/29#issuecomment-333040591) for some pointers.
|
||||
|
||||
**Q:** Can I run the script on Windows Server 2016?
|
||||
**A:** Yes. Starting from version 2.5, Windows Server 2016 is supported. There are even few tweaks specific to Server environment. Keep in mind though, that the script is still primarily designed for Windows 10, so you have to create your own preset for Windows Server 2016.
|
||||
@@ -66,3 +66,72 @@ Command using the preset file above:
|
||||
|
||||
**Q:** For how long are you going to maintain the script?
|
||||
**A:** As long as I use Windows 10.
|
||||
|
||||
**Q:** I really like the script. Is there any way to express gratitude and send donation?
|
||||
**A:** Feel free to send donations via [PayPal donation link](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=disassembler%40dasm%2ecz&item_name=Disassembler&no_shipping=1). Any amount is appreciated, just be aware that PayPal charges [mediation fees](https://www.paypal.com/selfhelp/article/FAQ690). Also be aware that donations are completely voluntary and I'm not obliged to make any script adjustments in your favor regardless of the donated amount.
|
||||
|
||||
## Contribution guidelines
|
||||
|
||||
Following is a list of rules which I'm trying to apply in this project. The rules are not binding and I accept pull requests even if they don't adhere to them, as long as their purpose and content are clear. In rare cases, when there are too many rule violations, I might simply redo the whole functionality and reject the PR (while still crediting you). If you'd like to make my work easier, please consider adhering to the following rules too.
|
||||
|
||||
### Function naming
|
||||
Try to give a function a meaningful name up to 25 characters long, which gives away the purpose of the function. Use verbs like `Enable`/`Disable`, `Show`/`Hide`, `Install`/`Uninstall`, `Add`/`Remove` in the beginning of the function name. In case the function doesn't fit any of these verbs, come up with another name, beginning with the verb `Set`, which indicates what the function does, eg. `SetCurrentNetworkPrivate` and `SetCurrentNetworkPublic`.
|
||||
|
||||
### Revert functions
|
||||
Always add a function with opposite name (or equivalent) which reverts the behaviour to default. The default is considered freshly installed Windows 10 or Windows Server 2016 with no adjustments made during or after the installation. If you don't have access to either of these, create the revert function to the best of your knowledge and I will fill in the rest if necessary.
|
||||
|
||||
### Function similarities
|
||||
Check if there isn't already a function with similar purpose as the one you are trying to add. As long as the name and objective of the existing function is unchanged, feel free to add your tweak to that function rather than creating a new one.
|
||||
|
||||
### Function grouping
|
||||
Try to group functions thematically. There are already five major groups (privacy, services, user interface, applications and server-specific), but even within these, some tweaks may be related to each other. In such case, add a new tweak below the existing one and not to the end of the whole group.
|
||||
|
||||
### Default settings
|
||||
Always add a reference to the tweak and its revert function in the `$tweaks` array containing the default settings. Add references to both functions on the same line (mind the quotes and commas) and always comment out the revert function. Whether to comment out also the tweak in the default preset is a matter of personal preference. The rule of thumb is that if the tweak makes the system faster, smoother, more secure and less obtrusive, it should be enabled by default. Usability has preference over performance (that's why e.g. indexing is kept enabled). Also don't forget to add the function references to all test files.
|
||||
|
||||
### Repeatability
|
||||
Unless applied on unsupported system, all functions have to be applicable repeatedly without any errors. When you're creating a registry key, always check first if the key doesn't happen to already exist. When you're deleting registry value, always append `-ErrorAction SilentlyContinue` to prevent errors while deleting already deleted values.
|
||||
|
||||
### Input / output hiding
|
||||
Suppress all output generated by commands and cmdlets using `| Out-Null` or `-ErrorAction SilentlyContinue` where applicable. Whenever an input is needed, use appropriate parameters to suppress the prompt and programmatically provide values for the command to run (eg. using `-Confirm:$false`). The only acceptable output is from the `Write-Host` cmdlets in the beginning of each function and from non-suppressible cmdlets like `Remove-AppxPackage`.
|
||||
|
||||
### Registry
|
||||
Create the registry keys only if they don't exist on fresh installation if Windows 10 or Windows Server 2016. When deleting registry, delete only registry values, not the whole keys. When you're setting registry values, always use `Set-ItemProperty` instead of `New-ItemProperty`. When you're removing registry values, choose either `Set-ItemProperty` or `Remove-ItemProperty` to reinstate the same situation as it was on the clean installation. Again, if you don't know what the original state was, let me know in PR description and I will fill in th gaps. When you need to use `HKEY_USERS` registry hive, always add following snippet before the registry modification to ensure portability.
|
||||
|
||||
```powershell
|
||||
If (!(Test-Path "HKU:")) {
|
||||
New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS | Out-Null
|
||||
}
|
||||
```
|
||||
|
||||
### Force usage
|
||||
Star Wars jokes aside, don't use `-Force` parameter unless absolutely necessary. The only permitted case is when you're creating a new registry key (not a value) and you need to ensure that all parent keys will be created as well. In such case always check first if the key doesn't already exist, otherwise you will delete all its existing values.
|
||||
|
||||
### Comments
|
||||
Always add a simple comment above the function briefly describing what the function does, especially if it has an ambiguous name or if there is some logic hidden under the hood. If you know that the tweak doesn't work on some editions of Windows 10 or on Windows Server, state it in the comment too. Add a `Write-Host` cmdlet with the short description of action also to the first line of the function body, so the user can see what is being executed and which function is the problematic one whenever an error occurs. The comment is written in present simple tense, the `Write-Host` in present continuous with ellipsis (resp. three dots) at the end.
|
||||
|
||||
### Coding style
|
||||
Indent using tabs, enclose all string values in double quotes (`"`) and strictly use `PascalCase` wherever possible. Put opening curly bracket on the same line as the function name or condition, but leave the closing bracket on a separate line for readability.
|
||||
|
||||
### Examples
|
||||
|
||||
**Naming example**: Consider function `EnableFastMenu`. What does it do? Which menu? How fast is *fast*? A better name might be `EnableFastMenuFlyout`, so it's a bit clearer that we're talking about the menu flyouts delays. But the counterpart function would be `DisableFastMenuFlyouts` which is not entirely true. We're not *disabling* anything, we're just making it slow again. So even better might be to name them `SetFastMenuFlyouts` and `SetSlowMenuFlyouts`. Or better yet, just add the functionality to already existing `SetVisualFXPerformance`/`SetVisualFXAppearance`. Even though the names are not 100% match, they aim to tweak similar aspects and operate within the same registry keys.
|
||||
|
||||
**Coding example:** The following code applies most of the rules mentioned above (naming, output hiding, repeatability, force usage, comments and coding style).
|
||||
|
||||
```powershell
|
||||
# Enable some feature
|
||||
Function EnableSomeFeature {
|
||||
Write-Host "Enabling some feature..."
|
||||
If (!(Test-Path "HKLM:\Some\Registry\Key")) {
|
||||
New-Item -Path "HKLM:\Some\Registry\Key" -Force | Out-Null
|
||||
}
|
||||
Set-ItemProperty -Path "HKLM:\Some\Registry\Key" -Name "SomeValueName" -Type String -Value "SomeValue"
|
||||
}
|
||||
|
||||
# Disable some feature
|
||||
Function DisableSomeFeature {
|
||||
Write-Host "Disabling some feature..."
|
||||
Remove-ItemProperty -Path "HKLM:\Some\Registry\Key" -Name "SomeValueName" -ErrorAction SilentlyContinue
|
||||
}
|
||||
```
|
||||
|
||||
289
Win10.ps1
289
Win10.ps1
@@ -1,12 +1,15 @@
|
||||
##########
|
||||
# Win10 / WinServer2016 Initial Setup Script
|
||||
# Author: Disassembler <disassembler@dasm.cz>
|
||||
# Version: 2.6, 2017-07-31
|
||||
# Version: v2.9, 2017-10-22
|
||||
# Source: https://github.com/Disassembler0/Win10-Initial-Setup-Script
|
||||
##########
|
||||
|
||||
# Default preset
|
||||
$tweaks = @(
|
||||
### Require administrator privileges ###
|
||||
"RequireAdmin",
|
||||
|
||||
### Privacy Settings ###
|
||||
"DisableTelemetry", # "EnableTelemetry",
|
||||
"DisableWiFiSense", # "EnableWiFiSense",
|
||||
@@ -14,20 +17,21 @@ $tweaks = @(
|
||||
"DisableWebSearch", # "EnableWebSearch",
|
||||
"DisableStartSuggestions", # "EnableStartSuggestions",
|
||||
"DisableLocationTracking", # "EnableLocationTracking",
|
||||
"DisableMapUpdates", # "EnableMapUpdates",
|
||||
"DisableFeedback", # "EnableFeedback",
|
||||
"DisableAdvertisingID", # "EnableAdvertisingID",
|
||||
"DisableCortana", # "EnableCortana",
|
||||
"DisableErrorReporting", # "EnableErrorReporting",
|
||||
"RestrictUpdateP2P", # "UnrestrictUpdateP2P",
|
||||
"SetP2PUpdateLocal", # "SetP2PUpdateInternet",
|
||||
"DisableAutoLogger", # "EnableAutoLogger",
|
||||
"DisableDiagTrack", # "EnableDiagTrack",
|
||||
"DisableWAPPush", # "EnableWAPPush",
|
||||
|
||||
### Service Tweaks ###
|
||||
# "LowerUAC", # "RaiseUAC",
|
||||
# "SetUACLow", # "SetUACHigh",
|
||||
# "EnableSharingMappedDrives", # "DisableSharingMappedDrives",
|
||||
"DisableAdminShares", # "EnableAdminShares",
|
||||
"DisableSMB1", # "EnableSMB1",
|
||||
# "DisableSMB1", # "EnableSMB1",
|
||||
"SetCurrentNetworkPrivate", # "SetCurrentNetworkPublic",
|
||||
# "SetUnknownNetworksPrivate", # "SetUnknownNetworksPublic",
|
||||
# "DisableFirewall", # "EnableFirewall",
|
||||
@@ -36,6 +40,7 @@ $tweaks = @(
|
||||
# "DisableUpdateDriver", # "EnableUpdateDriver",
|
||||
"DisableUpdateRestart", # "EnableUpdateRestart",
|
||||
"DisableHomeGroups", # "EnableHomeGroups",
|
||||
"DisableSharedExperiences", # "EnableSharedExperiences",
|
||||
"DisableRemoteAssistance", # "EnableRemoteAssistance",
|
||||
"EnableRemoteDesktop", # "DisableRemoteDesktop",
|
||||
"DisableAutoplay", # "EnableAutoplay",
|
||||
@@ -44,14 +49,19 @@ $tweaks = @(
|
||||
# "DisableSuperfetch", # "EnableSuperfetch",
|
||||
# "DisableIndexing", # "EnableIndexing",
|
||||
# "SetBIOSTimeUTC", # "SetBIOSTimeLocal",
|
||||
# "EnableHibernation", # "DisableHibernation",
|
||||
# "DisableFastStartup", # "EnableFastStartup",
|
||||
|
||||
### UI Tweaks ###
|
||||
"DisableActionCenter", # "EnableActionCenter",
|
||||
"DisableLockScreen", # "EnableLockScreen",
|
||||
# "DisableLockScreenRS1", # "EnableLockScreenRS1",
|
||||
"HideNetworkFromLockScreen", # "ShowNetworkOnLockScreen",
|
||||
"HideShutdownFromLockScreen", # "ShowShutdownOnLockScreen",
|
||||
"DisableStickyKeys", # "EnableStickyKeys",
|
||||
"ShowTaskManagerDetails" # "HideTaskManagerDetails",
|
||||
"ShowFileOperationsDetails", # "HideFileOperationsDetails",
|
||||
# "EnableFileDeleteConfirm", # "DisableFileDeleteConfirm",
|
||||
"HideTaskbarSearchBox", # "ShowTaskbarSearchBox",
|
||||
"HideTaskView", # "ShowTaskView",
|
||||
"ShowSmallTaskbarIcons", # "ShowLargeTaskbarIcons",
|
||||
@@ -62,7 +72,7 @@ $tweaks = @(
|
||||
"ShowHiddenFiles", # "HideHiddenFiles",
|
||||
"HideSyncNotifications" # "ShowSyncNotifications",
|
||||
"HideRecentShortcuts", # "ShowRecentShortcuts",
|
||||
"ExplorerThisPC", # "ExplorerQuickAccess",
|
||||
"SetExplorerThisPC", # "SetExplorerQuickAccess",
|
||||
"ShowThisPCOnDesktop", # "HideThisPCFromDesktop",
|
||||
"HideDesktopFromThisPC", # "ShowDesktopInThisPC",
|
||||
"HideDocumentsFromThisPC", # "ShowDocumentsInThisPC",
|
||||
@@ -70,6 +80,10 @@ $tweaks = @(
|
||||
"HideMusicFromThisPC", # "ShowMusicInThisPC",
|
||||
"HidePicturesFromThisPC", # "ShowPicturesInThisPC",
|
||||
"HideVideosFromThisPC", # "ShowVideosInThisPC",
|
||||
"Hide3DObjectsFromThisPC", # "Show3DObjectsInThisPC",
|
||||
"SetVisualFXPerformance", # "SetVisualFXAppearance",
|
||||
# "DisableThumbnails", # "EnableThumbnails",
|
||||
"DisableThumbsDB", # "EnableThumbsDB",
|
||||
# "AddENKeyboard", # "RemoveENKeyboard",
|
||||
# "EnableNumlock", # "DisableNumlock",
|
||||
|
||||
@@ -81,6 +95,7 @@ $tweaks = @(
|
||||
# "UninstallWindowsStore", # "InstallWindowsStore",
|
||||
"DisableConsumerApps", # "EnableConsumerApps",
|
||||
"DisableXboxFeatures", # "EnableXboxFeatures",
|
||||
"DisableAdobeFlash", # "EnableAdobeFlash",
|
||||
# "UninstallMediaPlayer", # "InstallMediaPlayer",
|
||||
# "UninstallWorkFolders", # "InstallWorkFolders",
|
||||
# "InstallLinuxSubsystem", # "UninstallLinuxSubsystem",
|
||||
@@ -90,7 +105,7 @@ $tweaks = @(
|
||||
"DisableSearchAppInStore", # "EnableSearchAppInStore",
|
||||
"DisableNewAppPrompt", # "EnableNewAppPrompt",
|
||||
"EnableF8BootMenu", # "DisableF8BootMenu",
|
||||
# "SetDEPOptOut", # "SetDEPOptIn",
|
||||
"SetDEPOptOut", # "SetDEPOptIn",
|
||||
|
||||
### Server Specific Tweaks ###
|
||||
# "HideServerManagerOnLogin", # "ShowServerManagerOnLogin",
|
||||
@@ -139,6 +154,9 @@ Function DisableWiFiSense {
|
||||
# Enable Wi-Fi Sense
|
||||
Function EnableWiFiSense {
|
||||
Write-Host "Enabling Wi-Fi Sense..."
|
||||
If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\PolicyManager\default\WiFi\AllowWiFiHotSpotReporting")) {
|
||||
New-Item -Path "HKLM:\SOFTWARE\Microsoft\PolicyManager\default\WiFi\AllowWiFiHotSpotReporting" -Force | Out-Null
|
||||
}
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\PolicyManager\default\WiFi\AllowWiFiHotSpotReporting" -Name "Value" -Type DWord -Value 1
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\PolicyManager\default\WiFi\AllowAutoConnectToWiFiSenseHotspots" -Name "Value" -Type DWord -Value 1
|
||||
}
|
||||
@@ -211,6 +229,18 @@ Function EnableLocationTracking {
|
||||
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\lfsvc\Service\Configuration" -Name "Status" -Type DWord -Value 1
|
||||
}
|
||||
|
||||
# Disable automatic Maps updates
|
||||
Function DisableMapUpdates {
|
||||
Write-Host "Disabling automatic Maps updates..."
|
||||
Set-ItemProperty -Path "HKLM:\SYSTEM\Maps" -Name "AutoUpdateEnabled" -Type DWord -Value 0
|
||||
}
|
||||
|
||||
# Enable automatic Maps updates
|
||||
Function EnableMapUpdates {
|
||||
Write-Host "Enable automatic Maps updates..."
|
||||
Remove-ItemProperty -Path "HKLM:\SYSTEM\Maps" -Name "AutoUpdateEnabled" -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# Disable Feedback
|
||||
Function DisableFeedback {
|
||||
Write-Host "Disabling Feedback..."
|
||||
@@ -267,6 +297,9 @@ Function DisableCortana {
|
||||
Function EnableCortana {
|
||||
Write-Host "Enabling Cortana..."
|
||||
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Personalization\Settings" -Name "AcceptedPrivacyPolicy" -ErrorAction SilentlyContinue
|
||||
If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization\TrainedDataStore")) {
|
||||
New-Item -Path "HKCU:\SOFTWARE\Microsoft\InputPersonalization\TrainedDataStore" -Force | Out-Null
|
||||
}
|
||||
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
|
||||
@@ -286,7 +319,7 @@ Function EnableErrorReporting {
|
||||
}
|
||||
|
||||
# Restrict Windows Update P2P only to local network
|
||||
Function RestrictUpdateP2P {
|
||||
Function SetP2PUpdateLocal {
|
||||
Write-Host "Restricting Windows Update P2P only to local network..."
|
||||
If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config")) {
|
||||
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config" | Out-Null
|
||||
@@ -299,7 +332,7 @@ Function RestrictUpdateP2P {
|
||||
}
|
||||
|
||||
# Unrestrict Windows Update P2P
|
||||
Function UnrestrictUpdateP2P {
|
||||
Function SetP2PUpdateInternet {
|
||||
Write-Host "Unrestricting Windows Update P2P to internet..."
|
||||
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config" -Name "DODownloadMode" -ErrorAction SilentlyContinue
|
||||
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization" -Name "SystemSettingsDownloadMode" -ErrorAction SilentlyContinue
|
||||
@@ -357,15 +390,15 @@ Function EnableWAPPush {
|
||||
# Service Tweaks
|
||||
##########
|
||||
|
||||
# Lower UAC level
|
||||
Function LowerUAC {
|
||||
# Lower UAC level (disabling it completely would break apps)
|
||||
Function SetUACLow {
|
||||
Write-Host "Lowering UAC level..."
|
||||
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
|
||||
}
|
||||
|
||||
# Raise UAC level
|
||||
Function RaiseUAC {
|
||||
Function SetUACHigh {
|
||||
Write-Host "Raising UAC level..."
|
||||
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
|
||||
@@ -395,13 +428,13 @@ Function EnableAdminShares {
|
||||
Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "AutoShareWks" -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# Disable obsolete SMB 1.0 protocol
|
||||
# Disable obsolete SMB 1.0 protocol - Disabled by default since 1709
|
||||
Function DisableSMB1 {
|
||||
Write-Host "Disabling SMB 1.0 protocol..."
|
||||
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
|
||||
}
|
||||
|
||||
# Enable obsolete SMB 1.0 protocol
|
||||
# Enable obsolete SMB 1.0 protocol - Disabled by default since 1709
|
||||
Function EnableSMB1 {
|
||||
Write-Host "Enabling SMB 1.0 protocol..."
|
||||
Set-SmbServerConfiguration -EnableSMB1Protocol $true -Force
|
||||
@@ -501,18 +534,18 @@ Function EnableUpdateDriver {
|
||||
# Disable Windows Update automatic restart
|
||||
Function DisableUpdateRestart {
|
||||
Write-Host "Disabling Windows Update automatic restart..."
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "UxOption" -Type DWord -Value 1
|
||||
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
|
||||
}
|
||||
|
||||
# Enable Windows Update automatic restart
|
||||
Function EnableUpdateRestart {
|
||||
Write-Host "Enabling Windows Update automatic restart..."
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "UxOption" -Type DWord -Value 0
|
||||
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
|
||||
}
|
||||
|
||||
# Stop and disable Home Groups services - Not applicable to Server
|
||||
@@ -532,6 +565,18 @@ Function EnableHomeGroups {
|
||||
Start-Service "HomeGroupProvider" -WarningAction SilentlyContinue
|
||||
}
|
||||
|
||||
# Disable Shared Experiences - Not applicable to Server
|
||||
Function DisableSharedExperiences {
|
||||
Write-Host "Disabling Shared Experiences..."
|
||||
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\CDP" -Name "RomeSdkChannelUserAuthzPolicy" -Type DWord -Value 0
|
||||
}
|
||||
|
||||
# Enable Shared Experiences - Not applicable to Server
|
||||
Function EnableSharedExperiences {
|
||||
Write-Host "Enabling Shared Experiences..."
|
||||
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\CDP" -Name "RomeSdkChannelUserAuthzPolicy" -Type DWord -Value 1
|
||||
}
|
||||
|
||||
# Disable Remote Assistance - Not applicable to Server (unless Remote Assistance is explicitly installed)
|
||||
Function DisableRemoteAssistance {
|
||||
Write-Host "Disabling Remote Assistance..."
|
||||
@@ -638,6 +683,38 @@ Function SetBIOSTimeLocal {
|
||||
Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" -Name "RealTimeIsUniversal" -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# Enable Hibernation - Do not use on Server with automatically started Hyper-V hvboot service as it may lead to BSODs (Win10 with Hyper-V is fine)
|
||||
Function EnableHibernation {
|
||||
Write-Host "Enabling Hibernation..."
|
||||
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Session Manager\Power" -Name "HibernteEnabled" -Type Dword -Value 1
|
||||
If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings")) {
|
||||
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" | Out-Null
|
||||
}
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Name "ShowHibernateOption" -Type Dword -Value 1
|
||||
}
|
||||
|
||||
# Disable Hibernation
|
||||
Function DisableHibernation {
|
||||
Write-Host "Disabling Hibernation..."
|
||||
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Session Manager\Power" -Name "HibernteEnabled" -Type Dword -Value 0
|
||||
If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings")) {
|
||||
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" | Out-Null
|
||||
}
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Name "ShowHibernateOption" -Type Dword -Value 0
|
||||
}
|
||||
|
||||
# Disable Fast Startup
|
||||
Function DisableFastStartup {
|
||||
Write-Host "Disabling Fast Startup..."
|
||||
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" -Name "HiberbootEnabled" -Type DWord -Value 0
|
||||
}
|
||||
|
||||
# Enable Fast Startup
|
||||
Function EnableFastStartup {
|
||||
Write-Host "Enabling Fast Startup..."
|
||||
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" -Name "HiberbootEnabled" -Type DWord -Value 1
|
||||
}
|
||||
|
||||
|
||||
|
||||
##########
|
||||
@@ -676,7 +753,7 @@ Function EnableLockScreen {
|
||||
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" -Name "NoLockScreen" -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# Disable Lock screen (Anniversary Update workaround) - Applicable to RS1 or newer
|
||||
# Disable Lock screen (Anniversary Update workaround) - Applicable to 1607 or newer
|
||||
Function DisableLockScreenRS1 {
|
||||
Write-Host "Disabling Lock screen using scheduler workaround..."
|
||||
$service = New-Object -com Schedule.Service
|
||||
@@ -692,12 +769,36 @@ Function DisableLockScreenRS1 {
|
||||
$service.GetFolder("\").RegisterTaskDefinition("Disable LockScreen", $task, 6, "NT AUTHORITY\SYSTEM", $null, 4) | Out-Null
|
||||
}
|
||||
|
||||
# Enable Lock screen (Anniversary Update workaround) - Applicable to RS1 or newer
|
||||
# Enable Lock screen (Anniversary Update workaround) - Applicable to 1607 or newer
|
||||
Function EnableLockScreenRS1 {
|
||||
Write-Host "Enabling Lock screen (removing scheduler workaround)..."
|
||||
Unregister-ScheduledTask -TaskName "Disable LockScreen" -Confirm:$false -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# Hide network options from Lock Screen
|
||||
Function HideNetworkFromLockScreen {
|
||||
Write-Host "Hiding network options from Lock Screen..."
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "DontDisplayNetworkSelectionUI" -Type DWord -Value 1
|
||||
}
|
||||
|
||||
# Show network options on lock screen
|
||||
Function ShowNetworkOnLockScreen {
|
||||
Write-Host "Showing network options on Lock Screen..."
|
||||
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "DontDisplayNetworkSelectionUI" -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# Hide shutdown options from Lock Screen
|
||||
Function HideShutdownFromLockScreen {
|
||||
Write-Host "Hiding shutdown options from Lock Screen..."
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ShutdownWithoutLogon" -Type DWord -Value 0
|
||||
}
|
||||
|
||||
# Show shutdown options on lock screen
|
||||
Function ShowShutdownOnLockScreen {
|
||||
Write-Host "Showing shutdown options on Lock Screen..."
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ShutdownWithoutLogon" -Type DWord -Value 1
|
||||
}
|
||||
|
||||
# Disable Sticky keys prompt
|
||||
Function DisableStickyKeys {
|
||||
Write-Host "Disabling Sticky keys prompt..."
|
||||
@@ -754,6 +855,21 @@ Function HideFileOperationsDetails {
|
||||
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" -Name "EnthusiastMode" -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# Enable file delete confirmation dialog
|
||||
Function EnableFileDeleteConfirm {
|
||||
Write-Host "Enabling file delete confirmation dialog..."
|
||||
If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer")) {
|
||||
New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" | Out-Null
|
||||
}
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "ConfirmFileDelete" -Type DWord -Value 1
|
||||
}
|
||||
|
||||
# Disable file delete confirmation dialog
|
||||
Function DisableFileDeleteConfirm {
|
||||
Write-Host "Disabling file delete confirmation dialog..."
|
||||
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "ConfirmFileDelete" -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# Hide Taskbar Search button / box
|
||||
Function HideTaskbarSearchBox {
|
||||
Write-Host "Hiding Taskbar Search box / button..."
|
||||
@@ -880,13 +996,13 @@ Function ShowRecentShortcuts {
|
||||
}
|
||||
|
||||
# Change default Explorer view to This PC
|
||||
Function ExplorerThisPC {
|
||||
Function SetExplorerThisPC {
|
||||
Write-Host "Changing default Explorer view to This PC..."
|
||||
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo" -Type DWord -Value 1
|
||||
}
|
||||
|
||||
# Change default Explorer view to Quick Access
|
||||
Function ExplorerQuickAccess {
|
||||
Function SetExplorerQuickAccess {
|
||||
Write-Host "Changing default Explorer view to Quick Access..."
|
||||
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo" -ErrorAction SilentlyContinue
|
||||
}
|
||||
@@ -995,6 +1111,82 @@ Function ShowVideosInThisPC {
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
|
||||
}
|
||||
|
||||
# Hide 3D Objects icon from This PC
|
||||
Function Hide3DObjectsFromThisPC {
|
||||
Write-Host "Hiding 3D Objects icon from This PC..."
|
||||
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"
|
||||
}
|
||||
|
||||
# Show 3D Objects icon in This PC
|
||||
Function Show3DObjectsInThisPC {
|
||||
Write-Host "Showing 3D Objects icon in This PC..."
|
||||
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
|
||||
}
|
||||
|
||||
# Adjusts visual effects for performance - Disables animations, transparency etc. but leaves font smoothing and miniatures enabled
|
||||
Function SetVisualFXPerformance {
|
||||
Write-Host "Adjusting visual effects for 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[]](0x90,0x12,0x03,0x80,0x10,0x00,0x00,0x00))
|
||||
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
|
||||
}
|
||||
|
||||
# Adjusts visual effects for appearance
|
||||
Function SetVisualFXAppearance {
|
||||
Write-Host "Adjusting visual effects for 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[]](0x9E,0x1E,0x07,0x80,0x12,0x00,0x00,0x00))
|
||||
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
|
||||
}
|
||||
|
||||
# Disable thumbnails, show only file extension icons
|
||||
Function DisableThumbnails {
|
||||
Write-Host "Disabling thumbnails..."
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "IconsOnly" -Type DWord -Value 1
|
||||
}
|
||||
|
||||
# Enable thumbnails
|
||||
Function EnableThumbnails {
|
||||
Write-Host "Enabling thumbnails..."
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "IconsOnly" -Type DWord -Value 0
|
||||
}
|
||||
|
||||
# Disable creation of Thumbs.db thumbnail cache files
|
||||
Function DisableThumbsDB {
|
||||
Write-Host "Disabling creation of 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
|
||||
}
|
||||
|
||||
# Enable creation of Thumbs.db thumbnail cache files
|
||||
Function EnableThumbsDB {
|
||||
Write-Host "Enable creation of 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
|
||||
}
|
||||
|
||||
# Add secondary en-US keyboard
|
||||
Function AddENKeyboard {
|
||||
Write-Host "Adding secondary en-US keyboard..."
|
||||
@@ -1179,7 +1371,7 @@ Function InstallMsftBloat {
|
||||
|
||||
# Uninstall default third party applications
|
||||
function UninstallThirdPartyBloat {
|
||||
|
||||
Write-Host "Uninstalling default third party applications..."
|
||||
Get-AppxPackage "9E2F88E3.Twitter" | Remove-AppxPackage
|
||||
Get-AppxPackage "king.com.CandyCrushSodaSaga" | Remove-AppxPackage
|
||||
Get-AppxPackage "4DF9E0F8.Netflix" | Remove-AppxPackage
|
||||
@@ -1193,10 +1385,15 @@ function UninstallThirdPartyBloat {
|
||||
Get-AppxPackage "Facebook.Facebook" | Remove-AppxPackage
|
||||
Get-AppxPackage "46928bounde.EclipseManager" | Remove-AppxPackage
|
||||
Get-AppxPackage "A278AB0D.MarchofEmpires" | Remove-AppxPackage
|
||||
Get-AppxPackage "KeeperSecurityInc.Keeper" | Remove-AppxPackage
|
||||
Get-AppxPackage "king.com.BubbleWitch3Saga" | Remove-AppxPackage
|
||||
Get-AppxPackage "89006A2E.AutodeskSketchBook" | Remove-AppxPackage
|
||||
Get-AppxPackage "CAF9E577.Plex" | Remove-AppxPackage
|
||||
}
|
||||
|
||||
# Install default third party applications
|
||||
Function InstallThirdPartyBloat {
|
||||
Write-Host "Installing default third party applications..."
|
||||
Get-AppxPackage -AllUsers "9E2F88E3.Twitter" | 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 "4DF9E0F8.Netflix" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
|
||||
@@ -1210,6 +1407,10 @@ Function InstallThirdPartyBloat {
|
||||
Get-AppxPackage -AllUsers "Facebook.Facebook" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
|
||||
Get-AppxPackage -AllUsers "46928bounde.EclipseManager" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
|
||||
Get-AppxPackage -AllUsers "A278AB0D.MarchofEmpires" | 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 "89006A2E.AutodeskSketchBook" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
|
||||
Get-AppxPackage -AllUsers "CAF9E577.Plex" | ForEach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
|
||||
}
|
||||
|
||||
# Uninstall Windows Store
|
||||
@@ -1266,6 +1467,26 @@ Function EnableXboxFeatures {
|
||||
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR" -Name "AllowGameDVR" -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# Disable built-in Adobe Flash in IE and Edge
|
||||
Function DisableAdobeFlash {
|
||||
Write-Host "Disabling built-in Adobe Flash in IE and Edge..."
|
||||
If (!(Test-Path "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\Addons")) {
|
||||
New-Item -Path "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\Addons" -Force | Out-Null
|
||||
}
|
||||
Set-ItemProperty -Path "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\Addons" -Name "FlashPlayerEnabled" -Type DWord -Value 0
|
||||
If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{D27CDB6E-AE6D-11CF-96B8-444553540000}")) {
|
||||
New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{D27CDB6E-AE6D-11CF-96B8-444553540000}" -Force | Out-Null
|
||||
}
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{D27CDB6E-AE6D-11CF-96B8-444553540000}" -Name "Flags" -Type DWord -Value 1
|
||||
}
|
||||
|
||||
# Enable built-in Adobe Flash in IE and Edge
|
||||
Function EnableAdobeFlash {
|
||||
Write-Host "Enabling built-in Adobe Flash in IE and Edge..."
|
||||
Remove-ItemProperty -Path "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\Addons" -Name "FlashPlayerEnabled" -ErrorAction SilentlyContinue
|
||||
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{D27CDB6E-AE6D-11CF-96B8-444553540000}" -Name "Flags" -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# Uninstall Windows Media Player
|
||||
Function UninstallMediaPlayer {
|
||||
Write-Host "Uninstalling Windows Media Player..."
|
||||
@@ -1290,7 +1511,7 @@ Function InstallWorkFolders {
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "WorkFolders-Client" -NoRestart -WarningAction SilentlyContinue | Out-Null
|
||||
}
|
||||
|
||||
# Install Linux Subsystem - Applicable to RS1 or newer, not applicable to Server yet
|
||||
# Install Linux Subsystem - Applicable to 1607 or newer, not applicable to Server yet
|
||||
Function InstallLinuxSubsystem {
|
||||
Write-Host "Installing Linux Subsystem..."
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -Name "AllowDevelopmentWithoutDevLicense" -Type DWord -Value 1
|
||||
@@ -1298,7 +1519,7 @@ Function InstallLinuxSubsystem {
|
||||
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Windows-Subsystem-Linux" -NoRestart -WarningAction SilentlyContinue | Out-Null
|
||||
}
|
||||
|
||||
# Uninstall Linux Subsystem - Applicable to RS1 or newer, not applicable to Server yet
|
||||
# Uninstall Linux Subsystem - Applicable to 1607 or newer, not applicable to Server yet
|
||||
Function UninstallLinuxSubsystem {
|
||||
Write-Host "Uninstalling Linux Subsystem..."
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -Name "AllowDevelopmentWithoutDevLicense" -Type DWord -Value 0
|
||||
@@ -1519,12 +1740,22 @@ Function EnableIEEnhancedSecurity {
|
||||
# Auxiliary Functions
|
||||
##########
|
||||
|
||||
# Relaunch the script with administrator privileges
|
||||
Function RequireAdmin {
|
||||
If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]"Administrator")) {
|
||||
Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`" $PSCommandArgs" -WorkingDirectory $pwd -Verb RunAs
|
||||
Exit
|
||||
}
|
||||
}
|
||||
|
||||
# Wait for key press
|
||||
Function WaitForKey {
|
||||
Write-Host
|
||||
Write-Host "Press any key to continue..." -ForegroundColor Black -BackgroundColor White
|
||||
[Console]::ReadKey($true) | Out-Null
|
||||
}
|
||||
|
||||
# Restart computer
|
||||
Function Restart {
|
||||
Write-Host "Restarting..."
|
||||
Restart-Computer
|
||||
@@ -1536,17 +1767,19 @@ Function Restart {
|
||||
# Parse parameters and apply tweaks
|
||||
##########
|
||||
|
||||
# Ask for elevated privileges if required
|
||||
If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]"Administrator")) {
|
||||
Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`" $args" -WorkingDirectory $pwd -Verb RunAs
|
||||
Exit
|
||||
# Normalize path to preset file
|
||||
$preset = ""
|
||||
$PSCommandArgs = $args
|
||||
If ($args -And $args[0].ToLower() -eq "-preset") {
|
||||
$preset = Resolve-Path $($args | Select-Object -Skip 1)
|
||||
$PSCommandArgs = "-preset `"$preset`""
|
||||
}
|
||||
|
||||
# Load function names from command line arguments or a preset file
|
||||
If ($args) {
|
||||
$tweaks = $args
|
||||
If ($args[0].ToLower() -eq "-preset") {
|
||||
$tweaks = Get-Content $args[1] -ErrorAction Stop | ForEach { $_.Trim() } | Where { $_ -ne "" -and $_[0] -ne "#" }
|
||||
If ($preset) {
|
||||
$tweaks = Get-Content $preset -ErrorAction Stop | ForEach { $_.Trim() } | Where { $_ -ne "" -and $_[0] -ne "#" }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
@ECHO OFF
|
||||
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File %~dp0..\Win10.ps1 -preset "%~dp0Win10-ApplyAll.preset"
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "..\Win10.ps1" -preset "Win10-ApplyAll.preset"
|
||||
|
||||
@@ -1,24 +1,27 @@
|
||||
# Windows 10 - Apply all
|
||||
|
||||
RequireAdmin
|
||||
|
||||
DisableTelemetry
|
||||
DisableWiFiSense
|
||||
DisableSmartScreen
|
||||
DisableWebSearch
|
||||
DisableStartSuggestions
|
||||
DisableLocationTracking
|
||||
DisableMapUpdates
|
||||
DisableFeedback
|
||||
DisableAdvertisingID
|
||||
DisableCortana
|
||||
DisableErrorReporting
|
||||
RestrictUpdateP2P
|
||||
SetP2PUpdateLocal
|
||||
DisableAutoLogger
|
||||
DisableDiagTrack
|
||||
DisableWAPPush
|
||||
|
||||
LowerUAC
|
||||
SetUACLow
|
||||
EnableSharingMappedDrives
|
||||
DisableAdminShares
|
||||
DisableSMB1
|
||||
# DisableSMB1
|
||||
SetCurrentNetworkPrivate
|
||||
SetUnknownNetworksPrivate
|
||||
DisableFirewall
|
||||
@@ -27,6 +30,7 @@ DisableUpdateMSRT
|
||||
DisableUpdateDriver
|
||||
DisableUpdateRestart
|
||||
DisableHomeGroups
|
||||
DisableSharedExperiences
|
||||
DisableRemoteAssistance
|
||||
EnableRemoteDesktop
|
||||
DisableAutoplay
|
||||
@@ -35,13 +39,18 @@ DisableDefragmentation
|
||||
DisableSuperfetch
|
||||
DisableIndexing
|
||||
SetBIOSTimeUTC
|
||||
EnableHibernation
|
||||
DisableFastStartup
|
||||
|
||||
DisableActionCenter
|
||||
DisableLockScreen
|
||||
DisableLockScreenRS1
|
||||
HideNetworkFromLockScreen
|
||||
HideShutdownFromLockScreen
|
||||
DisableStickyKeys
|
||||
ShowTaskManagerDetails
|
||||
ShowFileOperationsDetails
|
||||
EnableFileDeleteConfirm
|
||||
HideTaskbarSearchBox
|
||||
HideTaskView
|
||||
ShowSmallTaskbarIcons
|
||||
@@ -52,7 +61,7 @@ ShowKnownExtensions
|
||||
ShowHiddenFiles
|
||||
HideSyncNotifications
|
||||
HideRecentShortcuts
|
||||
ExplorerThisPC
|
||||
SetExplorerThisPC
|
||||
ShowThisPCOnDesktop
|
||||
HideDesktopFromThisPC
|
||||
HideDocumentsFromThisPC
|
||||
@@ -60,6 +69,10 @@ HideDownloadsFromThisPC
|
||||
HideMusicFromThisPC
|
||||
HidePicturesFromThisPC
|
||||
HideVideosFromThisPC
|
||||
Hide3DObjectsFromThisPC
|
||||
SetVisualFXPerformance
|
||||
DisableThumbnails
|
||||
DisableThumbsDB
|
||||
AddENKeyboard
|
||||
EnableNumlock
|
||||
|
||||
@@ -70,6 +83,7 @@ UninstallThirdPartyBloat
|
||||
UninstallWindowsStore
|
||||
DisableConsumerApps
|
||||
DisableXboxFeatures
|
||||
DisableAdobeFlash
|
||||
UninstallMediaPlayer
|
||||
UninstallWorkFolders
|
||||
InstallLinuxSubsystem
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
@ECHO OFF
|
||||
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File %~dp0..\Win10.ps1 -preset "%~dp0Win10-RestoreAll.preset"
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "..\Win10.ps1" -preset "Win10-RestoreAll.preset"
|
||||
|
||||
@@ -1,24 +1,27 @@
|
||||
# Windows 10 - Restore all
|
||||
|
||||
RequireAdmin
|
||||
|
||||
EnableTelemetry
|
||||
EnableWiFiSense
|
||||
EnableSmartScreen
|
||||
EnableWebSearch
|
||||
EnableStartSuggestions
|
||||
EnableLocationTracking
|
||||
EnableMapUpdates
|
||||
EnableFeedback
|
||||
EnableAdvertisingID
|
||||
EnableCortana
|
||||
EnableErrorReporting
|
||||
UnrestrictUpdateP2P
|
||||
SetP2PUpdateInternet
|
||||
EnableAutoLogger
|
||||
EnableDiagTrack
|
||||
EnableWAPPush
|
||||
|
||||
RaiseUAC
|
||||
SetUACHigh
|
||||
DisableSharingMappedDrives
|
||||
EnableAdminShares
|
||||
EnableSMB1
|
||||
# EnableSMB1
|
||||
SetCurrentNetworkPublic
|
||||
SetUnknownNetworksPublic
|
||||
EnableFirewall
|
||||
@@ -27,6 +30,7 @@ EnableUpdateMSRT
|
||||
EnableUpdateDriver
|
||||
EnableUpdateRestart
|
||||
EnableHomeGroups
|
||||
EnableSharedExperiences
|
||||
EnableRemoteAssistance
|
||||
DisableRemoteDesktop
|
||||
EnableAutoplay
|
||||
@@ -35,13 +39,18 @@ EnableDefragmentation
|
||||
EnableSuperfetch
|
||||
EnableIndexing
|
||||
SetBIOSTimeLocal
|
||||
DisableHibernation
|
||||
EnableFastStartup
|
||||
|
||||
EnableActionCenter
|
||||
EnableLockScreen
|
||||
EnableLockScreenRS1
|
||||
ShowNetworkOnLockScreen
|
||||
ShowShutdownOnLockScreen
|
||||
EnableStickyKeys
|
||||
HideTaskManagerDetails
|
||||
HideFileOperationsDetails
|
||||
DisableFileDeleteConfirm
|
||||
ShowTaskbarSearchBox
|
||||
ShowTaskView
|
||||
ShowLargeTaskbarIcons
|
||||
@@ -52,7 +61,7 @@ HideKnownExtensions
|
||||
HideHiddenFiles
|
||||
ShowSyncNotifications
|
||||
ShowRecentShortcuts
|
||||
ExplorerQuickAccess
|
||||
SetExplorerQuickAccess
|
||||
HideThisPCFromDesktop
|
||||
ShowDesktopInThisPC
|
||||
ShowDocumentsInThisPC
|
||||
@@ -60,6 +69,10 @@ ShowDownloadsInThisPC
|
||||
ShowMusicInThisPC
|
||||
ShowPicturesInThisPC
|
||||
ShowVideosInThisPC
|
||||
Show3DObjectsInThisPC
|
||||
SetVisualFXAppearance
|
||||
EnableThumbnails
|
||||
EnableThumbsDB
|
||||
RemoveENKeyboard
|
||||
DisableNumlock
|
||||
|
||||
@@ -70,6 +83,7 @@ InstallThirdPartyBloat
|
||||
InstallWindowsStore
|
||||
EnableConsumerApps
|
||||
EnableXboxFeatures
|
||||
EnableAdobeFlash
|
||||
InstallMediaPlayer
|
||||
InstallWorkFolders
|
||||
UninstallLinuxSubsystem
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
@ECHO OFF
|
||||
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File %~dp0..\Win10.ps1 -preset "%~dp0WinServer2016-ApplyAll.preset"
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "..\Win10.ps1" -preset "WinServer2016-ApplyAll.preset"
|
||||
|
||||
@@ -1,21 +1,24 @@
|
||||
# Windows Server 2016 - Apply all
|
||||
|
||||
RequireAdmin
|
||||
|
||||
DisableTelemetry
|
||||
DisableWiFiSense
|
||||
DisableSmartScreen
|
||||
DisableWebSearch
|
||||
DisableStartSuggestions
|
||||
DisableLocationTracking
|
||||
DisableMapUpdates
|
||||
DisableFeedback
|
||||
DisableAdvertisingID
|
||||
DisableCortana
|
||||
DisableErrorReporting
|
||||
RestrictUpdateP2P
|
||||
SetP2PUpdateLocal
|
||||
DisableAutoLogger
|
||||
DisableDiagTrack
|
||||
DisableWAPPush
|
||||
|
||||
LowerUAC
|
||||
SetUACLow
|
||||
EnableSharingMappedDrives
|
||||
DisableAdminShares
|
||||
DisableSMB1
|
||||
@@ -27,6 +30,7 @@ DisableUpdateMSRT
|
||||
DisableUpdateDriver
|
||||
DisableUpdateRestart
|
||||
# DisableHomeGroups
|
||||
# DisableSharedExperiences
|
||||
# DisableRemoteAssistance
|
||||
EnableRemoteDesktop
|
||||
DisableAutoplay
|
||||
@@ -35,13 +39,18 @@ DisableDefragmentation
|
||||
# DisableSuperfetch
|
||||
DisableIndexing
|
||||
SetBIOSTimeUTC
|
||||
EnableHibernation
|
||||
DisableFastStartup
|
||||
|
||||
DisableActionCenter
|
||||
DisableLockScreen
|
||||
DisableLockScreenRS1
|
||||
HideNetworkFromLockScreen
|
||||
HideShutdownFromLockScreen
|
||||
DisableStickyKeys
|
||||
ShowTaskManagerDetails
|
||||
ShowFileOperationsDetails
|
||||
EnableFileDeleteConfirm
|
||||
HideTaskbarSearchBox
|
||||
HideTaskView
|
||||
ShowSmallTaskbarIcons
|
||||
@@ -52,7 +61,7 @@ ShowKnownExtensions
|
||||
ShowHiddenFiles
|
||||
HideSyncNotifications
|
||||
HideRecentShortcuts
|
||||
ExplorerThisPC
|
||||
SetExplorerThisPC
|
||||
ShowThisPCOnDesktop
|
||||
HideDesktopFromThisPC
|
||||
HideDocumentsFromThisPC
|
||||
@@ -60,6 +69,10 @@ HideDownloadsFromThisPC
|
||||
HideMusicFromThisPC
|
||||
HidePicturesFromThisPC
|
||||
HideVideosFromThisPC
|
||||
Hide3DObjectsFromThisPC
|
||||
SetVisualFXPerformance
|
||||
DisableThumbnails
|
||||
DisableThumbsDB
|
||||
AddENKeyboard
|
||||
EnableNumlock
|
||||
|
||||
@@ -70,6 +83,7 @@ UninstallThirdPartyBloat
|
||||
UninstallWindowsStore
|
||||
DisableConsumerApps
|
||||
DisableXboxFeatures
|
||||
DisableAdobeFlash
|
||||
UninstallMediaPlayer
|
||||
# UninstallWorkFolders
|
||||
# InstallLinuxSubsystem
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
@ECHO OFF
|
||||
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File %~dp0..\Win10.ps1 -preset "%~dp0WinServer2016-RestoreAll.preset"
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "..\Win10.ps1" -preset "WinServer2016-RestoreAll.preset"
|
||||
|
||||
@@ -1,21 +1,24 @@
|
||||
# Windows Server 2016 - Restore all
|
||||
|
||||
RequireAdmin
|
||||
|
||||
EnableTelemetry
|
||||
EnableWiFiSense
|
||||
EnableSmartScreen
|
||||
EnableWebSearch
|
||||
EnableStartSuggestions
|
||||
EnableLocationTracking
|
||||
EnableMapUpdates
|
||||
EnableFeedback
|
||||
EnableAdvertisingID
|
||||
EnableCortana
|
||||
EnableErrorReporting
|
||||
UnrestrictUpdateP2P
|
||||
SetP2PUpdateInternet
|
||||
EnableAutoLogger
|
||||
EnableDiagTrack
|
||||
EnableWAPPush
|
||||
|
||||
RaiseUAC
|
||||
SetUACHigh
|
||||
DisableSharingMappedDrives
|
||||
EnableAdminShares
|
||||
EnableSMB1
|
||||
@@ -27,6 +30,7 @@ EnableUpdateMSRT
|
||||
EnableUpdateDriver
|
||||
EnableUpdateRestart
|
||||
# EnableHomeGroups
|
||||
# EnableSharedExperiences
|
||||
# EnableRemoteAssistance
|
||||
DisableRemoteDesktop
|
||||
EnableAutoplay
|
||||
@@ -35,13 +39,18 @@ EnableDefragmentation
|
||||
# EnableSuperfetch
|
||||
EnableIndexing
|
||||
SetBIOSTimeLocal
|
||||
DisableHibernation
|
||||
EnableFastStartup
|
||||
|
||||
EnableActionCenter
|
||||
EnableLockScreen
|
||||
EnableLockScreenRS1
|
||||
ShowNetworkOnLockScreen
|
||||
ShowShutdownOnLockScreen
|
||||
EnableStickyKeys
|
||||
HideTaskManagerDetails
|
||||
HideFileOperationsDetails
|
||||
DisableFileDeleteConfirm
|
||||
ShowTaskbarSearchBox
|
||||
ShowTaskView
|
||||
ShowLargeTaskbarIcons
|
||||
@@ -52,7 +61,7 @@ HideKnownExtensions
|
||||
HideHiddenFiles
|
||||
ShowSyncNotifications
|
||||
ShowRecentShortcuts
|
||||
ExplorerQuickAccess
|
||||
SetExplorerQuickAccess
|
||||
HideThisPCFromDesktop
|
||||
ShowDesktopInThisPC
|
||||
ShowDocumentsInThisPC
|
||||
@@ -60,6 +69,10 @@ ShowDownloadsInThisPC
|
||||
ShowMusicInThisPC
|
||||
ShowPicturesInThisPC
|
||||
ShowVideosInThisPC
|
||||
Show3DObjectsInThisPC
|
||||
SetVisualFXAppearance
|
||||
EnableThumbnails
|
||||
EnableThumbsDB
|
||||
RemoveENKeyboard
|
||||
DisableNumlock
|
||||
|
||||
@@ -70,6 +83,7 @@ InstallThirdPartyBloat
|
||||
InstallWindowsStore
|
||||
EnableConsumerApps
|
||||
EnableXboxFeatures
|
||||
EnableAdobeFlash
|
||||
InstallMediaPlayer
|
||||
# InstallWorkFolders
|
||||
# UninstallLinuxSubsystem
|
||||
|
||||
Reference in New Issue
Block a user