-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathVMWare_CloneTemplateToVM.ps1
71 lines (65 loc) · 2.14 KB
/
VMWare_CloneTemplateToVM.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<#
Name: VMWare-CopyVMTemplate.ps1
Version: 1.0
Author: Sheridan Wendt
Date: 9/5/2018
Applies to: Workstations
Description:
-Get a list of employees with a specific job title
-Check the application directory of each employee in the list to determine their workstation's FQDN
-Check the workstation for an application directory to ensure the application is installed
#>
# Define Global Variables
$Cluster = "ClusterName"
$vCenter = "vCenter.domain.local"
# Connect to environment
Connect-VIServer $vCenter
# Define Global Variables
$ResourecePool = Get-View -ViewType ResourcePool -Property Name
$Templates = Get-Template | Sort | Select Name
$Hosts = Get-VMHost | Sort | Select Name
$Datastores = Get-Datastore | Sort | Select Name
# Choose parameters
Function Choose-Parameters {
# Choose Template
$Templates
Write-Host " "
$Global:Template = Read-Host "Choose a template from above"
# Choose Host
$Hosts
$Global:VMHostString = Read-Host "Choose a Host from above"
$Global:VMHost = Get-VMHost -Name $VMHostString
# Choose Datastore
$Datastores
Write-Host " "
$Global:Datastore = Read-Host "Choose a Datastore from above"
# Choose a Name
Write-Host " "
$Global:Name = Read-Host "Choose a Name for the new VM"
# Choose a Disk Storage Format
Write-Host " "
Write-Host "EagerZeroedThick"
Write-Host "Thick"
Write-Host "Thick2GB"
Write-Host "Thin"
Write-Host "Thin2GB"
$Global:DiskStorageFormat = Read-Host "Chose a Disk Storage Format from above"
}
Choose-Parameters
Function Confirm-Parameters {
Write-Host "______________________________________"
Write-Host "Confirm New VM Configuration"
Write-Host "Template: $Template"
Write-Host "Host: $Host"
Write-Host "Datastore: $Datastore"
Write-Host "Name: $Name"
Write-Host "______________________________________"
$Confirmation = Read-Host "Is this accurate (Y/N)?"
$No = "n", "N", "No", "NO"
if ($No -contains $Confirm){
Choose-Parameters
}
}
Confirm-Parameters
# Copy Template to VM
New-VM -Template $Template -Host $VMHost -Datastore $Datastore -Name $Name -DiskStorageFormat $DiskStorageFormat