38 lines
1.1 KiB
PowerShell
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
|
|
}
|
|
} |