<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
%BOOK_ENTITIES;
]>

<!-- Licensed to the Apache Software Foundation (ASF) under one
	or more contributor license agreements.  See the NOTICE file
	distributed with this work for additional information
	regarding copyright ownership.  The ASF licenses this file
	to you under the Apache License, Version 2.0 (the
	"License"); you may not use this file except in compliance
	with the License.  You may obtain a copy of the License at
	
	http://www.apache.org/licenses/LICENSE-2.0
	
	Unless required by applicable law or agreed to in writing,
	software distributed under the License is distributed on an
	"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
	KIND, either express or implied.  See the License for the
	specific language governing permissions and limitations
	under the License.
-->

<section id="create-windows-template">
	<title>Creating a Windows Template</title>
	<para>Windows templates must be prepared with Sysprep before they can be provisioned on multiple machines. Sysprep allows you to create a generic Windows template and avoid any possible SID conflicts.</para>
	<note><para>(XenServer) Windows VMs running on XenServer require PV drivers, which may be provided in the template or added after the VM is created. The PV drivers are necessary for essential management functions such as mounting additional volumes and ISO images, live migration, and graceful shutdown.</para>
		</note>
	<para></para>
	<para>An overview of the procedure is as follows:</para>
	<orderedlist>
	<listitem><para>Upload your Windows ISO.</para> <para>For more information, see <xref linkend="add-iso"/>.</para></listitem>
	<listitem><para>Create a VM Instance with this ISO.</para><para> For more information, see <xref linkend="creating-vms"/>.</para></listitem>
	<listitem><para>Follow the steps in Sysprep for Windows Server 2008 R2 (below) or Sysprep for Windows Server 2003 R2, depending on your version of Windows Server</para></listitem>		
	<listitem><para>The preparation steps are complete. Now you can actually create the template as described in Creating the Windows Template.</para></listitem>
	</orderedlist>
	<xi:include href="sysprep-windows-server-2008R2.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
	<xi:include href="sysprep-for-windows-server-2003R2.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 
	</section>
