Setting up a new machine

I’ve done this instinctively since I first setup Windows NT 3.1 on the machine I built from carefully chosen parts. Today I watched myself setup a Windows 10 machine to infer the methodology I use. Sometimes it’s a laptop, sometimes it’s a server, sometimes I’m configuring a VM for a client development project. I grant this is more instinct than process at this point, but here are the major steps I take:

  1. Audit my old PC: What programs are installed? What configuration details have I set? What apps don’t I use anymore? What wifi networks should I save? What settings have I configured in Sublime or VS Code? Have I put anything in weird places?

  2. Decrapify it: I take the term from the Dell Decrapifier (now PC Decrapifier). It’s the process of uninstalling all the adware installed on a new PC. I completely understand why it’s there — the manufacturer sold “advertising space” on my PC to lower the cost. I get it. (I hate it, but I get it.) So I uninstall it all — before I get on the network — before it has a chance to call home. Sometimes I go as far as formatting the machine and reinstalling Windows, though lately driver configuration is weird enough that it’s easier to decrapify than pave. This is definitely part Google search, part registry hacking, part gut feel. I’ll also take a tour through Disk Cleanup to remove old Windows versions and the Retail Display content.

  3. Set basic settings: I’ll add user accounts, change the host name, change the workgroup, maybe give it a static IP address, maybe configure network shares, set the timezone, un-pin lots of things from the start menu, show hidden files and file extensions, etc. I want to get enough in place here before it connects so the first connection is likely a good, stable connection.

  4. Connect to the network: Here’s the moment of truth. Did I uninstall all the crapware successfully? Did I scrub the registry sufficiently?

  5. Install stuff: I start with system updates, then install Microsoft software like Office and Visual Studio — the stuff that was tested together by Microsoft. Sometimes I stop here to get all the system Updates from Apple, Microsoft, and Ubuntu (and reboot a few times). Then I install all the other programs: a PDF viewer, other IDEs, drawing programs, notepad replacements, tax software, git clients, and so forth. Ninite is a great one-click install-it-all app, though I’m definitely high-geek, so I’ll generally customize each install as I do it.

  6. Transfer data: I’ll copy all my files to a fileshare, usb drive, or other system, and then hook that to my new machine and copy it into place. Sometimes this is a fileshare from my old machine and a cross-over cable. Sometimes it’s easier to restore from backup. I grant Windows 10 has a “Transfer to new PC” tool, but high-geek. I’m also pruning obsolete content, emptying the junk drawer into the trash rather than copying it into the nested “old pc” folder. This takes a good long while, so I’ll usually set it going and continue on.

  7. Set settings: Now that I have all the software installed, I’ll really tweak out the settings. Disable Acrobat’s JavaScript engine, copy Sublime config, download all the VS Code and Visual Studio plug-ins, fire up SQL Server and attach all the databases I’ll use, pin all the apps to my task bar, sign into all my slack groups, transfer browser bookmarks, login to the password manager, disable startup apps and services that I won’t need each time. I’ll return to Disk Cleanup and shrink the VM disk.

  8. Backup: Once I’ve settled in, I customize the backup script to ensure it grabs all the files. Sometimes I let the machine burn in for a few days or a week first so I’m confident I’ve thought of everything.

And there it is. It truly is more instinct than process for me at this point, but that’s how I setup a new machine.