Manually Assign Drivers on Windows Server Core: The Device Manager Trick
On this page
Introduction
During my work with Azure Local (formerly Azure Stack HCI), I ran into a frustrating but common situation. I had the correct network driver files for an Intel I225-LM controller sitting right there on my system, but Windows Server Core just wouldn’t recognize and assign the driver automatically. The device showed up as “Ethernet Controller” with an error status, and the traditional GUI tools I’d normally use? Not available on Server Core.
This post shows you how I solved this using the Server Core App Compatibility Feature, which brings back essential GUI tools like Device Manager to Server Core installations without converting to full Desktop Experience. For the official installation documentation, check out Microsoft’s FOD guide.
The Problem
When working with Server Core, you sometimes need to manually assign drivers to hardware that Windows doesn’t recognize automatically. In my case:
- Hardware: Intel Ethernet Controller I225-LM (Device ID: PCI\VEN_8086&DEV_15F3)
- Driver files available: e2f.inf with all necessary components
- Issue: Windows recognized the hardware but assigned no driver, showing only “Ethernet Controller” with error status
Standard command-line tools like pnputil could install the driver files to the driver store, but couldn’t force Windows to actually use them for the specific device. I tried several approaches, but nothing worked until I remembered the App Compatibility Feature.
The Challenge: No Network, No Online Installation
Here’s the catch: the usual way to install the App Compatibility FOD is with this PowerShell command:
Add-WindowsCapability -Online -Name ServerCore.AppCompatibility~~~~0.0.1.0
But that requires internet access. And guess what? My network adapter wasn’t working. Classic chicken-and-egg situation.
The Workaround: USB Network Adapter
Luckily, I had a USB network adapter lying around that brought its own driver. This wasn’t ideal for Azure Local due to compatibility requirements, but it was perfect for getting the system online temporarily to install the App Compatibility FOD.
If you have a working USB adapter:
- Plug in the USB network adapter
- Configure network connectivity
- Run the installation command above
- Reboot
If you don’t have network access at all:
You’ll need to install the FOD offline using the Windows Server Features on Demand ISO:
# Mount the FOD ISO (download from Volume Licensing Service Center or MSDN)
Mount-DiskImage -ImagePath "D:\FeatureOnDemand.iso"
# Install using DISM with the mounted ISO as source
DISM /Online /Add-Capability /CapabilityName:"ServerCore.AppCompatibility~~~~0.0.1.0" /Source:E:\ /LimitAccess
# Reboot
Restart-Computer
The /LimitAccess parameter is crucial - it tells DISM not to reach out to Windows Update.
Installing the Correct Driver with Device Manager
After the reboot, Device Manager is available. Now here’s the important part: you can use Device Manager to force Windows to assign a specific driver from your driver files.
1. Launch Device Manager:
devmgmt.msc
2. Find the problematic device (showing as “Ethernet Controller” with an error)
3. Right-click the device → Update Driver → Browse my computer for drivers
4. Point to your driver folder (e.g., D:\LAN-Win11-1.1.3.34\) and click Next
5. Windows will find the driver and install it automatically
The key difference: Device Manager lets you manually point to the driver location and force the assignment, overriding Windows’ automatic detection. This is something you can’t easily do with command-line tools alone.
Switching from USB to Integrated Network Adapter
For Azure Local, I needed to use the integrated network adapter, not the USB one. Once the correct driver was assigned:
- The Intel I225-LM adapter showed up properly in
Get-NetAdapter - I configured the network settings on the integrated adapter
- Removed the USB adapter
- Restarted to confirm everything worked
After the restart, the device was recognized correctly:
Intel(R) Ethernet Controller (3) I225-LM OK
That’s it. Problem solved with the right tools.
What Else You Get
Beyond Device Manager, the App Compatibility FOD adds File Explorer, Event Viewer, Performance Monitor, and several other GUI tools that make troubleshooting on Server Core much easier. For the complete list and detailed information, check the official documentation.
Conclusion
While Server Core’s command-line-only approach has clear advantages for security and automation, sometimes you just need a GUI tool to solve a specific problem efficiently. The App Compatibility Feature on Demand strikes a good balance, providing essential management tools without the full overhead of Desktop Experience.
For driver assignment issues on Server Core, this approach is far more practical than trying to force driver installation through command-line tools alone.
Note: This post documents my real-world experience with Azure Local and Server Core. The write-up was created with AI assistance based on my technical notes and workflow.