Lab: Intel NUC with Windows ServerCore 2012R2

Since I’ve decided to get more serious about updating my skills and knowledge again [also why I started blogging], I thought about getting a proper lab setup.

The goal is to have a small, portable but powerful Hyper-V based lab which I can carry along with me from home and to work if need be. Now I tend to have a test setup on my home machine and one on my work laptop, depending on what I need at that moment.
Using this portable lab I want to make everything I need accessible from one location.

The Hardware

Long internal debates on what kind of hardware solution to use…

Go for an Intel NUC solution or Gigabyte Brix?
Or perhaps getting a mini-ATX board and case and configuring the whole thing myself?

After randomly browsing on one of the local Dutch main hardware sites, I found a great offer to purchase an Intel NUC system along with the required RAM and M.2 SSD disk for a very good price.
So good, that I ended up getting it the next morning ūüôā

So here’s the setup:

  • Intel NUC5i5RYK
  • Kingston ValueRAM KVR16LS11/8 [2x8GB]
  • Samsung 850 EVO M.2 250GB
  • Mini-HDMI to HDMI converter

The Installation

One of the great things about Intel NUC [and Gigabyte Brix] systems is that it’s so easy to install.

Unscrew the 4 legs, remove the backplate, plug in the RAM modules and M.2 SSD chip and screw everything back again.
If it takes you 5 minutes, you’re doing something very wrong ūüėČ

Once this was done I needed to decide on Operating System.

I’m not¬†sure if I want to manage only Hyper-V or perhaps set up a test lab domain, so I ended up going for the ServerCore installation using a ZALMAN ZM-VE300 USB3 solution.

I hooked up the NUC to our office’s beamer [as I didn’t have a monitor with HDMI connection, nor a mini-DisplayPort adapter] and booted up the machine with the Windows ISO as Virtual Disk.

Installation was just a few minutes work [literally 2 minutes max], after which I ran into somewhat of a problem: Windows was installed, but it couldn’t find an active NIC. Now that’s annoying for a ServerCore install!

The Problem

Since I only had access to the office’s meeting room for a limited period, I needed to find out how I could resolve this issue…

My main philosophy in my daily work is “if you’re having a problem, chances are someone’s had that same problem as well”, which leads me to one of my best friends in IT:

It seems that there’s quite the issue with NUC NIC drivers for Window Server operating systems, because according to Intel NUC systems are designed as Desktop replacements, hence no server OS support for drivers.

Again, here’s where Google comes in handy.
I found this article by Stephen Owen [@FoxDeploy] where he describes the perfect way download the latest driver for your NUC and modify the .inf file to allow for installation on your Windows Server OS.

Now I ran into a small issue with this article however:
It was written for a Windows Server with GUI install, where you could simply get the Vendor ID and Device ID for the NIC from Device Manager.

As if it was meant to be, on the same day I ran into this problem, Steven posted the following blog on his site: Using PowerShell to find drivers for Device Manager.

Long story short, let’s combine the knowledge of both articles and get this NIC working!

The Code

Since this is a PowerShell related blog, let’s put it to good use to solve this problem!
First of all, we need to find out the Vendor ID and Device ID.
This command gets us all the Devices which aren’t correctly installed along with Vendor ID and Device ID:

Save the resulting piece to a variable for later use:

Make sure to copy the contents of the latest extracted drivers to the ServerCore machine [USB stick recommended]

Now that we have the drivers on the machine, we can use our $NIC-DeviceId to find out which .inf file we need to modify:

This command will display all the .inf files which contain the Vendor ID and Device ID match.
For Windows 2012 R2 you need to check the x64 folders and NDIS64 subfolders, which in my case meant I needed the e1d64x64.inf file.

Ok, here’s what needs to be done in the .inf file:

  • Either remove or comment out [using the ; sign] all the entries under the¬†[ControlFlags] block.
  • Check under the¬†[Intel.NTamd64.6.3.1] block and copy ALL the lines related to your Device ID
  • Paste these lines in¬†the¬†[Intel.NTamd64.6.3] block under the last lines
  • Save the .inf file with the updated entries

Seems quite simple right?

Well, in order to install the drivers, you will need to perform one more magic trick.
Because the drivers are unsigned and edited, Windows won’t allow you to install the drivers, so you’ll need to override these settings by running the following commands:

Once this is done, you can “properly” install the drivers:

You should get a warning message saying that the driver is unsigned, but since we know this, we can choose to Install the driver anyways.

Almost done!
Time to reset the security settings back to default:

Now that we’ve restarted the machine it’s time to put this to a test:

We’re online!!


Stay tuned for more Lab related posts to see more information/tips on how to set up your own Hyper-V lab op Windows ServerCore!




Reasons to blog


As I’m pondering what to write for my first proper techy blog post, I’ve got to thinking about WHY I’ve chosen to blog in the first place.

Learning by doing…

I’m generally a lurker on forums and social media.

Whenever I need something, I go to Google and have a field day trying to find out of someone has had the same issue that I’m experiencing and hopefully someone has solved it for them.

While this is perfectly fine, over the last few months I’ve noticed that participating in the whole “social” world makes you think about PowerShell more, makes you actively work with PowerShell more and basically it gets you more involved, learning by doing.

It might give you perspectives that you’ve never thought about before [there’s multiple ways to Rome..] and just lets you think about issues you might never think about/come across in your normal day of work.

So for me, blogging makes me have to actively think about PowerShell and DO something with it.

Growing by teaching…

Another point for me to start blogging has to do with my lurking again.

I’m on Twitter, but I never used to be actively participating in it‚Ķ I just read articles tweeted or retweeted by people I followed, but never posted anything.

Until I read the following article by David Sanoy: Be a PowerShell Champion.

I won’t copy the entire contents, but to sum it up:

You don’t need to be the best in PowerShell, but by sharing, teaching, promoting and helping people, you yourself can be a “Champion” of PowerShell within your company/community.

Based on this, with the help of some of my colleagues we started having active tech sessions at work and I gave a presentation on “What is PowerShell” and basically trying to introduce my co-workers to the magic that is.

The amount of people showing up, the reviews, the “high” and all was unexpected to me and really gave me a kick‚Ķ.

I liked teaching people, I liked getting people enthusiastic about something.

Another added bonus was that while preparing for the presentation, I noticed that I had to really KNOW what I was telling them.

Through blogging I’d like to get the same experience, but with a wider audience!