51 lines
1.3 KiB
PowerShell
51 lines
1.3 KiB
PowerShell
|
[CmdletBinding()]
|
||
|
Param(
|
||
|
[Parameter(Mandatory)]
|
||
|
[string]$VMName,
|
||
|
[Parameter(Mandatory)]
|
||
|
[string]$VSphereFQDN,
|
||
|
[Parameter(Mandatory)]
|
||
|
[string]$VSphereUsername,
|
||
|
[Parameter(Mandatory)]
|
||
|
[string]$VSpherePassword
|
||
|
)
|
||
|
|
||
|
$PowerCliConfigurationSplat = @{
|
||
|
Scope = 'User'
|
||
|
ParticipateInCEIP = $False
|
||
|
Confirm = $False
|
||
|
InvalidCertificateAction = 'Ignore'
|
||
|
}
|
||
|
Set-PowerCLIConfiguration @PowerCliConfigurationSplat | Out-Null
|
||
|
|
||
|
$ConnectVIServerSplat = @{
|
||
|
Server = $VSphereFQDN
|
||
|
User = "$VSphereUsername"
|
||
|
Password = "$VSpherePassword"
|
||
|
WarningAction = 'SilentlyContinue'
|
||
|
}
|
||
|
Connect-VIServer @ConnectVIServerSplat | Out-Null
|
||
|
|
||
|
$GetVMSplat = @{
|
||
|
Name = "*$($VMName)*"
|
||
|
ErrorAction = 'SilentlyContinue'
|
||
|
}
|
||
|
If ([boolean](Get-VM @GetVMSplat)) {
|
||
|
$RemoveVMSplat = @{
|
||
|
VM = Get-VM @GetVMSplat
|
||
|
DeletePermanently = $True
|
||
|
Confirm = $False
|
||
|
ErrorAction = 'SilentlyContinue'
|
||
|
}
|
||
|
Remove-VM @RemoveVMSplat
|
||
|
}
|
||
|
|
||
|
Disconnect-VIServer * -Confirm:$False
|
||
|
|
||
|
$RemoveItemSplat = @{
|
||
|
Path = "/scratch/*"
|
||
|
Recurse = $True
|
||
|
Force = $True
|
||
|
Confirm = $False
|
||
|
}
|
||
|
Remove-Item @RemoveItemSplat
|