75 Commits
2.21 ... 3.5

Author SHA1 Message Date
Disassembler
95c66ecf21 v3.5, 2018-12-23
- Fix "DisableUpdateDriver" to not block driver installation entirely (thx Nick for pointing this out)
 - Fix "HideShortcutArrow" to not show black squares over the icons (thx @Ozgood for helping me debug)
2018-12-23 17:09:31 +01:00
Disassembler
6ce0765a03 Update "HideShortcutArrow" to use RGBA icon, closes for #186 2018-12-22 14:22:34 +01:00
Disassembler
12c2c533d5 Revert "Update "DisableUpdateDriver" to add one more GPO, closes #178 (thx @kukubau)"
This reverts commit daa5da122e.
2018-12-21 09:30:00 +01:00
Disassembler
8c9053cabc Update "HideShortcutArrow" to restart explorer process, tryfix for #186 2018-12-19 22:53:27 +01:00
Disassembler
9365a3a013 v3.4, 2018-12-19
- Add more bloatware for removal (thx @r3incarnat0r, @mhujer)
 - Add "Hide shortcut icon arrow"
 - Add "Show Control panel shortcut on desktop" (thx @Win10debloater)
 - Add "Enable window title bar color" (thx @scruel)
 - Add "Disable Edge preload after Windows startup" (thx Nick)
 - Update "DisableBackgroundApps" to properly show toasts and notifications
 - Update "DisableActivityHistory" to fix problems caused by disabled CDP user service
 - Update "DisableUpdateDriver" to add one more GPO (thx @kukubau)
2018-12-19 19:06:10 +01:00
Disassembler
24a1c79d58 Update "HideShortcutArrow" to clean icon cache
Prevents black squares showing in place of arrows
2018-12-19 18:47:04 +01:00
Disassembler
9b765a694d Reorder ShowControlPanelOnDesktop (no functional changes) 2018-12-19 18:15:58 +01:00
Disassembler
c67227992a Change all "Dword" to "DWord" (No functional changes) 2018-12-17 15:19:17 +01:00
Disassembler
8069d87266 Add "Disable Edge preload after Windows startup", closes #184 (thx Nick) 2018-12-17 15:13:18 +01:00
Disassembler
abe812ace0 Reimplement "Enable window title bar color", closes #162 (thx @scruel) 2018-12-17 14:02:07 +01:00
Disassembler
aef24a75a8 Properly PascalCase ShowControlPanelOnDesktop name and comment in default preset 2018-12-17 13:44:23 +01:00
Win10debloater
2ab1f27eeb Show Control panel shortcut on desktop (#183) 2018-12-17 13:42:57 +01:00
Disassembler
daa5da122e Update "DisableUpdateDriver" to add one more GPO, closes #178 (thx @kukubau) 2018-12-17 13:36:01 +01:00
Martin Hujer
9d4a14c55a UninstallThirdPartyBloat: also remove Fitbit.FitbitCoach (#175) 2018-11-18 05:18:33 +01:00
Disassembler
494409c3cb Use modern method of determining server/workstation, closes #168 2018-11-15 09:22:13 +01:00
Disassembler
50e9804974 Revert "Update DisableActivityHistory to disable CDP user service". Fixes #170, #172
This reverts commit 08ce664a37.
2018-11-15 08:36:42 +01:00
Varghese Jacob
1b38a82c88 Fix "HKCU:\Software" case, no functional changes (#167) 2018-11-06 13:21:33 +01:00
Disassembler
dc30f4b8c2 Update DisableBackgroundApps to properly show toasts and notifications, closes #164 2018-10-28 11:42:07 +01:00
Disassembler
5b2333ba35 Add "Hide shortcut icon arrow" 2018-10-23 22:19:08 +02:00
r3incarnat0r
6786ed78b5 Add more MS bloatware for removal (#158) 2018-10-23 08:06:03 +02:00
Disassembler
f830a46fa9 v3.3, 2018-10-22, Tweak exclusion support added
- Add option to remove tweaks from selection (see advanced usage)
 - Add "Enable Dark Theme" (thx @DaniloNC)
 - Update DisableActivityHistory to disable CDP user service
 - Minor description updates in comments
2018-10-22 17:38:55 +02:00
Milos Svasek
544e15aefc Fixing ShowDefenderTrayIcon function name (#157) 2018-10-22 14:18:29 +02:00
r3incarnat0r
436e708a1f Unified quotes (#155) 2018-10-18 05:26:20 +02:00
Conder000
e4a24bf83d Update description for DisableAutoRebootOnCrash and DisableActionCenter (#154) 2018-10-14 07:44:32 +02:00
Disassembler
771a32db0d Update PayPal link 2018-10-12 19:43:03 +02:00
Disassembler
5ccc376764 Add option to remove tweaks from selection, closes #152
also kinda related to #81 and #99
2018-10-12 18:57:15 +02:00
Disassembler
ef8b490da8 Simplify registry operations in DisableAppSuggestions and UnpinStartMenuTiles, related to #148 2018-10-11 07:11:18 +02:00
Disassembler
08ce664a37 Update DisableActivityHistory to disable CDP user service, closes #149 2018-10-10 15:48:32 +02:00
Disassembler
c511b60739 Add "Enable Dark Theme", closes #150 (thx @DaniloNC) 2018-10-10 08:25:36 +02:00
Disassembler
27157fef8f v3.2, 2018-10-08, Server 2019 support added
- Add "Hide Windows Defender SysTray icon" (thx @sippi90)
 - Revert DisableSharedExperiences to safer non-GPO variant
 - Update DisableAppSuggestions to hide suggestions in settings
 - Update DisableAppSuggestions to purge and reload tile cache
 - Update UnpinStartMenuTiles to reload tile cache
 - Update EnableStorageSense to set only the necessary values
 - Update documentation and comments to announce Server 2019 support
2018-10-08 22:05:19 +02:00
Disassembler
9e4ad4215b Revert DisableSharedExperiences to non-GPO variant, closes #145
Reverts commit 98e106b78a
2018-10-08 22:04:45 +02:00
Disassembler
baa547cbd8 Update UnpinStartMenuTiles to purge tile cache 2018-10-08 21:45:30 +02:00
Disassembler
503b1a2826 Update DisableAppSuggestions to purge tile cache, related to #145 2018-10-08 21:45:00 +02:00
Disassembler
3a0ff06a81 Add "Hide Windows Defender SysTray icon", salvaged from #146 (thx @sippi90) 2018-10-08 16:44:02 +02:00
Disassembler
0438564bfe Remove extra values in EnableStorageSense, see #143 2018-10-08 16:16:24 +02:00
Disassembler
0d15efc24d Update DisableAppSuggestions to hide suggestions in settings 2018-10-06 16:18:54 +02:00
Disassembler
db2c2d54d9 Add note about InstallLinuxSubsystem Server applicability 2018-10-04 23:04:29 +02:00
Disassembler
efb89f42c2 Update note about DisableSuperfetch Server applicability 2018-10-04 22:55:46 +02:00
Disassembler
4d28393ac0 Add note about DefenderAppGuard Server applicability 2018-10-04 22:41:30 +02:00
Disassembler
a7d1b3b3b1 v3.1, 2018-10-04
- Add "Disable Restore Points"
 - Add "Disable Automatic Boot Recovery"
 - Add "Disable Recovery and Factory Reset"
 - Add "Disable NTFS Last Acccess time stamps" (thx @r3incarnat0r)
 - Add "Enable Defender Application Guard" (thx @sippi90)
 - Add "Uninstall PowerShell 2.0" (thx @sippi90)
 - Add "Install .NET Framework 2.0, 3.0 and 3.5 runtimes"
 - Add "Enable navigation pane expanding to current folder" (thx arobasse2)
 - Add "Disable Aero Shake" (thx arobasse2)
 - Add "Disable adding '- shortcut' to shortcut name" (thx arobasse2)
 - Add "Disable automatic reboot on crash" (thx arobasse2)
 - Add "Disable blocking of downloaded files" (thx arobasse2)
 - Add "Hide 'Include in library' context menu item" (thx arobasse2)
 - Add "Hide 'Share' and 'Give access to' context menu items" (thx arobasse2)
 - Update SetP2PUpdate* to use GPO (thx @sippi90)
 - Update Enable/DisableHibernation to run powercfg (thx @r3incarnat0r)
 - Update ShowTaskManagerDetails to not get stuck (thx @r3incarnat0r)
 - Update EnableDefender for 1809
 - Update UninstallMsftBloat for 1809 (thx @sippi90)
 - Update UnpinStartMenuTiles for 1809
 - Update CtrldFolderAccess to suppress warnings when Defender is disabled
 - Fix copy paste error in EnableSharingWizard (thx @sippi90)
 - Bunch of minor comment changes, code style alignments, reorganizations, clarifications and nitpicks
2018-10-04 21:15:22 +02:00
Disassembler
0d1e8faf61 Suppress CtrldFolderAccess warnings when Defender is disabled
Use single quotes instead escaped double quotes in PhotoViewerOpenWith
2018-10-04 20:53:30 +02:00
Disassembler
03d47362e0 Add "Hide 'Share' and 'Give access to' context menu items" (thx arobasse2) 2018-10-04 20:52:10 +02:00
Disassembler
f53ec4001a Add "Hide 'Include in library' context menu item" (thx arobasse2) 2018-10-04 20:48:33 +02:00
Disassembler
ccb7fa1b77 Add "Disable blocking of downloaded files" (thx arobasse2) 2018-10-04 20:42:53 +02:00
Disassembler
af751acb7f Add "Disable automatic reboot on crash" (thx arobasse2) 2018-10-04 20:42:47 +02:00
Disassembler
b0de075d46 Add "Disable adding '- shortcut' to shortcut name" (thx arobasse2) 2018-10-04 20:42:15 +02:00
Disassembler
f2b628048c Add "Disable Aero Shake" (thx arobasse2) 2018-10-04 14:02:00 +02:00
Disassembler
7feaf667a8 Add "Enable navigation pane expanding to current folder" (thx arobasse2) 2018-10-04 14:01:36 +02:00
Disassembler
a9c9bbb6f0 Move HideAccountProtectionWarn to have Defender tweaks together
No functional change
2018-10-04 12:59:21 +02:00
Disassembler
f42acded36 Update UninstallPowerShellV2 + InstallNET23 for Server 2018-10-03 20:30:03 +02:00
Disassembler
984e370fe6 Suppress EnableHibernation warning on systems not supporting it 2018-10-03 17:56:28 +02:00
Disassembler
3ecf486524 Typo fixes 2018-10-03 17:48:32 +02:00
Disassembler
84b75b1a86 Update UnpinStartMenuTiles for 1809 2018-10-03 17:44:50 +02:00
Disassembler
37b19b942a Add "Install .NET Framework 2.0, 3.0 and 3.5 runtimes" 2018-10-03 17:41:34 +02:00
Disassembler
5565b31afb Bit more comment style edits. No functional changes. 2018-10-03 17:29:34 +02:00
Disassembler
f64365bdcb Add UninstallPowerShellV2, picked from and closes #141 (thx @sippi90) 2018-10-03 17:24:13 +02:00
Disassembler
96b5267c1f Move UninstallMediaPlayer to proper place. No functional change. 2018-10-03 17:12:10 +02:00
Disassembler
96da78d043 Remove even more bloatware, picked from #141 (thx @sippi90) 2018-10-03 17:07:50 +02:00
Disassembler
2c741b2c40 Add EnableDefenderAppGuard, picked from #141 (thx @sippi90) 2018-10-03 16:45:14 +02:00
Disassembler
5f452a171a Unify comment style, fix preset tabstop. No functional changes. 2018-10-03 16:43:48 +02:00
Disassembler
8ff24e54f1 Update EnableDefender for 1809 2018-10-03 16:16:25 +02:00
Disassembler
aa4d3d58a4 Add regions for better code overview, picked from #141 (thx @sippi90) 2018-10-03 15:19:10 +02:00
Disassembler
a7f2b7b7c5 Add 1807 / RS5 into Windows builds overview 2018-10-03 15:15:11 +02:00
sippi90
c747faa96a Improvements from vscode's PSScriptAnalyzer (#139) 2018-10-02 21:36:11 +02:00
r3incarnat0r
bce7bbc109 Update Hibernation ad Task Manager tweaks (#137) 2018-09-29 07:38:24 +02:00
r3incarnat0r
e2646d13e4 Add DisableNTFSLastAccess (#136) 2018-09-28 21:28:19 +02:00
Disassembler
c5c107c59f Use GPO for SetP2PUpdate* - reimplements #135 (thx @sippi90) 2018-09-27 14:56:40 +02:00
Disassembler
2c235573c5 Add a note to DisableRestorePoints about WinServer 2018-09-27 12:59:22 +02:00
Disassembler
113055beaa Add DisableBootRecovery and DisableRecoveryAndReset, closes #131 2018-09-27 12:29:35 +02:00
Disassembler
22c2c047f1 Add DisableRestorePoints, related to #131 2018-09-27 11:36:00 +02:00
sippi90
a670106295 Fix copy paste error in EnableSharingWizard (#134)
SharingWizardOn must be deleted and not PersistBrowsers
2018-09-27 10:40:26 +02:00
Disassembler
a68bb170a4 Reorganize order of defender and boot tweaks (no functional changes). 2018-09-27 10:22:56 +02:00
r3incarnat0r
5fae7389e1 Minor changes (#133)
- shortened Default.cmd
- prevented annoying homegroup errors for 1803+ (counterpart for enabling not touched, cuz it's good to see the errors in this case imo)
2018-09-18 14:06:57 +02:00
Disassembler
1e977ab95f v3.0, 2018-09-15, BYOT - Bring your own tweaks
- Split execution logic from tweak library and add support for custom tweaks
 - Check "Advanced usage" chapter in README
2018-09-15 18:37:28 +02:00
r3incarnat0r
1acc37a099 Add Explorer and Start Menu tweaks (#129)
1) EnableFldrSeparateProcess / DisableFldrSeparateProcess
2) EnableRestoreFldrWindows / DisableRestoreFldrWindows
3)  DisableSharingWizard / EnableSharingWizard
4) HideRecentlyAddedApps / ShowRecentlyAddedApps
5) HideRecentJumplists / ShowRecentJumplists
2018-09-10 15:26:29 +02:00
5 changed files with 3287 additions and 2837 deletions

View File

@@ -1,3 +1 @@
@ECHO OFF
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0Win10.ps1" -preset "%~dpn0.preset"
@powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0Win10.ps1" -include "%~dp0Win10.psm1" -preset "%~dpn0.preset"

View File

@@ -1,148 +1,189 @@
# Default preset
##########
# Win 10 / Server 2016 / Server 2019 Initial Setup Script - Default preset
# Author: Disassembler <disassembler@dasm.cz>
# Version: v3.5, 2018-12-23
# Source: https://github.com/Disassembler0/Win10-Initial-Setup-Script
##########
### Require administrator privileges ###
RequireAdmin
DisableTelemetry
DisableWiFiSense
# DisableSmartScreen
DisableWebSearch
DisableAppSuggestions
DisableActivityHistory
DisableBackgroundApps
DisableLocationTracking
DisableMapUpdates
DisableFeedback
DisableTailoredExperiences
DisableAdvertisingID
DisableWebLangList
DisableCortana
DisableErrorReporting
# SetP2PUpdateLocal
DisableDiagTrack
DisableWAPPush
### Privacy Tweaks ###
DisableTelemetry # EnableTelemetry
DisableWiFiSense # EnableWiFiSense
# DisableSmartScreen # EnableSmartScreen
DisableWebSearch # EnableWebSearch
DisableAppSuggestions # EnableAppSuggestions
DisableActivityHistory # EnableActivityHistory
DisableBackgroundApps # EnableBackgroundApps
DisableLocationTracking # EnableLocationTracking
DisableMapUpdates # EnableMapUpdates
DisableFeedback # EnableFeedback
DisableTailoredExperiences # EnableTailoredExperiences
DisableAdvertisingID # EnableAdvertisingID
DisableWebLangList # EnableWebLangList
DisableCortana # EnableCortana
DisableErrorReporting # EnableErrorReporting
# SetP2PUpdateLocal # SetP2PUpdateInternet # SetP2PUpdateDisable
DisableDiagTrack # EnableDiagTrack
DisableWAPPush # EnableWAPPush
# HideRecentJumplists # ShowRecentJumplists
# SetUACLow
# EnableSharingMappedDrives
DisableAdminShares
# DisableSMB1
# DisableSMBServer
# DisableLLMNR
# DisableNCSIProbe
SetCurrentNetworkPrivate
# SetUnknownNetworksPrivate
# DisableNetDevicesAutoInst
# EnableCtrldFolderAccess
# DisableFirewall
# DisableDefender
# DisableDefenderCloud
EnableF8BootMenu
SetDEPOptOut
# EnableCIMemoryIntegrity
DisableScriptHost
EnableDotNetStrongCrypto
# EnableMeltdownCompatFlag
### Security Tweaks ###
# SetUACLow # SetUACHigh
# EnableSharingMappedDrives # DisableSharingMappedDrives
DisableAdminShares # EnableAdminShares
# DisableSMB1 # EnableSMB1
# DisableSMBServer # EnableSMBServer
# DisableLLMNR # EnableLLMNR
# DisableNCSIProbe # EnableNCSIProbe
SetCurrentNetworkPrivate # SetCurrentNetworkPublic
# SetUnknownNetworksPrivate # SetUnknownNetworksPublic
# DisableNetDevicesAutoInst # EnableNetDevicesAutoInst
# DisableFirewall # EnableFirewall
# HideDefenderTrayIcon # ShowDefenderTrayIcon
# DisableDefender # EnableDefender
# DisableDefenderCloud # EnableDefenderCloud
# EnableCtrldFolderAccess # DisableCtrldFolderAccess
# EnableCIMemoryIntegrity # DisableCIMemoryIntegrity
# EnableDefenderAppGuard # DisableDefenderAppGuard
HideAccountProtectionWarn # ShowAccountProtectionWarn
# DisableDownloadBlocking # EnableDownloadBlocking
DisableScriptHost # EnableScriptHost
EnableDotNetStrongCrypto # DisableDotNetStrongCrypto
# EnableMeltdownCompatFlag # DisableMeltdownCompatFlag
EnableF8BootMenu # DisableF8BootMenu
# DisableBootRecovery # EnableBootRecovery
# DisableRecoveryAndReset # EnableRecoveryAndReset
SetDEPOptOut # SetDEPOptIn
# DisableUpdateMSRT
# DisableUpdateDriver
DisableUpdateRestart
# DisableHomeGroups
DisableSharedExperiences
DisableRemoteAssistance
EnableRemoteDesktop
DisableAutoplay
DisableAutorun
# EnableStorageSense
# DisableDefragmentation
# DisableSuperfetch
# DisableIndexing
# SetBIOSTimeUTC
# EnableHibernation
# DisableSleepButton
# DisableSleepTimeout
# DisableFastStartup
### Service Tweaks ###
# DisableUpdateMSRT # EnableUpdateMSRT
# DisableUpdateDriver # EnableUpdateDriver
DisableUpdateRestart # EnableUpdateRestart
# DisableHomeGroups # EnableHomeGroups
DisableSharedExperiences # EnableSharedExperiences
DisableRemoteAssistance # EnableRemoteAssistance
EnableRemoteDesktop # DisableRemoteDesktop
DisableAutoplay # EnableAutoplay
DisableAutorun # EnableAutorun
# DisableRestorePoints # EnableRestorePoints
# EnableStorageSense # DisableStorageSense
# DisableDefragmentation # EnableDefragmentation
# DisableSuperfetch # EnableSuperfetch
# DisableIndexing # EnableIndexing
# DisableNTFSLastAccess # EnableNTFSLastAccess
# SetBIOSTimeUTC # SetBIOSTimeLocal
# EnableHibernation # DisableHibernation
# DisableSleepButton # EnableSleepButton
# DisableSleepTimeout # EnableSleepTimeout
# DisableFastStartup # EnableFastStartup
# DisableAutoRebootOnCrash # EnableAutoRebootOnCrash
DisableActionCenter
HideAccountProtectionWarn
DisableLockScreen
# DisableLockScreenRS1
HideNetworkFromLockScreen
HideShutdownFromLockScreen
DisableStickyKeys
ShowTaskManagerDetails
ShowFileOperationsDetails
# EnableFileDeleteConfirm
HideTaskbarSearch
HideTaskView
ShowSmallTaskbarIcons
SetTaskbarCombineWhenFull
HideTaskbarPeopleIcon
ShowTrayIcons
DisableSearchAppInStore
DisableNewAppPrompt
# SetControlPanelSmallIcons
SetVisualFXPerformance
# AddENKeyboard
# EnableNumlock
# SetSoundSchemeNone
# DisableStartupSound
# DisableChangingSoundScheme
### UI Tweaks ###
DisableActionCenter # EnableActionCenter
DisableLockScreen # EnableLockScreen
# DisableLockScreenRS1 # EnableLockScreenRS1
HideNetworkFromLockScreen # ShowNetworkOnLockScreen
HideShutdownFromLockScreen # ShowShutdownOnLockScreen
# DisableAeroShake # EnableAeroShake
DisableStickyKeys # EnableStickyKeys
ShowTaskManagerDetails # HideTaskManagerDetails
ShowFileOperationsDetails # HideFileOperationsDetails
# EnableFileDeleteConfirm # DisableFileDeleteConfirm
HideTaskbarSearch # ShowTaskbarSearchIcon # ShowTaskbarSearchBox
HideTaskView # ShowTaskView
ShowSmallTaskbarIcons # ShowLargeTaskbarIcons
SetTaskbarCombineWhenFull # SetTaskbarCombineNever # SetTaskbarCombineAlways
HideTaskbarPeopleIcon # ShowTaskbarPeopleIcon
ShowTrayIcons # HideTrayIcons
DisableSearchAppInStore # EnableSearchAppInStore
DisableNewAppPrompt # EnableNewAppPrompt
# HideRecentlyAddedApps # ShowRecentlyAddedApps
# SetControlPanelSmallIcons # SetControlPanelLargeIcons # SetControlPanelCategories
DisableShortcutInName # EnableShortcutInName
# HideShortcutArrow # ShowShortcutArrow
SetVisualFXPerformance # SetVisualFXAppearance
# EnableTitleBarColor # DisableTitleBarColor
# EnableDarkTheme # DisableDarkTheme
# AddENKeyboard # RemoveENKeyboard
# EnableNumlock # DisableNumlock
# SetSoundSchemeNone # SetSoundSchemeDefault
# DisableStartupSound # EnableStartupSound
# DisableChangingSoundScheme # EnableChangingSoundScheme
ShowKnownExtensions
ShowHiddenFiles
HideSelectCheckboxes
HideSyncNotifications
HideRecentShortcuts
SetExplorerThisPC
HideQuickAccess
ShowThisPCOnDesktop
# ShowUserFolderOnDesktop
HideDesktopFromThisPC
# HideDesktopFromExplorer
HideDocumentsFromThisPC
# HideDocumentsFromExplorer
HideDownloadsFromThisPC
# HideDownloadsFromExplorer
HideMusicFromThisPC
# HideMusicFromExplorer
HidePicturesFromThisPC
# HidePicturesFromExplorer
HideVideosFromThisPC
# HideVideosFromExplorer
Hide3DObjectsFromThisPC
# Hide3DObjectsFromExplorer
# DisableThumbnails
DisableThumbnailCache
DisableThumbsDBOnNetwork
### Explorer UI Tweaks ###
ShowKnownExtensions # HideKnownExtensions
ShowHiddenFiles # HideHiddenFiles
EnableNavPaneExpand # DisableNavPaneExpand
# EnableFldrSeparateProcess # DisableFldrSeparateProcess
# EnableRestoreFldrWindows # DisableRestoreFldrWindows
# DisableSharingWizard # EnableSharingWizard
# HideSelectCheckboxes # ShowSelectCheckboxes
HideSyncNotifications # ShowSyncNotifications
HideRecentShortcuts # ShowRecentShortcuts
SetExplorerThisPC # SetExplorerQuickAccess
HideQuickAccess # ShowQuickAccess
ShowThisPCOnDesktop # HideThisPCFromDesktop
# ShowUserFolderOnDesktop # HideUserFolderFromDesktop
# ShowControlPanelOnDesktop # HideControlPanelFromDesktop
HideDesktopFromThisPC # ShowDesktopInThisPC
# HideDesktopFromExplorer # ShowDesktopInExplorer
HideDocumentsFromThisPC # ShowDocumentsInThisPC
# HideDocumentsFromExplorer # ShowDocumentsInExplorer
HideDownloadsFromThisPC # ShowDownloadsInThisPC
# HideDownloadsFromExplorer # ShowDownloadsInExplorer
HideMusicFromThisPC # ShowMusicInThisPC
# HideMusicFromExplorer # ShowMusicInExplorer
HidePicturesFromThisPC # ShowPicturesInThisPC
# HidePicturesFromExplorer # ShowPicturesInExplorer
HideVideosFromThisPC # ShowVideosInThisPC
# HideVideosFromExplorer # ShowVideosInExplorer
Hide3DObjectsFromThisPC # Show3DObjectsInThisPC
# Hide3DObjectsFromExplorer # Show3DObjectsInExplorer
# HideIncludeInLibraryMenu # ShowIncludeInLibraryMenu
# HideGiveAccessToMenu # ShowGiveAccessToMenu
# HideShareMenu # ShowShareMenu
# DisableThumbnails # EnableThumbnails
DisableThumbnailCache # EnableThumbnailCache
DisableThumbsDBOnNetwork # EnableThumbsDBOnNetwork
DisableOneDrive
UninstallOneDrive
UninstallMsftBloat
UninstallThirdPartyBloat
# UninstallWindowsStore
DisableXboxFeatures
DisableAdobeFlash
DisableEdgeShortcutCreation
# UninstallMediaPlayer
# UninstallInternetExplorer
# UninstallWorkFolders
# InstallLinuxSubsystem
# InstallHyperV
SetPhotoViewerAssociation
AddPhotoViewerOpenWith
# UninstallPDFPrinter
UninstallXPSPrinter
RemoveFaxPrinter
# UninstallFaxAndScan
### Application Tweaks ###
DisableOneDrive # EnableOneDrive
UninstallOneDrive # InstallOneDrive
UninstallMsftBloat # InstallMsftBloat
UninstallThirdPartyBloat # InstallThirdPartyBloat
# UninstallWindowsStore # InstallWindowsStore
DisableXboxFeatures # EnableXboxFeatures
DisableAdobeFlash # EnableAdobeFlash
DisableEdgePreload # EnableEdgePreload
DisableEdgeShortcutCreation # EnableEdgeShortcutCreation
# UninstallMediaPlayer # InstallMediaPlayer
# UninstallInternetExplorer # InstallInternetExplorer
# UninstallWorkFolders # InstallWorkFolders
# UninstallPowerShellV2 # InstallPowerShellV2
# InstallLinuxSubsystem # UninstallLinuxSubsystem
# InstallHyperV # UninstallHyperV
# InstallNET23 # UninstallNET23
SetPhotoViewerAssociation # UnsetPhotoViewerAssociation
AddPhotoViewerOpenWith # RemovePhotoViewerOpenWith
# UninstallPDFPrinter # InstallPDFPrinter
UninstallXPSPrinter # InstallXPSPrinter
RemoveFaxPrinter # AddFaxPrinter
# UninstallFaxAndScan # InstallFaxAndScan
# HideServerManagerOnLogin
# DisableShutdownTracker
# DisablePasswordPolicy
# DisableCtrlAltDelLogin
# DisableIEEnhancedSecurity
# EnableAudio
### Server Specific Tweaks ###
# HideServerManagerOnLogin # ShowServerManagerOnLogin
# DisableShutdownTracker # EnableShutdownTracker
# DisablePasswordPolicy # EnablePasswordPolicy
# DisableCtrlAltDelLogin # EnableCtrlAltDelLogin
# DisableIEEnhancedSecurity # EnableIEEnhancedSecurity
# EnableAudio # DisableAudio
### Unpinning ###
# UnpinStartMenuTiles
# UnpinTaskbarIcons
### Auxiliary Functions ###
WaitForKey
Restart

133
README.md
View File

@@ -3,6 +3,7 @@
- [Usage](#usage)
- [FAQ](#faq)
- [Windows builds overview](#windows-builds-overview)
- [Advanced usage](#advanced-usage)
- [Maintaining own forks](#maintaining-own-forks)
- [Contribution guidelines](#contribution-guidelines)
@@ -10,38 +11,14 @@
## Description
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 is a PowerShell script for automation of routine tasks done after fresh installations of Windows 10 and Windows Server 2016 / 2019. 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.
&nbsp;
## 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.
If you just want to run the script with the default preset, download and unpack the [latest release](https://github.com/Disassembler0/Win10-Initial-Setup-Script/releases) and then simply double-click on the *Default.cmd* file and confirm *User Account Control* prompt. Make sure your account is a member of *Administrators* group as the script attempts to run with elevated privileges.
Alternatively copy also *Default.cmd* and *Default.preset* along with the *Win10.ps1* file, place all three of them into the same folder and then double-click on *Default.cmd* to run the script.
### Advanced usage
The script consists of separate functions, each of which contains one tweak. The functions can be grouped to *presets*. Preset is simply a list of function names which should be called. If you don't supply any specific preset, the default preset defined by `$tweaks` array in the beginning of the script will be applied. Any function which is not present or is commented in a preset will not be called, thus the corresponding tweak will not be applied.
To supply a customized preset, you can either pass the function names directly as parameters.
powershell.exe -NoProfile -ExecutionPolicy Bypass -File Win10.ps1 EnableFirewall EnableDefender
Or you can create a file where you write the function names (one function name per line, no commas, whitespaces allowed, comments on separate lines starting with `#`) and then pass the filename using *-preset* parameter.
Example of a preset file `mypreset.txt`:
# Security tweaks
EnableFirewall
EnableDefender
# UI tweaks
ShowKnownExtensions
ShowHiddenFiles
Command using the preset file above:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File Win10.ps1 -preset mypreset.txt
For even more advanced usage, refer to section [Maintaining own forks](#maintaining-own-forks).
The script supports command line options and parameters which can help you customize the tweak selection or even add your own custom tweaks, however these features require some basic knowledge of command line usage and PowerShell scripting. Refer to [Advanced usage](#advanced-usage) section for more details.
&nbsp;
@@ -56,11 +33,11 @@ For even more advanced usage, refer to section [Maintaining own forks](#maintain
**Q:** Which versions and editions of Windows are supported?
**A:** The script aims to be fully compatible with the most up-to-date 64bit version of Windows 10 receiving updates from semi-annual channel, however if you create your own preset and exclude the incompatible tweaks, it will work also on LTSB/LTSC and possibly also on 32bit systems. Vast majority of the tweaks will work on all Windows editions. Some of them rely on group policy settings, so there may be a few limitations for Home and Education editions.
**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.
**Q:** Can I run the script on Windows Server 2016 or 2019?
**A:** Yes. Starting from version 2.5, Windows Server 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.
**Q:** Can I run the script on Windows 7, 8, 8.1 or other versions of Windows?
**A:** No. Although some tweaks may work also on older versions of Windows, the script is developed only for Windows 10 and Windows Server 2016. There are no plans to support older versions.
**A:** No. Although some tweaks may work also on older versions of Windows, the script is developed only for Windows 10 and Windows Server 2016 / 2019. There are no plans to support older versions.
**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, most of the tweaks can be successfully applied only by 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. There are a few ways how this can be circumvented programmatically, but I'm not planning to include any 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.
@@ -68,7 +45,7 @@ For even more advanced usage, refer to section [Maintaining own forks](#maintain
**Q:** Did you test the script?
**A:** Yes. I'm testing new additions on up-to-date 64bit Home and Enterprise editions in VMs. I'm also regularly using it for all my home installations after all bigger updates.
**Q**: I've run the script and it did xxx, how can I undo it?
**Q**: I've run the script and it did something I don't like, how can I undo it?
**A:** For every tweak, there is also a corresponding function which restores the default settings. The default is considered freshly installed Windows 10 or Windows Server 2016 with no adjustments made during or after the installation. Use the tweaks to create and run new preset. Alternatively, since some functions are just automation for actions which can be done using GUI, find appropriate control and modify it manually.
**Q:** I've run the script and some controls are now greyed out and display message "*Some settings are hidden or managed by your organization*", why?
@@ -89,8 +66,8 @@ For even more advanced usage, refer to section [Maintaining own forks](#maintain
**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 a 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.
**Q:** I really like the script. Can I send a donation?
**A:** Feel free to send donations via [PayPal](https://www.paypal.me/Disassembler). Any amount is appreciated, but keep in mind that donations are completely voluntary and I'm not obliged to make any script adjustments in your favor regardless of the donated amount. You can also drop me a mail to discuss an alternative way.
&nbsp;
@@ -104,14 +81,86 @@ For even more advanced usage, refer to section [Maintaining own forks](#maintain
| 1703 | Redstone 2 (RS2) | Creators Update | 15063 |
| 1709 | Redstone 3 (RS3) | Fall Creators Update | 16299 |
| 1803 | Redstone 4 (RS4) | April 2018 Update | 17134 |
| 1809 | Redstone 5 (RS5) | October 2018 Update | 17763 |
&nbsp;
## Advanced usage
powershell.exe -NoProfile -ExecutionPolicy Bypass -File Win10.ps1 [-include filename] [-preset filename] [[!]tweakname]
-include filename load module with user-defined tweaks
-preset filename load preset with tweak names to apply
tweakname apply tweak with this particular name
!tweakname remove tweak with this particular name from selection
### Presets
The tweak library consists of separate idempotent functions, containing one tweak each. The functions can be grouped to *presets*. Preset is simply a list of function names which should be called. Any function which is not present or is commented in a preset will not be called, thus the corresponding tweak will not be applied. In order for the script to do something, you need to supply at least one tweak library via `-include` and at least one tweak name, either via `-preset` or directly as command line argument.
The tweak names can be prefixed with exclamation mark (`!`) which will instead cause the tweak to be removed from selection. This is useful in cases when you want to apply the whole preset, but omit a few specific tweaks in the current run. Alternatively, you can have a preset which "patches" another preset by adding and removing a small amount of tweaks.
To supply a customized preset, you can either pass the function names directly as arguments.
powershell.exe -NoProfile -ExecutionPolicy Bypass -File Win10.ps1 -include Win10.psm1 EnableFirewall EnableDefender
Or you can create a file where you write the function names (one function name per line, no commas or quotes, whitespaces allowed, comments starting with `#`) and then pass the filename using `-preset` parameter.
Example of a preset file `mypreset.txt`:
# Security tweaks
EnableFirewall
EnableDefender
# UI tweaks
ShowKnownExtensions
ShowHiddenFiles # Only hidden, not system
Command using the preset file above:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File Win10.ps1 -include Win10.psm1 -preset mypreset.txt
### Includes
The script also supports inclusion of custom tweaks from user-supplied modules passed via `-include` parameter. The content of the user-supplied module is completely up to the user, however it is strongly recommended to have the tweaks separated in respective functions as the main tweak library has. The user-supplied scripts are loaded into the main script via `Import-Module`, so the library should ideally be a `.psm1` PowerShell module.
Example of a user-supplied tweak library `mytweaks.psm1`:
```powershell
Function MyTweak1 {
Write-Output "Running MyTweak1..."
# Do something
}
Function MyTweak2 {
Write-Output "Running MyTweak2..."
# Do something else
}
```
Command using the script above:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File Win10.ps1 -include mytweaks.psm1 MyTweak1 MyTweak2
### Combination
All features described above can be combined. You can have a preset which includes both tweaks from the original script and your personal ones. Both `-include` and `-preset` options can be used more than once, so you can split your tweaks into groups and then combine them based on your current needs. The `-include` modules are always imported before the first tweak is applied, so the order of the command line parameters doesn't matter and neither does the order of the tweaks (except for `RequireAdmin`, which should always be called first and `Restart`, which should be always called last). It can happen that some tweaks are applied more than once during a singe run because you have them in multiple presets. That shouldn't cause any problems as the tweaks are idempotent.
Example of a preset file `otherpreset.txt`:
MyTweak1
MyTweak2
!ShowHiddenFiles # Will remove the tweak from selection
WaitForKey
Command using all three examples combined:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File Win10.ps1 -include Win10.psm1 -include mytweaks.psm1 -preset mypreset.txt -preset otherpreset.txt Restart
&nbsp;
## Maintaining own forks
The easiest way how to customize the script settings it is to create your own preset file. For easy start, you can base it on the *Default.cmd* and *Default.preset* and maintain just that. If you choose to fork the script anyway and adjust the defaults directly in the script instead, then all you have to modify is the `$tweaks` array in the beginning of the script. You don't need to comment or remove the actual functions, because if they are not called, they are not used.
The easiest way to customize the script settings it is to create your own preset and, if needed, your own tweak scripts as described above. For easy start, you can base the modifications on the *Default.cmd* and *Default.preset* and maintain just that. If you choose to fork the script anyway, you don't need to comment or remove the actual functions in *Win10.psm1*, because if they are not called, they are not used.
If you wish to make more elaborate modifications and incorporate some personal tweaks or adjustments, the I suggest doing it in a following way:
If you wish to make more elaborate modifications of the basic script and incorporate some personal tweaks or adjustments, then I suggest doing it in a following way:
1. Fork the repository on GitHub (obviously).
2. Clone your fork on your computer.
@@ -121,14 +170,14 @@ If you wish to make more elaborate modifications and incorporate some personal t
cd Win10-Initial-Setup-Script
```
3. Add the original repository as a remote.
3. Add the original repository as a remote (*upstream*).
```
git remote add upstream https://github.com/Disassembler0/Win10-Initial-Setup-Script
```
4. Commit your modifications as you see fit.
5. Once there are new additions in the upstream commited by me, create a temporary branch, fetch the changes and reset the branch to be identical with my repository.
5. Once there are new additions in the upstream, create a temporary branch, fetch the changes and reset the branch to be identical with this repository.
```
git branch upstream
@@ -163,7 +212,7 @@ Following is a list of rules which I'm trying to apply in this project. The rule
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, e.g. `SetCurrentNetworkPrivate` and `SetCurrentNetworkPublic`.
### Revert functions
Always add a function with opposite name (or equivalent) which reverts the behavior 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.
Always add a function with opposite name (or equivalent) which reverts the behavior to default. The default is considered freshly installed Windows 10 or Windows Server 2016 / 2019 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're 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.
@@ -172,16 +221,16 @@ Check if there isn't already a function with similar purpose as the one you're t
Try to group functions thematically. There are already several major groups (privacy, security, services etc.), 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 preset
Always add a reference to the tweak and its revert function in the `$tweaks` array containing the default set of tweaks. 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 the *Default.preset* file.
Always add a reference to the tweak and its revert function in the *Default.preset*. Add references to both functions on the same line (mind the spaces) 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).
### 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 (e.g. using `-Confirm:$false`). The only acceptable output is from the `Write-Output` cmdlets in the beginning of each function and from non-suppressible cmdlets like `Remove-AppxPackage`.
Suppress all output generated by commands and cmdlets using `| Out-Null` or `-ErrorAction SilentlyContinue` where applicable. Whenever an input is needed, use appropriate arguments to suppress the prompt and programmatically provide values for the command to run (e.g. using `-Confirm:$false`). The only acceptable output is from the `Write-Output` 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 the gaps. When you need to use `HKEY_USERS` registry hive, always add following snippet before the registry modification to ensure portability.
Create the registry keys only if they don't exist on fresh installation if Windows 10 or Windows Server 2016 / 2019. 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 the 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:")) {
@@ -190,7 +239,7 @@ If (!(Test-Path "HKU:")) {
```
### 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.
Star Wars jokes aside, don't use `-Force` option 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-Output` 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-Output` in present continuous with ellipsis (resp. three dots) at the end.

2695
Win10.ps1

File diff suppressed because it is too large Load Diff

2985
Win10.psm1 Normal file

File diff suppressed because it is too large Load Diff