Files
Backup/_NDGOV_WindowsTeam/ITD.Infra-VMware.Administration/Scripts/VMHost-Decom.ps1
T
Zack Meier 1d304511b8 update
2026-04-15 15:45:50 -05:00

56 lines
2.6 KiB
PowerShell

$VMHostNames = @"
itdbisvm-gen05.nd.gov
"@
$VMHostNames = ConvertTo-Array -MultiLineString $VMHostNames
# set maintenance and disable alarms
Get-VMHost -Name $VMHostNames | Set-VMHost -State "Maintenance" -RunAsync
ForEach ($VMHostName in $VMHostNames) {
$GetVMHost = Get-VMHost -Name $VMHostname
$VIServer = $GetVMHost.Uid.Split('@')[1].Split(':')[0]
$alarmMgr = Get-View AlarmManager -Server $VIServer
$alarmEnabled = $GetVMHost.ExtensionData.AlarmActionsEnabled
if ($alarmEnabled -eq $true) {
$alarmMgr.EnableAlarmActions($GetVMHost.ExtensionData.MoRef, $false)
}
}
#Create Management Switch And Move Adapter
ForEach ($VMHostName in $VMHostNames) {
$vmnic0 = Get-VMHostNetworkAdapter -VMHost $VMHostName -Name "vmnic0"
$vmk0 = Get-VMHost $VMHostName | Get-VMHostNetworkAdapter -Name vmk0
New-VirtualSwitch -VMHost $VMHostName -Name "sSwitch-MGMT"
Get-VirtualSwitch -VMHost $VMHostName -Name "sSwitch-MGMT" | New-VirtualPortGroup -Name "sPG-MGMT"
$MGMTPG = Get-VirtualSwitch -VMHost $VMHostName -Name "sSwitch-MGMT" | Get-VirtualPortGroup -Name "sPG-MGMT"
$MGMTSwitch = Get-VirtualSwitch -VMHost $VMHostName -Name "sSwitch-MGMT"
Add-VirtualSwitchPhysicalNetworkAdapter -VMHostPhysicalNic $vmnic0 -VirtualSwitch $MGMTSwitch -Confirm:$false
Add-VirtualSwitchPhysicalNetworkAdapter -VMHostPhysicalNic $vmnic0 -VirtualSwitch $MGMTSwitch -VirtualNicPortgroup $MGMTPG -VMHostVirtualNic $vmk0 -Confirm:$false
}
# remove vmk1 and vmk2
ForEach ($VMHostName in $VMHostNames) {
Get-VMHost -Name $VMHostName | Get-VMHostNetworkAdapter -Name vmk1, vmk2 | Remove-VMHostNetworkAdapter -Confirm:$false
}
# remove distributed switches
$BackupVDSwitch = Get-VDSwitch -Name 'dvSwitch-SDC-Backup'
$DataVDSwitch = Get-VDSwitch -Name 'dvSwitch-SDC-Data-Server'
$vMotionVDSwitch = Get-VDSwitch -Name 'dvSwitch-SDC-VMotion'
$MgmtVDSwitch = Get-VDSwitch -Name 'dvSwitch-SDC-MGMT'
ForEach ($VMHostName in $VMHostNames) {
Remove-VDSwitchVMHost -VDSwitch $BackupVDSwitch -VMHost $VMHostName -Confirm:$false
Remove-VDSwitchVMHost -VDSwitch $DataVDSwitch -VMHost $VMHostName -Confirm:$false
Remove-VDSwitchVMHost -VDSwitch $vMotionVDSwitch -VMHost $VMHostName -Confirm:$false
Remove-VDSwitchVMHost -VDSwitch $MgmtVDSwitch -VMHost $VMHostName -Confirm:$false
}
# remove from inventory
ForEach ($VMHostName in $VMHostNames) {
Get-VMHost -Name $VMHostName | Remove-VMHost -Confirm:$false
}
# scrub DNS
# scrub Passwordstate
# scrub Active Directory
# send storage team request to remove SAN
# send cohesity team request to remove host mappings for backup vmkernels