# Create VM From Template

> `UiPath.VMware.Activities.CreateVMFromTemplate`

`UiPath.VMware.Activities.CreateVMFromTemplate`

Creates a new virtual machine based on an existing template.

## Properties

### Common

* **DisplayName** - The display name of the activity.

### Customize

* **CustomizationSpecification** - Specifies the name of a **Customization Specification** item which is used for customizing the **Guest OS**.
* **DiskStorage** - Specifies the format of the virtual disk. The default value is **SameFormatAsSource**.
  :::note
  For retrieving the **DNS Name** and **IP Address**, you need to install the **VMware tools** on the **Guest OS** and to power on the machine at least once before initiating the request.
  :::

### Input

* **Datastore** - Establishes the storage location for the configuration and disk files associated with the host.
* **Host** - Provides the host where the virtual machine can be run.
* **PowerOnAfterCreation** - Specifies whether the virtual machine is powered on or not after creation. The default value is **False**.
* **SourceTemplate** - Specifies the full path of the virtual machine template, including the data center and its folder.
* **Timeout** - Specifies how long to wait (in seconds) for the activity to run before an error is thrown. The default value is 1800 seconds (30 minutes).
* **VirtualMachineDescription** - Provides the description of the new virtual machine.
* **VirtualMachineName** - Specifies the full path of the new virtual machine, including the data center and its folder.
* **WaitForCompletion** - When selected, waits for the activity to be complete but cannot exceed the value specified in the **Timeout** field. When the option it's not selected, the activity ends immediately after the VMware API call is made. The default value is **True**.

### Misc

* **Private** - If selected, the values of variables and arguments are no longer logged at Verbose level.

### Output

* **VirtualMachine** - Provides details about the newly created virtual machine.
  :::note
  The **VirtualMachine** parameter provides the following information:
  * **ID** - Specifies the ID of the virtual machine.
  * **Name** - Specifies the name Virtual machine.
  * **Host** - Specifies the host on which the virtual machine is running.
  * **FullPath** - Specifies the full path to the virtual machine, including datacenter and folder hierarchy.
  * **IPAddress** - Specifies the primary IP address assigned to the guest operating system, if known.
  * **DNSName** - Specifies the hostname of the guest operating system, if known.
  * **GuestOS** - Specifies the guest's operating system full name, if known.
  * **GuestOSState** - Specifies the guest's operating system state. Possible values are `Running`, `ShuttingDown`, `Resetting`, `Standby`, `NotRunning`, `Unknown`.
  * **PowerState** - Specifies the virtual machine power state. Possible values are `PoweredOn`, `PoweredOff`, `Suspended`.
  * **VMwareToolsState** - Specifies the current running status of VMware Tools in the guest operating system, if known. Possible values are `NotRunning`, `Running`, `ExecutingScripts`.
  * **VMwareToolsVersionStatus** - Specifies the current version status of VMware Tools. The possible values are **Blacklisted**, **Current**, **NeedUpgrade**, **NotInstalled**, **SupportedNew**, **SupportedOld**, **TooNew**, **TooOld**, **Unmanaged**.
  * **IsTemplate** - Indicates if the input represents a virtual machine template.
  * **Tags** - Specifies the list of tags assigned to the virtual machine or template.
  :::
