FunctionApp/Modules/SessionHostReplacer/functions/Remove-SHRSessionHostEntraDevice.ps1 (22 lines of code) (raw):
function Remove-SHRSessionHostEntraDevice {
<#
.SYNOPSIS
This is used to delete the VM object from Entra ID
#>
[CmdletBinding()]
param (
[Parameter()]
[String] $VMName
)
# Get device object
$device = Get-MgDevice -Filter "DisplayName eq '$VMName'"
if($device){
Write-PSFMessage -Level Host -Message "Retrieved device object for VM {0} with Id: {1}" -StringValues $VMName, $device.Id
# Delete VM
$null = Remove-MgDevice -DeviceId $device.Id -ErrorAction Stop
Write-PSFMessage -Level Host -Message "Deleted device object for VM {0} from Entra ID" -StringValues $VMName
}
else{
Write-PSFMessage -Level Warning -Message "Could not find device object for VM {0}" -StringValues $VMName
}
}