First off, there is a companion video that goes along with this written tutorial. If at anypoint you feel the written instructions are hard to follow, please view the companion video. Next to each step there will be a link to the specific timestamp in said video regarding said step. This repository aims to assist anyone attempting to install and configure/optimize Microsoft Windows. Through automation via PowerShell & Winget, as well as other third party tools; you can greatly decrease the time required to install, configure/optimize, and maintain Microsoft Windows.
- steps
- update & configure your motherboard's bios
- purchase/obtain a
windows 11 pro for workstations
product key - create a bootable flash drive & install windows
- verify that windows is activated
- update windows
- update microsoft store apps
- install powershell 7 & git
- configure windows terminal
- download, configure, & run bulk-edit-settings powershell script
- manually configure other windows settings
- download/install system drivers
- wigui - install winget auto update & bulk install applications
- configure msi afterburner (gpu fan curve)
- verify that system temperatures are in-check
- download/install remaining software
- configure audio settings
- configure rgb lighting
- drivers
- software
- troubleshooting
- bulk edit settings configuration
- A currently functioning computer running Windows.
- A USB 2.0 flash drive under 32GB in size.
- A USB 3.0 flash drive greater than 8GB in size.
- A Windows 11 Pro For Workstations product key.
-
- Plug your USB 3.0 flash drive of 8GB or greater into a computer running Windows.
- Install Rufus on said PC.
- Running the following command in PowerShell is the easiest way to install Rufus.
-
winget install Rufus.Rufus --Location Documents
- Launch Rufus.
- Click the arrow next to the "SELECT" button and click "DOWNLOAD", then click the "DOWNLOAD" button.
- Select "Windows 11" in the drop down, then click "Continue".
- The latest release should be automatically selected, click "Continue" again.
- There should only be one available "Edition" and it should be automatically selected, click "Continue" again.
- Select your preferred language.
- Note that there are two English options, "English (United States)", and English International.
- The x64 "Architecture" should automatically be selected, click "Download".
- Choose the location in-which you'd like to save the ISO, and wait for the download to complete.
- Select your flash drive via the "Device" dropdown.
- Change the "DOWNLOAD" dropdown back to "SELECT", and then click "SELECT".
- Select the ISO you just downloaded and click "Open".
- Click START at the bottom of the window.
- Uncheck every checkbox in the "Window User Experience" dialog, then click "OK".
- You should be notified when the mounting process is complete, after which you may close Rufus.
-
-
- I highly recommend viewing the companion video for this section.
- The below is a fairly high-level overview of the BIOS update/configuration process, as every motherboard is different.
-
- Plug your <32GB USB 2.0 flash drive to a USB port on a computer running Windows.
- Format said flash drive as FAT32 using File Explorer.
- Locate your Motherboard's model number.
- Search for your motherboard's product page, and navigate to the "support" page for said product.
- Download the latest BIOS version available, and extract the contents to the root of your flash drive.
-
- Plug the flash drive that now contains the desired BIOS into a USB port on the computer you're trying to update.
- Boot into your current BIOS by mashing the BIOS access key as your computer boots (typically the
delete
key). - Navigate to the BIOS flashing tool, usually located in "Advanced" settings and named something with "flash" in its name.
- Select the flash drive & the BIOS file on said flash drive to begin the update process.
- Wait for the BIOS to complete flashing, and follow any prompt thereafter. Typically, your computer will automatically restart multiple times after this point, as it updates the firmware of multiple on-board devices. Be patient, do not manually power down the system unless it has been completely unresponsive for an extended period of time. After all is said and done, you should typically arrive a screen that says "press F1 to enter BIOS".
-
- Re-name the BIOS file on your USB 2.0 flash drive to what is specified via your motherboard's manual.
- Plug your USB 2.0 flash drive into the specified USB flashback port on your motherboard.
- In most cases, your manual will now instruct you to press and hold a BIOS flashback button for a couple seconds.
- In most cases, there should now be a flashing light, and the update process is complete when that light has finished flashing.
- Once the light is done flashing, turn your computer on via the power button. At this point your computer may restart multiple times as it updates the firmware of onboard devices. Be patient, do not manually power down the system unless it has been completely unresponsive for an extended period of time. After all is said and done, you should typically arrive a screen that says "press F1 to enter BIOS".
-
- Enable virtual or physical TPM (usually on by default).
- Verify that secure boot is enabled and active.
- Enable XMP.
- Adjust system fan curves as desired.
-
-
- Under construction
-
- open settings & navigate to
system > activation
- If it says activation failed don't panic, see troubleshooting failed windows activation.
- open settings & navigate to
-
- Open the Settings app & navigate to
Windows Updates
. - Optionally, toggle "Get the latest updates as soon as they're available"; I personally suggest doing this.
- Check for updates & wait for them to download/install.
- Restart your computer.
- Check for updates again.
- If you have more updates and pc requests restarting again, do so.
- Repeat until Windows states that everything is up-to-date.
- Open the Settings app & navigate to
-
-
- Completion of this step is often required before winget will function properly, which is a big component of this tutorial.
-
- Open the Microsoft Store via your Start Menu.
- Click the "library" button in the bottom left hand corner of the window.
- Select "Get Updates" in the top right hand corner of the window.
- Wait until all updates have been retreived, should be a little loading symbol to reference.
- Select "Update All" just left of the "Get Updates" button.
- Wait for all Microsoft Store applications to update before proceeding.
-
-
- right click the start button on taskbar & select "Terminal (Admin)"
- run the following command
-
set-executionpolicy remotesigned
-
- run the following command
-
winget install jazzdelightsme.WingetPathUpdater
-
- Close Windows Terminal
- Right click the start button on the taskbar & select "Terminal"
- run the following command
-
winget install Microsoft.PowerShell Git.Git
-
- Install Your Internet Browser of Choice
- If your browser is not listed below use the following command to find your desired browser ID via winget.
-
winget search [browser name]
-
- If your desired browser is not available on winget, install it the old fashioned way.
- Run one of the following commands, unless you plan on using Microsoft Edge which should already be installed.
-
winget install TheBrowserCompany.Arc
-
winget install Mozilla.Firefox
-
winget install Brave.Brave
-
winget install Google.Chrome
-
- At this point I would recommend opening this tutorial on the computer your configuring via the browser you just installed. This will make running commands much easier as you can just copy & paste them.
- If your browser is not listed below use the following command to find your desired browser ID via winget.
-
- Restart Windows Terminal
- Open Windows Terminal settings (dropdown near tabs) & set your "Default profile" as PowerShell 7 (darker blue PowerShell).
- Simply right click the start menu and select "Terminal (Admin)" when you need to run PowerShell 7 as admin, but for the most part try to run it un-elevated.
-
- Restart Windows Terminal
- Run the following commands (you may have to hit enter multiple times if you copy/paste the full block).
-
git clone https://github.com/ninbura/windows /Users/$env:username/repos/windows New-Item -Path "~/repos/windows/config.json" -ItemType "File"
-
- Note that
~
represents your user's directory (ieC:/Users/gabri/
). - Open
~/repos/windows/config.json
in desired text editor (ie Notepad). - See bulk edit settings configuration for instructions as how to configure your
config.json
file. - Save and close
config.json
. - Right click
~/repos/windows/run-me.bat
& select "Run as administrator". - Wait for the script to finish running, then restart your computer.
-
- theme settings
- navigate to
personalization > colors
- change "choose your mode" to dark
- set desired accent color
- navigate to
- display settings
- navigate to
system > display
- order displays as desired
- select main display
- open "multiple displays" dropdown
- check "make this my main display"
- scroll to bottom of list & select "advanced display"
- generally set refresh rate to max for each monitor
- navigate to
- network settings
- navigate to
network & internet > advanced network settings > advanced sharing settings
- expand "all networks" drop down
- enable "public folder sharing"
- enable "password protected sharing"
- navigate to
- Configure other system settings you'd like which weren't included in the above list or the
bulk-edit-settings
powershell script.
- theme settings
-
- see drivers list below
- Note that every driver you need may not be listed below, said list is composed of items relevant to me and my direct peers.
- you don't need to restart your computer when prompted after every single driver
- restart your computer after installing all drivers
-
-
winget install MartiCliment.UniGetUI
- UniGetUI package bundles are found in the
uniget-package-bundles
folder within the directory in-which you cloned this repository. - Please install all applications in the
dependencies.ubundle
package bundle before installing anything from theapps.ubundle
package bundle.
-
- this is not applicable if your gpu is water cooled
- This program should have been installed via wigui, just search for it in start and open it.
- open settings (should be a button on the left hand side)
- enable startup at launch
- click on the "general" tab
- check "start with windows"
- check "start minimized"
- hit "apply"
- enable msi afterburners fan curve
- click on the "fan" tab
- check "enable user defined software automatic fan control"
- Leaving the fan curve in its default state is fine, but feel free to create your own curve if you want.
- hit "apply"
- hit "ok" to close settings dialog
- minimize msi afterburner
-
-
- temps are model dependent
- higher end components run hotter than lower end components
- lower temp is better but as long as things are generally within listed ranges you should be fine
- open HWiNFO (installed via wigui, search start)
- select "show sensors"
- cpu & gpu idle temp should be >60c
- open Aida64 Extreme (installed via wigui, search start)
- confirm you're okay with app being in trial mode
- open system stability test dialog
tools > system stability test
- enable everything except "local disks"
- run test for 5-15 minutes
- to prevent throttling your
- cpu load temp should be >=99c
- gpu load temp should be >=84c
- Even high-end cooling, modern amd & intel cpus can easily reach 100c.
- While this is technically safe because they'll throttle, you won't get maximum performance unless you stay below 100c.
- there are all in one water coolers large enough to prevent even the highest end CPUs from throttling
- I suggest Artic's "liquid freezer line"
- 360/420mm for intel i7 & AMD x700
- 420mm for intel i9 & AMD X900
- for i5 cpus & below I suggest purchasing the thermalright peerless assassin air cooler
- if temps for cpu or gpu are high per numbers above see troubleshooting high temperatures
-
- download/install crystaldiskinfo & crystaldiskmark
- hard drive monitor & benchmark
- get "Shizuku" editions for a good time
☺️
- open crystaldiskinfo (search start)
- verify that m.2 idle temp is below 60c
- verify that m.2 drive health is "good"
- consider replacing your hard drive if health is poor
- open crystaldiskmark and hit the giant "all" button
- verify that drive temp remains under 65c via crystaldiskinfo during benchmark
- if you see your m.2 temperatures go above 65c during the benchamrk see troubleshooting high temperatures
- download/install crystaldiskinfo & crystaldiskmark
-
-
- see software section below
- just like drivers you don't need to restart your computer when prompted after every single install
- restart your computer after installing all desired software (if you were prompted at somepoint to do so)
- Note that every piece of software you want may not have been included in your install list, and or may not be listed in the software section below. Said lists are composed of items relevant to me and my direct peers.
- software in the software section below is software that can not currently be installed properly via wigui
- It is always preferred you install software with winget, it's much quicker & winget-autoupdate will keep your software updated.
- see winget basics for instructions on how to use winget
- If software isn't available via winget, install software the old fashioned way 😭
-
- open control panel & navigate to
hardware & sound > sound
- verify you're on the "playback" tab
- right click any device that you wont be using & select "disable" (repeat for all unused devices)
- right click any device and uncheck "show disabled devices" (re-enable as needed for troubleshooting and stuff)
- if you only have one usable/desired output device
- select desired device & click the "set default" button below the device list
- if you have a fancy pants audio mixer or what have you with multiple usable output devices
- right click which audio output you want as your default output device & select "set as default device"
- right click which audio output you want as your communication device & select "set as default comunication device"
- click on "recording" tab
- right click any device that you wont be using & select "disable" (repeat for all unused devices)
- right click any device and uncheck "show disabled devices" (re-enable as needed for troubleshooting and such)
- select desired device & click the "set default" button below the device list
- repeat these steps any time you encounter (😔((((audio problems))))😔)
- open control panel & navigate to
-
- this is a very inconsistent process not only by motherboard but often by sepcific components
- often times your motherboard will have a single piece of software that allows for configuring all rgb
- other times you need a specific program for a specific component
- For exmaple, pny gpus use dedicated software, motherboard can't configure many pny gpus lighting.
- It's really such a mixed bag that you'll just have to start by referencing / installing your motherboards rgb control software, and then work from there.
- For each component that can't be controlled via this software, google the exact component in question + "rgb control" & pray that you find competent instructions online.
- please read download/install drivers from the drivers list below
- Some drivers will need be downloaded from your motherboard's support page, others are typically universal. If your motherboard uses intel drivers for bluetooth, lan (ethernet), & wan (wifi) you can use the links below to get the latest versions. To verify that your motherboard uses universal intel drivers, you'll need to go to your motherboards support page.
- Take note of your motherboard's model number, should be listed on the box it came in.
- search for your motherboard via it's model number on google & locate the support page
- look for the following drivers on your motherboard's support/driver page
- audio drivers
- usually labeled as realtek
- only grab latest version, don't need mulitple motherboard audio drivers
- intel chipset drivers (intel cpus only)
- there may be multiple "chipset" style drivers
- look for drivers titled as so
- intel serial i/o
- intel management engine
- intel me
- intel mei
- intel inf
- intel hid
- you should see one or many of the aformentioned intel chipset drivers
- communication drivers
- notes
- If your motherboards support/driver page states that the following drivers are Intel drivers; see below in the Intel section for the latest Intel communication drivers, as opposed to downloading the outdated ones on your motherboards support/driver page.
- Should go without saying but... if your motherboard doesn't have bluetooth or wifi capabilities, you aren't going to see drivers listed for them.
- drivers
- bluetooth
- lan (ethernet / wired internet driver)
- wan (wifi driver)
- notes
- sata drivers
- only required if you're using sata based storage
- typically labeled as "Intel Rapid Storage Technology" or "AMD SATA"
- check motherboard page to make sure your motherboard uses intel for these devices
- bluetooth
- lan
- wan
- graphics
- I would uncheck installing amd's powerplan when installing AMD chipset/cpu drivers
- you'll also want to select the "clean install" option when installing AMD gpu drivers.
- Click buttons on nvidia driver page slowly, if you move too fast you will get ip banned!
- always select custom install and then clean install
- open nvidia control panel ([shift+right click] desktop)
- select "manage 3d settings" in left hand side menu
- set "power management mode" to "prefer maximum performance"
- select "change resolution" in left hand side menu & verify that all monitors are
- set to the correct resolution & refresh rate
- set to full rgb color mode
- If color mode is partial and greyed out; override settings with "use nvidia color settings".
- select "manage 3d settings" in left hand side menu
- after driver install it's likely that your windows audio settings got borked (see configure audio settings for fix)
- silabs 3.9.2 (hdfury integral 2)
- must be installed via admin elevated terminal
start-process -path [releativepath]/Silabs_Driver_v3/Silabs_Driver_v3/USBXpressInstaller.exe
- magewell pro capture (magewell capture pro cards)
- rme drivers (rme audio interfaces)
- tx401 (10g ethernet pcie card)
please read download/install remaining software
- run the following command in an elevated powershell console
-
wsl --install
-
- restart your computer
- HEVC Video Extensions (allows for playing H265 videos via Windows' media players | paid app)
- Davinci Resolve (download link near the bottom of the page)
- EasyBCD (tool for dual booting)
- FFXIV Launcher (square enix's final fantasy 14 launcher)
- iReboot (tool for dual booting)
- Nvidia App (new Nvidia app that aims to replace GeForce Now & Nvidia Control Panel)
- OBS Advanced Scene Switcher (obs plugin)
- OBS Audio Monitor (OBS plugin)
- OBS DistroAV (OBS NDI plugin)
- Rode Central (Rodecaster Pro II & Rodecaster Duo)
- Jagex Launcher (RuneScape client)
- window-switcher (macOS style window switching for windows 11)
- Wootliltiy (software to configure wooting keyboards)
- If computer is bootlooping
- if computer failed to boot into bios after enabling x.m.p and now you're stuck in "safe mode"
- try setting ram clock at a lower clock
- if setting the clock speed lower multiple time fails simply disable x.m.p
- note that you want your ram to be at the highest possible clock for best performance
- if ram is a reasonable speed (DDR5 5600-6800Mhz | DDR4 2600-3600) and can't achive x.m.p you should consider returning it for different ram
- if new ram of similar speed has the same issues you may have a defective cpu or motherboard and will need to replace it
- Verify that the product key you entered matches the one you purchased/obtained earlier.
- If the product keys match but Windows still failed to activate you may need to activate by phone.
- There should be a button to do this via the
system > activation
screen. - Follow on-screen instructions.
- Involves calling a number and answering prompts by voice and or your dial pad.
- There should be a button to do this via the
- I've never had phone activiation fail, but if it did somehow, you may have purchased a key that's already been used and will need to get a new one.
- if your cpu temperatures are too high you
- mounted your cpu cooler incorrectly
- clean, re-paste, and re-seat the heatsink / water block
- didn't plug in your fans / fans are defective & not running
- Have your fan curve misconfigured, causing fans/pumps to not run (see fan curve tutorial | should be similar for most motherboards).
- used an inadequate cpu cooler
- have major airflow problems in your case
- are running your pc in an overly hot environment (90f+)
- have a motherboard that is misreporting temps (unlikely but happens)
- have a defective cpu or cpu cooler and need to rma / exchange one or the other
- mounted your cpu cooler incorrectly
- if your gpu temperatures are too high
- verify that gpu fans are spinning
- verify that nothing is too close to or obstructing gpu fans
- verify that all other fans in case are working
- set a more aggressive fan curve via msi afterburner
- if temps are still too high your gpu's heatsink may have a poor factory mount, at which point you can
- rma / exchange the gpu
- clean, re-paste, and re-seat the heatsink (tutorial)
- if your m.2 ssd temperatures are too high you
- didn't properly install your m.2 drive
- need an aftermarket heatsink for your m.2 drive
- need to install a fan pointing directly at your m.2 drive
- have a defective drive and need to rma / exchange it
Note that if a setting is ommited from the configuration it will simply skip the logic to set that setting. So, you don't necessarily have to set everything to true or false. If you want to use Windows' default configuration for any given setting, simply omit it from config.json
.
{
"Administrative": {
"DisableUacPopups": true
},
"Cursor": {
"DisableEnhancedPointerPrecision": true,
"DisableEaseCursorMovement": true
},
"FileExplorer": {
"EnableCompactView": true,
"MoveRecycleBinToFileExplorer": true,
"ShowFileExtensionsForKnownFileTypes": true,
"ShowHiddenFilesAndFolders": true,
"ShowRecentlyUsedFilesInQuickAccess": false,
"ShowFrequentlyUsedFoldersInQuickAccess": false,
"ShowOfficeCloudFilesInQuickAccess": false
},
"Network": {
"EnableNetworkDiscovery": true
},
"Performance": {
"EnableUltimatePerformance": true,
"DisableMonitorTimeout": true,
"DisableSleep": true,
"DisableUsbSelectiveSuspend": true
},
"Services": {
"DisableTelemetry": true
},
"StartMenu": {
"ShowMorePins": true,
"ShowRecentlyAddedApps": true,
"ShowMostUsedApps": true,
"ShowRecentlyOpenedItems": true,
"ShowRecomendations": false
},
"Taskbar": {
"ShowTaskbarOnAllDisplays": false,
"CenterAlignTaskbarItems": true,
"ShowSearchOnTaskbar": false,
"ShowTaskViewButton": false,
"ShowWidgetsButton": false,
"ShowChatButton": false,
"ShowSecondsOnClock": true
}
}
-
DisableUacPopups
[true
/false
] - removes the "are you sure" popup when you doing anything that requires admin privileges
-
DisableEnhancedPointerPrecision
[true
/false
] - Disables enhanced pointer precision, a must for gaming, but just good in all cases to be honest.DisableEaseCursorMovement
[true
/false
] - Disables "easing" cursor movement between displays. Easing feels super jank imo, it can make your cursor jump to an unnatural place when transitioning through displays.
-
EnableCompactView
[true
/false
] - This removes a lot of dead space in file explorer, returning some of the way it looked/felt in windows 10.MoveRecycleBinToFileExplorer
[true
/false
] - This will remove the recycle bin shortcut from your desktop and pin it to the bottom of the left hand side menu of file explorer. It's still very accesible, and this keeps your desktop clean.ShowFileExtensionsForKnownFileTypes
[true
/false
] - This makes it so windows doesn't hide file extensions at the end of file names, super useful to see file extensions in many use cases.ShowFrequentlyUsedFoldersInQuickAccess
[true
/false
] - Supposed to make it so pinned folders show in the File Explorer Home, but kinda it's kind of bugged. May require interaction with the gui to get working properly.ShowHiddenFilesAndFolders
[true
/false
] - prevents windows from hiding files and folders in file explorerShowOfficeCloudFilesInQuickAccess
[true
/false
] - Make it so Office cloud files show up in the quick access menu within the left hand side menu of file explorer. I like to to disable this.ShowRecentlyUsedFilesInQuickAccess
[true
/false
]- Make it so recently used files show up in the quick access menu within the left hand side menu of file explorer. I like to to disable this.
-
EnableNetworkDiscovery
[true
/false
] - enables network discovery on all networking interfaces
-
EnableUltimatePerformance
[true
/false
] - unlocks Windows' "Ultimate Performance" power plan setting and enable it. This will give you the abosolute best performance out of your PC.DisableMonitorTimeout
[true
/false
] - prevents windows from turning off your display after a period of inactivityMonitorTimeout
[1-9999
] - IfDisableMonitorTimeout
is set tofalse
; this will set the number of minutes before your display will turn itself off due to inactivity.DisableSleep
[true
/false
] - prevents windows from putting your computer into sleep/hybernation after a certain period of inactivity. In my experience sleep can break a lot of things, after which I'm required to reboot. I much prefer that my computer simply never enters a hybernated state.StandbyTimeout
[1-9999
] - IfDisableSleep
is set tofalse
; this will set the number of minutes before you computer will enter sleep/hybernation due to inactivity.DisableUsbSelectiveSuspend
[true
/false
] - prevents windows from powering down usb connected devices after a certain amount of inactivity. USB Selective Suspend can really mess with audio interfaces and other USB devices, I highly recommend you sest this totrue
to disable it.
-
DisableTelemetry
[true
/false
] - Disables telemetry within Windows. Telemetry is the process of Microsoft collecting data from your pc, diagnostic and what have you. I'd recommend setting this totrue
for the most part, you don't need to send your data to Microsoft in most cases. Should marginally increase performance and network usage.
-
ShowMorePins
[true
/false
] - Allows for more pinned apps in the start menu as opposed to more recommendations. People sleep on the new start menu, apps that you use frequently that aren't already pinned to your taskbar should be pinned to your start menu. You also get pin folders for good orgnaiztion capabilities.ShowRecentlyAddedApps
[true
/false
] - Will momentarily disable recently installed apps within the recommendations section of the start menu. I like this, it's useful for quickly accessing and or pinning newly installed apps.ShowMostUsedApps
[true
/false
] - shows most used apps within the recommendations section of the start menuShowRecentlyOpenedItems
[true
/false
] - shows recently opened files within the recommendations section of the start menuShowRecommendations
[true
/false
] - shows algorithmically generated file/app recommendations within the recommendations section of the start menu
-
ShowTaskbarOnAllDisplays
[true
/false
] - shows task bar on all connected displaysCenterAlignTaskbarItems
[true
/false
] - Center aligns task bar items. Preferable to left alignment as your mouse is always closer to what you have pinned on the taskbar.ShowSearch
[true
/false
] - Displays a search box on your task bar. Feels redundant to me as you can just open the start menu and start typing to search. Easiest by simply pressing the Windows key and then typing.SearchStyle
[1-3
] - IfShowSearchOnTaskBar
is set totrue
, this will determine what style your search bar will display as (1=compact | 2=search icon + label + box icon | 3=search icon + label).ShowTaskViewButton
[true
/false
] - shows the taskview button on task barShowWidgetsButton
[true
/false
] - shows the widget button on task barShowChatButton
[true
/false
] - shows the chat button on your (through Microsoft Teams)ShowSecondsOnClock
- displays seconds on your system clock