NetboxPS/Functions/Virtualization/VirtualMachine/Remove-NetboxVirtualMachine.ps1
2022-12-06 13:34:52 -05:00

55 lines
No EOL
1.2 KiB
PowerShell

function Remove-NetboxVirtualMachine {
<#
.SYNOPSIS
Delete a virtual machine
.DESCRIPTION
Deletes a virtual machine from Netbox by ID
.PARAMETER Id
Database ID of the virtual machine
.PARAMETER Force
Force deletion without any prompts
.EXAMPLE
PS C:\> Remove-NetboxVirtualMachine -Id $value1
.NOTES
Additional information about the function.
#>
[CmdletBinding(ConfirmImpact = 'High',
SupportsShouldProcess = $true)]
param
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint16[]]$Id,
[switch]$Force
)
begin {
}
process {
foreach ($VMId in $Id) {
$CurrentVM = Get-NetboxVirtualMachine -Id $VMId -ErrorAction Stop
if ($Force -or $pscmdlet.ShouldProcess("$($CurrentVM.Name)/$($CurrentVM.Id)", "Remove")) {
$Segments = [System.Collections.ArrayList]::new(@('virtualization', 'virtual-machines', $CurrentVM.Id))
$URI = BuildNewURI -Segments $Segments
InvokeNetboxRequest -URI $URI -Method DELETE
}
}
}
end {
}
}