├── LICENSE ├── README.md ├── install ├── install-dev-apps.ps1 ├── install-essential-apps.ps1 ├── install-everything-on-powertoys.ps1 ├── install-media-apps.ps1 ├── install-office-apps.ps1 ├── install-oh-my-posh.ps1 ├── install-tool-apps.ps1 └── install-winget.ps1 ├── powershell └── Microsoft.PowerShell_profile.ps1 ├── scripts ├── FixHiddenTaskbarIcons.ps1 ├── Restart-Explorer.ps1 ├── fast-indexing-disable.ps1 ├── fast-indexing-enable.ps1 ├── former-context-menu-disable.ps1 ├── former-context-menu-enable.ps1 └── vs-code-context-menu.ps1 ├── win-all.ps1 ├── win-customize.ps1 ├── win-debloat.ps1 ├── win-enable-features.ps1 ├── win-install-apps.ps1 └── win-tweaks.ps1 /LICENSE: -------------------------------------------------------------------------------- 1 | Attribution 4.0 International 2 | 3 | ======================================================================= 4 | 5 | Creative Commons Corporation ("Creative Commons") is not a law firm and 6 | does not provide legal services or legal advice. Distribution of 7 | Creative Commons public licenses does not create a lawyer-client or 8 | other relationship. Creative Commons makes its licenses and related 9 | information available on an "as-is" basis. Creative Commons gives no 10 | warranties regarding its licenses, any material licensed under their 11 | terms and conditions, or any related information. Creative Commons 12 | disclaims all liability for damages resulting from their use to the 13 | fullest extent possible. 14 | 15 | Using Creative Commons Public Licenses 16 | 17 | Creative Commons public licenses provide a standard set of terms and 18 | conditions that creators and other rights holders may use to share 19 | original works of authorship and other material subject to copyright 20 | and certain other rights specified in the public license below. The 21 | following considerations are for informational purposes only, are not 22 | exhaustive, and do not form part of our licenses. 23 | 24 | Considerations for licensors: Our public licenses are 25 | intended for use by those authorized to give the public 26 | permission to use material in ways otherwise restricted by 27 | copyright and certain other rights. Our licenses are 28 | irrevocable. Licensors should read and understand the terms 29 | and conditions of the license they choose before applying it. 30 | Licensors should also secure all rights necessary before 31 | applying our licenses so that the public can reuse the 32 | material as expected. Licensors should clearly mark any 33 | material not subject to the license. This includes other CC- 34 | licensed material, or material used under an exception or 35 | limitation to copyright. More considerations for licensors: 36 | wiki.creativecommons.org/Considerations_for_licensors 37 | 38 | Considerations for the public: By using one of our public 39 | licenses, a licensor grants the public permission to use the 40 | licensed material under specified terms and conditions. If 41 | the licensor's permission is not necessary for any reason--for 42 | example, because of any applicable exception or limitation to 43 | copyright--then that use is not regulated by the license. Our 44 | licenses grant only permissions under copyright and certain 45 | other rights that a licensor has authority to grant. Use of 46 | the licensed material may still be restricted for other 47 | reasons, including because others have copyright or other 48 | rights in the material. A licensor may make special requests, 49 | such as asking that all changes be marked or described. 50 | Although not required by our licenses, you are encouraged to 51 | respect those requests where reasonable. More considerations 52 | for the public: 53 | wiki.creativecommons.org/Considerations_for_licensees 54 | 55 | ======================================================================= 56 | 57 | Creative Commons Attribution 4.0 International Public License 58 | 59 | By exercising the Licensed Rights (defined below), You accept and agree 60 | to be bound by the terms and conditions of this Creative Commons 61 | Attribution 4.0 International Public License ("Public License"). To the 62 | extent this Public License may be interpreted as a contract, You are 63 | granted the Licensed Rights in consideration of Your acceptance of 64 | these terms and conditions, and the Licensor grants You such rights in 65 | consideration of benefits the Licensor receives from making the 66 | Licensed Material available under these terms and conditions. 67 | 68 | 69 | Section 1 -- Definitions. 70 | 71 | a. Adapted Material means material subject to Copyright and Similar 72 | Rights that is derived from or based upon the Licensed Material 73 | and in which the Licensed Material is translated, altered, 74 | arranged, transformed, or otherwise modified in a manner requiring 75 | permission under the Copyright and Similar Rights held by the 76 | Licensor. For purposes of this Public License, where the Licensed 77 | Material is a musical work, performance, or sound recording, 78 | Adapted Material is always produced where the Licensed Material is 79 | synched in timed relation with a moving image. 80 | 81 | b. Adapter's License means the license You apply to Your Copyright 82 | and Similar Rights in Your contributions to Adapted Material in 83 | accordance with the terms and conditions of this Public License. 84 | 85 | c. Copyright and Similar Rights means copyright and/or similar rights 86 | closely related to copyright including, without limitation, 87 | performance, broadcast, sound recording, and Sui Generis Database 88 | Rights, without regard to how the rights are labeled or 89 | categorized. For purposes of this Public License, the rights 90 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 91 | Rights. 92 | 93 | d. Effective Technological Measures means those measures that, in the 94 | absence of proper authority, may not be circumvented under laws 95 | fulfilling obligations under Article 11 of the WIPO Copyright 96 | Treaty adopted on December 20, 1996, and/or similar international 97 | agreements. 98 | 99 | e. Exceptions and Limitations means fair use, fair dealing, and/or 100 | any other exception or limitation to Copyright and Similar Rights 101 | that applies to Your use of the Licensed Material. 102 | 103 | f. Licensed Material means the artistic or literary work, database, 104 | or other material to which the Licensor applied this Public 105 | License. 106 | 107 | g. Licensed Rights means the rights granted to You subject to the 108 | terms and conditions of this Public License, which are limited to 109 | all Copyright and Similar Rights that apply to Your use of the 110 | Licensed Material and that the Licensor has authority to license. 111 | 112 | h. Licensor means the individual(s) or entity(ies) granting rights 113 | under this Public License. 114 | 115 | i. Share means to provide material to the public by any means or 116 | process that requires permission under the Licensed Rights, such 117 | as reproduction, public display, public performance, distribution, 118 | dissemination, communication, or importation, and to make material 119 | available to the public including in ways that members of the 120 | public may access the material from a place and at a time 121 | individually chosen by them. 122 | 123 | j. Sui Generis Database Rights means rights other than copyright 124 | resulting from Directive 96/9/EC of the European Parliament and of 125 | the Council of 11 March 1996 on the legal protection of databases, 126 | as amended and/or succeeded, as well as other essentially 127 | equivalent rights anywhere in the world. 128 | 129 | k. You means the individual or entity exercising the Licensed Rights 130 | under this Public License. Your has a corresponding meaning. 131 | 132 | 133 | Section 2 -- Scope. 134 | 135 | a. License grant. 136 | 137 | 1. Subject to the terms and conditions of this Public License, 138 | the Licensor hereby grants You a worldwide, royalty-free, 139 | non-sublicensable, non-exclusive, irrevocable license to 140 | exercise the Licensed Rights in the Licensed Material to: 141 | 142 | a. reproduce and Share the Licensed Material, in whole or 143 | in part; and 144 | 145 | b. produce, reproduce, and Share Adapted Material. 146 | 147 | 2. Exceptions and Limitations. For the avoidance of doubt, where 148 | Exceptions and Limitations apply to Your use, this Public 149 | License does not apply, and You do not need to comply with 150 | its terms and conditions. 151 | 152 | 3. Term. The term of this Public License is specified in Section 153 | 6(a). 154 | 155 | 4. Media and formats; technical modifications allowed. The 156 | Licensor authorizes You to exercise the Licensed Rights in 157 | all media and formats whether now known or hereafter created, 158 | and to make technical modifications necessary to do so. The 159 | Licensor waives and/or agrees not to assert any right or 160 | authority to forbid You from making technical modifications 161 | necessary to exercise the Licensed Rights, including 162 | technical modifications necessary to circumvent Effective 163 | Technological Measures. For purposes of this Public License, 164 | simply making modifications authorized by this Section 2(a) 165 | (4) never produces Adapted Material. 166 | 167 | 5. Downstream recipients. 168 | 169 | a. Offer from the Licensor -- Licensed Material. Every 170 | recipient of the Licensed Material automatically 171 | receives an offer from the Licensor to exercise the 172 | Licensed Rights under the terms and conditions of this 173 | Public License. 174 | 175 | b. No downstream restrictions. You may not offer or impose 176 | any additional or different terms or conditions on, or 177 | apply any Effective Technological Measures to, the 178 | Licensed Material if doing so restricts exercise of the 179 | Licensed Rights by any recipient of the Licensed 180 | Material. 181 | 182 | 6. No endorsement. Nothing in this Public License constitutes or 183 | may be construed as permission to assert or imply that You 184 | are, or that Your use of the Licensed Material is, connected 185 | with, or sponsored, endorsed, or granted official status by, 186 | the Licensor or others designated to receive attribution as 187 | provided in Section 3(a)(1)(A)(i). 188 | 189 | b. Other rights. 190 | 191 | 1. Moral rights, such as the right of integrity, are not 192 | licensed under this Public License, nor are publicity, 193 | privacy, and/or other similar personality rights; however, to 194 | the extent possible, the Licensor waives and/or agrees not to 195 | assert any such rights held by the Licensor to the limited 196 | extent necessary to allow You to exercise the Licensed 197 | Rights, but not otherwise. 198 | 199 | 2. Patent and trademark rights are not licensed under this 200 | Public License. 201 | 202 | 3. To the extent possible, the Licensor waives any right to 203 | collect royalties from You for the exercise of the Licensed 204 | Rights, whether directly or through a collecting society 205 | under any voluntary or waivable statutory or compulsory 206 | licensing scheme. In all other cases the Licensor expressly 207 | reserves any right to collect such royalties. 208 | 209 | 210 | Section 3 -- License Conditions. 211 | 212 | Your exercise of the Licensed Rights is expressly made subject to the 213 | following conditions. 214 | 215 | a. Attribution. 216 | 217 | 1. If You Share the Licensed Material (including in modified 218 | form), You must: 219 | 220 | a. retain the following if it is supplied by the Licensor 221 | with the Licensed Material: 222 | 223 | i. identification of the creator(s) of the Licensed 224 | Material and any others designated to receive 225 | attribution, in any reasonable manner requested by 226 | the Licensor (including by pseudonym if 227 | designated); 228 | 229 | ii. a copyright notice; 230 | 231 | iii. a notice that refers to this Public License; 232 | 233 | iv. a notice that refers to the disclaimer of 234 | warranties; 235 | 236 | v. a URI or hyperlink to the Licensed Material to the 237 | extent reasonably practicable; 238 | 239 | b. indicate if You modified the Licensed Material and 240 | retain an indication of any previous modifications; and 241 | 242 | c. indicate the Licensed Material is licensed under this 243 | Public License, and include the text of, or the URI or 244 | hyperlink to, this Public License. 245 | 246 | 2. You may satisfy the conditions in Section 3(a)(1) in any 247 | reasonable manner based on the medium, means, and context in 248 | which You Share the Licensed Material. For example, it may be 249 | reasonable to satisfy the conditions by providing a URI or 250 | hyperlink to a resource that includes the required 251 | information. 252 | 253 | 3. If requested by the Licensor, You must remove any of the 254 | information required by Section 3(a)(1)(A) to the extent 255 | reasonably practicable. 256 | 257 | 4. If You Share Adapted Material You produce, the Adapter's 258 | License You apply must not prevent recipients of the Adapted 259 | Material from complying with this Public License. 260 | 261 | 262 | Section 4 -- Sui Generis Database Rights. 263 | 264 | Where the Licensed Rights include Sui Generis Database Rights that 265 | apply to Your use of the Licensed Material: 266 | 267 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 268 | to extract, reuse, reproduce, and Share all or a substantial 269 | portion of the contents of the database; 270 | 271 | b. if You include all or a substantial portion of the database 272 | contents in a database in which You have Sui Generis Database 273 | Rights, then the database in which You have Sui Generis Database 274 | Rights (but not its individual contents) is Adapted Material; and 275 | 276 | c. You must comply with the conditions in Section 3(a) if You Share 277 | all or a substantial portion of the contents of the database. 278 | 279 | For the avoidance of doubt, this Section 4 supplements and does not 280 | replace Your obligations under this Public License where the Licensed 281 | Rights include other Copyright and Similar Rights. 282 | 283 | 284 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 285 | 286 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 287 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 288 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 289 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 290 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 291 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 292 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 293 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 294 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 295 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 296 | 297 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 298 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 299 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 300 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 301 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 302 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 303 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 304 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 305 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 306 | 307 | c. The disclaimer of warranties and limitation of liability provided 308 | above shall be interpreted in a manner that, to the extent 309 | possible, most closely approximates an absolute disclaimer and 310 | waiver of all liability. 311 | 312 | 313 | Section 6 -- Term and Termination. 314 | 315 | a. This Public License applies for the term of the Copyright and 316 | Similar Rights licensed here. However, if You fail to comply with 317 | this Public License, then Your rights under this Public License 318 | terminate automatically. 319 | 320 | b. Where Your right to use the Licensed Material has terminated under 321 | Section 6(a), it reinstates: 322 | 323 | 1. automatically as of the date the violation is cured, provided 324 | it is cured within 30 days of Your discovery of the 325 | violation; or 326 | 327 | 2. upon express reinstatement by the Licensor. 328 | 329 | For the avoidance of doubt, this Section 6(b) does not affect any 330 | right the Licensor may have to seek remedies for Your violations 331 | of this Public License. 332 | 333 | c. For the avoidance of doubt, the Licensor may also offer the 334 | Licensed Material under separate terms or conditions or stop 335 | distributing the Licensed Material at any time; however, doing so 336 | will not terminate this Public License. 337 | 338 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 339 | License. 340 | 341 | 342 | Section 7 -- Other Terms and Conditions. 343 | 344 | a. The Licensor shall not be bound by any additional or different 345 | terms or conditions communicated by You unless expressly agreed. 346 | 347 | b. Any arrangements, understandings, or agreements regarding the 348 | Licensed Material not stated herein are separate from and 349 | independent of the terms and conditions of this Public License. 350 | 351 | 352 | Section 8 -- Interpretation. 353 | 354 | a. For the avoidance of doubt, this Public License does not, and 355 | shall not be interpreted to, reduce, limit, restrict, or impose 356 | conditions on any use of the Licensed Material that could lawfully 357 | be made without permission under this Public License. 358 | 359 | b. To the extent possible, if any provision of this Public License is 360 | deemed unenforceable, it shall be automatically reformed to the 361 | minimum extent necessary to make it enforceable. If the provision 362 | cannot be reformed, it shall be severed from this Public License 363 | without affecting the enforceability of the remaining terms and 364 | conditions. 365 | 366 | c. No term or condition of this Public License will be waived and no 367 | failure to comply consented to unless expressly agreed to by the 368 | Licensor. 369 | 370 | d. Nothing in this Public License constitutes or may be interpreted 371 | as a limitation upon, or waiver of, any privileges and immunities 372 | that apply to the Licensor or You, including from the legal 373 | processes of any jurisdiction or authority. 374 | 375 | 376 | ======================================================================= 377 | 378 | Creative Commons is not a party to its public 379 | licenses. Notwithstanding, Creative Commons may elect to apply one of 380 | its public licenses to material it publishes and in those instances 381 | will be considered the “Licensor.” The text of the Creative Commons 382 | public licenses is dedicated to the public domain under the CC0 Public 383 | Domain Dedication. Except for the limited purpose of indicating that 384 | material is shared under a Creative Commons public license or as 385 | otherwise permitted by the Creative Commons policies published at 386 | creativecommons.org/policies, Creative Commons does not authorize the 387 | use of the trademark "Creative Commons" or any other trademark or logo 388 | of Creative Commons without its prior written consent including, 389 | without limitation, in connection with any unauthorized modifications 390 | to any of its public licenses or any other arrangements, 391 | understandings, or agreements concerning use of licensed material. For 392 | the avoidance of doubt, this paragraph does not form part of the 393 | public licenses. 394 | 395 | Creative Commons may be contacted at creativecommons.org. 396 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WinTools 2 | This Windows scripts toolkit is a creation from multiple debloat scripts and gists from github. The main origin was a Chris Titus repo. I also added other tools to the script that I install on every machine I use. 3 | 4 | ## Modifications 5 | I encourage people to fork this project and comment out things they don't like! 6 | Comment any thing you don't want out... 7 | 8 | ## Running all 9 | To do all tweaks, debloats and installations you just have to run the win-all.ps1 script and a new Windows 10/11 machine will be prepered to use as I like, with the execution of the scripts: 10 | * **win-tweaks.ps1**: lot of tweaks for Windows 10/11; 11 | * **win-customize.ps1**: personalize Windows options such as showing task manager details, showing file operations details, disable news and interest, and so on...; 12 | * **win-debloat.ps1**: uninstall Microsoft and third-party bloatwares; 13 | * **win-enable-features.ps1**: enable Windows optional features such as Hyper-V and WSL; 14 | * **win-install.ps1**: Instalation of Chocolatey Package Manager and: 15 | * **install-essential-apps.ps1**: Instalation of some essential apps (windows-terminal, autohotkey, GoogleChrome, Firefox, NotepadPlusPlus, FoxitReader, Adobereader, 7zip, Bitwarden, powertoys); 16 | * **install-tool-apps.ps1**: Instalation of some tool apps (virtualbox, vmware-workstation-player, etcher, scrcpy, ccleaner, hwinfo, speedtest, ext2fsd); 17 | * **install-office-apps.ps1**: Instalation of some office apps (MS Office 365, LibreOffice); 18 | * **install-dev-apps.ps1**: Instalation of some develop apps (VS Code, Eclipse); 19 | * **install-media-apps.ps1**: Instalation of some media apps (VLC, BSPlayer); 20 | 21 | Copy and paste this line on a PowerShell screen with admin rights, press ENTER and all the magic will be done: 22 | ``` 23 | iex (irm https://raw.githubusercontent.com/levicm/win-tools/master/win-all.ps1); 24 | ``` 25 | If you have problems with the command aove, try to copy and paste this line on a PowerShell screen with admin rights, press ENTER and all the magic will be done: 26 | ``` 27 | Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/levicm/win10script/master/win-all.ps1')); 28 | ``` 29 | -------------------------------------------------------------------------------- /install/install-dev-apps.ps1: -------------------------------------------------------------------------------- 1 | winget install Git.Git --disable-interactivity --silent 2 | winget install Microsoft.VisualStudioCode --disable-interactivity --silent 3 | winget install Python.Python.3.10 --disable-interactivity --silent 4 | winget install ojdkbuild.openjdk.17.jdk --disable-interactivity --silent 5 | choco install -y eclipse 6 | -------------------------------------------------------------------------------- /install/install-essential-apps.ps1: -------------------------------------------------------------------------------- 1 | winget install Microsoft.PowerShell --disable-interactivity --silent 2 | winget install Microsoft.WindowsTerminal --disable-interactivity --silent 3 | winget install Microsoft.PowerToys --disable-interactivity --silent 4 | winget install Notepad++.Notepad++ --disable-interactivity --silent 5 | winget install SublimeHQ.SublimeText.4 --disable-interactivity --silent 6 | # winget install AutoHotKey.AutoHotKey --disable-interactivity --silent 7 | winget install Google.Chrome --disable-interactivity --silent 8 | winget install Mozilla.Firefox --disable-interactivity --silent 9 | winget install Adobe.Acrobat.Reader.64-bit --disable-interactivity --silent 10 | winget install 7zip.7zip --disable-interactivity --silent 11 | winget install Bitwarden.Bitwarden --disable-interactivity --silent 12 | -------------------------------------------------------------------------------- /install/install-everything-on-powertoys.ps1: -------------------------------------------------------------------------------- 1 | # Everything path 2 | $everythingPath = "C:\Program Files\Everything\" 3 | # Powertoys path 4 | $powertoysPath = "C:\Program Files\PowerToys\" 5 | $powertoysLocalPath = "$($env:LOCALAPPDATA)\PowerToys\" 6 | 7 | Write-Host "Install Everything plugin on PowerToys Run..." 8 | 9 | # Install Powertoys 10 | if ((Test-Path -Path $powertoysPath) -OR (Test-Path -Path $powertoysLocalPath)) { 11 | Write-Host "PowerToys found!" 12 | } else { 13 | Write-Host "PowerToys not found! Installing..." 14 | winget install Microsoft.PowerToys --disable-interactivity --silent 15 | } 16 | 17 | # Install Everything 18 | if (Test-Path -Path $everythingPath) { 19 | Write-Host "Everything found!" 20 | } else { 21 | Write-Host "Everything not found! Installing..." 22 | winget install voidtools.Everything --disable-interactivity --silent 23 | } 24 | 25 | # Install Everything PowerToys Plugin 26 | # winget installation of plugin deprecated 27 | # winget install lin-ycv.EverythingPowerToys --disable-interactivity --silent 28 | choco install EverythingPowerToys 29 | -------------------------------------------------------------------------------- /install/install-media-apps.ps1: -------------------------------------------------------------------------------- 1 | winget install Spotify.Spotify --disable-interactivity --silent 2 | #winget install WhatsApp.WhatsApp --disable-interactivity --silent 3 | # WhatsApp of winget repo seams to be broke, using MS Store repo: 4 | winget install 9NKSQGP7F2NH --disable-interactivity --silent 5 | winget install Telegram.TelegramDesktop --disable-interactivity --silent 6 | winget install VideoLAN.VLC --disable-interactivity --silent 7 | -------------------------------------------------------------------------------- /install/install-office-apps.ps1: -------------------------------------------------------------------------------- 1 | winget install Microsoft.Office --disable-interactivity --silent 2 | winget install TheDocumentFoundation.LibreOffice --disable-interactivity --silent 3 | winget install AcroSoftware.CutePDFWriter --disable-interactivity --silent 4 | winget install PDFsam.PDFsam --disable-interactivity --silent 5 | winget install notion.notion --disable-interactivity --silent 6 | -------------------------------------------------------------------------------- /install/install-oh-my-posh.ps1: -------------------------------------------------------------------------------- 1 | # Install OhMyPosh 2 | winget install JanDeDobbeleer.OhMyPosh -s winget 3 | # Install CacadiaCode Nerd Fonts 4 | oh-my-posh font install CascadiaCode 5 | # Install better Terminal Icons 6 | Install-Module -Name Terminal-Icons -Repository PSGallery 7 | 8 | # Install PSReadLine, a code completion tool 9 | # Before, we need install PowerShellGet 10 | Install-Module -Name PowerShellGet -Force 11 | Install-Module PSReadLine 12 | # If there is a Profile, do a backup 13 | if ( Test-Path -Path $PROFILE -PathType Leaf ) { 14 | $PROFILE_BAK = $PROFILE + ".bak" 15 | Move-Item -Path $PROFILE -Destination $PROFILE_BAK 16 | } 17 | # Download a GitHub Profile to be a new PowerShell Profile 18 | Invoke-WebRequest https://raw.githubusercontent.com/levicm/win-tools/master/powershell/Microsoft.PowerShell_profile.ps1 -OutFile $PROFILE 19 | 20 | # Create a new simple profile 21 | #New-Item -Path $PROFILE -Type File -Force 22 | #Write-Output "oh-my-posh init pwsh | Invoke-Expression" > $PROFILE 23 | 24 | -------------------------------------------------------------------------------- /install/install-tool-apps.ps1: -------------------------------------------------------------------------------- 1 | winget install Ookla.Speedtest.CLI --disable-interactivity --silent 2 | #winget install Balena.Etcher --disable-interactivity --silent 3 | #winget install Genymobile.scrcpy --disable-interactivity --silent 4 | #winget install Piriform.CCleaner --disable-interactivity --silent 5 | #winget install REALiX.HWiNFO --disable-interactivity --silent 6 | #winget install Oracle.VirtualBox --disable-interactivity --silent 7 | #winget install VMware.WorkstationPlayer --disable-interactivity --silent 8 | -------------------------------------------------------------------------------- /install/install-winget.ps1: -------------------------------------------------------------------------------- 1 | Write-Host "Checking winget..." 2 | [bool] $doInstall = $true 3 | # Check if winget is installed 4 | if (Test-Path ~\AppData\Local\Microsoft\WindowsApps\winget.exe) { 5 | Write-Host "Winget Already Installed" 6 | Write-Host "Checking if it is working..." 7 | winget upgrade 8 | if ($LastExitCode -eq 0) { 9 | Write-Host "Winget is ok" 10 | $doInstall = $false 11 | } else { 12 | Write-Host "Winget is installed but is not working well" 13 | } 14 | } 15 | if ($doInstall) { 16 | # Installing winget from the Github... 17 | Write-Host "Winget not found or not working, installing it..." 18 | # get latest download url 19 | $URL = "https://api.github.com/repos/microsoft/winget-cli/releases/latest" 20 | $URL = (Invoke-WebRequest -Uri $URL).Content | ConvertFrom-Json | 21 | Select-Object -ExpandProperty "assets" | 22 | Where-Object "browser_download_url" -Match '.msixbundle' | 23 | Select-Object -ExpandProperty "browser_download_url" 24 | # download 25 | Invoke-WebRequest -Uri $URL -OutFile "Setup.msix" -UseBasicParsing 26 | # install 27 | Add-AppxPackage -Path "Setup.msix" 28 | # delete file 29 | Remove-Item "Setup.msix" 30 | Write-Host "Winget Installed!" 31 | } 32 | -------------------------------------------------------------------------------- /powershell/Microsoft.PowerShell_profile.ps1: -------------------------------------------------------------------------------- 1 | # Start with default theme: 2 | #oh-my-posh init pwsh | Invoke-Expression 3 | # Start with jandedobbeleer theme: 4 | oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json" | Invoke-Expression 5 | # Better icons 6 | Import-Module Terminal-Icons 7 | # Code completion 8 | Import-Module PSReadLine -------------------------------------------------------------------------------- /scripts/FixHiddenTaskbarIcons.ps1: -------------------------------------------------------------------------------- 1 | $shell = New-Object -ComObject Shell.Application; 2 | $shell.MinimizeAll(); 3 | Start-Sleep -Seconds 1; 4 | $shell.UndoMinimizeAll(); 5 | -------------------------------------------------------------------------------- /scripts/Restart-Explorer.ps1: -------------------------------------------------------------------------------- 1 | Stop-Process -ProcessName explorer -Force -------------------------------------------------------------------------------- /scripts/fast-indexing-disable.ps1: -------------------------------------------------------------------------------- 1 | Write-Host "Disabling fast indexing..." 2 | If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows Search\Gathering Manager")) { 3 | New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows Search\Gathering Manager" | Out-Null 4 | } 5 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Search\Gathering Manager" -Name "DisableBackOff" -Type DWord -Value 0 6 | Stop-Service "Wsearch" -WarningAction SilentlyContinue 7 | Start-Service "Wsearch" 8 | Control /name Microsoft.IndexingOptions -------------------------------------------------------------------------------- /scripts/fast-indexing-enable.ps1: -------------------------------------------------------------------------------- 1 | Write-Host "Enabling fast indexing..." 2 | If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows Search\Gathering Manager")) { 3 | New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows Search\Gathering Manager" | Out-Null 4 | } 5 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Search\Gathering Manager" -Name "DisableBackOff" -Type DWord -Value 1 6 | Stop-Service "Wsearch" -WarningAction SilentlyContinue 7 | Start-Service "Wsearch" 8 | Control /name Microsoft.IndexingOptions -------------------------------------------------------------------------------- /scripts/former-context-menu-disable.ps1: -------------------------------------------------------------------------------- 1 | Write-Host "Disabling former context menu..." 2 | Remove-Item -Path "HKCU:\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" -Recurse -Confirm:$false -Force 3 | Write-Host "Restart Needed for change to take effect" -------------------------------------------------------------------------------- /scripts/former-context-menu-enable.ps1: -------------------------------------------------------------------------------- 1 | Write-Host "Enabling former context menu..." 2 | New-Item -Path "HKCU:\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" -Name "InprocServer32" -force -value "" -------------------------------------------------------------------------------- /scripts/vs-code-context-menu.ps1: -------------------------------------------------------------------------------- 1 | $CodePath = $Env:USERPROFILE+"\AppData\Local\Programs\Microsoft VS Code\Code.exe" 2 | # Open files 3 | if((Test-Path -LiteralPath "HKLM:\SOFTWARE\Classes\*\shell\Open with VS Code") -ne $true) { 4 | New-Item "HKLM:\SOFTWARE\Classes\*\shell\Open with VS Code" -force -ea SilentlyContinue 5 | }; 6 | New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Classes\*\shell\Open with VS Code' -Name '(default)' -Value 'Edit with VS Code' -PropertyType String -Force -ea SilentlyContinue; 7 | New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Classes\*\shell\Open with VS Code' -Name 'Icon' -Value """$CodePath"",0" -PropertyType String -Force -ea SilentlyContinue; 8 | 9 | if((Test-Path -LiteralPath "HKLM:\SOFTWARE\Classes\*\shell\Open with VS Code\command") -ne $true) { 10 | New-Item "HKLM:\SOFTWARE\Classes\*\shell\Open with VS Code\command" -force -ea SilentlyContinue 11 | }; 12 | New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Classes\*\shell\Open with VS Code\command' -Name '(default)' -Value """$CodePath"" ""%1""" -PropertyType String -Force -ea SilentlyContinue; 13 | 14 | if((Test-Path -LiteralPath "HKLM:\SOFTWARE\Classes\Directory\shell\vscode") -ne $true) { 15 | New-Item "HKLM:\SOFTWARE\Classes\Directory\shell\vscode" -force -ea SilentlyContinue 16 | }; 17 | New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Classes\Directory\shell\vscode' -Name '(default)' -Value 'Open Folder as VS Code Project' -PropertyType String -Force -ea SilentlyContinue; 18 | New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Classes\Directory\shell\vscode' -Name 'Icon' -Value """$CodePath"",0" -PropertyType String -Force -ea SilentlyContinue; 19 | 20 | if((Test-Path -LiteralPath "HKLM:\SOFTWARE\Classes\Directory\shell\vscode\command") -ne $true) { 21 | New-Item "HKLM:\SOFTWARE\Classes\Directory\shell\vscode\command" -force -ea SilentlyContinue 22 | }; 23 | New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Classes\Directory\shell\vscode\command' -Name '(default)' -Value """$CodePath"" ""%1""" -PropertyType String -Force -ea SilentlyContinue; 24 | 25 | if((Test-Path -LiteralPath "HKLM:\SOFTWARE\Classes\Directory\Background\shell\vscode") -ne $true) { 26 | New-Item "HKLM:\SOFTWARE\Classes\Directory\Background\shell\vscode" -force -ea SilentlyContinue 27 | }; 28 | New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Classes\Directory\Background\shell\vscode' -Name '(default)' -Value 'Open Folder as VS Code Project' -PropertyType String -Force -ea SilentlyContinue; 29 | New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Classes\Directory\Background\shell\vscode' -Name 'Icon' -Value """$CodePath"",0" -PropertyType String -Force -ea SilentlyContinue; 30 | 31 | if((Test-Path -LiteralPath "HKLM:\SOFTWARE\Classes\Directory\Background\shell\vscode\command") -ne $true) { 32 | New-Item "HKLM:\SOFTWARE\Classes\Directory\Background\shell\vscode\command" -force -ea SilentlyContinue 33 | }; 34 | New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Classes\Directory\Background\shell\vscode\command' -Name '(default)' -Value """$CodePath"" ""%V""" -PropertyType String -Force -ea SilentlyContinue; 35 | -------------------------------------------------------------------------------- /win-all.ps1: -------------------------------------------------------------------------------- 1 | Write-Host "Installing Winget..." 2 | iex (irm https://raw.githubusercontent.com/levicm/win-tools/master/install/install-winget.ps1); 3 | 4 | Write-Host "Debloat..." 5 | iex (irm https://raw.githubusercontent.com/levicm/win-tools/master/win-debloat.ps1); 6 | 7 | Write-Host "Essential tweaks..." 8 | iex (irm https://raw.githubusercontent.com/levicm/win-tools/master/win-tweaks.ps1); 9 | 10 | Write-Host "Customize..." 11 | iex (irm https://raw.githubusercontent.com/levicm/win-tools/master/win-customize.ps1); 12 | 13 | Write-Host "Windows optional features..." 14 | iex (irm https://raw.githubusercontent.com/levicm/win-tools/master/win-enable-features.ps1); 15 | 16 | Write-Host "Installing Apps..." 17 | iex (irm https://raw.githubusercontent.com/levicm/win-tools/master/win-install-apps.ps1); 18 | -------------------------------------------------------------------------------- /win-customize.ps1: -------------------------------------------------------------------------------- 1 | Function Customize { 2 | Write-Host "Showing file operations details..." 3 | If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager")) { 4 | New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" | Out-Null 5 | } 6 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager" -Name "EnthusiastMode" -Type DWord -Value 1 7 | 8 | Write-Host "Hiding People icon..." 9 | If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People")) { 10 | New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People" | Out-Null 11 | } 12 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People" -Name "PeopleBand" -Type DWord -Value 0 13 | 14 | Write-Host "Showing all tray icons..." 15 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "EnableAutoTray" -Type DWord -Value 0 16 | 17 | # Remove "News and Interest" from taskbar 18 | Write-Host "Disable News and Interests" 19 | If (Test-Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Windows Feeds") { 20 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Windows Feeds" -Name "EnableFeeds" -Type DWord -Value 0 21 | } 22 | Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Feeds" -Name "ShellFeedsTaskbarViewMode" -Type DWord -Value 2 23 | # remove "Meet Now" button from taskbar 24 | If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer")) { 25 | New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Force | Out-Null 26 | } 27 | Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name "HideSCAMeetNow" -Type DWord -Value 1 28 | 29 | Write-Host "Changing default Explorer view to This PC..." 30 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo" -Type DWord -Value 1 31 | 32 | Write-Host "Hiding 3D Objects icon from This PC..." 33 | Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}" -Recurse -ErrorAction SilentlyContinue 34 | 35 | Write-Host "Enabling Dark Mode" 36 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name SystemUsesLightTheme -Value 0 -Type Dword -Force 37 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name AppsUseLightTheme -Value 0 -Type Dword -Force 38 | 39 | Write-Host "Stopping Cortana from being used as part of your Windows Search Function..." 40 | $Search = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search' 41 | If (Test-Path $Search) { 42 | Set-ItemProperty $Search AllowCortana -Value 0 43 | } 44 | 45 | Write-Host "Hiding Taskbar Search..." 46 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" -Name SearchBoxTaskbarMode -Value 0 -Type DWord -Force 47 | 48 | Write-Host "Disable Web Results in Windows Search..." 49 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" -Name BingSearchEnabled -Value 0 -Type DWord -Force 50 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" -Name CortanaConsent -Value 0 -Type DWord -Force 51 | 52 | Write-Host "Prevent Web Suggestions in Windows Explore..." 53 | If (!(Test-Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer")) { 54 | New-Item -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer" | Out-Null 55 | } 56 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name "DisableSearchBoxSuggestions" -Type DWord -Value 1 57 | 58 | 59 | Write-Host "Setting Mixed Reality Portal value to 0 so that you can uninstall it in Settings..." 60 | $Holo = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Holographic' 61 | If (Test-Path $Holo) { 62 | Set-ItemProperty $Holo FirstRunSucceeded -Value 0 63 | } 64 | 65 | Write-Host "Disabling live tiles..." 66 | $Live = 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\PushNotifications' 67 | If (!(Test-Path $Live)) { 68 | mkdir $Live 69 | New-ItemProperty $Live NoTileApplicationNotification -Value 1 70 | } 71 | 72 | Write-Host "Showing Hidden Files..." 73 | Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Hidden" -Value 1 -Type DWord -Force 74 | 75 | Write-Host "Showing Files extensions..." 76 | Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Value 0 -Type DWord -Force 77 | 78 | #Write-Host "Showing System Hidden Files..." 79 | #Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowSuperHidden" -Value 1 -Type DWord -Force 80 | 81 | # Warning: this command has no counterpart 82 | Write-Output "Unpinning all Taskbar icons..." 83 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Taskband" -Name "Favorites" -Type Binary -Value ([byte[]](255)) 84 | Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Taskband" -Name "FavoritesResolve" -ErrorAction SilentlyContinue 85 | } 86 | 87 | # Kill and start Explorer again 88 | Function RestartExplorer { 89 | Stop-Process -ProcessName explorer -Force 90 | } 91 | 92 | # Main function invocation 93 | Customize; 94 | RestartExplorer; 95 | -------------------------------------------------------------------------------- /win-debloat.ps1: -------------------------------------------------------------------------------- 1 | Function DebloatMS { 2 | $Bloatware = @( 3 | #Unnecessary Windows 10 AppX Apps 4 | "Microsoft.Teams" 5 | "Microsoft.3DBulder" 6 | "Microsoft.AppConnector" 7 | "Microsoft.BingFinance" 8 | "Microsoft.BingNews" 9 | "Microsoft.BingSports" 10 | "Microsoft.BingTranslator" 11 | "Microsoft.BingWeather" 12 | "Microsoft.GetHelp" 13 | "Microsoft.Getstarted" 14 | "Microsoft.Messaging" 15 | "Microsoft.Microsoft3DViewer" 16 | "Microsoft.MicrosoftOfficeHub" 17 | "Microsoft.MicrosoftSolitaireCollection" 18 | "Microsoft.NetworkSpeedTest" 19 | "Microsoft.News" 20 | "Microsoft.Office.Lens" 21 | "Microsoft.Office.OneNote" 22 | "Microsoft.Office.Sway" 23 | "Microsoft.Office.Todo.List" 24 | "Microsoft.OneConnect" 25 | "Microsoft.People" 26 | "Microsoft.PPIProjection" 27 | "Microsoft.Print3D" 28 | "Microsoft.SkypeApp" 29 | "Microsoft.StorePurchaseApp" 30 | "Microsoft.Todos" 31 | "Microsoft.Wallet" 32 | "Microsoft.Whiteboard" 33 | "Microsoft.WindowsAlarms" 34 | "microsoft.windowscommunicationsapps" 35 | "Microsoft.WindowsFeedbackHub" 36 | "Microsoft.WindowsMaps" 37 | "Microsoft.WindowsSoundRecorder" 38 | "Microsoft.Xbox.TCUI" 39 | "Microsoft.XboxApp" 40 | #"Microsoft.XboxGameCallableUI" 41 | "Microsoft.XboxGameOverlay" 42 | "Microsoft.XboxGamingOverlay" 43 | "Microsoft.XboxIdentityProvider" 44 | "Microsoft.XboxSpeechToTextOverlay" 45 | "Microsoft.ZuneMusic" 46 | "Microsoft.ZuneVideo" 47 | "Microsoft.YourPhone" 48 | 49 | #Optional: Typically not removed but you can if you need to for some reason 50 | #"*Microsoft.Advertising.Xaml_10.1712.5.0_x64__8wekyb3d8bbwe*" 51 | #"*Microsoft.Advertising.Xaml_10.1712.5.0_x86__8wekyb3d8bbwe*" 52 | "*Microsoft.BingWeather*" 53 | #"*Microsoft.MSPaint*" 54 | "*Microsoft.MicrosoftStickyNotes*" 55 | "*Microsoft.MixedReality*" 56 | #"*Microsoft.Windows.Photos*" 57 | #"*Microsoft.WindowsCalculator*" 58 | #"*Microsoft.WindowsStore*" 59 | ) 60 | Write-Host "Debloating MS Apps..." 61 | foreach ($Bloat in $Bloatware) { 62 | Get-AppxPackage -Name $Bloat| Remove-AppxPackage 63 | Get-AppxProvisionedPackage -Online | Where-Object DisplayName -like $Bloat | Remove-AppxProvisionedPackage -Online 64 | Get-AppxPackage -AllUsers -Name $Bloat| Remove-AppxPackage 65 | Write-Host "Trying to remove $Bloat." 66 | } 67 | if (Test-Path ~\AppData\Local\Microsoft\WindowsApps\winget.exe){ 68 | Write-Output "Uninstalling MSTeams..." 69 | winget uninstall "Microsoft.Teams" 70 | winget uninstall "Microsoft Teams" 71 | Write-Output "Uninstalling XBox..." 72 | winget uninstall "Xbox" 73 | # Webview seems to be used by programs like Citrix 74 | #Write-Output "Uninstalling Windows 11 Edge Web View..." 75 | #winget uninstall "Microsoft Edge WebView2 Runtime" 76 | } 77 | 78 | #Write-Host "Uninstalling Edge..." 79 | #curl.exe -s "https://raw.githubusercontent.com/AveYo/fox/main/Edge_Removal.bat" -o edge_removal.bat 80 | #Start-Process edge_removal.bat 81 | } 82 | 83 | Function DebloatThirdParty { 84 | $Bloatware = @( 85 | #Sponsored Windows 10 AppX Apps 86 | #Add sponsored/featured apps to remove in the "*AppName*" format 87 | "*EclipseManager*" 88 | "*ActiproSoftwareLLC*" 89 | "*AdobeSystemsIncorporated.AdobePhotoshopExpress*" 90 | "*Duolingo-LearnLanguagesforFree*" 91 | "*PandoraMediaInc*" 92 | "*CandyCrush*" 93 | "*BubbleWitch3Saga*" 94 | "*Wunderlist*" 95 | "*Flipboard*" 96 | "*Twitter*" 97 | "*Pinterest*" 98 | "*Facebook*" 99 | "*Minecraft*" 100 | "*Royal Revolt*" 101 | "*Sway*" 102 | "*Roblox*" 103 | "*Speed Test*" 104 | "*Dolby*" 105 | "*Viber*" 106 | "*ACGMediaPlayer*" 107 | "*Netflix*" 108 | "*OneCalendar*" 109 | "*LinkedInforWindows*" 110 | "*HiddenCityMysteryofShadows*" 111 | "*Hulu*" 112 | "*HiddenCity*" 113 | "*AdobePhotoshopExpress*" 114 | "*Disney*" 115 | "Clipchamp.Clipchamp*" 116 | ) 117 | Write-Host "Debloating Third Apps..." 118 | foreach ($Bloat in $Bloatware) { 119 | Get-AppxPackage -Name $Bloat| Remove-AppxPackage 120 | Get-AppxProvisionedPackage -Online | Where-Object DisplayName -like $Bloat | Remove-AppxProvisionedPackage -Online 121 | Get-AppxPackage -AllUsers -Name $Bloat| Remove-AppxPackage 122 | Write-Host "Trying to remove $Bloat." 123 | } 124 | } 125 | 126 | DebloatMS; 127 | DebloatThirdParty; 128 | -------------------------------------------------------------------------------- /win-enable-features.ps1: -------------------------------------------------------------------------------- 1 | Function EnableOptionalFeatures { 2 | Write-Output "Enabling Telnet Client..." 3 | Enable-WindowsOptionalFeature -Online -All -NoRestart -FeatureName TelnetClient 4 | 5 | Write-Output "Enabling Virtual Machine Platform..." 6 | Enable-WindowsOptionalFeature -Online -All -NoRestart -FeatureName VirtualMachinePlatform 7 | 8 | Write-Output "Enabling Hyper-V..." 9 | Enable-WindowsOptionalFeature -Online -All -NoRestart -FeatureName Microsoft-Hyper-V-All 10 | 11 | Write-Output "Enabling Windows Subsystem for Linux..." 12 | Enable-WindowsOptionalFeature -Online -All -NoRestart -FeatureName Microsoft-Windows-Subsystem-Linux 13 | 14 | Write-Output "Enabling Windows Sandbox..." 15 | Enable-WindowsOptionalFeature -Online -All -NoRestart -FeatureName Containers-DisposableClientVM 16 | } 17 | 18 | EnableOptionalFeatures; -------------------------------------------------------------------------------- /win-install-apps.ps1: -------------------------------------------------------------------------------- 1 | Write-Host "Installing Chocolatey..." 2 | Set-ExecutionPolicy Bypass -Scope Process -Force; 3 | [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; 4 | iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')); 5 | 6 | Write-Host "Installing Essential Apps..." 7 | iex (irm https://raw.githubusercontent.com/levicm/win-tools/master/install/install-essential-apps.ps1); 8 | 9 | Write-Host "Installing Tool Apps..." 10 | iex (irm https://raw.githubusercontent.com/levicm/win-tools/master/install/install-tool-apps.ps1); 11 | 12 | Write-Host "Installing Office Apps..." 13 | iex (irm https://raw.githubusercontent.com/levicm/win-tools/master/install/install-office-apps.ps1); 14 | 15 | Write-Host "Installing Dev Apps..." 16 | iex (irm https://raw.githubusercontent.com/levicm/win-tools/master/install/install-dev-apps.ps1); 17 | 18 | Write-Host "Installing Media Apps..." 19 | iex (irm https://raw.githubusercontent.com/levicm/win-tools/master/install/install-media-apps.ps1); 20 | -------------------------------------------------------------------------------- /win-tweaks.ps1: -------------------------------------------------------------------------------- 1 | Function CreateRestorePoint { 2 | Write-Host "Creating Restore Point incase something bad happens" 3 | Enable-ComputerRestore -Drive "C:\" 4 | Checkpoint-Computer -Description "RestorePoint1" -RestorePointType "MODIFY_SETTINGS" 5 | } 6 | 7 | Function EssentialTweaks { 8 | Write-Host "Disabling Telemetry..." 9 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 0 10 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 0 11 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 0 12 | Disable-ScheduledTask -TaskName "Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser" | Out-Null 13 | Disable-ScheduledTask -TaskName "Microsoft\Windows\Application Experience\ProgramDataUpdater" | Out-Null 14 | Disable-ScheduledTask -TaskName "Microsoft\Windows\Autochk\Proxy" | Out-Null 15 | Disable-ScheduledTask -TaskName "Microsoft\Windows\Customer Experience Improvement Program\Consolidator" | Out-Null 16 | Disable-ScheduledTask -TaskName "Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" | Out-Null 17 | Disable-ScheduledTask -TaskName "Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" | Out-Null 18 | Disable-ScheduledTask -TaskName "Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" | Out-Null 19 | 20 | Write-Host "Disabling Application suggestions..." 21 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "ContentDeliveryAllowed" -Type DWord -Value 0 22 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "OemPreInstalledAppsEnabled" -Type DWord -Value 0 23 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEnabled" -Type DWord -Value 0 24 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "PreInstalledAppsEverEnabled" -Type DWord -Value 0 25 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SilentInstalledAppsEnabled" -Type DWord -Value 0 26 | Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338387Enabled" -Type DWord -Value 0 27 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338388Enabled" -Type DWord -Value 0 28 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338389Enabled" -Type DWord -Value 0 29 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-353698Enabled" -Type DWord -Value 0 30 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestionsEnabled" -Type DWord -Value 0 31 | If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent")) { 32 | New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Force | Out-Null 33 | } 34 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableWindowsConsumerFeatures" -Type DWord -Value 1 35 | 36 | Write-Host "Disabling Activity History..." 37 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableActivityFeed" -Type DWord -Value 0 38 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "PublishUserActivities" -Type DWord -Value 0 39 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "UploadUserActivities" -Type DWord -Value 0 40 | 41 | Write-Host "Disabling Location Tracking..." 42 | If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location")) { 43 | New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Force | Out-Null 44 | } 45 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Name "Value" -Type String -Value "Deny" 46 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Sensor\Overrides\{BFA794E4-F964-4FDB-90F6-51056BFE4B44}" -Name "SensorPermissionState" -Type DWord -Value 0 47 | Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\lfsvc\Service\Configuration" -Name "Status" -Type DWord -Value 0 48 | 49 | Write-Host "Disabling automatic Maps updates..." 50 | Set-ItemProperty -Path "HKLM:\SYSTEM\Maps" -Name "AutoUpdateEnabled" -Type DWord -Value 0 51 | 52 | Write-Host "Disabling Feedback..." 53 | If (!(Test-Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules")) { 54 | New-Item -Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules" -Force | Out-Null 55 | } 56 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Siuf\Rules" -Name "NumberOfSIUFInPeriod" -Type DWord -Value 0 57 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "DoNotShowFeedbackNotifications" -Type DWord -Value 1 58 | Disable-ScheduledTask -TaskName "Microsoft\Windows\Feedback\Siuf\DmClient" -ErrorAction SilentlyContinue | Out-Null 59 | Disable-ScheduledTask -TaskName "Microsoft\Windows\Feedback\Siuf\DmClientOnScenarioDownload" -ErrorAction SilentlyContinue | Out-Null 60 | 61 | Write-Host "Disabling Tailored Experiences..." 62 | If (!(Test-Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent")) { 63 | New-Item -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Force | Out-Null 64 | } 65 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableTailoredExperiencesWithDiagnosticData" -Type DWord -Value 1 66 | 67 | Write-Host "Disabling Advertising ID..." 68 | If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo")) { 69 | New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" | Out-Null 70 | } 71 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo" -Name "DisabledByGroupPolicy" -Type DWord -Value 1 72 | 73 | Write-Host "Disabling Error reporting..." 74 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name "Disabled" -Type DWord -Value 1 75 | Disable-ScheduledTask -TaskName "Microsoft\Windows\Windows Error Reporting\QueueReporting" | Out-Null 76 | 77 | Write-Host "Enabling F8 boot menu options..." 78 | bcdedit /set `{current`} bootmenupolicy Legacy | Out-Null 79 | 80 | Write-Host "Disabling Shared Experiences..." 81 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableCdp" -Type DWord -Value 0 82 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableMmx" -Type DWord -Value 0 83 | 84 | Write-Host "Disabling Windows Defender..." 85 | Disable-ScheduledTask -TaskName "\Microsoft\Windows\Windows Defender\Windows Defender Cache Maintenance" | Out-Null 86 | Disable-ScheduledTask -TaskName "\Microsoft\Windows\Windows Defender\Windows Defender Cleanup" | Out-Null 87 | Disable-ScheduledTask -TaskName "\Microsoft\Windows\Windows Defender\Windows Defender Scheduled Scan" | Out-Null 88 | Disable-ScheduledTask -TaskName "\Microsoft\Windows\Windows Defender\Windows Defender Verification" | Out-Null 89 | 90 | Write-Host "Disabling Storage Sense..." 91 | Remove-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Recurse -ErrorAction SilentlyContinue 92 | 93 | Write-Host "Enabling Hibernation..." 94 | Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Session Manager\Power" -Name "HibernteEnabled" -Type Dword -Value 1 95 | If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings")) { 96 | New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" | Out-Null 97 | } 98 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Name "ShowHibernateOption" -Type Dword -Value 1 99 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "ShowHibernateOption" -Type Dword -Value 1 100 | 101 | Write-Host "Enabling Sleep..." 102 | If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings")) { 103 | New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" | Out-Null 104 | } 105 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings" -Name "ShowSleepOption" -Type Dword -Value 1 106 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "ShowSleepOption" -Type Dword -Value 1 107 | 108 | Write-Host "Removing CloudStore from registry if it exists..." 109 | $CloudStore = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore' 110 | If (Test-Path $CloudStore) { 111 | Remove-Item $CloudStore -Recurse -Force 112 | } 113 | 114 | Write-Host "Enabling Ultimate Performance Power Plan..." 115 | powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61 116 | 117 | Write-Host "" 118 | Write-Host "Enabling Windows Update on powerShell..." 119 | Install-Module PSWindowsUpdate -force 120 | Add-WUServiceManager -MicrosoftUpdate 121 | 122 | # Windows 11 section 123 | Write-Host "Hiding Widgets from Taskbar..." 124 | Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarDa" -Type DWord -Value 0 125 | if (Test-Path ~\AppData\Local\Microsoft\WindowsApps\winget.exe){ 126 | Write-Host "Uninstalling Widgets..." 127 | winget uninstall "Windows web experience pack" 128 | } 129 | 130 | Write-Host "Disabling Edge Preloading..." 131 | If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge")) { 132 | New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge" -Force | Out-Null 133 | } 134 | Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge" -Name "AllowPrelaunch" -Type DWord -Value 0 135 | } 136 | 137 | Function DisableServices { 138 | Write-Host "Disabling some services..." 139 | 140 | $services = @( 141 | "ALG" # Application Layer Gateway Service(Provides support for 3rd party protocol plug-ins for Internet Connection Sharing) 142 | "AJRouter" # Needed for AllJoyn Router Service 143 | "AxInstSV" # AllJoyn Router Service 144 | "BcastDVRUserService_48486de" # GameDVR and Broadcast is used for Game Recordings and Live Broadcasts 145 | "cbdhsvc_48486de" # Clipboard Service 146 | "diagnosticshub.standardcollector.service" # Microsoft (R) Diagnostics Hub Standard Collector Service 147 | "DiagTrack" # Diagnostics Tracking Service 148 | "dmwappushservice" # WAP Push Message Routing Service 149 | "DPS" # Diagnostic Policy Service (Detects and Troubleshoots Potential Problems) 150 | "edgeupdate" # Edge Update Service 151 | "edgeupdatem" # Another Update Service 152 | "EntAppSvc" # Enterprise Application Management. 153 | "Fax" # Fax Service 154 | "fhsvc" # Fax History 155 | "gupdate" # Google Update 156 | "gupdatem" # Another Google Update Service 157 | "iphlpsvc" # ipv6(Most websites use ipv4 instead) 158 | "lfsvc" # Geolocation Service 159 | "lmhosts" # TCP/IP NetBIOS Helper 160 | "MapsBroker" # Downloaded Maps Manager 161 | "MicrosoftEdgeElevationService" # Another Edge Update Service 162 | "MSDTC" # Distributed Transaction Coordinator 163 | #"ndu" # Windows Network Data Usage Monitor (Disabling Breaks Task Manager Per-Process Network Monitoring) 164 | "NetTcpPortSharing" # Net.Tcp Port Sharing Service 165 | "PcaSvc" # Program Compatibility Assistant Service 166 | "PerfHost" # Remote users and 64-bit processes to query performance. 167 | "PhoneSvc" # Phone Service(Manages the telephony state on the device) 168 | "RemoteAccess" # Routing and Remote Access 169 | "RemoteRegistry" # Remote Registry 170 | "RetailDemo" # Demo Mode for Store Display 171 | "SCardSvr" # Windows Smart Card Service 172 | "SEMgrSvc" # Payments and NFC/SE Manager (Manages payments and Near Field Communication (NFC) based secure elements) 173 | "SharedAccess" # Internet Connection Sharing (ICS) 174 | "SysMain" # Analyses System Usage and Improves Performance 175 | "TrkWks" # Distributed Link Tracking Client 176 | "WerSvc" # Windows error reporting 177 | #"wisvc" # Windows Insider program(Windows Insider will not work if Disabled) 178 | "WMPNetworkSvc" # Windows Media Player Network Sharing Service 179 | "WpcMonSvc" # Parental Controls 180 | "WPDBusEnum" # Portable Device Enumerator Service 181 | "WpnService" # WpnService (Push Notifications may not work) 182 | "XblAuthManager" # Xbox Live Auth Manager (Disabling Breaks Xbox Live Games) 183 | "XblGameSave" # Xbox Live Game Save Service (Disabling Breaks Xbox Live Games) 184 | "XboxNetApiSvc" # Xbox Live Networking Service (Disabling Breaks Xbox Live Games) 185 | "XboxGipSvc" # Xbox Accessory Management Service 186 | # HP services 187 | "HPAppHelperCap" 188 | "HPDiagsCap" 189 | "HPNetworkCap" 190 | "HPSysInfoCap" 191 | "HpTouchpointAnalyticsService" 192 | # Dell services 193 | "dcpm-notify" # Dell Command | Power Manager Notify 194 | "DDVCollectorSvcApi" # Dell Data Vault Service API 195 | "DDVDataCollector" # Dell Data Vault Collector 196 | "DDVRulesProcessor" # Dell Data Vault Processor 197 | "Dell.CommandPowerManager.Service" # Dell.CommandPowerManager.Service 198 | "DellClientManagementService" # Dell Client Management Service 199 | "DellTechHub" # Dell TechHub 200 | "DPMService" # Dell Peripheral Manager Service 201 | "SupportAssistAgent" # Dell SupportAssist 202 | # Hyper-V services 203 | #"HvHost" 204 | #"vmicguestinterface" 205 | #"vmicheartbeat" 206 | #"vmickvpexchange" 207 | #"vmicrdv" 208 | #"vmicshutdown" 209 | #"vmictimesync" 210 | #"vmicvmsession" 211 | "AdobeARMservice" # Adobe Acrobat Update Service 212 | "FoxitReaderUpdateService" # Foxit PDF Reader Update Service 213 | "StateRepository" # State Repository Service 214 | "StorSvc" # Storage Service 215 | "WpnService" # Windows Push Notifications System S... 216 | 217 | ) 218 | 219 | foreach ($service in $services) { 220 | # -ErrorAction SilentlyContinue is so it doesn't write an error to stdout if a service doesn't exist 221 | $thisService = Get-Service -Name $service -ErrorAction SilentlyContinue 222 | if ($null -eq $thisService) { 223 | Write-Host "Service $service not found!" 224 | } 225 | else { 226 | Write-Host Service $thisService.Name '('$thisService.DisplayName')' is in $thisService.StartType mode 227 | if ($thisService.StartType -eq 'Automatic') { 228 | Write-Host "Stopping $service"... 229 | Stop-Service "$service" -WarningAction SilentlyContinue -ErrorAction SilentlyContinue 230 | Write-Host "Setting $service StartupType to Manual"... 231 | Set-Service "$service" -ErrorAction SilentlyContinue -StartupType Manual 232 | } 233 | } 234 | } 235 | 236 | # Windows Search must be set to disabled, otherwise it becomes restarting 237 | Write-Output "Stopping and disabling Windows Search Service..." 238 | Stop-Service "WSearch" -WarningAction SilentlyContinue 239 | Set-Service "WSearch" -StartupType Disabled 240 | } 241 | 242 | Function DisableScheduledTasks { 243 | $tasks = @( 244 | # Windows base scheduled tasks 245 | "\Microsoft\Windows\.NET Framework\.NET Framework NGEN v4.0.30319" 246 | "\Microsoft\Windows\.NET Framework\.NET Framework NGEN v4.0.30319 64" 247 | "\Microsoft\Windows\.NET Framework\.NET Framework NGEN v4.0.30319 64 Critical" 248 | "\Microsoft\Windows\.NET Framework\.NET Framework NGEN v4.0.30319 Critical" 249 | 250 | "\Microsoft\Windows\AppID\SmartScreenSpecific" 251 | 252 | "\Microsoft\Windows\CloudExperienceHost\CreateObjectTask" 253 | 254 | "\Microsoft\Windows\Mobile Broadband Accounts\MNO Metadata Parser" 255 | 256 | "\Microsoft\XblGameSave\XblGameSaveTask" 257 | ) 258 | 259 | Write-Output "Disabling scheduled tasks..." 260 | foreach ($task in $tasks) { 261 | $parts = $task.split('\') 262 | $name = $parts[-1] 263 | $path = $parts[0..($parts.length-2)] -join '\' 264 | 265 | Disable-ScheduledTask -TaskName "$name" -TaskPath "$path" -ErrorAction SilentlyContinue 266 | } 267 | } 268 | 269 | # Main function invocation 270 | CreateRestorePoint; 271 | EssentialTweaks; 272 | DisableServices; 273 | DisableScheduledTasks; 274 | --------------------------------------------------------------------------------