37 lines
1.0 KiB
PowerShell
Executable File
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 |