Files

37 lines
1.0 KiB
PowerShell
Executable File

Import-Module VMware.PowerCLI
. .\Config.ps1
Import-Module .\Environment.psm1
Import-Module .\Modules\Logging.psm1
Import-Module .\Modules\Utils.psm1
Import-Module .\Modules\VM.psm1
Import-Module .\Modules\Cluster.psm1
Import-Module .\Modules\Storage.psm1
$global:LogFile = Join-Path $Config.LogPath ("shutdown_{0}.log" -f (Get-Date -Format "yyyyMMdd_HHmmss"))
Start-Transcript -Path $LogFile
$envData = Get-Environment
$vCenterCred = Import-Clixml $Config.Cred.VCenter
$storageCred = Import-Clixml $Config.Cred.Storage
Connect-VIServer $envData.vCenter -Credential $vCenterCred -ErrorAction Stop
$VMGroups = Get-VMGroups $Config.CSVGroups
$AllVMs = Get-VM
Shutdown-VMGroups $VMGroups
$filtered = Get-FilteredVMs -AllVMs $AllVMs -Groups $VMGroups -ExcludeRegex $Config.ExcludeRegex
Stop-VMsParallel -VMs $filtered
Shutdown-GWHost -GWHost $envData.GWHost
Shutdown-Cluster -Cluster $Config.INCluster
# optional:
# Shutdown-Storage -StorageSystem $envData.Storage -Cred $storageCred -Plink $Config.Plink
Stop-Transcript