The Storage Team Blog about file services and storage features in Windows Server, Windows XP, Windows Vista and Windows 7.
9/11 Update: The ICT configuration guide is now located here: http://technet.microsoft.com/en-us/library/jj643306 Inside Windows Server 2012 there is a new feature called the OEM Appliance OOBE that enables OEMs and enterprise IT to rapidly deploy standalone servers or 2-node failover clusters. One of the design goals was to complete an entire deployment of a failover cluster in less than 30 minutes. The feature is integrated with the entire “out-of-box-experience” (OOBE) in Windows Server and adds an additional Windows Presentation Foundation (WPF)-based application, called Initial Configuration Tasks (ICT) that is a launch-pad full of tools that guide IT professionals through the tasks required to quickly deploy servers.
Here is what a 2-node Windows Storage Server cluster configuration might look like when deployed into a mixed environment:
The ICT application is customizable by using an XML file (OEMOOBE.XML), and anyone could create an XML with the exact set of tools required to deploy a particular configuration. The OEM Appliance OOBE feature was first released in Windows Storage Server and now makes its debut in Windows Server 2012. It is included in Windows Server 2012 Standard and Windows Server 2012 Datacenter, and in both editions of Windows Storage Server 2012 (Standard and Workgroup). At the end of this blog I have included a script that I use to set up a basic installation of the OEM Appliance OOBE.
To install the new feature, you can run the following dism.exe command at an elevated command prompt (cmd.exe):
This will install the binaries into the \Windows\System32\OEMOOBE directory and set the application to start after first boot.
To build a customized operating system (OS) image using the OEMOOBE, you need these items:
After the OS image is installed, you can run Sysprep.exe /generalize to generalize the installation so that the image can be used on different servers. Immediately following the shutdown, you boot the reference computer by using a WinPE DVD image and capture the OS partition into an image file (creating a .WIM file) using dism.exe. After you have the image file, you can deploy the image by booting into WinPE on another similar system and use dism.exe to lay down the files on the boot volume. Alternatively, you could create a DVD image that can be installed by using setup.exe from the original OS media by making a copy of the media and replacing the install.wim file (located in the \Sources folder). OEMs usually license and use WinRE for their Windows recovery image, which is WinPE plus additional recovery tools.
After the image is deployed to a target system, it is ready to ship. The end user will open the box, “rack it and stack it,” and then boot the system(s).
Following is an example of a customized ICT experience for a two-node cluster that uses an SMP or SMI-S provider that supports RAID 6 and thin provisioning in the storage array. Note the following customizations:
To create the customized section included in the preceding picture named “Contoso NAS Registration and Product Information,” I added a little bit of XML to two files to include a new task group and three tasks in the group:
Now you know how easy it is to customize the XML to create special sections in the OEM Appliance OOBE. If you are doing a localized deployment, you would add localized strings to each of the locale-specific XML files, such as OEMOOBE.zh-CN.resx if you want to support Chinese Traditional.
When identical images are loaded into two systems that will be used for a cluster, the OEM Appliance OOBE sets up the machines so that either system can be used as the ‘first node.’ After the user starts the process of configuring the first node, you can configure all the settings from that console and you never have to visit the second node.
When both nodes of the cluster first power up:
During the ICT we use several technologies to make it all work:
Sample script I use to configure a two-node cluster setup by using the OEM Appliance OOBE feature: This script can be used as a template to start the process for new deployments. After you customize the preceding files, add them to the installation before your final sysprep command.
REM (Enable OEMOOBE and setup a 2-node cluster profile)
REM ****enable WinRM
powershell.exe;powershell.exe -command {Set-WSManQuickConfig -Force}
REM ****enable powershell remoting
powershell.exe;powershell.exe -command {Set-ExecutionPolicy RemoteSigned}
REM ****Install failover clustering****
powershell.exe;powershell.exe -command {;Add-WindowsFeature Failover-Clustering -IncludeManagementTools}
echo %errorlevel%
echo Failover clustering feature install complete
REM ****Install File Services****
powershell.exe;powershell.exe -command {Add-WindowsFeature File-Services}
echo File-Services feature install complete
REM **** Set registry keys for automatic discovery: Password must match the password used in the unattend file.
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OEMOOBE" /V RunDiscovery /t REG_SZ /d 1
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OEMOOBE" /V Password /t REG_SZ /d abc_123!
REM ****Suppress HA File Server à Removes the automatic creation of an HA file-server and hides the check-box in the wizard.
REM reg add "HKLM\Software\Microsoft\OEMOOBE" /v SuppressHAFileServer /t REG_SZ /d 1 /f
REM ****Install Remote Desktop and enable remote management from any version of Windows
netsh advfirewall firewall set rule group="remote desktop" new enable=Yes
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
reg add "HKLM\System\ControlSet001\Control\Terminal Server\WinStations\RDP-TCP" /v UserAuthentication /t REG_DWORD /d 0 /f
REM ****Install the OEM-Appliance-OOBE feature
dism /online /enable-feature /featurename:OEM-Appliance-OOBE
REM ****Copy in custom unattend file.
copy d:\unattend.xml c:\windows\system32\sysprep
REM ****Sysprep
%windir%\System32\Sysprep\sysprep.exe /oobe /generalize /reboot /unattend:c:\windows\system32\sysprep\unattend.xml
Exit /b
Cheers, Scott M. Johnson Program Manager Windows File Server Team
Nice article.