New-SCVMTemplate

Creates a virtual machine template used to create virtual machines managed by VMM.

Description

The New-SCVMTemplate cmdlet creates a virtual machine template that administrators or self-service users can use to create virtual machines managed by System Center Virtual Machine Manager (VMM). A template stores hardware configuration and guest operating system information so that a specific template can be used repeatedly to create new virtual machines. The New-SCVMTemplate cmdlet stores the new template object in the VMM library. 

You can create a template based on an existing virtual hard disk, an existing template, or from a virtual machine currently deployed on a virtual machine host. If you specify no parameters, VMM creates a default template object. 

VMM TEMPLATE REQUIREMENTS
-------------------------
Following are the requirements for creating a template in VMM:

- TEMPLATE FROM VHD. If you create a template from a virtual hard 
  disk, the virtual hard disk must meet the following requirements:

  - Operating system. You must install a supported Windows operating 
	system on the virtual hard disk before you use it to create the 
	template. For information about supported operating systems, see
	System Center Virtual Machine Manager (VMM) 2012 System Requirements
	and Supported Operating Systems in the TechNet library at
	http://go.microsoft.com/fwlink/?LinkID=209608.

  - SYSPREP. You must run the System Preparation tool (Sysprep.exe) on
	the virtual hard disk to ensure that every copy of the operating 
	system is unique when you distribute it to multiple virtual machines.
	You can find Sysprep,exe installed on your Windows Server 2008 or 
	later computer at its default location: C:\Windows\System32\sysprep\. 

  - LOCAL ADMIN PASSWORD. The local Administrator password of the guest 
	operating system on a virtual hard disk that will be used to create a
	new template must be blank before you run Sysprep.exe on the virtual
	hard disk. A blank local Administrator password is required to enable
	you to have the option to specify the local Administrator password
	when you customize the guest operating system on the template.

- TEMPLATE FROM VIRTUAL MACHINE. If you create a template from a virtual 
  machine, the virtual machine will be destroyed during the process of 
  converting it to a template. If you want to keep the virtual machine 
  and also use it to create a template, you can clone the virtual machine
  before you create the template. For information about how to clone a
  virtual machine, see New-SCVirtualMachine.

- TEMPLATE FOR SELF-SERVICE USERS. If a self-service user role includes
  permission to use a template, the self-service user cannot change any
  hardware profile settings. The only settings that a self-service user
  can change when using a template to create a virtual machine are 
  computer name and, if the user has appropriate privileges, password
  and product ID number. 

VMM SUPPORT FOR CUSTOMIZABLE OR NON-CUSTOMIZABLE TEMPLATES
----------------------------------------------------------

If you specify the NoCustomization parameter with the New-SCVMTemplate cmdlet, you do not need to add a guest operating system profile to the template as you create the template. Without a guest operating system profile, VMM will not require Sysprep to run within the guest operating system when a virtual machine that is created by using this template is deployed on a host.

One possible scenario is that you have a manually sysprepped virtual hard disk that contains a non-Windows operating system (or that contains an operating system that VMM cannot automatically sysprep) and have embedded an answer file in that virtual hard disk that contains the appropriate settings for that operating system. You can use the New-SCVMTemplate cmdlet to create a template from this virtual hard disk and specify that the template does not allow customization of the guest operating system. To do so, use the NoCustomization parameter when you create the new template.

In another scenario, you might import a VMware-based template that contains a Windows-based operating system into VMM. By default, VMM imports a VMware-based template as customizable if VMM knows how to customize the guest operating system. Otherwise, the template is imported as non-customizable (this is true, for example, for Linux guest operating systems). If you want to create a non-customizable Windows-based template from this imported, customizable VMware-based template, you can use New-SCVMTemplate to create a new template, point to the disks that are attached to the imported template, and then specify the NoCustomization parameter on the new template.

For more information about New-SCVMTemplate, type: "Get-Help New-SCVMTemplate -online".

Parameters

Name

Required? true
Accept Pipeline Input? true (ByValue)
Position? 0
Specifies the name of a VMM object.

VMTemplate

Required? true
Accept Pipeline Input? true (ByValue)
Position? named
Specifies a VMM template object used to create virtual machines.

AnswerFile

Required? false
Accept Pipeline Input? true (ByValue)
Position? named
Specifies a script object stored in the VMM library to use as an answer file. The name of the answer file script depends on the operating system that you want to install on a virtual machine:

 ANSWER FILE	GUEST OS TO INSTALL ON VM
 -----------	-------------------------
 Sysprep.inf	Windows XP, Windows Server 2000, or Windows Server 2003
 Unattend.xml   Windows Vista, Windows 7, or Windows Server 2008 

ApplicationProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies an application profile object.

AutoLogonCount

Required? false
Accept Pipeline Input? false
Position? named
Specifies the number of times that Windows should automatically log the administrator denoted in the Answerr File on to the console session.

AutoLogonCredential

Required? false
Accept Pipeline Input? false
Position? named
Specifies the Run As account contained in the Answer File that Windows uses to log on to the console session when automatic administrator logon is enabled.

CapabilityProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a capability profile object.

ComputerName

Required? false
Accept Pipeline Input? false
Position? named
Specifies the name of a computer that VMM can uniquely identify on your network. Valid formats are: FQDN, IPv4 or IPv6 address, or NetBIOS name.

NOTE: See the examples for a specific cmdlet to determine how that cmdlet specifies the computer name.

CPUCount

Required? false
Accept Pipeline Input? false
Position? named
Specifies the number of CPUs on a virtual machine, on a hardware profile, or on a template. See the examples for a specific cmdlet to determine how that cmdlet uses this parameter.

TYPE OF HOST   NUMBER OF PROCESSORS
------------   --------------------
Hyper-V		Up to 4 CPUs per VM; varies by guest OS
VMware ESX	 Up to 4 CPUs per VM for any supported guest OS
   Exception: 1 CPU on a VM running Windows NT 4.0
Citrix XenServer Up to 8 CPUs per VM; varies by guest OS

CPURelativeWeight

Required? false
Accept Pipeline Input? false
Position? named
Specifies the amount of CPU resources on a host that this virtual machine can use relative to other virtual machines on the same host. A virtual machine with a higher setting is allocated more CPU resources than a virtual machine with a lower setting.

TYPE OF HOST	RANGE OF RELATIVE VALUES
------------	------------------------
Hyper-V		 1 to 10000
VMware ESX	2000 = High
	1500 = Above Normal
	1000 = Normal (default)
	 750 = Below Normal
	 500 = Low
	1 to 1000000 = Custom
	The VMware term for these values is "shares."
Citrix XenServer   1 to 65536, normal is 256

NOTE: See the examples for a specific cmdlet to determine how that cmdlet uses this parameter.

CPUType

Required? false
Accept Pipeline Input? false
Position? named
Specifies the type of CPU for a virtual machine. To retrieve a list of all CPU types that are available for use in virtual machines in a VMM environment, type: "Get-SCCPUType"

Description

Required? false
Accept Pipeline Input? false
Position? named
States a description for the specified object.

DisableAutoLogon

Required? false
Accept Pipeline Input? false
Position? named
Disables automatic administrator logon.

Domain

Required? false
Accept Pipeline Input? false
Position? named
Specifies a fully qualified domain name (FQDN) for an Active Directory domain. 

Example format: -Domain "Domain01.Corp.Contoso.com"

DomainJoinCredential

Required? false
Accept Pipeline Input? false
Position? named
Specifies the user name and password of an account with permission to join a computer to the domain. A limited rights account should be used for joining computers (either physical or virtual) to the domain.

Example format for a PS credential: 
$DomainJoinCredential = Get-Credenital
-Domain "ThisDomain.Corp.Contoso.com" -DomainJoinCredential $DomainJoinCredential

Example format for a Run As account:
$DomainJoinCredential = Get-SCRunAsAccount -Name "RunAsAcct01"
-Domain "ThisDomain.Corp.Contoso.com" -DomainJoinCredential $DomainJoinCredential

NOTE: You can use the DomainJoinCredential parameter to specify credentials (on a VMHostProfile) for joining a physical host computer to the domain, or to specify credentials (on a new or existing template, on a new or existing guest operating system profile, or on a new virtual machine) for joining a virtual machine to the domain.

DomainJoinOrganizationalUnit

Required? false
Accept Pipeline Input? false
Position? named
Specifies the organizational unit to which the computer is joined during an unattended mini-setup.

DynamicMemoryBufferPercentage

Required? false
Accept Pipeline Input? false
Position? named
Specifies the percentage of memory above a virtual machine’s current memory allocation which the host should try to reserve as a buffer. The default value is 20

Example format: -DynamicMemoryTargetBufferPercentage 20

DynamicMemoryEnabled

Required? false
Accept Pipeline Input? false
Position? named
Enables, when set to $True, dynamic memory for virtual machines. You can enable dynamic memory directly on a virtual machine, or on a template or hardware profile that will be used to create virtual machines. The default value is False.

REQUIRED: You can enable dynamic memory for a virtual machine only if that virtual machine is deployed on a host running Windows Server 2008 SP1 or later or if the virtual machine is stored in a library in a stopped state (hardware changes to a stored virtual machine can only be made if the virtual machine does not have snapshots). Enabling dynamic memory on a virtual machine stored in a library will limit placement of that machine to hosts running Windows Server 2008 SP1 or later.

Example format: -DynamicMemoryEnabled $True

DynamicMemoryMaximumMB

Required? false
Accept Pipeline Input? false
Position? named
Specifies the maximum amount of memory that can be allocated to a virtual machine if dynamic memory is enabled. The default value is 65536.

REQUIRED: You can enable dynamic memory for a virtual machine only if that virtual machine is deployed on a host running Windows Server 2008 R2 SP1 or later or if the virtual machine is stored in a library in a stopped state (hardware changes to a stored virtual machine can only be made if the virtual machine does not have snapshots). Enabling dynamic memory on a virtual machine stored in a library will limit placement of that machine to hosts running Windows Server 2008 R2 SP1 or later.

Example format: -DynamicMemoryMaximumMB 1024

FullName

Required? false
Accept Pipeline Input? false
Position? named
Specifies the name of the person in whose name a virtual machine is registered. 

GuestOSProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a guest operating system profile object. 

GuiRunOnceCommands

Required? false
Accept Pipeline Input? false
Position? named
Specifies one or more commands to add to the [GuiRunOnce] section of an unattended answer file (such as Unattend.xml). Use single quotes around each string enclosed in double quotes.

Example format:
-GuiRunOnceCommands '"C:\APF\APFPostSysPrepCopy.cmd PARAMS1"', '"C:\APF\APFPostSysPrepCopy.cmd PARAMS1"'

For information about how Windows PowerShell uses quotes, type: "Get-Help about_Quoting_Rules"

HardwareProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a hardware profile object.

HighlyAvailable

Required? false
Accept Pipeline Input? false
Position? named
Specifies that a virtual machine will be placed on a Hyper-V host that is part of a host cluster. Configure this setting on a virtual machine, or on a template or hardware profile that will be used to create virtual machines.

JobGroup

Required? false
Accept Pipeline Input? false
Position? named
Specifies an identifier for a series of commands that will run as a set just before the final command that includes the same job group identifier runs. 

JobVariable

Required? false
Accept Pipeline Input? false
Position? named
Specifies that job progress is tracked and stored in the variable named by this parameter. 

LocalAdministratorCredential

Required? false
Accept Pipeline Input? false
Position? named
Specifies the user name and password for the local Administrator account. Specifying credentials on a new or existing template, on a new or existing guest operating system profile, or on a new virtual machine overrides any existing Administrator password.

MemoryMB

Required? false
Accept Pipeline Input? false
Position? named
Specifies, in megabytes (MB), the amount of random access memory (RAM) on the host that is allocated to a virtual machine. The default value is 512 MB. For a virtual machine on which dynamic memory is enabled (on a host running Windows Server 2008 R2 SP1 or later), use MemoryMB to specify the startup memory value. 

TYPE OF HOSTMAXIMUM HOST MEMORY ASSIGNABLE TO VM
------------------------------------------------
Hyper-V	 Up to 65536 MB RAM per virtual machine
VMware ESX Server 3.0.x Up to 16384 MB RAM per virtual machine
VMware ESX Server 3.5.x Up to 65532 MB RAM per virtual machine
Citrix XenServer   Up to 32265 MB RAM per VM

Example format: -MemoryMB 1024

MemoryWeight

Required? false
Accept Pipeline Input? false
Position? named
Indicates the priority in allocating memory to a virtual machine, relative to other virtual machines on the same host. A virtual machine with a higher setting is allocated more memory resources than a virtual machine with a lower setting.

For a host running Windows Server 2008 R2 SP1 or later, 5000 = Normal, 10000 = High, 0 = Low, 1 to 10000 = Custom.

NOTE: See the examples for a specific cmdlet to determine how that cmdlet uses this parameter.

MergeAnswerFile

Required? false
Accept Pipeline Input? false
Position? named
Specifies that the cmdlet merge the specified answer file with the specified guest operating system settings. The default value is TRUE. This parameter is used by the VMM console. You do not need to use this parameter at the command prompt.

MonitorMaximumCount

Required? false
Accept Pipeline Input? false
Position? named
Specifies the maximum number of monitors supported by a virtual video adapter.

Example format: -MonitorMaximumCount 3

MonitorMaximumResolution

Required? false
Accept Pipeline Input? false
Position? named
Specifies, as a string, the value that represents the maximum possible monitor resolution of a virtual video adapter. Valid values are: "1024x768", "1280x1024", "1600x1200", "1920x1200". Default value: "1280x1024"

Example format: -MonitorResolutionMaximum "1600x1200"

OperatingSystem

Required? false
Accept Pipeline Input? false
Position? named
Specifies the type of operating system for a virtual machine. To list the names of all available operating systems in VMM, type: "Get-SCOperatingSystem".

OrganizationName

Required? false
Accept Pipeline Input? false
Position? named
Specifies the name of the organization for the person in whose name a virtual machine is registered. 

Owner

Required? false
Accept Pipeline Input? false
Position? named
Specifies the owner of a VMM object in the form of a valid domain user account.

Example format: -Owner "Contoso\ReneeLo"
Example format: -Owner "ReneeLo@Contoso"

ProductKey

Required? false
Accept Pipeline Input? false
Position? named
Specifies a product key. The product key is a 25-digit number that identifies the product license. A product key can be used to register VMM or an operating system to be installed on a virtual machine or host.

PROTipID

Required? false
Accept Pipeline Input? false
Position? named
Specifies the ID of the PRO tip that triggered this action. This allows for auditing of PRO tips.

RemoveDomainJoinOrganizationalUnit

Required? false
Accept Pipeline Input? false
Position? named
Removes the organizational unit that the computer joined during setup.

RemoveServerFeatures

Required? false
Accept Pipeline Input? false
Position? named
Removes all server roles and features from a template.

RunAsynchronously

Required? false
Accept Pipeline Input? false
Position? named
Indicates that the job runs asynchronously so that control returns to the command shell immediately. 

SQLProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a SQL Server profile object.

TimeZone

Required? false
Accept Pipeline Input? false
Position? named
Specifies a number (an index) that identifies a geographical region that shares the same standard time. For a list of time zone indexes, see "Microsoft Time Zone Index Values" at: http://go.microsoft.com/fwlink/?LinkId=120935. If no time zone is specified, the default time zone used for a virtual machine is the same time zone setting that is on the virtual machine host.

Example format to specify the GMT Standard Time zone: -TimeZone 085

UnattendSettings

Required? false
Accept Pipeline Input? false
Position? named
Key Value pairs of String, String

UserRole

Required? false
Accept Pipeline Input? false
Position? named
Specifies a user role object.

VirtualVideoAdapterEnabled

Required? false
Accept Pipeline Input? false
Position? named
Enables, when set to $True, the Microsoft Synthetic 3D Virtual Video Adapter for virtual machines. You can enable the Virtual Video Adapter directly on a virtual machine, or on a template or hardware profile that will be used to create virtual machines.

REQUIRED: You can enable the Microsoft Synthetic 3D Virtual Video Adapter for a virtual machine only if that virtual machine is deployed on a host running Windows Server 2008 R2 SP1 (with the Remote Desktop Services role and Remote Desktop Virtual Graphics role service installed) or later or if the virtual machine is stored in a library in a stopped state (hardware changes to a stored virtual machine can only be made if the virtual machine does not have snapshots). Enabling the Microsoft Synthetic 3D Virtual Video Adapter on a virtual machine stored in a library will limit placement of that machine to hosts running Windows Server 2008 R2 SP1 (with the Remote Desktop Services role and Remote Desktop Virtual Graphics role service installed) or later.

Example format: -VirtualVideoAdapterEnabled $TRUE

Workgroup

Required? false
Accept Pipeline Input? false
Position? named
Specifies on a new or existing template, on a new or existing guest operating system profile, or on a new virtual machine the name of the workgroup to which you want to join a virtual machine. You can use this parameter to override the existing value on a template or on a guest operating system profile.

Name

Required? true
Accept Pipeline Input? true (ByValue)
Position? 0
Specifies the name of a VMM object.

VirtualHardDisk

Required? true
Accept Pipeline Input? true (ByValue)
Position? named
Specifies a virtual hard disk object.

AnswerFile

Required? false
Accept Pipeline Input? true (ByValue)
Position? named
Specifies a script object stored in the VMM library to use as an answer file. The name of the answer file script depends on the operating system that you want to install on a virtual machine:

 ANSWER FILE	GUEST OS TO INSTALL ON VM
 -----------	-------------------------
 Sysprep.inf	Windows XP, Windows Server 2000, or Windows Server 2003
 Unattend.xml   Windows Vista, Windows 7, or Windows Server 2008 

ApplicationProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies an application profile object.

AutoLogonCount

Required? false
Accept Pipeline Input? false
Position? named
Specifies the number of times that Windows should automatically log the administrator denoted in the Answerr File on to the console session.

AutoLogonCredential

Required? false
Accept Pipeline Input? false
Position? named
Specifies the Run As account contained in the Answer File that Windows uses to log on to the console session when automatic administrator logon is enabled.

CapabilityProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a capability profile object.

ComputerName

Required? false
Accept Pipeline Input? false
Position? named
Specifies the name of a computer that VMM can uniquely identify on your network. Valid formats are: FQDN, IPv4 or IPv6 address, or NetBIOS name.

NOTE: See the examples for a specific cmdlet to determine how that cmdlet specifies the computer name.

CPUCount

Required? false
Accept Pipeline Input? false
Position? named
Specifies the number of CPUs on a virtual machine, on a hardware profile, or on a template. See the examples for a specific cmdlet to determine how that cmdlet uses this parameter.

TYPE OF HOST   NUMBER OF PROCESSORS
------------   --------------------
Hyper-V		Up to 4 CPUs per VM; varies by guest OS
VMware ESX	 Up to 4 CPUs per VM for any supported guest OS
   Exception: 1 CPU on a VM running Windows NT 4.0
Citrix XenServer Up to 8 CPUs per VM; varies by guest OS

CPURelativeWeight

Required? false
Accept Pipeline Input? false
Position? named
Specifies the amount of CPU resources on a host that this virtual machine can use relative to other virtual machines on the same host. A virtual machine with a higher setting is allocated more CPU resources than a virtual machine with a lower setting.

TYPE OF HOST	RANGE OF RELATIVE VALUES
------------	------------------------
Hyper-V		 1 to 10000
VMware ESX	2000 = High
	1500 = Above Normal
	1000 = Normal (default)
	 750 = Below Normal
	 500 = Low
	1 to 1000000 = Custom
	The VMware term for these values is "shares."
Citrix XenServer   1 to 65536, normal is 256

NOTE: See the examples for a specific cmdlet to determine how that cmdlet uses this parameter.

CPUType

Required? false
Accept Pipeline Input? false
Position? named
Specifies the type of CPU for a virtual machine. To retrieve a list of all CPU types that are available for use in virtual machines in a VMM environment, type: "Get-SCCPUType"

Description

Required? false
Accept Pipeline Input? false
Position? named
States a description for the specified object.

DisableAutoLogon

Required? false
Accept Pipeline Input? false
Position? named
Disables automatic administrator logon.

Domain

Required? false
Accept Pipeline Input? false
Position? named
Specifies a fully qualified domain name (FQDN) for an Active Directory domain. 

Example format: -Domain "Domain01.Corp.Contoso.com"

DomainJoinCredential

Required? false
Accept Pipeline Input? false
Position? named
Specifies the user name and password of an account with permission to join a computer to the domain. A limited rights account should be used for joining computers (either physical or virtual) to the domain.

Example format for a PS credential: 
$DomainJoinCredential = Get-Credenital
-Domain "ThisDomain.Corp.Contoso.com" -DomainJoinCredential $DomainJoinCredential

Example format for a Run As account:
$DomainJoinCredential = Get-SCRunAsAccount -Name "RunAsAcct01"
-Domain "ThisDomain.Corp.Contoso.com" -DomainJoinCredential $DomainJoinCredential

NOTE: You can use the DomainJoinCredential parameter to specify credentials (on a VMHostProfile) for joining a physical host computer to the domain, or to specify credentials (on a new or existing template, on a new or existing guest operating system profile, or on a new virtual machine) for joining a virtual machine to the domain.

DomainJoinOrganizationalUnit

Required? false
Accept Pipeline Input? false
Position? named
Specifies the organizational unit to which the computer is joined during an unattended mini-setup.

DynamicMemoryBufferPercentage

Required? false
Accept Pipeline Input? false
Position? named
Specifies the percentage of memory above a virtual machine’s current memory allocation which the host should try to reserve as a buffer. The default value is 20

Example format: -DynamicMemoryTargetBufferPercentage 20

DynamicMemoryEnabled

Required? false
Accept Pipeline Input? false
Position? named
Enables, when set to $True, dynamic memory for virtual machines. You can enable dynamic memory directly on a virtual machine, or on a template or hardware profile that will be used to create virtual machines. The default value is False.

REQUIRED: You can enable dynamic memory for a virtual machine only if that virtual machine is deployed on a host running Windows Server 2008 SP1 or later or if the virtual machine is stored in a library in a stopped state (hardware changes to a stored virtual machine can only be made if the virtual machine does not have snapshots). Enabling dynamic memory on a virtual machine stored in a library will limit placement of that machine to hosts running Windows Server 2008 SP1 or later.

Example format: -DynamicMemoryEnabled $True

DynamicMemoryMaximumMB

Required? false
Accept Pipeline Input? false
Position? named
Specifies the maximum amount of memory that can be allocated to a virtual machine if dynamic memory is enabled. The default value is 65536.

REQUIRED: You can enable dynamic memory for a virtual machine only if that virtual machine is deployed on a host running Windows Server 2008 R2 SP1 or later or if the virtual machine is stored in a library in a stopped state (hardware changes to a stored virtual machine can only be made if the virtual machine does not have snapshots). Enabling dynamic memory on a virtual machine stored in a library will limit placement of that machine to hosts running Windows Server 2008 R2 SP1 or later.

Example format: -DynamicMemoryMaximumMB 1024

FullName

Required? false
Accept Pipeline Input? false
Position? named
Specifies the name of the person in whose name a virtual machine is registered. 

GuestOSProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a guest operating system profile object. 

GuiRunOnceCommands

Required? false
Accept Pipeline Input? false
Position? named
Specifies one or more commands to add to the [GuiRunOnce] section of an unattended answer file (such as Unattend.xml). Use single quotes around each string enclosed in double quotes.

Example format:
-GuiRunOnceCommands '"C:\APF\APFPostSysPrepCopy.cmd PARAMS1"', '"C:\APF\APFPostSysPrepCopy.cmd PARAMS1"'

For information about how Windows PowerShell uses quotes, type: "Get-Help about_Quoting_Rules"

HardwareProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a hardware profile object.

HighlyAvailable

Required? false
Accept Pipeline Input? false
Position? named
Specifies that a virtual machine will be placed on a Hyper-V host that is part of a host cluster. Configure this setting on a virtual machine, or on a template or hardware profile that will be used to create virtual machines.

JobGroup

Required? false
Accept Pipeline Input? false
Position? named
Specifies an identifier for a series of commands that will run as a set just before the final command that includes the same job group identifier runs. 

JobVariable

Required? false
Accept Pipeline Input? false
Position? named
Specifies that job progress is tracked and stored in the variable named by this parameter. 

LocalAdministratorCredential

Required? false
Accept Pipeline Input? false
Position? named
Specifies the user name and password for the local Administrator account. Specifying credentials on a new or existing template, on a new or existing guest operating system profile, or on a new virtual machine overrides any existing Administrator password.

MemoryMB

Required? false
Accept Pipeline Input? false
Position? named
Specifies, in megabytes (MB), the amount of random access memory (RAM) on the host that is allocated to a virtual machine. The default value is 512 MB. For a virtual machine on which dynamic memory is enabled (on a host running Windows Server 2008 R2 SP1 or later), use MemoryMB to specify the startup memory value. 

TYPE OF HOSTMAXIMUM HOST MEMORY ASSIGNABLE TO VM
------------------------------------------------
Hyper-V	 Up to 65536 MB RAM per virtual machine
VMware ESX Server 3.0.x Up to 16384 MB RAM per virtual machine
VMware ESX Server 3.5.x Up to 65532 MB RAM per virtual machine
Citrix XenServer   Up to 32265 MB RAM per VM

Example format: -MemoryMB 1024

MemoryWeight

Required? false
Accept Pipeline Input? false
Position? named
Indicates the priority in allocating memory to a virtual machine, relative to other virtual machines on the same host. A virtual machine with a higher setting is allocated more memory resources than a virtual machine with a lower setting.

For a host running Windows Server 2008 R2 SP1 or later, 5000 = Normal, 10000 = High, 0 = Low, 1 to 10000 = Custom.

NOTE: See the examples for a specific cmdlet to determine how that cmdlet uses this parameter.

MergeAnswerFile

Required? false
Accept Pipeline Input? false
Position? named
Specifies that the cmdlet merge the specified answer file with the specified guest operating system settings. The default value is TRUE. This parameter is used by the VMM console. You do not need to use this parameter at the command prompt.

MonitorMaximumCount

Required? false
Accept Pipeline Input? false
Position? named
Specifies the maximum number of monitors supported by a virtual video adapter.

Example format: -MonitorMaximumCount 3

MonitorMaximumResolution

Required? false
Accept Pipeline Input? false
Position? named
Specifies, as a string, the value that represents the maximum possible monitor resolution of a virtual video adapter. Valid values are: "1024x768", "1280x1024", "1600x1200", "1920x1200". Default value: "1280x1024"

Example format: -MonitorResolutionMaximum "1600x1200"

NoCustomization

Required? false
Accept Pipeline Input? false
Position? named
Specifies that guest operating system settings on this template cannot be customized.

OperatingSystem

Required? false
Accept Pipeline Input? false
Position? named
Specifies the type of operating system for a virtual machine. To list the names of all available operating systems in VMM, type: "Get-SCOperatingSystem".

OrganizationName

Required? false
Accept Pipeline Input? false
Position? named
Specifies the name of the organization for the person in whose name a virtual machine is registered. 

Owner

Required? false
Accept Pipeline Input? false
Position? named
Specifies the owner of a VMM object in the form of a valid domain user account.

Example format: -Owner "Contoso\ReneeLo"
Example format: -Owner "ReneeLo@Contoso"

ProductKey

Required? false
Accept Pipeline Input? false
Position? named
Specifies a product key. The product key is a 25-digit number that identifies the product license. A product key can be used to register VMM or an operating system to be installed on a virtual machine or host.

PROTipID

Required? false
Accept Pipeline Input? false
Position? named
Specifies the ID of the PRO tip that triggered this action. This allows for auditing of PRO tips.

RemoveDomainJoinOrganizationalUnit

Required? false
Accept Pipeline Input? false
Position? named
Removes the organizational unit that the computer joined during setup.

RemoveServerFeatures

Required? false
Accept Pipeline Input? false
Position? named
Removes all server roles and features from a template.

RunAsynchronously

Required? false
Accept Pipeline Input? false
Position? named
Indicates that the job runs asynchronously so that control returns to the command shell immediately. 

SQLProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a SQL Server profile object.

TimeZone

Required? false
Accept Pipeline Input? false
Position? named
Specifies a number (an index) that identifies a geographical region that shares the same standard time. For a list of time zone indexes, see "Microsoft Time Zone Index Values" at: http://go.microsoft.com/fwlink/?LinkId=120935. If no time zone is specified, the default time zone used for a virtual machine is the same time zone setting that is on the virtual machine host.

Example format to specify the GMT Standard Time zone: -TimeZone 085

UnattendSettings

Required? false
Accept Pipeline Input? false
Position? named
Key Value pairs of String, String

UserRole

Required? false
Accept Pipeline Input? false
Position? named
Specifies a user role object.

VirtualVideoAdapterEnabled

Required? false
Accept Pipeline Input? false
Position? named
Enables, when set to $True, the Microsoft Synthetic 3D Virtual Video Adapter for virtual machines. You can enable the Virtual Video Adapter directly on a virtual machine, or on a template or hardware profile that will be used to create virtual machines.

REQUIRED: You can enable the Microsoft Synthetic 3D Virtual Video Adapter for a virtual machine only if that virtual machine is deployed on a host running Windows Server 2008 R2 SP1 (with the Remote Desktop Services role and Remote Desktop Virtual Graphics role service installed) or later or if the virtual machine is stored in a library in a stopped state (hardware changes to a stored virtual machine can only be made if the virtual machine does not have snapshots). Enabling the Microsoft Synthetic 3D Virtual Video Adapter on a virtual machine stored in a library will limit placement of that machine to hosts running Windows Server 2008 R2 SP1 (with the Remote Desktop Services role and Remote Desktop Virtual Graphics role service installed) or later.

Example format: -VirtualVideoAdapterEnabled $TRUE

Workgroup

Required? false
Accept Pipeline Input? false
Position? named
Specifies on a new or existing template, on a new or existing guest operating system profile, or on a new virtual machine the name of the workgroup to which you want to join a virtual machine. You can use this parameter to override the existing value on a template or on a guest operating system profile.

Name

Required? true
Accept Pipeline Input? true (ByValue)
Position? 0
Specifies the name of a VMM object.

VM

Required? true
Accept Pipeline Input? true (ByValue)
Position? named
Specifies a virtual machine object.

AnswerFile

Required? false
Accept Pipeline Input? true (ByValue)
Position? named
Specifies a script object stored in the VMM library to use as an answer file. The name of the answer file script depends on the operating system that you want to install on a virtual machine:

 ANSWER FILE	GUEST OS TO INSTALL ON VM
 -----------	-------------------------
 Sysprep.inf	Windows XP, Windows Server 2000, or Windows Server 2003
 Unattend.xml   Windows Vista, Windows 7, or Windows Server 2008 

ApplicationProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies an application profile object.

AutoLogonCount

Required? false
Accept Pipeline Input? false
Position? named
Specifies the number of times that Windows should automatically log the administrator denoted in the Answerr File on to the console session.

AutoLogonCredential

Required? false
Accept Pipeline Input? false
Position? named
Specifies the Run As account contained in the Answer File that Windows uses to log on to the console session when automatic administrator logon is enabled.

BootVirtualHardDisk

Required? false
Accept Pipeline Input? false
Position? named
Specifies the virtual hard disk that contains the operating system file to use when you create a new template.

CapabilityProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a capability profile object.

ComputerName

Required? false
Accept Pipeline Input? false
Position? named
Specifies the name of a computer that VMM can uniquely identify on your network. Valid formats are: FQDN, IPv4 or IPv6 address, or NetBIOS name.

NOTE: See the examples for a specific cmdlet to determine how that cmdlet specifies the computer name.

CPUCount

Required? false
Accept Pipeline Input? false
Position? named
Specifies the number of CPUs on a virtual machine, on a hardware profile, or on a template. See the examples for a specific cmdlet to determine how that cmdlet uses this parameter.

TYPE OF HOST   NUMBER OF PROCESSORS
------------   --------------------
Hyper-V		Up to 4 CPUs per VM; varies by guest OS
VMware ESX	 Up to 4 CPUs per VM for any supported guest OS
   Exception: 1 CPU on a VM running Windows NT 4.0
Citrix XenServer Up to 8 CPUs per VM; varies by guest OS

CPURelativeWeight

Required? false
Accept Pipeline Input? false
Position? named
Specifies the amount of CPU resources on a host that this virtual machine can use relative to other virtual machines on the same host. A virtual machine with a higher setting is allocated more CPU resources than a virtual machine with a lower setting.

TYPE OF HOST	RANGE OF RELATIVE VALUES
------------	------------------------
Hyper-V		 1 to 10000
VMware ESX	2000 = High
	1500 = Above Normal
	1000 = Normal (default)
	 750 = Below Normal
	 500 = Low
	1 to 1000000 = Custom
	The VMware term for these values is "shares."
Citrix XenServer   1 to 65536, normal is 256

NOTE: See the examples for a specific cmdlet to determine how that cmdlet uses this parameter.

CPUType

Required? false
Accept Pipeline Input? false
Position? named
Specifies the type of CPU for a virtual machine. To retrieve a list of all CPU types that are available for use in virtual machines in a VMM environment, type: "Get-SCCPUType"

Description

Required? false
Accept Pipeline Input? false
Position? named
States a description for the specified object.

DisableAutoLogon

Required? false
Accept Pipeline Input? false
Position? named
Disables automatic administrator logon.

Domain

Required? false
Accept Pipeline Input? false
Position? named
Specifies a fully qualified domain name (FQDN) for an Active Directory domain. 

Example format: -Domain "Domain01.Corp.Contoso.com"

DomainJoinCredential

Required? false
Accept Pipeline Input? false
Position? named
Specifies the user name and password of an account with permission to join a computer to the domain. A limited rights account should be used for joining computers (either physical or virtual) to the domain.

Example format for a PS credential: 
$DomainJoinCredential = Get-Credenital
-Domain "ThisDomain.Corp.Contoso.com" -DomainJoinCredential $DomainJoinCredential

Example format for a Run As account:
$DomainJoinCredential = Get-SCRunAsAccount -Name "RunAsAcct01"
-Domain "ThisDomain.Corp.Contoso.com" -DomainJoinCredential $DomainJoinCredential

NOTE: You can use the DomainJoinCredential parameter to specify credentials (on a VMHostProfile) for joining a physical host computer to the domain, or to specify credentials (on a new or existing template, on a new or existing guest operating system profile, or on a new virtual machine) for joining a virtual machine to the domain.

DomainJoinOrganizationalUnit

Required? false
Accept Pipeline Input? false
Position? named
Specifies the organizational unit to which the computer is joined during an unattended mini-setup.

DynamicMemoryBufferPercentage

Required? false
Accept Pipeline Input? false
Position? named
Specifies the percentage of memory above a virtual machine’s current memory allocation which the host should try to reserve as a buffer. The default value is 20

Example format: -DynamicMemoryTargetBufferPercentage 20

DynamicMemoryEnabled

Required? false
Accept Pipeline Input? false
Position? named
Enables, when set to $True, dynamic memory for virtual machines. You can enable dynamic memory directly on a virtual machine, or on a template or hardware profile that will be used to create virtual machines. The default value is False.

REQUIRED: You can enable dynamic memory for a virtual machine only if that virtual machine is deployed on a host running Windows Server 2008 SP1 or later or if the virtual machine is stored in a library in a stopped state (hardware changes to a stored virtual machine can only be made if the virtual machine does not have snapshots). Enabling dynamic memory on a virtual machine stored in a library will limit placement of that machine to hosts running Windows Server 2008 SP1 or later.

Example format: -DynamicMemoryEnabled $True

DynamicMemoryMaximumMB

Required? false
Accept Pipeline Input? false
Position? named
Specifies the maximum amount of memory that can be allocated to a virtual machine if dynamic memory is enabled. The default value is 65536.

REQUIRED: You can enable dynamic memory for a virtual machine only if that virtual machine is deployed on a host running Windows Server 2008 R2 SP1 or later or if the virtual machine is stored in a library in a stopped state (hardware changes to a stored virtual machine can only be made if the virtual machine does not have snapshots). Enabling dynamic memory on a virtual machine stored in a library will limit placement of that machine to hosts running Windows Server 2008 R2 SP1 or later.

Example format: -DynamicMemoryMaximumMB 1024

FullName

Required? false
Accept Pipeline Input? false
Position? named
Specifies the name of the person in whose name a virtual machine is registered. 

GuestOSProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a guest operating system profile object. 

GuiRunOnceCommands

Required? false
Accept Pipeline Input? false
Position? named
Specifies one or more commands to add to the [GuiRunOnce] section of an unattended answer file (such as Unattend.xml). Use single quotes around each string enclosed in double quotes.

Example format:
-GuiRunOnceCommands '"C:\APF\APFPostSysPrepCopy.cmd PARAMS1"', '"C:\APF\APFPostSysPrepCopy.cmd PARAMS1"'

For information about how Windows PowerShell uses quotes, type: "Get-Help about_Quoting_Rules"

HardwareProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a hardware profile object.

HighlyAvailable

Required? false
Accept Pipeline Input? false
Position? named
Specifies that a virtual machine will be placed on a Hyper-V host that is part of a host cluster. Configure this setting on a virtual machine, or on a template or hardware profile that will be used to create virtual machines.

JobGroup

Required? false
Accept Pipeline Input? false
Position? named
Specifies an identifier for a series of commands that will run as a set just before the final command that includes the same job group identifier runs. 

JobVariable

Required? false
Accept Pipeline Input? false
Position? named
Specifies that job progress is tracked and stored in the variable named by this parameter. 

LibraryServer

Required? false
Accept Pipeline Input? false
Position? named
Specifies a VMM library server object.

LocalAdministratorCredential

Required? false
Accept Pipeline Input? false
Position? named
Specifies the user name and password for the local Administrator account. Specifying credentials on a new or existing template, on a new or existing guest operating system profile, or on a new virtual machine overrides any existing Administrator password.

MemoryMB

Required? false
Accept Pipeline Input? false
Position? named
Specifies, in megabytes (MB), the amount of random access memory (RAM) on the host that is allocated to a virtual machine. The default value is 512 MB. For a virtual machine on which dynamic memory is enabled (on a host running Windows Server 2008 R2 SP1 or later), use MemoryMB to specify the startup memory value. 

TYPE OF HOSTMAXIMUM HOST MEMORY ASSIGNABLE TO VM
------------------------------------------------
Hyper-V	 Up to 65536 MB RAM per virtual machine
VMware ESX Server 3.0.x Up to 16384 MB RAM per virtual machine
VMware ESX Server 3.5.x Up to 65532 MB RAM per virtual machine
Citrix XenServer   Up to 32265 MB RAM per VM

Example format: -MemoryMB 1024

MemoryWeight

Required? false
Accept Pipeline Input? false
Position? named
Indicates the priority in allocating memory to a virtual machine, relative to other virtual machines on the same host. A virtual machine with a higher setting is allocated more memory resources than a virtual machine with a lower setting.

For a host running Windows Server 2008 R2 SP1 or later, 5000 = Normal, 10000 = High, 0 = Low, 1 to 10000 = Custom.

NOTE: See the examples for a specific cmdlet to determine how that cmdlet uses this parameter.

MergeAnswerFile

Required? false
Accept Pipeline Input? false
Position? named
Specifies that the cmdlet merge the specified answer file with the specified guest operating system settings. The default value is TRUE. This parameter is used by the VMM console. You do not need to use this parameter at the command prompt.

MonitorMaximumCount

Required? false
Accept Pipeline Input? false
Position? named
Specifies the maximum number of monitors supported by a virtual video adapter.

Example format: -MonitorMaximumCount 3

MonitorMaximumResolution

Required? false
Accept Pipeline Input? false
Position? named
Specifies, as a string, the value that represents the maximum possible monitor resolution of a virtual video adapter. Valid values are: "1024x768", "1280x1024", "1600x1200", "1920x1200". Default value: "1280x1024"

Example format: -MonitorResolutionMaximum "1600x1200"

NoCustomization

Required? false
Accept Pipeline Input? false
Position? named
Specifies that guest operating system settings on this template cannot be customized.

OperatingSystem

Required? false
Accept Pipeline Input? false
Position? named
Specifies the type of operating system for a virtual machine. To list the names of all available operating systems in VMM, type: "Get-SCOperatingSystem".

OrganizationName

Required? false
Accept Pipeline Input? false
Position? named
Specifies the name of the organization for the person in whose name a virtual machine is registered. 

Owner

Required? false
Accept Pipeline Input? false
Position? named
Specifies the owner of a VMM object in the form of a valid domain user account.

Example format: -Owner "Contoso\ReneeLo"
Example format: -Owner "ReneeLo@Contoso"

ProductKey

Required? false
Accept Pipeline Input? false
Position? named
Specifies a product key. The product key is a 25-digit number that identifies the product license. A product key can be used to register VMM or an operating system to be installed on a virtual machine or host.

PROTipID

Required? false
Accept Pipeline Input? false
Position? named
Specifies the ID of the PRO tip that triggered this action. This allows for auditing of PRO tips.

RemoveDomainJoinOrganizationalUnit

Required? false
Accept Pipeline Input? false
Position? named
Removes the organizational unit that the computer joined during setup.

RemoveServerFeatures

Required? false
Accept Pipeline Input? false
Position? named
Removes all server roles and features from a template.

RunAsynchronously

Required? false
Accept Pipeline Input? false
Position? named
Indicates that the job runs asynchronously so that control returns to the command shell immediately. 

SharePath

Required? false
Accept Pipeline Input? false
Position? named
Specifies a path to a valid library share on an existing library server that uses a Universal Naming Convention (UNC) path. 

Example format: –SharePath "\\LibServer01\LibShare"

SkipRearm

Required? false
Accept Pipeline Input? false
Position? named
Skips running the Windows Software Licensing Rearm program. This program restores the Windows operating system to its original, out-of-box licensing state. 

IMPORTANT: Refer to your licensing agreements with regard to activation and the Rearm program. Using this parameter might violate your licensing agreements. 

SQLProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a SQL Server profile object.

TimeZone

Required? false
Accept Pipeline Input? false
Position? named
Specifies a number (an index) that identifies a geographical region that shares the same standard time. For a list of time zone indexes, see "Microsoft Time Zone Index Values" at: http://go.microsoft.com/fwlink/?LinkId=120935. If no time zone is specified, the default time zone used for a virtual machine is the same time zone setting that is on the virtual machine host.

Example format to specify the GMT Standard Time zone: -TimeZone 085

UnattendSettings

Required? false
Accept Pipeline Input? false
Position? named
Key Value pairs of String, String

UserRole

Required? false
Accept Pipeline Input? false
Position? named
Specifies a user role object.

VirtualVideoAdapterEnabled

Required? false
Accept Pipeline Input? false
Position? named
Enables, when set to $True, the Microsoft Synthetic 3D Virtual Video Adapter for virtual machines. You can enable the Virtual Video Adapter directly on a virtual machine, or on a template or hardware profile that will be used to create virtual machines.

REQUIRED: You can enable the Microsoft Synthetic 3D Virtual Video Adapter for a virtual machine only if that virtual machine is deployed on a host running Windows Server 2008 R2 SP1 (with the Remote Desktop Services role and Remote Desktop Virtual Graphics role service installed) or later or if the virtual machine is stored in a library in a stopped state (hardware changes to a stored virtual machine can only be made if the virtual machine does not have snapshots). Enabling the Microsoft Synthetic 3D Virtual Video Adapter on a virtual machine stored in a library will limit placement of that machine to hosts running Windows Server 2008 R2 SP1 (with the Remote Desktop Services role and Remote Desktop Virtual Graphics role service installed) or later.

Example format: -VirtualVideoAdapterEnabled $TRUE

Workgroup

Required? false
Accept Pipeline Input? false
Position? named
Specifies on a new or existing template, on a new or existing guest operating system profile, or on a new virtual machine the name of the workgroup to which you want to join a virtual machine. You can use this parameter to override the existing value on a template or on a guest operating system profile.

Name

Required? true
Accept Pipeline Input? true (ByValue)
Position? 0
Specifies the name of a VMM object.

AnswerFile

Required? false
Accept Pipeline Input? true (ByValue)
Position? named
Specifies a script object stored in the VMM library to use as an answer file. The name of the answer file script depends on the operating system that you want to install on a virtual machine:

 ANSWER FILE	GUEST OS TO INSTALL ON VM
 -----------	-------------------------
 Sysprep.inf	Windows XP, Windows Server 2000, or Windows Server 2003
 Unattend.xml   Windows Vista, Windows 7, or Windows Server 2008 

ApplicationProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies an application profile object.

AutoLogonCount

Required? false
Accept Pipeline Input? false
Position? named
Specifies the number of times that Windows should automatically log the administrator denoted in the Answerr File on to the console session.

AutoLogonCredential

Required? false
Accept Pipeline Input? false
Position? named
Specifies the Run As account contained in the Answer File that Windows uses to log on to the console session when automatic administrator logon is enabled.

CapabilityProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a capability profile object.

ComputerName

Required? false
Accept Pipeline Input? false
Position? named
Specifies the name of a computer that VMM can uniquely identify on your network. Valid formats are: FQDN, IPv4 or IPv6 address, or NetBIOS name.

NOTE: See the examples for a specific cmdlet to determine how that cmdlet specifies the computer name.

CPUCount

Required? false
Accept Pipeline Input? false
Position? named
Specifies the number of CPUs on a virtual machine, on a hardware profile, or on a template. See the examples for a specific cmdlet to determine how that cmdlet uses this parameter.

TYPE OF HOST   NUMBER OF PROCESSORS
------------   --------------------
Hyper-V		Up to 4 CPUs per VM; varies by guest OS
VMware ESX	 Up to 4 CPUs per VM for any supported guest OS
   Exception: 1 CPU on a VM running Windows NT 4.0
Citrix XenServer Up to 8 CPUs per VM; varies by guest OS

CPURelativeWeight

Required? false
Accept Pipeline Input? false
Position? named
Specifies the amount of CPU resources on a host that this virtual machine can use relative to other virtual machines on the same host. A virtual machine with a higher setting is allocated more CPU resources than a virtual machine with a lower setting.

TYPE OF HOST	RANGE OF RELATIVE VALUES
------------	------------------------
Hyper-V		 1 to 10000
VMware ESX	2000 = High
	1500 = Above Normal
	1000 = Normal (default)
	 750 = Below Normal
	 500 = Low
	1 to 1000000 = Custom
	The VMware term for these values is "shares."
Citrix XenServer   1 to 65536, normal is 256

NOTE: See the examples for a specific cmdlet to determine how that cmdlet uses this parameter.

CPUType

Required? false
Accept Pipeline Input? false
Position? named
Specifies the type of CPU for a virtual machine. To retrieve a list of all CPU types that are available for use in virtual machines in a VMM environment, type: "Get-SCCPUType"

Description

Required? false
Accept Pipeline Input? false
Position? named
States a description for the specified object.

DisableAutoLogon

Required? false
Accept Pipeline Input? false
Position? named
Disables automatic administrator logon.

Domain

Required? false
Accept Pipeline Input? false
Position? named
Specifies a fully qualified domain name (FQDN) for an Active Directory domain. 

Example format: -Domain "Domain01.Corp.Contoso.com"

DomainJoinCredential

Required? false
Accept Pipeline Input? false
Position? named
Specifies the user name and password of an account with permission to join a computer to the domain. A limited rights account should be used for joining computers (either physical or virtual) to the domain.

Example format for a PS credential: 
$DomainJoinCredential = Get-Credenital
-Domain "ThisDomain.Corp.Contoso.com" -DomainJoinCredential $DomainJoinCredential

Example format for a Run As account:
$DomainJoinCredential = Get-SCRunAsAccount -Name "RunAsAcct01"
-Domain "ThisDomain.Corp.Contoso.com" -DomainJoinCredential $DomainJoinCredential

NOTE: You can use the DomainJoinCredential parameter to specify credentials (on a VMHostProfile) for joining a physical host computer to the domain, or to specify credentials (on a new or existing template, on a new or existing guest operating system profile, or on a new virtual machine) for joining a virtual machine to the domain.

DomainJoinOrganizationalUnit

Required? false
Accept Pipeline Input? false
Position? named
Specifies the organizational unit to which the computer is joined during an unattended mini-setup.

DynamicMemoryBufferPercentage

Required? false
Accept Pipeline Input? false
Position? named
Specifies the percentage of memory above a virtual machine’s current memory allocation which the host should try to reserve as a buffer. The default value is 20

Example format: -DynamicMemoryTargetBufferPercentage 20

DynamicMemoryEnabled

Required? false
Accept Pipeline Input? false
Position? named
Enables, when set to $True, dynamic memory for virtual machines. You can enable dynamic memory directly on a virtual machine, or on a template or hardware profile that will be used to create virtual machines. The default value is False.

REQUIRED: You can enable dynamic memory for a virtual machine only if that virtual machine is deployed on a host running Windows Server 2008 SP1 or later or if the virtual machine is stored in a library in a stopped state (hardware changes to a stored virtual machine can only be made if the virtual machine does not have snapshots). Enabling dynamic memory on a virtual machine stored in a library will limit placement of that machine to hosts running Windows Server 2008 SP1 or later.

Example format: -DynamicMemoryEnabled $True

DynamicMemoryMaximumMB

Required? false
Accept Pipeline Input? false
Position? named
Specifies the maximum amount of memory that can be allocated to a virtual machine if dynamic memory is enabled. The default value is 65536.

REQUIRED: You can enable dynamic memory for a virtual machine only if that virtual machine is deployed on a host running Windows Server 2008 R2 SP1 or later or if the virtual machine is stored in a library in a stopped state (hardware changes to a stored virtual machine can only be made if the virtual machine does not have snapshots). Enabling dynamic memory on a virtual machine stored in a library will limit placement of that machine to hosts running Windows Server 2008 R2 SP1 or later.

Example format: -DynamicMemoryMaximumMB 1024

FullName

Required? false
Accept Pipeline Input? false
Position? named
Specifies the name of the person in whose name a virtual machine is registered. 

GuestOSProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a guest operating system profile object. 

GuiRunOnceCommands

Required? false
Accept Pipeline Input? false
Position? named
Specifies one or more commands to add to the [GuiRunOnce] section of an unattended answer file (such as Unattend.xml). Use single quotes around each string enclosed in double quotes.

Example format:
-GuiRunOnceCommands '"C:\APF\APFPostSysPrepCopy.cmd PARAMS1"', '"C:\APF\APFPostSysPrepCopy.cmd PARAMS1"'

For information about how Windows PowerShell uses quotes, type: "Get-Help about_Quoting_Rules"

HardwareProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a hardware profile object.

HighlyAvailable

Required? false
Accept Pipeline Input? false
Position? named
Specifies that a virtual machine will be placed on a Hyper-V host that is part of a host cluster. Configure this setting on a virtual machine, or on a template or hardware profile that will be used to create virtual machines.

JobGroup

Required? false
Accept Pipeline Input? false
Position? named
Specifies an identifier for a series of commands that will run as a set just before the final command that includes the same job group identifier runs. 

JobVariable

Required? false
Accept Pipeline Input? false
Position? named
Specifies that job progress is tracked and stored in the variable named by this parameter. 

LocalAdministratorCredential

Required? false
Accept Pipeline Input? false
Position? named
Specifies the user name and password for the local Administrator account. Specifying credentials on a new or existing template, on a new or existing guest operating system profile, or on a new virtual machine overrides any existing Administrator password.

MemoryMB

Required? false
Accept Pipeline Input? false
Position? named
Specifies, in megabytes (MB), the amount of random access memory (RAM) on the host that is allocated to a virtual machine. The default value is 512 MB. For a virtual machine on which dynamic memory is enabled (on a host running Windows Server 2008 R2 SP1 or later), use MemoryMB to specify the startup memory value. 

TYPE OF HOSTMAXIMUM HOST MEMORY ASSIGNABLE TO VM
------------------------------------------------
Hyper-V	 Up to 65536 MB RAM per virtual machine
VMware ESX Server 3.0.x Up to 16384 MB RAM per virtual machine
VMware ESX Server 3.5.x Up to 65532 MB RAM per virtual machine
Citrix XenServer   Up to 32265 MB RAM per VM

Example format: -MemoryMB 1024

MemoryWeight

Required? false
Accept Pipeline Input? false
Position? named
Indicates the priority in allocating memory to a virtual machine, relative to other virtual machines on the same host. A virtual machine with a higher setting is allocated more memory resources than a virtual machine with a lower setting.

For a host running Windows Server 2008 R2 SP1 or later, 5000 = Normal, 10000 = High, 0 = Low, 1 to 10000 = Custom.

NOTE: See the examples for a specific cmdlet to determine how that cmdlet uses this parameter.

MergeAnswerFile

Required? false
Accept Pipeline Input? false
Position? named
Specifies that the cmdlet merge the specified answer file with the specified guest operating system settings. The default value is TRUE. This parameter is used by the VMM console. You do not need to use this parameter at the command prompt.

MonitorMaximumCount

Required? false
Accept Pipeline Input? false
Position? named
Specifies the maximum number of monitors supported by a virtual video adapter.

Example format: -MonitorMaximumCount 3

MonitorMaximumResolution

Required? false
Accept Pipeline Input? false
Position? named
Specifies, as a string, the value that represents the maximum possible monitor resolution of a virtual video adapter. Valid values are: "1024x768", "1280x1024", "1600x1200", "1920x1200". Default value: "1280x1024"

Example format: -MonitorResolutionMaximum "1600x1200"

NoCustomization

Required? false
Accept Pipeline Input? false
Position? named
Specifies that guest operating system settings on this template cannot be customized.

OperatingSystem

Required? false
Accept Pipeline Input? false
Position? named
Specifies the type of operating system for a virtual machine. To list the names of all available operating systems in VMM, type: "Get-SCOperatingSystem".

OrganizationName

Required? false
Accept Pipeline Input? false
Position? named
Specifies the name of the organization for the person in whose name a virtual machine is registered. 

Owner

Required? false
Accept Pipeline Input? false
Position? named
Specifies the owner of a VMM object in the form of a valid domain user account.

Example format: -Owner "Contoso\ReneeLo"
Example format: -Owner "ReneeLo@Contoso"

ProductKey

Required? false
Accept Pipeline Input? false
Position? named
Specifies a product key. The product key is a 25-digit number that identifies the product license. A product key can be used to register VMM or an operating system to be installed on a virtual machine or host.

PROTipID

Required? false
Accept Pipeline Input? false
Position? named
Specifies the ID of the PRO tip that triggered this action. This allows for auditing of PRO tips.

RemoveDomainJoinOrganizationalUnit

Required? false
Accept Pipeline Input? false
Position? named
Removes the organizational unit that the computer joined during setup.

RemoveServerFeatures

Required? false
Accept Pipeline Input? false
Position? named
Removes all server roles and features from a template.

RunAsynchronously

Required? false
Accept Pipeline Input? false
Position? named
Indicates that the job runs asynchronously so that control returns to the command shell immediately. 

SQLProfile

Required? false
Accept Pipeline Input? false
Position? named
Specifies a SQL Server profile object.

TimeZone

Required? false
Accept Pipeline Input? false
Position? named
Specifies a number (an index) that identifies a geographical region that shares the same standard time. For a list of time zone indexes, see "Microsoft Time Zone Index Values" at: http://go.microsoft.com/fwlink/?LinkId=120935. If no time zone is specified, the default time zone used for a virtual machine is the same time zone setting that is on the virtual machine host.

Example format to specify the GMT Standard Time zone: -TimeZone 085

UnattendSettings

Required? false
Accept Pipeline Input? false
Position? named
Key Value pairs of String, String

UserRole

Required? false
Accept Pipeline Input? false
Position? named
Specifies a user role object.

VirtualVideoAdapterEnabled

Required? false
Accept Pipeline Input? false
Position? named
Enables, when set to $True, the Microsoft Synthetic 3D Virtual Video Adapter for virtual machines. You can enable the Virtual Video Adapter directly on a virtual machine, or on a template or hardware profile that will be used to create virtual machines.

REQUIRED: You can enable the Microsoft Synthetic 3D Virtual Video Adapter for a virtual machine only if that virtual machine is deployed on a host running Windows Server 2008 R2 SP1 (with the Remote Desktop Services role and Remote Desktop Virtual Graphics role service installed) or later or if the virtual machine is stored in a library in a stopped state (hardware changes to a stored virtual machine can only be made if the virtual machine does not have snapshots). Enabling the Microsoft Synthetic 3D Virtual Video Adapter on a virtual machine stored in a library will limit placement of that machine to hosts running Windows Server 2008 R2 SP1 (with the Remote Desktop Services role and Remote Desktop Virtual Graphics role service installed) or later.

Example format: -VirtualVideoAdapterEnabled $TRUE

VMMServer

Required? false
Accept Pipeline Input? true (ByValue)
Position? named
Specifies a VMM server object.

Workgroup

Required? false
Accept Pipeline Input? false
Position? named
Specifies on a new or existing template, on a new or existing guest operating system profile, or on a new virtual machine the name of the workgroup to which you want to join a virtual machine. You can use this parameter to override the existing value on a template or on a guest operating system profile.

Examples

1: Create a virtual machine template from a virtual hard disk.
PS C:\> $OS = Get-SCOperatingSystem -VMMServer "VMMServer01.Contoso.com" | where {$_.Name -eq "64-bit Edition of Windows Server 2008 R2 Datacenter"}
PS C:\> $VHD = Get-SCVirtualHardDisk -VMMServer "VMMServer01.Contoso.com" | where { $_.Name -eq “VHD01.vhd” -and $_.LibraryServer.Name -eq "LibServer01.Contoso.com” }
PS C:\> New-SCVMTemplate -Name "VMTemplate01" -VirtualHardDisk $VHD -OperatingSystem $OS -NoCustomization
The first command gets the specified operating system object (64-bit edition of Windows Server 2008 R2 Datacenter) and stores the object in the $OS variable.

The second command gets the virtual hard disk object named VHD01 from the VMM library on LibServer01 and stores the object in the $VHD variable.

The last command creates a virtual machine template named VMTemplate01 from VHD01 and specifies the name of the operating system. No customization is made to the operating system.

NOTE: This example assumes that VHD01 is a sysprepped virtual hard disk on which the 64-bit edition of the Windows Server 2008 R2 Datacenter operating system is installed. You can install virtualization guest services on the virtual machine, or VMM will install them automatically when the virtual machine is deployed on a Windows-based host.
2: Create a virtual machine template from an existing virtual machine.
PS C:\> $LibraryServer = Get-SCLibraryServer | where {$_.Name -eq "LibServer01.Contoso.com"}
PS C:\> $VM = Get-SCVirtualMachine -Name "VM01" | where {$_.VMHost.Name -eq "VMHost02.Contoso.com"}
PS C:\> $OperatingSystem = Get-SCOperatingSystem | where {$_.Name -eq "64-bit Edition of Windows Server 2008 R2 Enterprise"}
PS C:\> New-SCVMTemplate -Name "VMTemplate02" -RunAsynchronously -VM $VM -Owner "Contoso\ReneeLo" -LibraryServer $LibraryServer -SharePath "\\LibServer01.Contoso.com\MSSCVMMLibrary" -OperatingSystem $OperatingSystem -NoCustomization
The first command gets the the library server object named LibServer01 and stores the object in the $LibraryServer variable.

The second command gets the virtual machine object named VM01 deployed on VMHost02 and stores the object in the $VM variable.

NOTE: VM01, which is the virtual machine that will be converted to a template, will be destroyed during the conversion process. If you want to retain the virtual machine used to create a template, you can use the New-SCVirtualMachine cmdlet to clone the virtual machine before you create the template.

The third command gets the specified operating system object (Windows Server 2008 R2 Enterprise) and stores the object in the $OS variable.

The last command creates a virtual machine template named VMTemplate02 from virtual machine VM01. It specifies the owner of the new template, the library server and share where you want to store the new template, and the name of the operating system, without any customization to the operating system. The -RunAsynchronously parameter returns control to the shell immediately before the command completes.
3: Create a virtual machine template from a virtual hard disk with specified characteristics.
PS C:\> $JobGroupId01 = [Guid]::NewGuid().ToString()
PS C:\> $LogNet = Get-SCLogicalNetwork -Name "LogicalNetwork01"
PS C:\> New-SCVirtualNetworkAdapter -JobGroup $JobGroupID01 -MACAddressType Dynamic -LogicalNetwork $LogNet 
PS C:\> New-SCVirtualSCSIAdapter -JobGroup $JobGroupID01 -AdapterID 6 -Shared $False
PS C:\> New-SCVirtualDVDDrive -JobGroup $JobGroupID01 -Bus 1 -LUN 0 
PS C:\> New-SCHardwareProfile -Name "TempHWProfile" -Owner "Contoso\ReneeLo" -Description "Temporary hardware profile used to create a VM Template" -MemoryMB 512 -JobGroup $JobGroupID01
PS C:\> $JobGroupId02 = [Guid]::NewGuid().ToString()
PS C:\> $VHD = Get-SCVirtualHardDisk | where {$_.Location -eq "\\VMHost01Share\VHDs\Template.vhd"} | where {$_.HostName -eq "VMHost01.Contoso.com"}
PS C:\> New-SCVirtualDiskDrive -IDE -Bus 0 -LUN 0 -JobGroup $JobGroupID02 -VirtualHardDisk $VHD 
PS C:\> $HWProfile = Get-SCHardwareProfile | where { $_.Name -eq "TempHWProfile" }
PS C:\> $OS = Get-SCOperatingSystem | where {$_.Name -eq "64-bit Edition of Windows Server 2008 R2 Enterprise"} 
PS C:\> New-SCVMTemplate -Name "NewTemplate03" -Owner "Contoso\ReneeLo" -HardwareProfile $HWProfile -JobGroup $JobGroupID02 -ComputerName "*" -JoinWorkgroup "WORKGROUP" -OperatingSystem $OS -RunAsynchronously
The first command generates a globally unique identifier (GUID) and stores the GUID string in variable $JobGroupID01. The job group ID functions as an identifier that groups subsequent commands that include $JobGroupID01 into a single job group.

The second command gets the logical network object named LogicalNetwork01 and stores the object in the $LogNet variable.

The third command creates a virtual network adapter and uses the JobGroup parameter to indicate that the network adapter is not created until just before the New-SCHardwareProfile cmdlet runs. The New-SCVirtualNetworkAdapter cmdlet sets the MAC address type to dynamic and specifies that the new virtual network adapter will connect to the logical network stored in $LogNet.

The fourth command creates a virtual SCSI adapter and uses the JobGroup parameter to indicate that the SCSI adapter is not created until just before the New-SCHardwareProfile cmdlet runs. The New-SCVirtualSCSIAdapter cmdlet sets the adapter ID to 6 and sets the Shared parameter to $False so that the adapter will not be shared, as would be necessary if you wanted to use it in guest clustering.

The fifth command creates a virtual DVD drive and uses the JobGroup parameter to specify that the DVD drive is not created until just before the New-SCHardwareProfile cmdlet runs. The New-SCVirtualDVDDrive cmdlet specifies Bus 1 and LUN 0 to attach the virtual DVD drive to Secondary Channel (0) on the IDE bus.

The sixth command creates a hardware profile named TempHWProfile, sets the owner to Contoso\ReneeLo, specifies a description and that the amount of memory on the host that a virtual machine created by using this template will use is 512 MB. The New-SCHardwareProfile cmdlet uses the JobGroup parameter to specify that all preceding commands that include variable $JobGroupID01 will run just before New-SCHardwareProfile creates the new hardware profile. After New-SCVirtualNetworkAdapter, New-SCVirtualSCSIAdapter, and New-SCVirtualDVDDrive run, the resulting objects that are created are automatically associated with the new hardware profile.

The seventh command generates a new GUID and stores it in $JobGroupID02. This job group ID will be used to identify any subsequent commands that include this ID and will delay running those commands until just before the last command that specifies $JobGroupID02 runs.

The eighth command uses the Get-SCVirtualHardDisk cmdlet to get the virtual hard disk object named Template.vhd, VHDs on VMHost01 and stores the object in the $VHD variable.

The ninth command creates a new virtual disk drive and attaches the virtual hard disk stored in $VHD (Template.vhd) to this new virtual disk drive. The command specifies Bus 0 and LUN 0 on the IDE Bus so that Template.vhd will be attached to the first slot (0) of the Primary Channel (0) on the IDE bus of the new virtual disk drive. The command uses the JobGroup parameter to specify that the new virtual disk drive is not created until just before the New-SCVMTemplate cmdlet runs in the last command.

The tenth command gets the hardware profile object that represents the hardware profile named TempHWProfile from the VMM library and stores the object in the $HWProfile variable.

The eleventh command gets the specified operating system object (64-bit Edition of Windows Server 2008 R2 Enterprise) and stores the object in the $OS variable.

The last command creates a virtual machine template named NewTemplate03, sets the owner to Contoso\ReneeLo, specifies that this template will use the hardware profile named TempHWProfile, sets the computer name to be randomly generated (indicated by the asterisk “*”), and specifies that any virtual machine created by using this template will be joined to the workgroup called WORKGROUP. The New-SCVMTemplate cmdlet uses the JobGroup parameter to specify that all preceding commands that include variable $JobGroupID02 run before New-SCVMTemplate creates the new template. After Add-SCVirtualHardDisk runs, the resulting virtual hard disk object that is created is automatically associated with the new template.

See Also