302 Commits

Author SHA1 Message Date
Disassembler
33ea31d09c Add -AllUsers support for bloatware, related to #165, #239 2019-05-31 21:33:26 +02:00
Disassembler
3155383689 Add "Disable nightly wake-up for Automatic Maintenance", closes #240 2019-05-31 19:04:03 +02:00
Disassembler
f4c9bbab69 Simplify Disable/EnableCortana 2019-05-31 16:15:07 +02:00
r3incarnat0r
05d4790009 Disable more Telemetry, CEIP and Cortana keys (#223) 2019-05-31 16:13:02 +02:00
Disassembler
95a977a90c Merge branch 'r3incarnat0r-features', closes #210 2019-05-31 15:06:10 +02:00
Disassembler
241c2b336d Move DisableSensors to privacy tweaks, Remove old "DisableLocationTracking" 2019-05-31 15:05:46 +02:00
Disassembler
cd845fa123 Merge branch 'features' of git://github.com/r3incarnat0r/Win10-Initial-Setup-Script into r3incarnat0r-features 2019-05-31 15:03:10 +02:00
Disassembler
5335241c97 Add -log parameter for transcript output, reimplements #207 2019-05-31 13:24:17 +02:00
Disassembler
1070655187 Add "Disable Fullscreen optimizations", closes #209 2019-05-30 23:49:30 +02:00
Disassembler
7f304634d3 Add "Disable Internet Connection Sharing", closes #234 2019-05-30 22:35:30 +02:00
Disassembler
a9fa1d241b Apply coding style for Enable/DisableVerboseStatus 2019-05-30 16:55:12 +02:00
Disassembler
3ded96eeaa Reorder and add comment for Microsoft.Advertising.Xaml 2019-05-30 15:48:22 +02:00
Disassembler
5db2e9edda Add "Enable NTFS long paths", closes #233 2019-05-25 17:49:53 +02:00
Disassembler
c37015a0ad Add "Enable Clipboard History", closes #231 (thx @Ash258) 2019-05-25 17:42:49 +02:00
Disassembler
5c29297005 Add and reorder some more bloatware to uninstall, closes #211 2019-05-25 17:29:45 +02:00
Disassembler
2339aa6691 Add "Hide Recycle Bin From Desktop" + "Show Network On Desktop", reimplements #228 (thx @mcavallo-git) 2019-05-25 16:58:51 +02:00
Disassembler
1e8a668271 Fix some mess in ordering, add clarification for DEP options
(No functional changes)
2019-05-25 16:48:59 +02:00
shaunography
5bd2f62c4e Add "Disable NetBIOS" (#226) 2019-05-25 16:39:40 +02:00
Conder000
30f93c340f Add "Disable F1 Help key" (#221) 2019-05-25 16:30:49 +02:00
Disassembler
130db064bd Add "Disable accessibility keys prompts", reimplements #213 (thx @r3incarnat0r) 2019-05-25 15:09:47 +02:00
r3incarnat0r
bd02d4322c Update bloatware and subscribed content definitions (#208) 2019-05-25 14:52:28 +02:00
Zweikeks
47f8b9dede Complement explorer folder options (#206) 2019-05-25 14:37:44 +02:00
sippi90
30af458827 Add "Disable Lock screen Blur" (#204) 2019-05-25 13:40:21 +02:00
Pablo
ed35417025 Add "Disable Windows Update automatic downloads" (#203) 2019-05-25 13:33:29 +02:00
mrcrutch
14f2f2caee Add "Disable First Logon Animation" (#202) 2019-05-25 13:25:23 +02:00
CruzMarcio
0138d07863 Add verbose startup/shutdown status messages (#198) 2019-05-25 13:16:25 +02:00
Disassembler
6df419cf3f Add 1903 to Windows builds overview 2019-05-25 13:04:42 +02:00
Disassembler
ac7a141a75 Align DiagTrack and dmwappushservice service names with 1809 naming 2019-05-25 09:50:35 +02:00
Disassembler
7017a38e4e Update "Enable Remote Desktop" to leave Network Level Authentication enabled 2019-05-25 09:26:36 +02:00
Martin Hujer
e536019794 DisableSMBServer: add note regarding Docker (#217), closes #216 2019-02-23 08:44:48 +01:00
r3incarnat0r
abc2aefb5e Add new sensor and service tweaks (beta2)
Removed DisableAutoRotation:
I tested today and does not work as I expected. I put here this Sensors GPO instead...

DisableSensors:
Sensor features like autorotation are disabled. Autorotation button is removed from Action Center. Unfortunately I couldn't any detailed info what sensors exactly does it affect.

DisableCamera:
Disables use of camera devices. Settings\Privacy\Camera becomes "managed by organization".
2019-02-18 20:31:04 +01:00
r3incarnat0r
1006b2648d Add new sensor and service tweaks (beta)
DisableLocation:
GPO to disable location related features. Location settings become "managed by organization".

DisableBiometrics:
GPO to disable biometric features. For example Windows Hello settings become "managed by organization".

DisableAutoRotation:
Machine-level tweak to disable auto rotation feature. For example makes the Action Center Rotation button greyed out. Autorotation is nice for tablet  and mobile-oriented devices, but annoying if using regular laptops like EliteBook, as I personally experienced.

DisableMediaSharing:
GPO to prevent media sharing and streaming. Network and Sharing Center\Media streaming options will show a message that Media streaming is disabled by group policy etc.
2019-02-17 18:48:36 +01:00
Disassembler
b3b12239ec Disable Game mode as part of "EnableXboxFeatures", resolves #205 2019-02-14 23:07:15 +01:00
r3incarnat0r
0129698032 Update ThirdPartyBloat (#200) 2019-02-09 21:02:01 +01:00
Disassembler
f49b932407 v3.6, 2019-01-28
- Add "Disable IE first run wizard" (thx @sippi90)
 - Add "Disable Modern UI swap file" (thx gtein)
 - Add "Disable enhanced pointer precision"
 - Add "Enable clearing of recent files on exit" (thx @r3incarnat0r)
 - Add "Disable recent files lists" (thx @r3incarnat0r)
 - Reimplement HideMostUsedApps using GPO (thx @r3incarnat0r)
 - *BREAKING* Removed HideRecentJumplists (superseded by DisableRecentFiles)
 - Update UninstallMsftBloat to not remove Snipping tool
 - Update DisableTelemetry to not report KMS client activation data (thx @wallrik)
 - Fix main execution loop when the script is called by another PowerShell process
2019-01-28 15:22:29 +01:00
Disassembler
159626f45b Add "Disable enhanced pointer precision" 2019-01-27 23:17:15 +01:00
r3incarnat0r
3b582a1f59 Add tweaks for disabling and cleanup of recent items (#159)
- Add "EnableClearRecentFiles" for cleanup on every logout
- Add "DisableRecentFiles" to not create MRU lists at all
- Add previously removed "HideMostUsedApps", this time via GPO
- Removed HideRecentJumplists (superseded by DisableRecentFiles)
2019-01-27 21:55:37 +01:00
Disassembler
53058b1322 Update DisableTelemetry to not report KMS client activation data, closes #195 (thx @wallrik) 2019-01-27 14:55:11 +01:00
Disassembler
031848fcb9 Add "Disable Modern UI swap file", closes #190 (thx gtein) 2019-01-27 14:13:07 +01:00
Disassembler
e9d329f3d2 Use script scope instead of global for preset compilation, fixes #196 2019-01-19 10:25:21 +01:00
Disassembler
7062510cc1 Don't remove Screen Sketch as it replaces Snipping tool, closes #193 2019-01-09 23:57:51 +01:00
sippi90
0f26a47e0d Add "Disable IE first run wizard" (#189) 2018-12-26 22:16:28 +01:00
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
Disassembler
3b8fc957c1 v2.21, 2018-08-27
- Improve UninstallOneDrive in multi-user environment (thx @chiva)
 - Improve SetTaskbarCombine* on multi-monitor setups (thx @kroimon)
 - Improve DisableTelemetry to not block certain updates (thx @T4CC)
 - *BREAKING* Split DisableThumbsDB into DisableThumbnailCache and DisableThumbsDBOnNetwork (thx @r3incarnat0r)
 - Add DisableWebLangList (thx @agsimmons)
 - Add "Show/Hide item selection checkboxes" (thx @Tikus)
 - Add "Uninstall Windows Fax and Scan Services" (thx @kroimon)
 - Add sound scheme related tweaks (thx @r3incarnat0r)
 - Add "HideQuickAccess" (thx @driscollw)
 - Add "Disable NCSI active test" (thx @antipatico)
 - Add "Hide Account Protection warning"
 - Add "Disable Edge desktop shortcut creation"
 - Add more keys to DisableAppSuggestion
 - Add more checks for DisableWiFiSense
 - Update "ShowTrayIcons" to use GPO (thx @driscollw)
 - Update SetP2PUpdate* tweaks to support current builds
 - Remove more and more bloatware
 - Fix typo in Enable/DisableHibernation
 - Update and clarify bunch of comments
2018-08-27 14:48:35 +02:00
Disassembler
d19e243a05 Add more Msft + Xbox packages to uninstall 2018-08-25 08:26:03 +02:00
Disassembler
c540b0e7ed Add remark to "UninstallFaxAndScan" 2018-08-25 08:21:44 +02:00
Disassembler
191e820100 Add "Disable NCSI active test", reimplements and closes #111 2018-08-23 23:25:05 +02:00
Disassembler
66953faeb6 Disable even more suggestions 2018-08-23 18:54:28 +02:00
Disassembler
70aee80559 Update SetP2PUpdate* tweaks, closes #116 (thx @Dvorak-Stepan) 2018-08-23 17:55:06 +02:00
Disassembler
8dfe56cf2e Update "ShowTrayIcons" to use GPO, closes #114 (thx @driscollw) 2018-08-23 16:01:18 +02:00
Disassembler
4c81d1cff2 Add "HideQuickAccess", closes #113 (thx @driscollw) 2018-08-23 16:00:41 +02:00
Disassembler
9e6c3d6ed4 Remove old "Show most used apps" from DisableAppSuggestions, closes #110 2018-08-23 15:31:59 +02:00
Disassembler
33d4a18633 Remove even more bloatware, related to #101 2018-08-23 14:51:50 +02:00
r3incarnat0r
fb91d9df66 Add sound scheme related tweaks (#109)
Add sound scheme related tweaks
2018-08-23 14:45:36 +02:00
Disassembler
80e9c04861 Fix typo in Enable/DisableHibernation, closes #123 2018-07-26 12:38:31 +02:00
Disassembler
22fb376831 Add more checks for Enable/DisableWiFiSense, fixes #122 2018-07-25 22:30:33 +02:00
Disassembler
3c9d6ea092 Fix forgotten rename, closes #105 2018-05-24 08:25:56 +02:00
kroimon
ab4e763fc1 Add "Uninstall Windows Fax and Scan Services" (#103) 2018-05-23 17:46:41 +02:00
kroimon
ae9998fd4a Use absolute paths in Default.cmd file (#104) 2018-05-23 17:34:30 +02:00
Disassembler
7c869b377c Update EnableMeltdownCompatFlag note, closes #98 (thx @Zero3) 2018-05-14 20:14:36 +02:00
Tikus
7313970f86 Added option to show/hide checkboxes next to items in explorer (#97) 2018-05-14 13:50:40 +02:00
Disassembler
c5cb2556a8 Add "Disable Edge desktop shortcut creation" 2018-05-09 09:26:47 +02:00
Andrew Simmons
d354c414b6 Add DisableWebLangList, enhance DisableAppSuggestions (#90) 2018-05-09 09:12:21 +02:00
r3incarnat0r
44bb2b92dd Split DisableThumbsDB (#95), closes #85 2018-05-09 08:55:37 +02:00
Disassembler
ca8c6c6859 Add "Hide Account Protection warning" 2018-05-09 08:49:24 +02:00
Disassembler
1f1412f68d Add FAQ about GPO effects, closes #84 2018-05-05 17:06:42 +02:00
Disassembler
e3af426cb5 Update RS4 build info 2018-05-04 11:20:07 +02:00
Disassembler
fee2f345e9 Update "DisableTelemetry" to disallow build previews, closes #92 (thx @T4CC) 2018-05-04 11:15:48 +02:00
kroimon
f8727c682c Set taskbar buttons combination modes for multi-monitor setups. (#91) 2018-05-01 22:00:06 +02:00
Andrew Simmons
29a22a253c Add Lenovo AppxPackage bloatware (#89) 2018-05-01 19:54:07 +02:00
Disassembler
7e39e3966f Fix a typo in comment, closes #88 2018-04-30 11:45:09 +02:00
Disassembler
f3b74a6504 Fix newlines in the default preset and rename bat to cmd, related to #85 2018-04-26 09:46:14 +02:00
Santiago Reig
b6205f65fc Remove prompt when stopping OneDrive service (#82) 2018-04-18 12:24:07 +02:00
Disassembler
c4a3e1a5c1 v2.20, 2018-04-15 - RS4 (1803) ready
Lots of changes, few of them BREAKING, hence the bigger version bump.
 - Add "DisableActivityHistory"
 - Add "DisableSMBServer" (thx @Phenix66)
 - Add "Disable LLMNR"
 - Add "Enable Core Isolation Memory Integrity"
 - Add more bloatware for removal (thx @jnslmk and @agsimmons)
 - Update "UnpinStartMenuTiles" for 1803 (thx @sippi90)
 - Update "Disable Web Search" for 1803
 - Update "Disable Location Tracking" for 1803
 - Update "DisableAppSuggestions" to remove ads from Task View
 - *BREAKING* Update "ShowTaskbarSearch*" to add type choice (thx @Letouane)
 - *BREAKING* Split "ShowTaskbarTitles" to add type choice (thx @sztanpet)
 - *BREAKING* Update "SetControlPanel*" to add icon size choice
 - Update "DisableSmartScreen" to use GPO
 - Update "DisableFeedback" to use GPO
 - Update "DisableAdvertisingID" to use GPO
 - Update "DisableSharedExperiences" to use GPO
 - Update "DisableAdobeFlash" to use GPO
 - Update "DisableUpdateDriver" to use GPO and set more keys
 - Move "DisableTailoredExperiences" to separate tweak and use GPO
 - Update "UninstallInternetExplorer" to support also x86
 - Update "InstallLinuxSubsystem" compatibility with old OS builds
 - Update "DisableDefender" compatibility with old OS builds
 - Update "DisableXboxFeatures" compatibility with old OS builds
 - Update "SetP2PUpdateLocal" and comment from default preset
 - Comment "DisableHomeGroups" removed in 1803
 - *BREAKING* Merge "DisableLockScreenSpotlight" into "DisableAppSuggestions"
 - *BREAKING* Remove "DisableAutoLogger" as it was never useful
 - Remove test files as they seemed to be confusing
 - Few other minor improvements
 - Documentation update
2018-04-15 13:29:35 +02:00
Disassembler
43f70e46a6 Update README.md into mini-wiki 2018-04-15 12:54:37 +02:00
Disassembler
603f5a74fe Split "ShowTaskbarTitles" to add type choice, closes #78 (thx @sztanpet) 2018-04-15 10:14:21 +02:00
Disassembler
b5eb8e42c1 Update "ShowTaskbarSearch*" to add type choice, reimplements #55 (thx @Letouane) 2018-04-15 10:14:12 +02:00
Disassembler
94b8a92278 Update "SetControlPanel*" to add icon size choice
Also set them per-user and don't trigger antimalware
2018-04-15 10:14:04 +02:00
Disassembler
f66f0d0bb4 Few more build restrictions and notes 2018-04-15 10:13:44 +02:00
Disassembler
b44f65dc60 Suppress XboxIdentityProvider error on pre-1607 builds 2018-04-14 22:42:40 +02:00
Disassembler
9decdac904 Optimize "ShowTaskManagerDetails" and add a note 2018-04-14 22:37:01 +02:00
Disassembler
db20580134 Update backwards compatibility of "DisableDefender" 2018-04-14 19:07:19 +02:00
Disassembler
2f33a2a17a Add more bloatware for removal and sort alphabetically, closes #76, closes #77 (thx @jnslmk and @agsimmons) 2018-04-14 16:39:12 +02:00
Disassembler
fe299da41e Update "UninstallInternetExplorer" to support also x86, related to #62 2018-04-14 16:15:53 +02:00
Disassembler
488baa111f Update "UnpinStartMenuTiles" for 1803, closes #71 (thx @sippi90) 2018-04-14 12:23:32 +02:00
Disassembler
5fa6f4409c Update "InstallLinuxSubsystem" compatibility with old OS builds 2018-04-14 12:12:50 +02:00
Disassembler
88cac9efa8 Shave off some wait time from "UninstallOneDrive" 2018-04-14 10:57:40 +02:00
Disassembler
4ef4163172 Save a few characters by converting hex sequences to decimal 2018-04-14 10:55:55 +02:00
Disassembler
8d0ad4c9c8 Update "DisableAdobeFlash" to use GPO 2018-04-14 10:55:48 +02:00
Disassembler
f152b727ed Add note to "DisableLockScreenRS1" 2018-04-14 10:55:42 +02:00
Disassembler
98e106b78a Update "DisableSharedExperiences" to use GPO 2018-04-14 10:55:35 +02:00
Disassembler
d4fe0001a9 Comment "DisableHomeGroups" as they were removed in 1803 2018-04-14 10:55:28 +02:00
Disassembler
03e501b481 Update "DisableUpdateDriver" to use GPO and set more keys 2018-04-14 10:55:20 +02:00
Disassembler
2c79e6fb1f Add "Enable Core Isolation Memory Integrity" 2018-04-14 10:54:58 +02:00
Disassembler
bf97bb5f7b Add "Disable LLMNR" 2018-04-14 10:19:38 +02:00
Disassembler
3e16baf9fa Update "DisableAdvertisingID" to use GPO 2018-04-14 10:18:51 +02:00
Disassembler
39ff492b70 Move "DisableTailoredExperiences" to separate tweak and use GPO 2018-04-14 10:18:09 +02:00
Disassembler
793e98af93 Update "DisableFeedback" to use GPO
(1507 don't have the GPO, so the HKCU stays)
2018-04-14 10:00:22 +02:00
Disassembler
9f755fab3d Add "DisableSMBServer", closes #65 (thx @Phenix66) 2018-04-14 10:00:08 +02:00
Disassembler
eb82e5b855 Remove "DisableAutoLogger" as it was never useful 2018-04-14 10:00:00 +02:00
Disassembler
749150e9e2 Slim down "SetP2PUpdateLocal" and comment from default preset 2018-04-14 09:59:46 +02:00
Disassembler
4b8a519ee0 Update "Disable Location Tracking" for 1803 2018-04-14 09:59:35 +02:00
Disassembler
12b6cef3d1 Add "DisableActivityHistory" 2018-04-14 09:59:27 +02:00
Disassembler
657d353cab Merge "DisableLockScreenSpotlight" into "DisableAppSuggestions" 2018-04-14 09:59:17 +02:00
Disassembler
fea6de8104 Update "DisableAppSuggestions" to remove ads from Task View 2018-04-14 09:58:59 +02:00
Disassembler
7b3398fdd7 Update "Disable Web Search" for 1803 2018-04-14 09:58:51 +02:00
Disassembler
7b653187a4 Update "DisableSmartScreen" to use GPO 2018-04-14 09:58:19 +02:00
Disassembler
9332fd4e7b Remove the test preset + move the default preset one level up 2018-04-14 09:57:15 +02:00
Disassembler
cf5af8ab17 More cleanup after #66 (@Conder000 !!!), fixes #69 2018-04-07 09:45:43 +02:00
Disassembler
dc0a121435 v2.14, 2018-04-06
- Fix and reorganize Telemetry tweaks
 - Update "Enable Remote Desktop" to enable firewall rules (thx @timmytandian)
 - Add "Uninstall Internet Explorer" (thx @mhujer)
 - Add "Enable strong cryptography for .NET Framework" (thx @Sta2s)
 - Add "Enable Audio" for Server
 - Add default preset for making custom presets easier (thx @Conder000)
2018-04-06 16:18:42 +02:00
Disassembler
1ab60c363e Add "Enable Audio" (for Server) 2018-04-06 15:54:35 +02:00
Disassembler
575b7ef26a Add "Enable strong cryptography for .NET Framework", closes #64 (thx @Sta2s) 2018-04-06 14:41:03 +02:00
Disassembler
7be6666d1d Cleanup after #66 2018-04-06 14:37:55 +02:00
Martin Hujer
4df2b8cc44 Add "Uninstall Internet Explorer" (#62) 2018-04-06 14:20:50 +02:00
Disassembler
9dcbd908f4 Add firewall rules modification to Remote Desktop tweaks, closes #63 2018-04-06 14:17:02 +02:00
Disassembler
cf870330c8 Fix and reorganize Telemetry tweaks, closes #67 2018-04-06 13:57:55 +02:00
Conder000
3bdb745e0f Added default preset to the /test folder (#66) 2018-04-06 13:19:28 +02:00
Disassembler
5fe7d91b79 v2.13, 2018-03-18
- Add "Disable Windows Script Host"
 - Add "Uninstall Microsoft Print to PDF"
 - Add "Uninstall Microsoft XPS Document Writer"
 - Add "Remove Default Fax Printer" (thx @MisterDuval)
 - Add more 3rd party bloatware for removal (thx @iamteerawut)
 - Add more Microsoft bloatware for removal
 - Replace Write-Host cmdlet with Write-Output
 - Reorganize and regroup the tweaks a bit
2018-03-18 20:22:44 +01:00
Disassembler
615ff8cacc Add tweaks for default printers uninstallation, reimplements and closes #58 (thx @MisterDuval) 2018-03-18 20:12:03 +01:00
Disassembler
42fde5e945 Remove additional Microsoft bloatware 2018-03-18 12:15:14 +01:00
Disassembler
e3570d5f28 Add "Disable Windows Script Host" 2018-03-18 11:41:57 +01:00
Disassembler
7de3e81c79 Reorganize and regroup tweaks - no functional changes 2018-03-18 11:19:28 +01:00
Disassembler
a41c0eea7b Replace Write-Host cmdlet with Write-Output, closes #44 once and for all 2018-03-18 09:58:24 +01:00
Disassembler
ccc65c4ad3 Remove additonal 3rd party bloatware, closes #60 (thx @iamteerawut) 2018-03-18 09:50:01 +01:00
Disassembler
17a5c51e66 Add a warning for DisableTelemetry, kinda sorta resolves #57 2018-03-18 09:46:31 +01:00
Disassembler
1eaa9d58bd Unify coding style 2018-01-10 08:45:22 +01:00
Disassembler
e24132e074 v2.12, 2018-01-09
- Add "Enable Meltdown (CVE-2017-5754) compatibility flag"
 - Add "Unpin Start Menu tiles" + "Unpin Taskbar icons" (kinda experimental)
 - Fix "Enable Storage Sense" by setting more registries (thx @zerolagaux)
 - Add more 3rd bloatware for removal (thx @zerolagaux)
 - Comment "Enable Controlled Folder Access" from default preset as it conflicts with some installers
 - Disable scheduled tasks related to Telemetry, Feedback and error reporting (thx @xomx)
2018-01-09 16:49:57 +01:00
Disassembler
04b85dac57 Disable tasks related to Telemetry, Feedback and error reporting, closes #37 for now (thx @xomx) 2018-01-09 16:49:08 +01:00
Disassembler
18e75afef6 Add "Unpin Start Menu tiles" + "Unpin Taskbar icons", closes #8 2018-01-09 14:05:59 +01:00
Disassembler
46f3881d2b Unify coding style for Remove-Item, Get-ChildItem and ForEach 2018-01-09 14:02:38 +01:00
Disassembler
b67276058b Remove even more 3rd bloatware, closes #54 (thx @zerolagaux) 2018-01-09 10:13:18 +01:00
Disassembler
8d468e7df1 Set more EnableStorageSense registries, fixes #53 (thx @zerolagaux) 2018-01-09 10:13:00 +01:00
Disassembler
ebaa3d0ba7 Add "Enable Meltdown (CVE-2017-5754) compatibility flag" (commented by default) 2018-01-08 20:54:01 +01:00
Disassembler
e9b915a2da Comment EnableCtrldFolderAccess from default preset as it conflicts with some installers + Fix typo. 2017-12-30 13:24:43 +01:00
Disassembler
3e1c7feeb6 v2.11, 2017-12-27
- Add "Disable Windows Defender Cloud" (thx @bajasoft)
 - Add "Set Control Panel view to icons (Classic)" (thx @DavidBrockmeier)
 - Add "Disable automatic installation of network devices"
 - Add "Disable Sleep start menu and keyboard button" (thx @thecek)
 - Add "Disable display and sleep mode timeouts" (thx @thecek)
 - Add more registry keys for "Disable Wi-Fi Sense" (thx @kukubau)
 - Remove even more bloatware (thx @thecek)
 - Update "Disable Background apps" to not break start menu search
 - Add both ways of hiding Library icons in This PC (either only in This PC or also in other Explorer windows like Personal Folders and open/save dialog)
2017-12-27 19:49:14 +01:00
Disassembler
491be4acc2 Suppress few more warnings when adding/removing nonexistant keys 2017-12-27 19:42:33 +01:00
Disassembler
538a1fdd39 Reintroduce post-1.5 way of hiding icons in Explorer once again
(Previously reverted in 157bf35, related to #36. Sorry for the bloat, I really hate these icons)
2017-12-27 17:58:28 +01:00
Disassembler
50362f37e1 Update DisableBackgroundApps to not break start menu search, again closes #42 2017-12-27 15:52:52 +01:00
Disassembler
871cad8660 Add "Disable display and sleep mode timeouts", closes #50, thx @thecek 2017-12-27 14:19:12 +01:00
Disassembler
5eb8a84dce Add "Disable Sleep start menu and keyboard button" as suggested in #50 2017-12-27 13:56:50 +01:00
Disassembler
d93d5ac4df Add more registry keys for "Disable Wi-Fi Sense", closes #48, thx @kukubau 2017-12-27 10:54:36 +01:00
Disassembler
b6840e2ba2 Add "Disable automatic installation of network devices", closes #47 2017-12-27 10:46:41 +01:00
Disassembler
6830298064 Add "Set Control Panel view to icons (Classic)", reimplements #45, thx @DavidBrockmeier 2017-12-27 09:56:20 +01:00
Disassembler
39a1d9022d Remove more bloatware, closes #43 (thx @thecek) 2017-12-01 16:59:12 +01:00
Disassembler
3f9e7e84a1 Another take on "Disable Background apps" related to #40 and #42 2017-11-13 19:10:19 +01:00
Disassembler
59b2000f6c Fix typo in default preset 2017-11-11 20:27:24 +01:00
Disassembler
b1447c0fc9 Don't apply "DisableBackgroundApps" in default preset, closes #40
+ Add tests for "EnableDefenderCloud"
2017-11-10 16:24:54 +01:00
Jan Bajer
c79ed38b66 Add "Disable Windows Defender Cloud" (#41) 2017-11-10 14:06:35 +01:00
Disassembler
c935abafa3 v2.10, 2017-11-09
- Add "Enable Controlled Folder Access"
- Add "Disable Lock screen Spotlight"
- Add "Enable Storage Sense"
- Add "Show User Folder on desktop"
- Add "Disable Background application access"
- Update "Disable Start Menu suggestions" (thx @Dvorak-Stepan)
- Update bloatware removal list with Print3D and Xbox.TCUI
- Update "Disable Advertising ID" to disable also advertisement telemetry
- Merge "DisableConsumerApps" and "DisableStartSuggestions" into "DisableAppSuggestions"
- Update the way of hiding icons in This PC, so they're not hidden also in personal folders
2017-11-10 00:06:10 +01:00
Disassembler
14bf1e8477 Add additional check in "Disable Advertising ID", remove unnecessary -Force 2017-11-10 00:03:59 +01:00
Disassembler
2f8e43cc03 Add "Enable Storage Sense", closes #39 2017-11-09 23:34:39 +01:00
Disassembler
e0c9dd1df7 Add "Disable Background application access", related to #39 2017-11-09 22:33:04 +01:00
Disassembler
157bf356dc Revert to pre-1.5 way of hiding icons from This PC, kinda fixes #36.
Less reliable, but doesn't hide them in Personal folders.
2017-11-09 22:07:54 +01:00
Disassembler
d1089630c5 Add "Show User Folder on desktop", related to #39 2017-11-09 21:40:33 +01:00
Disassembler
936e0da7ec Merge DisableConsumerApps into DisableAppSuggestions, closes #35 2017-11-09 21:27:55 +01:00
Disassembler
71b8166b9e Rename DisableStartSuggestions to DisableAppSuggestions and add few more Content Delivery Manager values, related to #35 2017-11-09 21:24:02 +01:00
Disassembler
23f19fd851 Add "Disable Lock screen Spotlight", related to #35 2017-11-09 21:08:39 +01:00
Disassembler
9c957d217c Fix typo in "Show network options on lock screen" registry hive 2017-11-09 21:08:14 +01:00
Disassembler
90deb26b55 Update "Disable Advertising ID" to disable also advertisement telemetry 2017-11-09 19:35:52 +01:00
Disassembler
dac835801a Add some more bloatware for removal, closes #38 2017-11-09 19:17:09 +01:00
Disassembler
ad09c6ec67 Update "Disable Start Menu suggestions" for 1709, closes #35 (thx @Dvorak-Stepan) 2017-10-31 14:04:32 +01:00
Disassembler
11dd5c64e5 Add "Enable Controlled Folder Access", closes #33 2017-10-27 14:50:44 +02:00
Disassembler0
1f67aedeab Clarify defaults and fix typo in README 2017-10-22 17:08:02 +02:00
Disassembler
94216899a5 v2.9, 2017-10-22
- Added "DisableSharedExperiences" (thx @DaNy3LL)
- Added "Hide3DObjectsFromThisPC"
- Added "DisableAdobeFlash"
- Commented out "DisableSMB1" as 1709 (RS3) disables it implicitly
2017-10-22 14:35:03 +02:00
Disassembler
d427ae7354 Normalize preset path while passing to elevated script, resolves #27 2017-10-22 14:33:47 +02:00
Disassembler0
8b88e2deeb Add a note about multi-user envs in README 2017-09-29 08:30:29 +02:00
Disassembler
3fa306ac8f Pass command line args into elevation call instead of function args, fixes #26 2017-09-10 23:35:06 +02:00
Disassembler
61763b3c63 v2.8, 2017-09-09
- Added "EnableFileDeleteConfirm" (thx @Conder000)
- Added "HideNetworkFromLockScreen"  (thx @Conder000)
- Added "HideShutdownFromLockScreen"
- Added "DisableThumbnails"
- Added "DisableThumbsDB" (thx @johnburnett)
- Added "DisableMapUpdates" (thx @DaNy3LL)
- Added more speedup tweaks for "SetVisualFXPerformance" (thx @johnburnett)
BREAKING CHANGES - update your presets:
- Added "RequireAdmin" for on-demand elevation (allows creation of non-elevated customizations)
- Renamed "RestrictUpdateP2P" to "SetP2PUpdateLocal"
- Renamed "LowerUAC" to "SetUACLow"
- Renamed "ExplorerThisPC" to "SetExplorerThisPC"
2017-09-09 13:35:40 +02:00
Disassembler
58ff7a00d1 Improve support for spaces in paths and preset file name 2017-09-09 12:27:13 +02:00
Disassembler
727bf0d09b Merge branch 'elevate-on-demand' 2017-09-09 10:31:39 +02:00
Disassembler
70033c0a11 Rename and adjust tweak names in accordance with guidelines 2017-09-09 10:20:53 +02:00
Disassembler
ef8e0074c4 Add contribution guidelines to README 2017-09-09 10:18:00 +02:00
Disassembler
2e93e01aa1 Add "DisableMapUpdates" 2017-09-09 09:38:36 +02:00
Disassembler
9da73e107a Add "DisableNoLoginShutdown" 2017-09-09 09:37:12 +02:00
Disassembler
db90cefd5b Add "DisableThumbnails" 2017-09-09 08:12:47 +02:00
Disassembler
303eaf737f Add more speedup tweaks for "SetVisualFXPerformance" based on #24 2017-09-09 08:11:31 +02:00
Disassembler
f5d849a32d Rearrange functions after merging 2017-09-09 08:10:51 +02:00
Disassembler0
8169e550ea Merge pull request #25 from johnburnett/disable-thumbs-db
Added Thumbs.db toggles
2017-09-09 08:06:37 +02:00
Disassembler0
fcae96daa4 Merge pull request #22 from Conder000/hidenetwork
Added HideNetworkFromLockScreen function
2017-09-09 08:06:30 +02:00
Disassembler0
2f20cacfdf Merge pull request #21 from Conder000/confirmfiledelete
Added EnableFileDeleteConfirmation function
2017-09-09 08:06:21 +02:00
John Burnett
4d419b722b Added Thumbs.db toggles 2017-09-07 22:34:20 -07:00
Conder000
4085887741 Grammar fix 2017-09-01 03:20:12 +02:00
Conder000
2fd170080e Added HideNetworkFromLockScreen function
* Added HideNetworkFromLockScreen function
* GPO equivalent: Do not display network selection UI
2017-09-01 02:48:32 +02:00
Conder000
f870886df7 Added EnableFileDeleteConfirmation function
* Added EnableFileDeleteConfirmation function
* GPO equivalent: Display confirmation dialog when deleting files
2017-09-01 02:36:40 +02:00
Disassembler
4167b3b6be v2.7, 2017-08-19
- Added more bloatware for removal (thx @Conder000)
- Added "Disable fast startup" (thx @Conder000)
- Added "Enable hibernation"
- Added "Set visual effects for performance"
- Modified "Disable Update Restart" to disable automatic wake-up from sleep (thx @Conder000)
- Modified "Disable Update Restart" to remove obsolete UxOption tweak used on pre-RS1 builds
- Fix errors while applying revert functions on untweaked systems
2017-08-19 20:50:54 +02:00
Disassembler
a2e9fede9f Fix errors while applying revert functions on untweaked systems (although it's not recommended) 2017-08-19 20:50:00 +02:00
Disassembler
ed1524589b Update FAQ based on #19 2017-08-19 20:02:13 +02:00
Disassembler
8f599210e3 Add "Set visual effects for performance/appearance" 2017-08-19 19:58:34 +02:00
Disassembler
1fe7cad283 Add "Enable hibernation" 2017-08-19 19:57:34 +02:00
Disassembler
90399bdd07 Modify "Disable Update Restart" to remove obsolete UxOption tweak used on pre-RS1 builds 2017-08-19 19:55:08 +02:00
Disassembler
3bc4e67d00 Add removal of "CAF9E577.Plex" 3rd party bloatware 2017-08-19 19:53:11 +02:00
Disassembler0
b31bfe5ee8 Merge pull request #18 from Conder000/winupdate
Added AUPowerManagement
2017-08-19 15:47:31 +02:00
Disassembler0
5cfec604ef Merge pull request #17 from Conder000/faststartup
Added DisableFastStartup function
2017-08-19 15:47:20 +02:00
Disassembler0
56845c817b Merge pull request #16 from Conder000/bloat
Added third party bloatware
2017-08-19 15:47:08 +02:00
Conder000
7934a1ad75 Added AUPowerManagement
* Added registry value AUPowerManagement=0 to DisableUpdateRestart function
* GPO equivalent: Enabling Windows Update Power Management to automatically wake up the system to install scheduled updates
2017-08-16 00:27:56 +02:00
Conder000
770059d362 Added DisableFastStartup function 2017-08-14 20:44:39 +02:00
Conder000
7fa9d1a1e5 Added third party bloatware
* Added some third party bloatware (Win10 v1703)
2017-08-13 01:08:54 +02:00
Disassembler0
4332b46084 Merge pull request #13 from alirobe/patch-1
add write-hosts for third party bloat functions
2017-08-02 07:26:55 +02:00
Ali Robertson
320590c2d5 add write-hosts for third party bloat install 2017-08-02 11:33:45 +10:00
Disassembler
1136c0b390 v2.6, 2017-07-31
- Add "Disable SuperFetch" (thx M. Schilling)
- Add "Disable Indexing" (thx M. Schilling)
- Split "Uninstall Bloatware" to "Uninstall Microsoft Bloatware" and "Uninstall 3rd party Bloatware" (thx @alirobe)
- Ignore warnings while stop/starting services
- Fix few typos and add few clarifications
2017-07-31 15:50:40 +02:00
Disassembler0
d163d09a22 Merge pull request #12 from alirobe/master
split MS bloat and 3rd party bloat
2017-07-31 15:48:21 +02:00
Disassembler
e62abd0cfc Move implicit privilege elevation to function. See #11 for details. 2017-07-29 19:12:31 +02:00
Ali Robertson
12064cd8be split bloat in test suite 2017-07-29 15:56:19 +10:00
Ali Robertson
83cda95ddf split MS bloat and 3rd party bloat 2017-07-29 15:25:00 +10:00
Disassembler
a7f3ced7e4 v2.5, 2017-06-13, WinServer2016 support added
- Add "Disable obsolete SMB 1.0 protocol"
- Add "Hide Server Manager after login" (Server, disabled by default)
- Add "Disable Shutdown Event Tracker" (Server, disabled by default)
- Add "Disable password complexity and maximum age requirements" (Server, disabled by default)
- Add "Disable Ctrl+Alt+Del requirement before login" (Server, disabled by default)
- Add "Disable Internet Explorer Enhanced Security Configuration" (Server, disabled by default)
- Update multiple tweaks to work properly (or at least not throw error) on Windows Server 2016
2017-06-13 23:17:17 +02:00
Disassembler
65a27e5ca1 Slim down the execution logic and move it to the end.
Allow for proper elevation of relative preset paths via setting working directory
2017-06-13 23:07:54 +02:00
Disassembler
428b94a367 Change line ending to CRLF 2017-06-13 23:05:23 +02:00
Disassembler
c0a3de5938 v2.4, 2017-06-08
- Add "Hide taskbar People icon"
- Add "Hide recent + frequent shortcuts"
- Add "Install Hyper-V" (disabled by default)
- Replace dism commands with native cmdlets
2017-06-08 14:13:20 +02:00
Disassembler
f89ba71646 Add presets used for development and testing 2017-06-08 14:05:59 +02:00
Disassembler0
e1b8c5ca8b Merge pull request #9 from Nerothos/master
Add/remove part for people icon in taskbar
2017-06-08 14:03:42 +02:00
Nerothos
ca84acf781 Add/remove part for people icon in taskbar 2017-05-16 08:50:17 +02:00
Disassembler
a7afe5aabe v2.3, 2017-05-08
- Add "Set current network profile to private"
- Add "Set unknown networks profile to private"
- Add "Show Task Manager details"
- Add "Set Data Execution Prevention (DEP) policy to OptOut", closes #7
- Update "Disable Firewall" to use GPO, which doesn't cause Security and Maintenance Center to complain loudly.
- Update "Uninstall OneDrive" to remove unnecessary directory check.
2017-05-08 17:57:33 +02:00
Disassembler
12cd8c522d Clarify work with preset files in readme, as I see some confusion in some people's forks. 2017-05-08 13:45:41 +02:00
Disassembler
60c9237983 v2.2, 2017-04-08
- Add "Show file operations details"
- Add "Hide sync provider notifications"
- Add "Uninstall Windows Store"
- Update "Disable SmartScreen" for Edge
- Update "Disable Windows Defender" for Creators Update
- Update "Uninstall default Microsoft application" to remove even more bloatware
- Update (and rename) "Disable Xbox features" to uninstall corresponding Xbox packages
- Update default preset to not apply settings decreasing security to make the new Defender Security Center happy {Advanced users use customized presets or have their own fork anyway)
2017-04-08 11:33:49 +02:00
Disassembler
6cdfc3292d Add a FAQ about multi-user environments, addressing #5 2017-02-24 17:59:13 +01:00
Disassembler
d5bb4a6782 Convert indentation in preset list to spaces for better readability on tabsize != 4 2017-02-08 20:42:58 +01:00
Disassembler
7df79cac16 v 2.1
- Add "Disable scheduled defragmentation" (disabled by default), closes #3
- Add "Set BIOS time to UTC" (disabled by default)
- Add "Disable installation of consumer experience applications"
- Add "Disable search for app in store for unknown extensions"
- Add "Disable 'How do you want to open this file?' prompt"
- Move Autorun and Autoplay from UI tweaks to service tweaks
- Update "Enable NumLock after startup" with a horrible hack which I'm ashamed of but gets the job done
- Suppres errors while removing nonexistant keys during Photo Viewer tweak reverts
- Change a way how the WaitForKey key press is handled
2017-02-08 20:32:57 +01:00
Disassembler
f3afde4551 Change a way of reinstalling provisioned packages to avoid errors on packages which were never installed 2017-02-08 20:04:19 +01:00
Disassembler
db7356151c - Add commented restore function counterparts
- Rename EnableLockScreenWorkaround to EnableLockScreenRS1
- Fix and clarify few more strings
2017-02-08 16:50:37 +01:00
Disassembler
e12cb11a0c Suppress errors while removing nonexistent registry keys 2017-01-08 22:30:02 +01:00
Disassembler
7d2ff6c103 v 2.0
- Add "Disable Error reporting"
 - Add "Disable offering of drivers through Windows Update"
 - Update "Disable Web Search in Start Menu"
 - Update "Disable Start Menu suggestions"
 - Update "Disable Cortana"
 - Update "Disable Windows Update automatic restart"
 - Update "Disable Xbox DVR"
2017-01-08 22:24:46 +01:00
Disassembler
cda81118fd Add readme and license 2017-01-08 22:21:25 +01:00
Disassembler
480788a251 Preset processing + default preset 2017-01-08 22:10:35 +01:00
Disassembler
c55d256c3a - Convert snippets to functions
- Fix some strings and naming
2017-01-08 20:20:47 +01:00
Disassembler
83c13edca2 v1.7, 2016-08-15
- Add Disable Lock screen workaround for Anniversary Update (commented)
- Disable Xbox DVR
2016-08-15 17:21:17 +02:00
Disassembler
ea25c9950c v1.6a, 2016-08-13
- Hide error on repeated Win Defender icon removal
- Remove one more bloatware
2016-08-13 16:38:38 +02:00
Disassembler
f444709b3e v1.6, 2016-08-07
- Disable more Telemetry keys
- Remove Win Defender icon from tray (added in Redstone)
- Remove more bloatware (added in Redstone)
- Enable NumLock after boot (commented by default)
- Install Linux Subsystem (added in Redstone, commented by default)
2016-08-07 23:04:04 +02:00
Disassembler
f65ad6fbaf Cosmetic changes only
- Capitalize "Software" and "System" registry keys
 - Replace "Computer" with "This PC" (which is the proper name)
2016-06-08 21:47:48 +02:00
6 changed files with 4064 additions and 612 deletions

1
Default.cmd Normal file
View File

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

216
Default.preset Normal file
View File

@@ -0,0 +1,216 @@
##########
# Win 10 / Server 2016 / Server 2019 Initial Setup Script - Default preset
# Author: Disassembler <disassembler@dasm.cz>
# Version: development
# Source: https://github.com/Disassembler0/Win10-Initial-Setup-Script
##########
### Require administrator privileges ###
RequireAdmin
### Privacy Tweaks ###
DisableTelemetry # EnableTelemetry
DisableWiFiSense # EnableWiFiSense
# DisableSmartScreen # EnableSmartScreen
DisableWebSearch # EnableWebSearch
DisableAppSuggestions # EnableAppSuggestions
DisableActivityHistory # EnableActivityHistory
DisableBackgroundApps # EnableBackgroundApps
# DisableSensors # EnableSensors
DisableLocation # EnableLocation
DisableMapUpdates # EnableMapUpdates
DisableFeedback # EnableFeedback
DisableTailoredExperiences # EnableTailoredExperiences
DisableAdvertisingID # EnableAdvertisingID
DisableWebLangList # EnableWebLangList
DisableCortana # EnableCortana
# DisableBiometrics # EnableBiometrics
# DisableCamera # EnableCamera
DisableErrorReporting # EnableErrorReporting
# SetP2PUpdateLocal # SetP2PUpdateInternet # SetP2PUpdateDisable
DisableDiagTrack # EnableDiagTrack
DisableWAPPush # EnableWAPPush
# EnableClearRecentFiles # DisableClearRecentFiles
# DisableRecentFiles # EnableRecentFiles
### Security Tweaks ###
# SetUACLow # SetUACHigh
# EnableSharingMappedDrives # DisableSharingMappedDrives
DisableAdminShares # EnableAdminShares
# DisableSMB1 # EnableSMB1
# DisableSMBServer # EnableSMBServer
# DisableNetBIOS # EnableNetBIOS
# DisableLLMNR # EnableLLMNR
# DisableNCSIProbe # EnableNCSIProbe
SetCurrentNetworkPrivate # SetCurrentNetworkPublic
# SetUnknownNetworksPrivate # SetUnknownNetworksPublic
# DisableConnectionSharing # EnableConnectionSharing
# 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
### Service Tweaks ###
# DisableUpdateMSRT # EnableUpdateMSRT
# DisableUpdateDriver # EnableUpdateDriver
# DisableUpdateAutoDownload # EnableUpdateAutoDownload
DisableMaintenanceWakeUp # EnableMaintenanceWakeUp
# DisableHomeGroups # EnableHomeGroups
DisableSharedExperiences # EnableSharedExperiences
# EnableClipboardHistory # DisableClipboardHistory
DisableRemoteAssistance # EnableRemoteAssistance
EnableRemoteDesktop # DisableRemoteDesktop
DisableAutoplay # EnableAutoplay
DisableAutorun # EnableAutorun
# DisableRestorePoints # EnableRestorePoints
# EnableStorageSense # DisableStorageSense
# DisableDefragmentation # EnableDefragmentation
# DisableSuperfetch # EnableSuperfetch
# DisableIndexing # EnableIndexing
# DisableSwapFile # EnableSwapFile
EnableNTFSLongPaths # DisableNTFSLongPaths
# DisableNTFSLastAccess # EnableNTFSLastAccess
# SetBIOSTimeUTC # SetBIOSTimeLocal
# EnableHibernation # DisableHibernation
# DisableSleepButton # EnableSleepButton
# DisableSleepTimeout # EnableSleepTimeout
# DisableFastStartup # EnableFastStartup
# DisableAutoRebootOnCrash # EnableAutoRebootOnCrash
### UI Tweaks ###
DisableActionCenter # EnableActionCenter
DisableLockScreen # EnableLockScreen
# DisableLockScreenRS1 # EnableLockScreenRS1
HideNetworkFromLockScreen # ShowNetworkOnLockScreen
HideShutdownFromLockScreen # ShowShutdownOnLockScreen
DisableLockScreenBlur # EnableLockScreenBlur
# DisableAeroShake # EnableAeroShake
DisableAccessibilityKeys # EnableAccessibilityKeys
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
# HideMostUsedApps # ShowMostUsedApps
# SetControlPanelSmallIcons # SetControlPanelLargeIcons # SetControlPanelCategories
DisableShortcutInName # EnableShortcutInName
# HideShortcutArrow # ShowShortcutArrow
SetVisualFXPerformance # SetVisualFXAppearance
# EnableTitleBarColor # DisableTitleBarColor
# EnableDarkTheme # DisableDarkTheme
# AddENKeyboard # RemoveENKeyboard
# EnableNumlock # DisableNumlock
# DisableEnhPointerPrecision # EnableEnhPointerPrecision
# SetSoundSchemeNone # SetSoundSchemeDefault
# DisableStartupSound # EnableStartupSound
# DisableChangingSoundScheme # EnableChangingSoundScheme
# EnableVerboseStatus # DisableVerboseStatus
DisableF1HelpKey # EnableF1HelpKey
### Explorer UI Tweaks ###
# ShowExplorerTitleFullPath # HideExplorerTitleFullPath
ShowKnownExtensions # HideKnownExtensions
ShowHiddenFiles # HideHiddenFiles
# ShowSuperHiddenFiles # HideSuperHiddenFiles
# ShowEmptyDrives # HideEmptyDrives
# ShowFolderMergeConflicts # HideFolderMergeConflicts
EnableNavPaneExpand # DisableNavPaneExpand
# ShowNavPaneAllFolders # HideNavPaneAllFolders
# EnableFldrSeparateProcess # DisableFldrSeparateProcess
# EnableRestoreFldrWindows # DisableRestoreFldrWindows
# ShowEncCompFilesColor # HideEncCompFilesColor
# DisableSharingWizard # EnableSharingWizard
# HideSelectCheckboxes # ShowSelectCheckboxes
HideSyncNotifications # ShowSyncNotifications
HideRecentShortcuts # ShowRecentShortcuts
SetExplorerThisPC # SetExplorerQuickAccess
HideQuickAccess # ShowQuickAccess
# HideRecycleBinFromDesktop # ShowRecycleBinOnDesktop
ShowThisPCOnDesktop # HideThisPCFromDesktop
# ShowUserFolderOnDesktop # HideUserFolderFromDesktop
# ShowControlPanelOnDesktop # HideControlPanelFromDesktop
# ShowNetworkOnDesktop # HideNetworkFromDesktop
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
### Application Tweaks ###
DisableOneDrive # EnableOneDrive
UninstallOneDrive # InstallOneDrive
UninstallMsftBloat # InstallMsftBloat
UninstallThirdPartyBloat # InstallThirdPartyBloat
# UninstallWindowsStore # InstallWindowsStore
DisableXboxFeatures # EnableXboxFeatures
# DisableFullscreenOptims # EnableFullscreenOptims
DisableAdobeFlash # EnableAdobeFlash
DisableEdgePreload # EnableEdgePreload
DisableEdgeShortcutCreation # EnableEdgeShortcutCreation
DisableIEFirstRun # EnableIEFirstRun
DisableFirstLogonAnimation # EnableFirstLogonAnimation
DisableMediaSharing # EnableMediaSharing
# 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
### Server Specific Tweaks ###
# HideServerManagerOnLogin # ShowServerManagerOnLogin
# DisableShutdownTracker # EnableShutdownTracker
# DisablePasswordPolicy # EnablePasswordPolicy
# DisableCtrlAltDelLogin # EnableCtrlAltDelLogin
# DisableIEEnhancedSecurity # EnableIEEnhancedSecurity
# EnableAudio # DisableAudio
### Unpinning ###
# UnpinStartMenuTiles
# UnpinTaskbarIcons
### Auxiliary Functions ###
WaitForKey
Restart

21
LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2017 Disassembler <disassembler@dasm.cz>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

281
README.md Normal file
View File

@@ -0,0 +1,281 @@
## Contents
- [Description](#description)
- [Usage](#usage)
- [FAQ](#faq)
- [Windows builds overview](#windows-builds-overview)
- [Advanced usage](#advanced-usage)
- [Maintaining own forks](#maintaining-own-forks)
- [Contribution guidelines](#contribution-guidelines)
&nbsp;
## Description
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 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.
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;
## FAQ
**Q:** Can I run the script safely?
**A:** Definitely not. You have to understand what the functions do and what will be the implications for you if you run them. Some functions lower security, hide controls or uninstall applications. **If you're not sure what the script does, do not attempt to run it!**
**Q:** Can I run the script repeatedly?
**A:** Yes! In fact the script has been written to support exactly that, as it's not uncommon that big Windows Updates reset some of the settings.
**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 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 / 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.
**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 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?
**A:** To ensure that system-wide tweaks are applied smoothly and reliably, some of them make use of *Group Policy Objects* (*GPO*). The same mechanism is employed also in companies managing their computers in large scale, so the users without administrative privileges can't change the settings. If you wish to change a setting locked by GPO, apply the appropriate restore tweak and the control will become available again.
**Q:** I've run the script and it broke my computer / killed neighbor's dog / caused world war 3.
**A:** I don't care. Also, that's not a question.
**Q:** I'm using a tweak for &lt;feature&gt; on my installation, can you add it?
**A:** Submit a PR, create a feature request issue or drop me a message. If I find the functionality simple, useful and not dependent on any 3rd party modules or executables (including also *Chocolatey*, *NuGet*, *Ninite* or other automation solutions), I might add it.
**Q:** Can I use the script or modify it for my / my company's needs?
**A:** Sure, knock yourself out. Just don't forget to include copyright notice as per MIT license requirements. I'd also suggest including a link to this GitHub repo as it's very likely that something will be changed, added or improved to keep track with future versions of Windows 10.
**Q:** Why are there repeated pieces of code throughout some functions?
**A:** So you can directly take a function block or a line from within a function and use it elsewhere, without elaborating on any dependencies.
**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. 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;
## Windows builds overview
| Version | Code name | Marketing name | Build |
| :-----: | ----------------------- | ---------------------- | :---: |
| 1507 | Threshold 1 (TH1 / RTM) | N/A | 10240 |
| 1511 | Threshold 2 (TH2) | November Update | 10586 |
| 1607 | Redstone 1 (RS1) | Anniversary Update | 14393 |
| 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 |
| 1903 | 19H1 | May 2019 Update | 18362 |
&nbsp;
## Advanced usage
powershell.exe -NoProfile -ExecutionPolicy Bypass -File Win10.ps1 [-include filename] [-preset filename] [-log logname] [[!]tweakname]
-include filename load module with user-defined tweaks
-preset filename load preset with tweak names to apply
-log logname save script output to a file
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;
### Logging
If you'd like to store output from the script execution, you can do so using `-log` parameter followed by a filename of the log file you want to create. For example:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File Win10.ps1 -include Win10.psm1 -preset mypreset.txt -log myoutput.log
The logging is done using PowerShell `Start-Transcript` cmdlet, which writes extra information about current environment (date, machine and user name, command used for execution etc.) to the beginning of the file and logs both standard output and standard error streams.
## Maintaining own forks
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 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.
```
git clone https://github.com/<yournamehere>/Win10-Initial-Setup-Script
cd Win10-Initial-Setup-Script
```
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, create a temporary branch, fetch the changes and reset the branch to be identical with this repository.
```
git branch upstream
git checkout upstream
git fetch upstream
git reset --hard upstream/master
```
6. When you have the upstream branch up to date, check back your master and rebase it based on the upstream branch. If there are some conflicts between the changesets, you'll be asked to resolve them manually.
```
git checkout master
git rebase upstream
```
7. Eventually, delete the upstream branch and force push your changes back onto GitHub.
```
git branch -D upstream
git push -f master
```
**Word of warning:** Rebasing and force-pushing will change the history of your commits. The upside is that your adjustments will always stay on top of the commit history. The downside is that everybody remote-tracking your repository will always have to rebase and force-push too, otherwise their commit history will not match yours.
&nbsp;
## 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 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, 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 / 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.
### Function grouping
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 *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 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 / 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:")) {
New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS | Out-Null
}
```
### Force usage
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.
### 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-Output "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-Output "Disabling some feature..."
Remove-ItemProperty -Path "HKLM:\Some\Registry\Key" -Name "SomeValueName" -ErrorAction SilentlyContinue
}
```

671
Win10.ps1
View File

@@ -1,612 +1,59 @@
##########
# Win10 Initial Setup Script
# Author: Disassembler <disassembler@dasm.cz>
# Version: 1.5, 2016-06-08
##########
# Ask for elevated permissions if required
If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]"Administrator")) {
Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
Exit
}
##########
# Privacy Settings
##########
# Disable Telemetry
Write-Host "Disabling Telemetry..."
Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 0
# Enable Telemetry
# Remove-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry"
# Disable Wi-Fi Sense
Write-Host "Disabling 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 0
Set-ItemProperty -Path "HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowAutoConnectToWiFiSenseHotspots" -Name "Value" -Type DWord -Value 0
# Enable Wi-Fi Sense
# 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
# Disable SmartScreen Filter
Write-Host "Disabling SmartScreen Filter..."
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer" -Name "SmartScreenEnabled" -Type String -Value "Off"
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\AppHost" -Name "EnableWebContentEvaluation" -Type DWord -Value 0
# Enable SmartScreen Filter
# Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer" -Name "SmartScreenEnabled" -Type String -Value "RequireAdmin"
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\AppHost" -Name "EnableWebContentEvaluation"
# Disable Bing Search in Start Menu
Write-Host "Disabling Bing Search in Start Menu..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search" -Name "BingSearchEnabled" -Type DWord -Value 0
# Enable Bing Search in Start Menu
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search" -Name "BingSearchEnabled"
# Disable Start Menu suggestions
Write-Host "Disabling Start Menu suggestions..."
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestionsEnabled" -Type DWord -Value 0
# Enable Start Menu suggestions
# Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestionsEnabled" -Type DWord -Value 1
# Disable Location Tracking
Write-Host "Disabling Location Tracking..."
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Sensor\Overrides\{BFA794E4-F964-4FDB-90F6-51056BFE4B44}" -Name "SensorPermissionState" -Type DWord -Value 0
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\lfsvc\Service\Configuration" -Name "Status" -Type DWord -Value 0
# Enable Location Tracking
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Sensor\Overrides\{BFA794E4-F964-4FDB-90F6-51056BFE4B44}" -Name "SensorPermissionState" -Type DWord -Value 1
# Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\lfsvc\Service\Configuration" -Name "Status" -Type DWord -Value 1
# Disable Feedback
Write-Host "Disabling Feedback..."
If (!(Test-Path "HKCU:\Software\Microsoft\Siuf\Rules")) {
New-Item -Path "HKCU:\Software\Microsoft\Siuf\Rules" -Force | Out-Null
}
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Siuf\Rules" -Name "NumberOfSIUFInPeriod" -Type DWord -Value 0
# Enable Feedback
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Siuf\Rules" -Name "NumberOfSIUFInPeriod"
# Disable Advertising ID
Write-Host "Disabling Advertising ID..."
If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo")) {
New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" | Out-Null
}
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" -Name "Enabled" -Type DWord -Value 0
# Enable Advertising ID
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" -Name "Enabled"
# Disable Cortana
Write-Host "Disabling Cortana..."
If (!(Test-Path "HKCU:\Software\Microsoft\Personalization\Settings")) {
New-Item -Path "HKCU:\Software\Microsoft\Personalization\Settings" -Force | Out-Null
}
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Personalization\Settings" -Name "AcceptedPrivacyPolicy" -Type DWord -Value 0
If (!(Test-Path "HKCU:\Software\Microsoft\InputPersonalization")) {
New-Item -Path "HKCU:\Software\Microsoft\InputPersonalization" -Force | Out-Null
}
Set-ItemProperty -Path "HKCU:\Software\Microsoft\InputPersonalization" -Name "RestrictImplicitTextCollection" -Type DWord -Value 1
Set-ItemProperty -Path "HKCU:\Software\Microsoft\InputPersonalization" -Name "RestrictImplicitInkCollection" -Type DWord -Value 1
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\TrainedDataStore" -Name "HarvestContacts" -Type DWord -Value 0
# Enable Cortana
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Personalization\Settings" -Name "AcceptedPrivacyPolicy"
# 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"
# Restrict Windows Update P2P only to local network
Write-Host "Restricting Windows Update P2P only to local network..."
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config" -Name "DODownloadMode" -Type DWord -Value 1
If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\DeliveryOptimization")) {
New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\DeliveryOptimization" | Out-Null
}
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\DeliveryOptimization" -Name "SystemSettingsDownloadMode" -Type DWord -Value 3
# Unrestrict Windows Update P2P
# Remove-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config" -Name "DODownloadMode"
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\DeliveryOptimization" -Name "SystemSettingsDownloadMode"
# Remove AutoLogger file and restrict directory
Write-Host "Removing AutoLogger file and restricting directory..."
$autoLoggerDir = "$env:PROGRAMDATA\Microsoft\Diagnosis\ETLLogs\AutoLogger"
If (Test-Path "$autoLoggerDir\AutoLogger-Diagtrack-Listener.etl") {
Remove-Item "$autoLoggerDir\AutoLogger-Diagtrack-Listener.etl"
}
icacls $autoLoggerDir /deny SYSTEM:`(OI`)`(CI`)F | Out-Null
# Unrestrict AutoLogger directory
# $autoLoggerDir = "$env:PROGRAMDATA\Microsoft\Diagnosis\ETLLogs\AutoLogger"
# icacls $autoLoggerDir /grant:r SYSTEM:`(OI`)`(CI`)F | Out-Null
# Stop and disable Diagnostics Tracking Service
Write-Host "Stopping and disabling Diagnostics Tracking Service..."
Stop-Service "DiagTrack"
Set-Service "DiagTrack" -StartupType Disabled
# Enable and start Diagnostics Tracking Service
# Set-Service "DiagTrack" -StartupType Automatic
# Start-Service "DiagTrack"
# Stop and disable WAP Push Service
Write-Host "Stopping and disabling WAP Push Service..."
Stop-Service "dmwappushservice"
Set-Service "dmwappushservice" -StartupType Disabled
# Enable and start WAP Push Service
# Set-Service "dmwappushservice" -StartupType Automatic
# Start-Service "dmwappushservice"
# Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\dmwappushservice" -Name "DelayedAutoStart" -Type DWord -Value 1
##########
# Service Tweaks
##########
# Lower UAC level
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
# 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
# Enable sharing mapped drives between users
Write-Host "Enabling sharing mapped drives between users..."
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLinkedConnections" -Type DWord -Value 1
# Disable sharing mapped drives between users
# Remove-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLinkedConnections"
# Disable implicit administrative shares
Write-Host "Disabling implicit administrative shares..."
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "AutoShareWks" -Type DWord -Value 0
# Enable implicit administrative shares
# Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "AutoShareWks"
# Disable Firewall
Write-Host "Disabling Firewall..."
Set-NetFirewallProfile -Profile * -Enabled False
# Enable Firewall
# Set-NetFirewallProfile -Profile * -Enabled True
# Disable Windows Defender
Write-Host "Disabling Windows Defender..."
Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows Defender" -Name "DisableAntiSpyware" -Type DWord -Value 1
# Enable Windows Defender
# Remove-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows Defender" -Name "DisableAntiSpyware"
# Disable offering of Malicious Software Removal Tool through Windows Update
Write-Host "Disabling Malicious Software Removal Tool offering..."
If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT")) {
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT" | Out-Null
}
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT" -Name "DontOfferThroughWUAU" -Type DWord -Value 1
# Enable offering of Malicious Software Removal Tool through Windows Update
# Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MRT" -Name "DontOfferThroughWUAU"
# Disable Windows Update automatic restart
Write-Host "Disabling Windows Update automatic restart..."
Set-ItemProperty -Path "HKLM:\Software\Microsoft\WindowsUpdate\UX\Settings" -Name "UxOption" -Type DWord -Value 1
# Enable Windows Update automatic restart
# Set-ItemProperty -Path "HKLM:\Software\Microsoft\WindowsUpdate\UX\Settings" -Name "UxOption" -Type DWord -Value 0
# Stop and disable Home Groups services
Write-Host "Stopping and disabling Home Groups services..."
Stop-Service "HomeGroupListener"
Set-Service "HomeGroupListener" -StartupType Disabled
Stop-Service "HomeGroupProvider"
Set-Service "HomeGroupProvider" -StartupType Disabled
# Enable and start Home Groups services
# Set-Service "HomeGroupListener" -StartupType Manual
# Set-Service "HomeGroupProvider" -StartupType Manual
# Start-Service "HomeGroupProvider"
# Disable Remote Assistance
Write-Host "Disabling Remote Assistance..."
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Remote Assistance" -Name "fAllowToGetHelp" -Type DWord -Value 0
# Enable Remote Assistance
# Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Remote Assistance" -Name "fAllowToGetHelp" -Type DWord -Value 1
# Enable Remote Desktop w/o Network Level Authentication
Write-Host "Enabling Remote Desktop w/o Network Level Authentication..."
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Type DWord -Value 0
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Type DWord -Value 0
# Disable Remote Desktop
# Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Type DWord -Value 1
# Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Type DWord -Value 1
##########
# UI Tweaks
##########
# Disable Action Center
Write-Host "Disabling Action Center..."
If (!(Test-Path "HKCU:\Software\Policies\Microsoft\Windows\Explorer")) {
New-Item -Path "HKCU:\Software\Policies\Microsoft\Windows\Explorer" | Out-Null
}
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\Explorer" -Name "DisableNotificationCenter" -Type DWord -Value 1
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\PushNotifications" -Name "ToastEnabled" -Type DWord -Value 0
# Enable Action Center
# Remove-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\Explorer" -Name "DisableNotificationCenter"
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\PushNotifications" -Name "ToastEnabled"
# Disable Lock screen
Write-Host "Disabling Lock screen..."
If (!(Test-Path "HKLM:\Software\Policies\Microsoft\Windows\Personalization")) {
New-Item -Path "HKLM:\Software\Policies\Microsoft\Windows\Personalization" | Out-Null
}
Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\Personalization" -Name "NoLockScreen" -Type DWord -Value 1
# Enable Lock screen
# Remove-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\Personalization" -Name "NoLockScreen"
# Disable Autoplay
Write-Host "Disabling Autoplay..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers" -Name "DisableAutoplay" -Type DWord -Value 1
# Enable Autoplay
# Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers" -Name "DisableAutoplay" -Type DWord -Value 0
# Disable Autorun for all drives
Write-Host "Disabling Autorun for all drives..."
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 "NoDriveTypeAutoRun" -Type DWord -Value 255
# Enable Autorun
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "NoDriveTypeAutoRun"
# Disable Sticky keys prompt
Write-Host "Disabling Sticky keys prompt..."
Set-ItemProperty -Path "HKCU:\Control Panel\Accessibility\StickyKeys" -Name "Flags" -Type String -Value "506"
# Enable Sticky keys prompt
# Set-ItemProperty -Path "HKCU:\Control Panel\Accessibility\StickyKeys" -Name "Flags" -Type String -Value "510"
# Hide Search button / box
Write-Host "Hiding Search Box / Button..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search" -Name "SearchboxTaskbarMode" -Type DWord -Value 0
# Show Search button / box
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search" -Name "SearchboxTaskbarMode"
# Hide Task View button
Write-Host "Hiding Task View button..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowTaskViewButton" -Type DWord -Value 0
# Show Task View button
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowTaskViewButton"
# Show small icons in taskbar
Write-Host "Showing small icons in taskbar..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarSmallIcons" -Type DWord -Value 1
# Show large icons in taskbar
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarSmallIcons"
# Show titles in taskbar
Write-Host "Showing titles in taskbar..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarGlomLevel" -Type DWord -Value 1
# Hide titles in taskbar
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarGlomLevel"
# Show all tray icons
Write-Host "Showing all tray icons..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer" -Name "EnableAutoTray" -Type DWord -Value 0
# Hide tray icons as needed
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer" -Name "EnableAutoTray"
# Show known file extensions
Write-Host "Showing known file extensions..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Type DWord -Value 0
# Hide known file extensions
# Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Type DWord -Value 1
# Show hidden files
Write-Host "Showing hidden files..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Hidden" -Type DWord -Value 1
# Hide hidden files
# Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Hidden" -Type DWord -Value 2
# Change default Explorer view to "Computer"
Write-Host "Changing default Explorer view to `"Computer`"..."
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo" -Type DWord -Value 1
# Change default Explorer view to "Quick Access"
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo"
# Show Computer shortcut on desktop
Write-Host "Showing Computer shortcut on desktop..."
If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu")) {
New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" | Out-Null
}
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" -Type DWord -Value 0
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" -Type DWord -Value 0
# Hide Computer shortcut from desktop
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
# Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
# Remove Desktop icon from computer namespace
Write-Host "Removing Desktop icon from computer namespace..."
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
# Add Desktop icon to computer namespace
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
# Remove Documents icon from computer namespace
Write-Host "Removing Documents icon from computer namespace..."
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
# Add Documents icon to computer namespace
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
# Remove Downloads icon from computer namespace
Write-Host "Removing Downloads icon from computer namespace..."
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
# Add Downloads icon to computer namespace
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
# Remove Music icon from computer namespace
Write-Host "Removing Music icon from computer namespace..."
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
# Add Music icon to computer namespace
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
# Remove Pictures icon from computer namespace
Write-Host "Removing Pictures icon from computer namespace..."
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
# Add Pictures icon to computer namespace
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
# Remove Videos icon from computer namespace
Write-Host "Removing Videos icon from computer namespace..."
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Hide"
# Add Videos icon to computer namespace
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag" -Name "ThisPCPolicy" -Type String -Value "Show"
# Add secondary en-US keyboard
Write-Host "Adding secondary en-US keyboard..."
$langs = Get-WinUserLanguageList
$langs.Add("en-US")
Set-WinUserLanguageList $langs -Force
# Remove secondary en-US keyboard
# $langs = Get-WinUserLanguageList
# Set-WinUserLanguageList ($langs | ? {$_.LanguageTag -ne "en-US"}) -Force
##########
# Remove unwanted applications
##########
# Disable OneDrive
Write-Host "Disabling OneDrive..."
If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive")) {
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive" | Out-Null
}
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive" -Name "DisableFileSyncNGSC" -Type DWord -Value 1
# Enable OneDrive
# Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive" -Name "DisableFileSyncNGSC"
# Uninstall OneDrive
Write-Host "Uninstalling OneDrive..."
Stop-Process -Name OneDrive -ErrorAction SilentlyContinue
Start-Sleep -s 3
$onedrive = "$env:SYSTEMROOT\SysWOW64\OneDriveSetup.exe"
If (!(Test-Path $onedrive)) {
$onedrive = "$env:SYSTEMROOT\System32\OneDriveSetup.exe"
}
Start-Process $onedrive "/uninstall" -NoNewWindow -Wait
Start-Sleep -s 3
Stop-Process -Name explorer -ErrorAction SilentlyContinue
Start-Sleep -s 3
Remove-Item "$env:USERPROFILE\OneDrive" -Force -Recurse -ErrorAction SilentlyContinue
Remove-Item "$env:LOCALAPPDATA\Microsoft\OneDrive" -Force -Recurse -ErrorAction SilentlyContinue
Remove-Item "$env:PROGRAMDATA\Microsoft OneDrive" -Force -Recurse -ErrorAction SilentlyContinue
If (Test-Path "$env:SYSTEMDRIVE\OneDriveTemp") {
Remove-Item "$env:SYSTEMDRIVE\OneDriveTemp" -Force -Recurse -ErrorAction SilentlyContinue
}
If (!(Test-Path "HKCR:")) {
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null
}
Remove-Item -Path "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" -Recurse -ErrorAction SilentlyContinue
Remove-Item -Path "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" -Recurse -ErrorAction SilentlyContinue
# Install OneDrive
# $onedrive = "$env:SYSTEMROOT\SysWOW64\OneDriveSetup.exe"
# If (!(Test-Path $onedrive)) {
# $onedrive = "$env:SYSTEMROOT\System32\OneDriveSetup.exe"
# }
# Start-Process $onedrive -NoNewWindow
# Uninstall default Microsoft applications
Write-Host "Uninstalling default Microsoft applications..."
Get-AppxPackage "Microsoft.3DBuilder" | Remove-AppxPackage
Get-AppxPackage "Microsoft.BingFinance" | Remove-AppxPackage
Get-AppxPackage "Microsoft.BingNews" | Remove-AppxPackage
Get-AppxPackage "Microsoft.BingSports" | Remove-AppxPackage
Get-AppxPackage "Microsoft.BingWeather" | Remove-AppxPackage
Get-AppxPackage "Microsoft.Getstarted" | Remove-AppxPackage
Get-AppxPackage "Microsoft.MicrosoftOfficeHub" | Remove-AppxPackage
Get-AppxPackage "Microsoft.MicrosoftSolitaireCollection" | Remove-AppxPackage
Get-AppxPackage "Microsoft.Office.OneNote" | Remove-AppxPackage
Get-AppxPackage "Microsoft.People" | Remove-AppxPackage
Get-AppxPackage "Microsoft.SkypeApp" | Remove-AppxPackage
Get-AppxPackage "Microsoft.Windows.Photos" | Remove-AppxPackage
Get-AppxPackage "Microsoft.WindowsAlarms" | Remove-AppxPackage
Get-AppxPackage "Microsoft.WindowsCamera" | Remove-AppxPackage
Get-AppxPackage "microsoft.windowscommunicationsapps" | Remove-AppxPackage
Get-AppxPackage "Microsoft.WindowsMaps" | Remove-AppxPackage
Get-AppxPackage "Microsoft.WindowsPhone" | Remove-AppxPackage
Get-AppxPackage "Microsoft.WindowsSoundRecorder" | Remove-AppxPackage
Get-AppxPackage "Microsoft.XboxApp" | Remove-AppxPackage
Get-AppxPackage "Microsoft.ZuneMusic" | Remove-AppxPackage
Get-AppxPackage "Microsoft.ZuneVideo" | Remove-AppxPackage
Get-AppxPackage "Microsoft.AppConnector" | Remove-AppxPackage
Get-AppxPackage "Microsoft.ConnectivityStore" | Remove-AppxPackage
Get-AppxPackage "Microsoft.Office.Sway" | Remove-AppxPackage
Get-AppxPackage "Microsoft.Messaging" | Remove-AppxPackage
Get-AppxPackage "Microsoft.CommsPhone" | Remove-AppxPackage
Get-AppxPackage "9E2F88E3.Twitter" | Remove-AppxPackage
Get-AppxPackage "king.com.CandyCrushSodaSaga" | Remove-AppxPackage
# Install default Microsoft applications
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.3DBuilder").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.BingFinance").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.BingNews").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.BingSports").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.BingWeather").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.Getstarted").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.MicrosoftOfficeHub").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.MicrosoftSolitaireCollection").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.Office.OneNote").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.People").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.SkypeApp").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.Windows.Photos").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.WindowsAlarms").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.WindowsCamera").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.windowscommunicationsapps").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.WindowsMaps").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.WindowsPhone").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.WindowsSoundRecorder").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.XboxApp").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.ZuneMusic").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.ZuneVideo").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.AppConnector").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.ConnectivityStore").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.Office.Sway").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.Messaging").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "Microsoft.CommsPhone").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "9E2F88E3.Twitter").InstallLocation)\AppXManifest.xml"
# Add-AppxPackage -DisableDevelopmentMode -Register "$($(Get-AppXPackage -AllUsers "king.com.CandyCrushSodaSaga").InstallLocation)\AppXManifest.xml"
# In case you have removed them for good, you can try to restore the files using installation medium as follows
# New-Item C:\Mnt -Type Directory | Out-Null
# dism /Mount-Image /ImageFile:D:\sources\install.wim /index:1 /ReadOnly /MountDir:C:\Mnt
# robocopy /S /SEC /R:0 "C:\Mnt\Program Files\WindowsApps" "C:\Program Files\WindowsApps"
# dism /Unmount-Image /Discard /MountDir:C:\Mnt
# Remove-Item -Path C:\Mnt -Recurse
# Uninstall Windows Media Player
Write-Host "Uninstalling Windows Media Player..."
dism /online /Disable-Feature /FeatureName:MediaPlayback /Quiet /NoRestart
# Install Windows Media Player
# dism /online /Enable-Feature /FeatureName:MediaPlayback /Quiet /NoRestart
# Uninstall Work Folders Client
Write-Host "Uninstalling Work Folders Client..."
dism /online /Disable-Feature /FeatureName:WorkFolders-Client /Quiet /NoRestart
# Install Work Folders Client
# dism /online /Enable-Feature /FeatureName:WorkFolders-Client /Quiet /NoRestart
# Set Photo Viewer as default for bmp, gif, jpg and png
Write-Host "Setting Photo Viewer as default for bmp, gif, jpg, png and tif..."
If (!(Test-Path "HKCR:")) {
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null
}
ForEach ($type in @("Paint.Picture", "giffile", "jpegfile", "pngfile")) {
New-Item -Path $("HKCR:\$type\shell\open") -Force | Out-Null
New-Item -Path $("HKCR:\$type\shell\open\command") | Out-Null
Set-ItemProperty -Path $("HKCR:\$type\shell\open") -Name "MuiVerb" -Type ExpandString -Value "@%ProgramFiles%\Windows Photo Viewer\photoviewer.dll,-3043"
Set-ItemProperty -Path $("HKCR:\$type\shell\open\command") -Name "(Default)" -Type ExpandString -Value "%SystemRoot%\System32\rundll32.exe `"%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll`", ImageView_Fullscreen %1"
}
# Remove or reset default open action for bmp, gif, jpg and png
# If (!(Test-Path "HKCR:")) {
# New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null
# }
# Remove-Item -Path "HKCR:\Paint.Picture\shell\open" -Recurse
# Remove-ItemProperty -Path "HKCR:\giffile\shell\open" -Name "MuiVerb"
# Set-ItemProperty -Path "HKCR:\giffile\shell\open" -Name "CommandId" -Type String -Value "IE.File"
# Set-ItemProperty -Path "HKCR:\giffile\shell\open\command" -Name "(Default)" -Type String -Value "`"$env:SystemDrive\Program Files\Internet Explorer\iexplore.exe`" %1"
# Set-ItemProperty -Path "HKCR:\giffile\shell\open\command" -Name "DelegateExecute" -Type String -Value "{17FE9752-0B5A-4665-84CD-569794602F5C}"
# Remove-Item -Path "HKCR:\jpegfile\shell\open" -Recurse
# Remove-Item -Path "HKCR:\pngfile\shell\open" -Recurse
# Show Photo Viewer in "Open with..."
Write-Host "Showing Photo Viewer in `"Open with...`""
If (!(Test-Path "HKCR:")) {
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null
}
New-Item -Path "HKCR:\Applications\photoviewer.dll\shell\open\command" -Force | Out-Null
New-Item -Path "HKCR:\Applications\photoviewer.dll\shell\open\DropTarget" -Force | Out-Null
Set-ItemProperty -Path "HKCR:\Applications\photoviewer.dll\shell\open" -Name "MuiVerb" -Type String -Value "@photoviewer.dll,-3043"
Set-ItemProperty -Path "HKCR:\Applications\photoviewer.dll\shell\open\command" -Name "(Default)" -Type ExpandString -Value "%SystemRoot%\System32\rundll32.exe `"%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll`", ImageView_Fullscreen %1"
Set-ItemProperty -Path "HKCR:\Applications\photoviewer.dll\shell\open\DropTarget" -Name "Clsid" -Type String -Value "{FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}"
# Remove Photo Viewer from "Open with..."
# If (!(Test-Path "HKCR:")) {
# New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null
# }
# Remove-Item -Path "HKCR:\Applications\photoviewer.dll\shell\open" -Recurse
# Enable F8 boot menu options
Write-Host "Enabling boot menu options..."
bcdedit /set `{current`} bootmenupolicy Legacy | Out-Null
# Disable F8 boot menu options
# bcdedit /set `{current`} bootmenupolicy Standard | Out-Null
##########
# Restart
##########
Write-Host
Write-Host "Press any key to restart your system..." -ForegroundColor Black -BackgroundColor White
$key = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
Write-Host "Restarting..."
Restart-Computer
##########
# Win 10 / Server 2016 / Server 2019 Initial Setup Script - Main execution loop
# Author: Disassembler <disassembler@dasm.cz>
# Version: development
# Source: https://github.com/Disassembler0/Win10-Initial-Setup-Script
##########
# 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" -Verb RunAs
Exit
}
}
$tweaks = @()
$PSCommandArgs = @()
Function AddOrRemoveTweak($tweak) {
If ($tweak[0] -eq "!") {
# If the name starts with exclamation mark (!), exclude the tweak from selection
$script:tweaks = $script:tweaks | Where-Object { $_ -ne $tweak.Substring(1) }
} ElseIf ($tweak -ne "") {
# Otherwise add the tweak
$script:tweaks += $tweak
}
}
# Parse and resolve paths in passed arguments
$i = 0
While ($i -lt $args.Length) {
If ($args[$i].ToLower() -eq "-include") {
# Resolve full path to the included file
$include = Resolve-Path $args[++$i]
$PSCommandArgs += "-include `"$include`""
# Import the included file as a module
Import-Module -Name $include
} ElseIf ($args[$i].ToLower() -eq "-preset") {
# Resolve full path to the preset file
$preset = Resolve-Path $args[++$i]
$PSCommandArgs += "-preset `"$preset`""
# Load tweak names from the preset file
Get-Content $preset -ErrorAction Stop | ForEach-Object { AddOrRemoveTweak($_.Split("#")[0].Trim()) }
} ElseIf ($args[$i].ToLower() -eq "-log") {
# Resolve full path to the output file
$log = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($args[++$i])
$PSCommandArgs += "-log `"$log`""
# Record session to the output file
Start-Transcript $log
} Else {
$PSCommandArgs += $args[$i]
# Load tweak names from command line
AddOrRemoveTweak($args[$i])
}
$i++
}
# Call the desired tweak functions
$tweaks | ForEach-Object { Invoke-Expression $_ }

3486
Win10.psm1 Normal file

File diff suppressed because it is too large Load Diff