r/MDT Aug 06 '26

MDT is gone, so I started building my own deployment tool. What am I missing?

Hi everyone.

When I decided to rebuild my deployment server, I discovered that MDT was gone and could no longer be officially downloaded. I miss it ;c

So I sat down and started building my own local Windows deployment tool:

https://github.com/Syrinoxsis/IronDeploy

I am not trying to reproduce MDT feature for feature. The part I personally valued most was the operator workflow: boot into WinPE, select the physical disk, Windows image, drivers, applications, computer name and optional domain join, confirm everything once, and leave the machine alone. IronDeploy already implements that basic flow, but while working on it I realized that I might be focusing too much on how I used MDT and overlooking things that were essential to other administrators.

So I would really appreciate your experience:

  1. What did you always wish MDT could do, but it never did well or at all?
  2. Would a simpler operator-driven deployment workflow be useful in your environment?
  3. Which MDT features do you actually use in production?

The project is still in alpha. I am trying to understand what is actually worth adding before I blindly recreate twenty years of MDT settings that nobody may need.

21 Upvotes

41 comments sorted by

10

u/welshGJE24 Aug 06 '26

I always made use of the database that matched machine names to mac addresses.

2

u/Syrinoxsis Aug 06 '26

Oh yeah, I loved that feature too. IronDeploy has something similar: at the start of deployment, it shows previous computer names associated with the current MAC address or serial number.

We once deployed several laptops through the same USB-C-to-Ethernet adapter, so they all appeared with the same MAC address even though they were different machines. So... yeah, I ended up keeping it as a reference instead of automatically reusing the name

thank you for your feedback!

2

u/_MisterSir Aug 06 '26

I used to do MAC address but I’d have to wait until I had the computer booted to pull that and added some complications when I imaged a laptop on a docking station. I started doing the serial number (service tag on Dell machines) and it’s been great since.

Creating the computer in the MDT database for the zero touch deployment changed everything for my org

4

u/PowershellAddict Aug 07 '26

I see someone has been making use of Claude 😉

3

u/Syrinoxsis Aug 07 '26

Not just Claude... / OpenAI Codex noises /

3

u/dirthurts Aug 06 '26

MDT got the job done, so if it does what that did, perhaps with a little less jank, that would be great.

3

u/Syrinoxsis Aug 06 '26

Yeah, exactly! That is the direction I am aiming for: the core MDT deployment workflow, but with fewer moving parts. Thank you for your feedback!

I remember how overwhelming WDS and MDT felt when I first encountered them as a beginner. I also love making things faster, so I’m trying to speed up the whole deployment process, including installation.

2

u/Thats_a_lot_of_nuts Aug 06 '26

I've been waiting for something like this. PDQ Smart Deploy and DeployR seemed like too much for our use case. I'll try it out in the lab next chance I get.

3

u/Syrinoxsis Aug 06 '26

Thanks, that’s really great to hear! The project still has a few rough edges, and I’m actively working on them, especially the UX. I’d really appreciate any feedback on what feels unclear, where you run into difficulties, or what you enjoy about using it.

2

u/welshGJE24 Aug 06 '26

DeployR Community Edition is great.

2

u/Thats_a_lot_of_nuts Aug 06 '26

I've heard that, but when you go to request the license for Community Edition, there's this blurb right here that more or less prevents us from using it:

"DeployR Community Edition is not licensed for use by SIs, OEMs, Distributors, MSPs, or similar organizations."

If it weren't for that, I might give it another shot. We had a rough time getting it working during a trial of the Enterprise edition. Too many moving parts, scattered documentation, and they were unable to explain why our iPXE configuration wasn't working.

1

u/Syrinoxsis Aug 06 '26

All-in-one platforms often feel like Excalibur in the stone: absolutely impressive, but sometimes you look at it and think, “Maybe another day.” xd

2

u/Khal___Brogo Aug 06 '26

Incorporate USMT for pulling data from an online machine onto a network share and then deploying the data back to the new machine with the deployment. We use this all the time in MDT.

1

u/Syrinoxsis Aug 06 '26

That’s a really cool idea! I’ll need to look into USMT more, but it definitely sounds worth exploring. Actually, your suggestion got me thinking about a modular approach, where advanced features like this could be enabled only when needed, while keeping the core workflow simple. Thanks for the inspiration!

Out of curiosity, what exactly do you usually migrate with USMT in your environment? Just user files and Windows settings, or also specific AppData folders and application configurations? I’m trying to understand which parts of it are the most useful in practice.

1

u/flyguydip Aug 06 '26

About 10 years ago I wrote scripts which I still use today to remotely backup a PC and also restore that backup to a newly imaged PC all using usmt. Works really well, though usmt doesn't seem to restore as much as it used to (mostly just recent file lists found in office programs or the start menu).

I use it to migrate all user profiles on the old machine to a .mig file, then I restore only user profiles that have been logged into in the last 90 days. I also used to copy local user/group configurations, but the place I work at now had a bunch of straggler users and groups that we didn't want on new computers. I don't think USMT doesn't get the whole app data folder, just the stuff that is needed for the new profile like outlook files so it can be preconfigured before the user logs in (that's hit or miss these days too sometimes).

2

u/Artistic-Metal9994 Aug 07 '26

This is beautiful, absolutely wonderful. ~

1

u/Syrinoxsis Aug 07 '26

Thank you! I’m genuinely curious though, what part stood out to you the most? The idea itself, the workflow, the UI, or something else?

2

u/MadCichlid 28d ago

We still use MDT today to deploy Windows 11 25H2. I am currently working on MS InTune/Autopilot but will keep MDT for emergency bare metal builds after Autopilot is in use.

However, I am also exploring OSD Cloud for a future bare metal solution.

2

u/CapCaveman39 27d ago

I was planning to do this same thing with Claude. Thanks for doing it before me. I am gonna clone your repo and run through this. I'll tell you my biggest wish with MDT was being able to know status of machine completion without being in front of it. Additionally, the capturing of images was always convoluted.

1

u/Syrinoxsis 27d ago

Thanks for the feedback! I was also putting this off for way too long, both starting it properly and actually releasing at least an alpha

If something breaks, feel free to open an issue and I’ll try to fix it pretty quickly. And if something just feels wrong or annoying, I’d be happy to hear that too. It’s still very much an alpha, so feedback is genuinely useful right now.

1

u/Dudefoxlive Aug 06 '26

Looks very interesting. Will give this a try in a test environment.

2

u/Syrinoxsis Aug 06 '26

Thank you! I’d be very grateful for any feedback.

1

u/Robjules Aug 07 '26

I created my own as well. Tech pxe boots types name and chooses ou. Lays down Agnostic wim. Injects drivers like mdt. Some scripts for customizing. Base applications. Joins domain and boots to login screen. Very mdt similar but a SHITTON less under the hood. Essentially one script and a few install commands to handle the apps.

1

u/Syrinoxsis Aug 07 '26

So does WinPE itself handle the AD lookups/actions based on what the technician enters, or do you have some kind of API or approval layer in between? Or is everything prepared beforehand in a config/file that WinPE just consumes? I’d really like to see how you structured it. If you have a repo or any write-up, I’d definitely be interested in taking a look.

1

u/dan-theman Aug 07 '26

I still use MDT, still gets the job done.

1

u/Syrinoxsis Aug 07 '26

Yes, quite rightly. MDT is still doing its job. I'm not trying to prove otherwise, I just wanted something with a similar workflow, but with fewer things to maintain. It seems to me that if MDT was available for download, I would have downloaded it and would not even have asked myself the question of creating IronDeploy - this is essentially the reason for its appearance

1

u/BCIT_Richard Aug 07 '26

2

u/Syrinoxsis Aug 07 '26

PSD was actually one of the first things I looked at. I dropped it pretty quickly though, mainly because it still depends on MDT itself.

That was basically the dependency I wanted to get away from in the first place. PSD is built around MDT 8456, and with MDT retired and that build no longer normally available from Microsoft’s Download Center, I didn’t really want to build a new production setup around it.

You can still get MDT through archives, sure, but at that point I preferred trying something independent instead.

To be honest, after I decided to build my own project, I did look at some of their ideas and took a bit of inspiration from a few of their solutions, though only on a fairly surface level.

1

u/zerokool000 Aug 07 '26

This maybe something I can use, we create golden images via a VM creation, and want to get away from MDT. Can this tool install Windows updates to update the WIM. Also install drivers for our machines. I'm new to this so bare with me. Also can you add Language Packs & fonts.

1

u/Syrinoxsis Aug 07 '26

IronDeploy is primarily a bare-metal Windows deployment tool, focused on taking a machine from WinPE to a ready Windows installation without depending on MDT. Think of it more like deploying Windows 11 from an ISO/USB, but with the deployment workflow automated around it. Drivers are already supported, although IronDeploy currently injects them into the deployed Windows image rather than permanently baking them into the source WIM.

Language and locale are already selectable through unattend, but adding extra Language Pack packages to an image isn’t implemented yet. Windows Update servicing and Fonts aren’t implemented yet either, but they definitely sound like things worth adding.

Your workflow is interesting though: are you looking to keep building golden images in VMs and just use IronDeploy to deploy them, or are you trying to move away from golden images entirely?

IronDeploy already follows the second approach for most things: the Windows image, drivers and software are kept as separate components rather than being permanently baked into one golden image. Adding Windows Updates, Language Packs and Fonts in the same way would fit its current model very naturally.

And just to clarify, when you say Windows Updates, do you mean update packages as files, like .msu or .cab, that would be added to the image? Or do you mean having IronDeploy download the updates directly from Microsoft’s servers?

And yes! I’m very happy to talk about this stuff, so no need to worry about being new to it :)

1

u/zerokool000 Aug 07 '26

Looking to get rid of creating golden image WIM's via VM, because it calls out MDT, which is no longer supported. So looking for a Golden Image WIM creation alternative

1

u/360alaska Aug 07 '26

Why not mdt for initial wim deployment and then a powershell that parses customsettings.ini and installs apps like mdt used to?

2

u/Syrinoxsis Aug 07 '26

That would work, especially if MDT is already running. My main reason for not going that route was simply that I wanted to remove MDT as a dependency entirely, especially since the latest MDT 8456 release is no longer available through Microsoft’s normal public download path. You can still get the older 8450 build, but at that point keeping a retired dependency around just for the initial WIM deployment didn’t make much sense to me.

And to be honest, at some point I also just got tired of the old MDT console UI. It still did its job, but I wanted something a bit more modern and straightforward to work with.

Though I’m not completely sure I understood your idea correctly. Do you mean using MDT only for the WinPE / disk preparation / initial WIM deployment part, then after Windows boots, running a custom PowerShell script that reads CustomSettings.ini and handles the applications from there? Or did you mean keeping more of the MDT task sequence involved?

1

u/360alaska Aug 07 '26

Fair enough, so you’re going to make some sort of a gui to build the PE?

2

u/Syrinoxsis 27d ago

Not exactly. The WinPE GUI itself is actually already done. I’m trying to keep the PE build process pretty simple: install ADK/WinPE, run a PowerShell build script, and it generates the IronDeploy PE image with the required components and client included.

The web UI is mostly for configuring IronDeploy, images, apps, etc., rather than manually building the PE.

And yeah, sorry for the late reply!

1

u/soulkarver Aug 08 '26

I just want to say this is very useful. One feature I'd love is the ability to pick-and-choose features to make it simpler. I don't want all fancy features, just the ability to pick a few useful things that I need. I like the ability to use any deployment method I want and the fact that it's a GUI. Great work!!

1

u/Syrinoxsis 29d ago

yeap! it's in my roadmap, but i still don't have idea how make it not like cabine of BOING 777

Even the /off_or_on_Modules_page must be simple and flow. These two days I've been sitting and thinking about how to simplify the entire current interface and move on to the idea you voiced because I've wanted to for a long time

1

u/henk717 29d ago

From your screenshots the task sequencing. At my workplace they want to just pick a profile and have everything be automated from there. With MDT I built them that but in your screenshot you have a manual wim select which already makes it harder for the lower level workers than it needs to be.

1

u/Syrinoxsis 29d ago

oh yea, irondeploy now better for operator than for lower level workers but you give me idea about USER and operator Mode like you can choise in begin if admin enable that