[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