Files
Sandbox/VMware-ManualBackupViaClone.ps1
T
Zack Meier 03dba08135 sync
2026-04-15 15:42:41 -05:00

38 lines
1.1 KiB
PowerShell

$VMs = Get-VM itdprint1a.nd.gov,itdprint1b.nd.gov | where-object PowerState -eq PoweredOn
$count=0
ForEach ($VM in $VMs)
{
$count++
$Cluster = $null
$DatastoreCluster = $null
$DatastoreLargest = $null
$DatastoreDestination = $Null
$vCenter = $null
$Templ = $null
$vCenter = $VM.uid.split('@')[1].split('.')[0]
$TEMPL = Get-Datastore "*TEMPL*" | where-object Uid -like "*$vCenter*"
$Cluster = $VM | Get-Cluster
$DatastoreCluster = $VM | Get-DatastoreCluster
$DatastoreLargest = $DatastoreCluster | Get-Datastore | sort-object FreeSpaceGB -Descending | select -first 1
If($DatastoreLargest.FreeSpaceGB -gt $VM.UsedSpaceGB)
{
$DatastoreDestination = $DatastoreCluster
}
Else
{
$DatastoreDestination = $TEMPL
}
If($Count -le 8)
{
New-VM -VM $VM -Name ($VM.Name + "_backup20191021") -ResourcePool $Cluster -Datastore $DatastoreDestination -RunAsync
}
else {
New-VM -VM $VM -Name ($VM.Name + "_backup20191021") -ResourcePool $Cluster -Datastore $DatastoreDestination
start-sleep -seconds 180
$count = 0
}
}