The Deployment Bunny

Subscribe to The Deployment Bunny feed The Deployment Bunny
OS Deployment, Virtualization, Microsoft based Infrastructure...
Updated: 30 min 39 sec ago

Nice to Know–Deploying Windows Server Technical Preview on HP Proliant Microserver Gen 8

Fri, 10/10/2014 - 18:49

I use the HP Microserver Gen 8’s at home, since they are quiet and act as a full-grown server with full iLO support, dual network adapters and then some. I can basically do all kinds of testing with new operating systems and system center management platforms without upsetting my family to much and that is very practical.

During the deployment of Windows Server Technical Preview everything worked as expected. After the installation I added the Hyper-V role to start testing to deploy VM’s. I booted up the MDT Boot image, selected the Task Sequence and the install was working great, but hey, the network performance???

According to ImageX it will take 45 minutes to lay down the image! That cannot be correct, there is something wrong here. That kind of slow performance over the network just have to be an issue.. and it is…

You need to update the network driver for the built-in network adapters in HP Proliant Microserver Gen 8.

The built in driver is a Broadcom Nextreme driver and that does not work correctly with Hyper-V

Download the HP Ethernet 1 GB 2-port 332i Adapter driver from HP and install that instead, the 45 minutes is now just 5 minutes…

Happy Deployment.

Categories: MDT

PowerShell is King – vNext Hyper-V gets support for Network Device Naming

Fri, 10/03/2014 - 21:34

And that my friends is GREAT. Basically that means you can create a a VM Network Adapter in Hyper-V while the VM is running (also a new feature), give it a name and enable Device Naming on the VM Network Adapter and then inside the VM find the Network Adapter using PowerShell and configure it without using the Mac Address as the identification.

Create the Network Adapter:
  • Create the NIC while the VM is running (just for the fun of it) using PowerShell
    • Add-VMNetworkAdapter -VMName SRV101 -SwitchName UplinkSwitch -Name MikesNIC01 -Verbose
  • Enable Device Naming
    • Set-VMNetworkAdapter -VMName SRV101 -Name MikesNIC01 -DeviceNaming On -Verbose
  • Verify Device Naming using PowerShell, or Settings, or directly in the Hyper-V Manager
    • Get-VMNetworkAdapter -VMName SRV101 | Format-List Name, DeviceNaming

Log in to the VM:

Using PowerShell you can now get the network adapter name in the VM with the name gave network adapter in the parent partition.

  • Get-NetAdapterAdvancedProperty -Name * | Where-Object -FilterScript {$_.DisplayValue -LIKE “Mike*”}

You can also see this as properties in the Network Adapter.


This gives us an easier way to automate the creation/configuration of VMs when it comes to handing over a task from the host to a VM when building solutions.


Categories: MDT

Nice to Know about vNext – Windows Update will take care of Integration Services, no more vmguest.iso

Fri, 10/03/2014 - 17:57

For various reasons this has been a major “challenge”, and it seems that someone listen to the right other one.

Thank youi, thank you.

Need more news?


Categories: MDT

Windows Server vNext – If you are in to Windows Server you should read this

Tue, 09/30/2014 - 17:18

Today Microsoft started to talk about Windows 10, but also the Server and System Center stuff. Want to know more?


Categories: MDT

Windows 10 – Get in the Windows Insider Program, and Get Windows 10

Tue, 09/30/2014 - 17:13

Today Microsoft start to talk about Windows 10, the next version of Windows and if you need to get your hands dirty you should read this:


Categories: MDT

Building Next Gen Datacenter – The Pelicase Portable Datacenter

Sat, 09/27/2014 - 20:11

The cloud is great, but sometimes you really need to have a portable solution and here it is. I call it the Pelicase Datacenter (someone used that name in a twitter feed and I think its kind of cool.)

The Pictures

The complete setup with my Laptop on the right side and the Pelicase Datacenter on the left. They are connected using a 1GB network cable.

A closer look at the Pelicase Datacenter.

In the front you can see the LED USB light used to light up the keyboard that is in front of the case.

The TINY Router, configured for routing using cable or 3/4G and support for Wireless access to the Datacenter.

The 6 PSU’s need for the 6 Intel NUC’s.

The GB Switch.

The 6 Intel NUC’s, 5 of them is running Hyper-V and the last one is running Windows 8.1

The Shopping list The Case:

The Router/Wireless/Firewall:

The Screen:

The Switch (current):

The Switch (previous):

The USB LED Lamp:

The Intel NUC’s:

Supported Memory:

Memory I use:

Disk drives:

The keyboard and mouse:


All NUC’s runs Windows Server 2012 R2 as Hyper-V hosts, but there is a whole lot more around the software and configuration, so this last part will be updated later this week(end)

Setup & Configuration:



Categories: MDT

Sample files and links from The Ultimate Event II roadshow

Wed, 09/24/2014 - 19:41

During the roadshow we have done a lot of demos and most of the demos are based of scripts (PowerShell mainly) and we promised make sure that all our attendees could download them, so here they are.

You will find the rest of the scripts here

First Session: Getting data from SCVMM and Active Directory

#Get the number of VM’s
Get-SCVirtualMachine | Measure-Object

#Get all MACaddresses, group them and it is very easy to see if you have more then one nic with the same mac twice
Get-SCVirtualMachine | Select-Object -ExpandProperty VirtualNetworkAdapters | Group-Object MACAddress

#Get all the OS you are running and the amount of each version
Get-SCVirtualMachine | Group-Object OperatingSystem | Sort Count -Descending | Select Name, Count

#Get the number of unknown OS running in your fabric
Get-SCVirtualMachine | Where-Object { $_.OperatingSystem -like "Unknown" } | Group-Object Cloud | Select-Object Name, COunt

#Get all VM’s that are running on a snapshot, including the name and the date of the snapshot
Get-SCVirtualMachine | Select -ExpandProperty VMCheckpoints | Select VM, AddedTime

#Get the number of VM’s using a dynamic MacAddress
Get-SCVirtualMachine | Select -ExpandProperty VirtualNetworkAdapters | Where { $_.MACAddressType -eq "Dynamic" } | Measure-Object

#Get all the VM’s that are using a dynamic MacAddress
Get-SCVirtualMachine | Select -ExpandProperty VirtualNetworkAdapters | Where { $_.MACAddressType -eq "Dynamic" } | Select Name

#Get All Servers from OU,s and then get the nams and IP’s 
$Servers = @(Get-ADComputer -Filter * -Properties ipv4Address, OperatingSystem -SearchBase "OU=Server,OU=Cloud,DC=cloud,DC=truesec,DC=com")
$Servers += @(Get-ADComputer -Filter * -Properties ipv4Address, OperatingSystem -SearchBase "OU=Domain Controllers,DC=cloud,DC=truesec,DC=com")
$Servers | Select-Object DNSHostName,ipv4Address | Out-GridView

Second Session: Ref Image and CustomSettings.ini

The sample files for customsettings.ini can be found here:






Categories: MDT

Nice to have–VB Script Wrapper for all VC++ installers to be used in MDT

Wed, 09/24/2014 - 19:23

During todays session at The Ultimate Event I did a demo of a VBscript Wrapper that install all VC++ runtimes. Mr “Someone” asked if it was published and I said yes, I was wrong so here it is.

The Script

The script will install all versions of VC++ on 32 and 64 bit machines as an application in a task sequence, that way you don’t need to have one application for each VC++ application.

Download the script from here

The Task Sequence

After you have added the application in the MDT workbench, add the application to the Workbench like this:

The Application

When importing the application it should look like this:

The folder

The folder needs to have all the VC++ files organized in a folder structure that looks like this:

You can use the script in the following folder to download all files in the correct folder structure. Check this blog post:


Categories: MDT

PowerShell is King–Enable remote command with network access using CredSSP

Mon, 09/22/2014 - 19:20

This all but new, but a friend of mine needed to install an update on a bunch of servers yesterday, he figured out how to execute the update but did not have the time to fix the needed configuration in active directory to setup Kerberos Delegation correctly. I told him that it can be done using CredSSP. It is possible to configure CredSSP using group policy, but there are some issues regarding certain software that does not like that configuration using policy’s and therefore I use PowerShell to set this up.

What is CredSSP?

Basically it allows you to store the credentials on the remote computer to allow you to take the double hop to the next computer, think of it as connecting using RDP and in the RDP session you connect to a file share. We all do that and we don’t think of that as anything strange, but it we should since we are doing a double-hop which is one of those long lasting issues with credentials in the Windows world. You can read about this any MANY locations, one of them is here:

The Script.

Download it from:

The script will configure your client (the machine you are using as your remote computer, in other words, the machine you are interactively logged on to) and the it will then configure the computers that needs to be able to store your credentials so that they can be used to access files from a network share, finally it will test and verify that it works by accessing a remote file share.

The script.


Categories: MDT

PowerShell is King – Bulk import applications I MDT

Wed, 09/03/2014 - 09:30

Often I need to import applications into the Deployment workbench and that is fine. The process is easy and fast, but it is boring and if you have more then 5 apps it is really boring. Based on the fact that almost all my apps in MDT is deployed using VB or PowerShell wrappers its is just one file in a folder and then there is a subfolder with the content. You don’t need to be a genius to figure out that 90% of all the apps pretty much have the same folder and file structure in the root of the application folder, so why don’t we use PowerShell to import all the apps based on some guessing?

The Logic:

This parts can be modified, edit, or you can add your own. Basically it reads the from the folder structure you specify and the script will then scan the folder structure for folders, assuming that every folder is an application. If it finds .msi, .msu, exe, .bat, .wsf, or .ps1 files it will then import them as applications. The important thing is that it will import the first “hit”. That means that you should store the real setup files in a subfolder, I usually use .\Source as the source folder. Here you can see the .WSF part logic

Part of the script.

The command line:

This is the tricky part, since there is no way to know that it will be a guessing game and the command line might need to be modified after import, but I rather modify 2-3 applications instead of importing all of them manually.

The default cmdline for all imported apps will be:

.EXE "$Install /q" .MSI "msiexec.exe /i $Install /qn" .MSU "wusa.exe $Install /Quiet /NoRestart" .PS1 "PowerShell.exe -ExecutionPolicy ByPass -File $Install" .WSF "cscript.exe $Install" The Script:

The script is rather easy, it takes 2 parameters. The folder from where to import and the deployment share. You need to have MDT installed since it is using PowerShell cmdlets from MDT. The syntax for the script looks like this:

.\Import-MDTApps.ps1 -ImportFolder C:\Script\AppFolder -MDTFolder C:\MDTBuildLab

you could also add –Verbose if you like lots of text on the screen.

Output when using –Verbose during import.

You can download the script here:


Categories: MDT

Issue – Emulex Nic in Windows Server 2012 R2 with VMQ still does not work

Wed, 09/03/2014 - 05:40

Today, working at a customer deploying Hyper-V hosts with Emulex CNA1100 we run into issues (did not surprise me, since the issue have been around for more than a year, but I still try and test to see if it ever gets better).

The issue is that VMQ still needs to be disabled on every Emulex NIC. That bad thing is that the issue has been around for a very, very long time. It took a very long time for the vendor to acknowledge the issue and now they state that there is a solution soon to be released. I really hope that, but I have heard it before…

Read more here:

My simple recommendation is to disable VMQ in all Emulex Network adapters if they are installed in Windows Server 2012 R2 or buy something that works and use VMQ.

When they release something that actually works I will remove this blog post.


Categories: MDT

Issue (Hyper-V/SCVMM) – VMM cannot complete the host operation on the HOST server because of error:Storage for virtual machine ‘HOSTNAME’ failed with error ‘The device is not ready.’ (0x80070015)

Thu, 08/28/2014 - 09:22
Issue: When trying to migrate a VM’s storage to a local device using SCVMM you could see this:

Error (12700)
VMM cannot complete the host operation on the HOST server because of the error: Storage migration for virtual machine ‘VM’ (GUID) failed with error ‘The device is not ready.’ (0x80070015).

Operation not allowed for virtual machine ‘VM’ because Hyper-V state is yet to be initialized from the virtual machine configuration. Try again in a few minutes.(Virtual machine ID )
Unknown error (0x800c)

When trying to migrate a VM’s storage to a local device using Hyper-V manager you could see this:

"Storage migration for virtual machine"HOST’ failed.
Operation not allowed because the replication state is not initialized.
Storage migration for virtual machine "HOST’ failed with error ‘The device is not ready’ (0x80070015)."


So far the only solution I have found, tried (and it did work) is to restart the Hyper-V management service.

Categories: MDT

My sessions at TechEd Europe 2014

Wed, 08/27/2014 - 10:00
TechEd Europa 2014

TechEd Europe is Microsoft’s premier technology conference for IT Professionals and Enterprise Developers, providing the technical education, product evaluation, and community resources to plan, architect, deploy, manage and secure a connected enterprise. TechEd Europe will be held October 28-31 at Fira Barcelona in Barcelona, Spain. For more information:

PRC05: Deploying and Managing Windows in the Real World

What does it take for organizations to deploy and manage Windows 8.1 and Windows Phone? During this all-day seminar, examine the requirements needed to execute the entire process. We ensure that you understand what has changed in Windows 8.1, how you prepare for a Windows 8.1 migration, how to create your Windows 8.1 image, how to deploy Windows 8.1, and how to deploy Windows Store apps to the already-deployed computers using an enterprise app store. Regardless of whether you are new to Windows deployment and management, new to Windows 8.1, or an existing Windows 7 or Windows XP expert, there will be benefits for all attendees, from “how-to’s” to best practices, to tips and tricks

WIN-B314: Deploying Windows 8.1 Using Microsoft Deployment Toolkit (MDT)

If your job contains the duty of deploying Windows 8/8.1 and you would like to do this using the free tools provided by Microsoft, this session is for you. During the session we cover the basic steps to install the solution and the configure it. We explain things like reference images, Windows Deployment Services, Microsoft Deployment Toolkit, Lite Touch, new computer scenario, refresh old computers and how to replace old computers while keeping the user data and re-installing applications.

A message from Mike:

You are invited and very much welcome to my sessions. If you do have the time to join the sessions, please don’t hesitate to swing by the podium before or after sessions, it’s ok to just say hi. I hope to see U.

Categories: MDT

PowerShell is King – Download all VC++ runtimes using a script

Tue, 08/05/2014 - 16:40

Yes, it is true, sine I create reference images for customers i always need the VC++ runtimes, and yes i need all of them. Microsoft actually has one page with all the latest versions, well the page points to all the separate downloads, anyway. Since automation is nice and PowerShell is a god workhorse to do the job i used one of my old download engine and modified it slightly.

How does it work?

The script reads 2 parameters from the command line, the XML file and the download folder. In the XML file each file has its settings (some of them not used here), basically the URL, name of file, where to store it and things like that. The script does a for each loop until all files has been downloaded, if one file could not be downloaded, just run the script once more and it will download the missing files, not touching the existing ones

Step-By-Step, kind of

Download the script and the XML file from this location

Remove the Windows Download Blocking (You know, right click on file, properties, unblock)

Execute the script from an elevated PowerShell prompt like this

.\Get-Downloads.ps1 -DownloadFile .\download.xml –DownloadFolder  ‘C:\Downloads’

Wait until done

In the C:\Downloads folder you should now have a separate folder for all VC++ runtimes.


Categories: MDT

PowerShell is King – Create the “missing” VM on all the lab machines

Wed, 07/09/2014 - 14:26

Lets assume that you are running a class and suddenly someone raise the hand and say “I’m missing one of the VMs…” That is far from god, but wait a minute, what about PowerShell to the rescue?, of course, so here it is:

Code snip below:

$servers = 1..21 | ForEach-Object {
“VIAMONSTRA{0:D3}” -f $_

foreach ($Server in $Servers)
    Invoke-Command -ComputerName $Server -ScriptBlock {
        #$VMName = "FS01"
        #$VMMemory = 2048MB
        #$VMDiskSize = 60GB
        #$VMNetwork = "Internal"
        #$VMLocation = "C:\VMs"
        #New-VM -Name $VMName -Generation 2 -MemoryStartupBytes $VMMemory -SwitchName $VMNetwork -Path $VMLocation -NoVHD | Out-Null
        #New-VHD -Path "$VMLocation\$VMName\Virtual Hard Disks\$VMName-Disk1.vhdx" -SizeBytes $VMDiskSize | Out-Null
        #Add-VMHardDiskDrive -VMName $VMName -Path "$VMLocation\$VMName\Virtual Hard Disks\$VMName-Disk1.vhdx" | Out-Null

Categories: MDT

Back to Basic–Where to find Drivers for Servers and Clients

Tue, 07/08/2014 - 04:16

During one of the sessions today (at the Geek Week in Redmond) we talked about drivers and where to find them. This is absolutely nothing “new” or amazing, its more of a “note to attendees” kind of post.

HP Clients

The HP SoftPaq Download Manager from HP. The tools has the ability to download drivers for every business model that is supported into a repository, which you can then export drivers from. It also provides .CVA files that gives you instructions on how to silently execute drivers and tools that needs to be installed as an application. HP also provides .CAB files for some newer models.

Dell Clients

Dell have a really great webpage with ready made .CAB files, ready for download. It also includes Windows PE drivers, be sure to pick the correct version. A general rule is to NOT add any Windows PE driver unless you really NEED them, in other words. If you get any IP address and you can see the disk using diskpart, you don’t NEED any drivers.

Lenovo Clients

For Lenovo a nice tool is the ThinkVantage Update Retriever. The tool is pretty straightforward, just create a repository folder, download all the drivers for your models. The most important thing here is that you should not grab the drivers from that folder, instead you should use the to tool to export them.

(For fun, search for it and you will ALWAYS find at least one dog…

HP Servers

For HP Servers the best way I have found so far is to install the HP Proliant in the operating system during deployment using (scripts or MDT/SCCM applications/Packages or in SCVMM as Host Command line post OSD)

That means that I usually don’t import other drivers then Network and Storage drivers in the deployment solution, since the Support Pack will take care of the rest.

The HP Proliant Service Pack:

However, you do need Windows PE Drivers and the easiest way to find them is to look somewhere else. You will find them in the HP Scripting Toolkit for Windows.

Dell Servers

I have to be honest, I do deploy more HP servers then Dell servers, but when I do I use the standard webpage to download drivers. For servers Dell provides Driver Application Packages, which will install all the drivers for that particular model. Download it and run it as a part of the TaskSequence or do it Post OSD.

What about System Center Integration?

Yes, there are ready made applications for System Center Integration.

For HP it is called Insight Management:

For Dell it is called OpenManage Integration Suite for Microsoft System Center:


Categories: MDT

Nice to Know–Presenting applications in the MDT Wizard based on location

Mon, 07/07/2014 - 18:09

A friend (You know how you are…) asked me today “I need to have different application bundles in the MDT Wizard based on location, any ideas?” and since I cant refuse to help a friend, here is a solution.

Use WizardSelectionProfile, Selection Profile and Default Gateway

So here is a step by step, kind of.

Configure CustomSettings.ini

You need to add DefaultGateway to the customsettings.ini to match your environment. So it should look something like this:



WizardSelectionProfile=Wizard – HQ

WizardSelectionProfile=Wizard – BO

Create the Application folder

In the Deployment Workbench, create a Application folder, where you can store the applications that should be available at the BO site, something like this.

Create your WizardSelectionProfile’s

In the Deployment Workbench, Advanced Settings, Selection Profiles – Create a Selection Profile called “Wizard – HQ”. It should contain everything that should be selectable at the HQ site. In this case the folder is not available at HQ.

In the Deployment Workbench, Advanced Settings, Selection Profiles – Create a Selection Profile called “Wizard – BO”. It should contain everything that should be selectable at the BO site. In this case all folders are available.

Test and verify.

That should be it, so the net result would be something like this:

Running the Wizard at the BO

and running at HQ will give you this.


Categories: MDT

PowerShell is King–Test RDP Connection and Connect

Wed, 07/02/2014 - 07:52

So, during the class today we talked about simple but useful things you could do with PowerShell. So we had a very simple situation, during reboot of servers everyone asked “how long time does it take to reboot the server?” Since this is real servers, with a real firmware the correct answer will “Longer then you would like it to take…”. So, ping the machine, wait to you get the response is what IT pros does, or could a very simple PowerShell function be a better way?

Using this method it will use the Test-NetConnection until it succeeds accessing TCP 3389 and then fire up MSTC.exe and connect, simple and neat.

Download it from:

Run it (or load it as a module)

Execute the following command from the PowerShell prompt like this:


Categories: MDT

PowerShell is King–Convert Windows Server Editions during OS Deployment (MDT/LiteTouch)

Wed, 07/02/2014 - 02:37

Yesterday I posted a simple UI based PowerShell script that allows the local administrator of the server to change the Windows Edition. That is is a nice to have function, but what if you would like to do that during the deployment of the server instead of after. This way you can have two task sequences, one for Standard and one for datacenter but just have one WIM file (also means one reference image). For the same reasons I mentioned in the previous post,  I have created some scripts for this.

You can read the previous post on the UI method here

All three options here are using the same base logic with the same kind of option. Instead of defining every different “upgrade” , I decided to have just 2, NEXT and TOP. When TOP is selected as an option it will upgrade to the TOP Edition, in other words Datacenter. When NEXT is selected, it will do the NEXT level. That means that a standard will be datacenter, unless it is a 2008 r2, then a standard will be enterprise. Evaluations will be the “same, so a standard evaluation, will be a standard . In a bit more detail, this is what the scripts actually do…

What kind of conversion can the scripts perform? Source OS   UpgradeLevel Destination OS Windows Server 2008 R2 Standard to NEXT Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Standard   TOP Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise   NEXT/TOP Windows Server 2008 R2 Datacenter Windows Server 2012 Standard Evaluation   NEXT Windows Server 2012 Standard Windows Server 2012 Standard Evaluation   TOP Windows Server 2012 Datacenter Windows Server 2012 Standard   NEXT/TOP Windows Server 2012 Datacenter Windows Server 2012 R2 Standard Evaluation   NEXT Windows Server 2012 R2 Standard Windows Server 2012 R2 Standard Evaluation   TOP Windows Server 2012 R2 Datacenter Windows Server 2012 R2 Standard   NEXT/TOP Windows Server 2012 R2 Datacenter


Option No:1 (VB Script as an Application)

The first option is to use a VBscript and run it as an application, that gives a great logging and integration with the Task Sequence in MDT. The script uses a Custom property called UpgradeLevel (which can be set to either NEXT or TOP) that you needs to be added to CustomSettings.ini

Step By Step, kind of…

Download Script from :

Add the Custom property UpgradeLevel.

Import the Application in the Deployment Workbench.

Modify the Task Sequence (add a Set Task Sequence Variable Step)

Modify the Task Sequence (Add the Application)

Deploy a Server and check the logfile.

Option No:2 (PowerShell Script as an Application)

The second option is to use a PowerShell script instead, still running as an application, I added some logic to discover the presence of a Task Sequence, that way logging can end up in the correct location

Step By Step, kind of…

Download Script from :

Add the Custom property UpgradeLevel.

Import the Application in the Deployment Workbench

The command line is a bit long so here it is in text form
PowerShell.exe -ExecutionPolicy Bypass -File Upgrade-SKU.ps1 -UpgradeLevel %UPGRADELEVEL%

Modify the Task Sequence (add a Set Task Sequence Variable Step)

Modify the Task Sequence (Add the Application)

Deploy the server and check the logfile.

Option No:3 (PowerShell Script in TaskSequence)

The third option is to run it as a PowerShell task Sequence

Step By Step, kind of…

Download Script from :

Save the script in the scripts folder

Modify the Task Sequence (Run PowerShell script)

Modify the Task Sequence (Add a reboot Action)

Deploy a server and check the logfile.


Categories: MDT

PowerShell is King–Convert Windows Server Editions using a UI based PowerShell script

Tue, 07/01/2014 - 02:51

If possible it is best practices to keep the number of images to a minimum. So, in my line of work I’m building reference images for both client and servers, many of the organization I work with are struggling with the fact that they need to have both old images and new images, both servers and clients and also both 32 and 64 bit. Add all that up you will realize that, hmm, lets see… that will be 9 images to maintain, no, wait, I missed the fact that we also have different editions. Servers have Standard and Datacenter edition, that is three more, or actually its 4 more since Windows Server 2008 R2 have Standard, Enterprise and Datacenter.

Download the script from

The solution

Since it is possible to upgrade every Windows Server edition (Windows Server 2008 R2 and above) to a higher edition (and that includes evaluation editions to) by changing the product key using DISM.exe it is possible to create reference images with the lowest SKU(Edition) that your organization needs and upgrade during the deployment or as this blog post is about, after the OS has been deployed. Internally for us this is great since we are running many proof of concept, labs, tests and such and many cases. I gave up telling/explaining for our internal staff on how to do this, ending up with a script that is “user-friendly”.

To be able to change edition, you need to have a product key, and what we do is that we change to the KMS client key, so yes it needs to be activated after it has been modified. You can find all these product keys at TechNet here:

What kind of conversion can the script perform?

Windows Server 2008 R2 Standard to Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Standard to Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise to Windows Server 2008 R2 Datacenter Windows Server 2012 Standard Evaluation to Windows Server 2012 Standard Windows Server 2012 Standard Evaluation to Windows Server 2012 Datacenter Windows Server 2012 Standard to Windows Server 2012 Datacenter Windows Server 2012 R2 Standard Evaluation to Windows Server 2012 R2 Standard Windows Server 2012 R2 Standard Evaluation to Windows Server 2012 R2 Datacenter Windows Server 2012 R2 Standard to Windows Server 2012 R2 Datacenter How to use?

Execute the script from an elevated command prompt and select upgrade type.

Changing from Windows Server 2008 R2.

Changed from Windows Server 2008 R2.

Changing from Windows Server 2012 R2 Standard Evaluation.

Changing from Windows Server 2012 Standard.

Categories: MDT