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