Blog Post

Building IT Toolbox: A Desktop App to Simplify Windows Profile Migrations

Building IT Toolbox: A Desktop App to Simplify Windows Profile Migrations

As an IT Technician at Utah Tech University, one of the most repetitive and time-consuming tasks I faced was migrating thousands of computers from Windows 10 to Windows 11. The original process was entirely manual:

  1. Copy the user's files to an external drive by dragging and dropping a folder at a time in File Explorer
  2. Wipe the machine
  3. Install Windows 11
  4. Set up a temporary user
  5. Run a PowerShell script to enroll the device
  6. Wipe it again
  7. Reinstall Windows 11
  8. Restore files manually
  9. Reinstall printers and any needed software

Every migration was a slow, error-prone process that easily ate up 3 to 4 hours per machine, and when you're dealing with over 2,000 computers, that time adds up fast.

So I started looking for a better way.


Version 1: A Scripted Migration Tool

After exploring some commercial tools (which turned out to be expensive and out of reach for our department), I found an old Microsoft utility: the User State Migration Tool (USMT). While originally built for XP-to-7 and 7-to-10 migrations, it still worked... and it was free.

I wrote a simple .bat script that prompted for the username and destination path, then used USMT to back up and restore user profiles. It worked, and it cut our migration time in half. Files were no longer missed or misplaced, and users could be restored before they even logged in.

I showed it to my supervisor, and after proving it reliable with several manual backups in parallel, I got the green light to use it across the team.

But I wasn’t done yet.


Version 2: From Script to Desktop App

While the script worked well, I knew we could make it easier to use. I wanted a simple GUI where a technician could:

  • Select a user from a list
  • Choose a backup location
  • Click a button and then work on something else while the user profiles are automatically backed up

That’s when I discovered Tauri, a Rust-based framework for building secure, lightweight desktop apps using web technologies. I paired it with SvelteKit for the frontend.

The result was IT Toolbox, a desktop application that automated profile migrations with a clean, user-friendly interface. But that was just the beginning.


Version 3: A Full Internal IT Suite

After rolling out the app, I started adding features — not just to make migrations smoother, but to improve our entire upgrade and deployment process.

Backup Tracking with SurrealDB

I integrated a lightweight embedded database, SurrealDB, to track:

  • Which drives were used for backups
  • Which users were included
  • Backup history per machine

Campus-Wide Printer Directory

We maintain over 100 networked printers across campus, and finding the right IPs, models, and drivers was a constant headache. I built a searchable directory right into the app. Now techs can look up a printer by location, view its IP, and click a link to install drivers.

Task Sequences for Upgrade Progress

Every device now has an associated “task sequence” record, allowing us to track exactly where it is in the upgrade process:

  • Not started
  • Backup complete
  • Enrolled
  • Software reinstalled
  • Ready for user

No more sticky notes or shared spreadsheets.

GUI-Based OOBE Enrollment

One of my favorite additions was a GUI that integrates directly with Windows OOBE (Out-Of-Box Experience), allowing us to enroll devices in our management system before any user accounts are created. This removed the need for a second Windows installation, saving even more time.

Now, a technician can:

  1. Boot a new machine
  2. Open IT Toolbox
  3. Enroll the device from OOBE
  4. Restart — and be ready for the user

The Stack

  • Frontend: SvelteKit
  • Backend: Rust (via Tauri)
  • Database: SurrealDB
  • Packaging: Tauri
  • Platform: Windows

What I Learned

Building IT Toolbox taught me how to design for real users: people who are busy, under pressure, and need tools that “just work.” I also learned how to:

  • Bridge web development and systems programming
  • Build production-ready cross-platform apps
  • Architect data-driven tools with real operational value
  • Ship internal tools that actually get adopted

More than that, it showed me the power of taking initiative, that even a student technician can build software that improves processes at scale.


Final Thoughts

IT Toolbox started as a script to save time. It became a tool that redefined how we handle device upgrades and user onboarding across campus.

If you work in IT and find yourself doing the same tasks over and over, build your own tools. Even a small script can grow into something that changes your entire workflow. And you’ll learn a ton along the way.

Have questions or want to build something similar? Feel free to reach out. I’d love to share what I’ve learned.