Public/Remove-AvdSessionHost.ps1
function Remove-AvdSessionhost { <# .SYNOPSIS Updates sessionhosts for accepting or denying connections. .DESCRIPTION The function will update sessionhosts drainmode to true or false. This can be one sessionhost or all of them. .PARAMETER HostpoolName Enter the WVD Hostpool name .PARAMETER ResourceGroupName Enter the WVD Hostpool resourcegroup name .PARAMETER SessionHostName Enter the sessionhosts name .EXAMPLE Remove-AvdSessionhost -HostpoolName avd-hostpool-personal -ResourceGroupName rg-avd-01 -SessionHostName avd-host-1.wvd.domain -AllowNewSession $true #> [CmdletBinding()] param ( [parameter(Mandatory, ParameterSetName = 'Parameters')] [ValidateNotNullOrEmpty()] [string]$HostpoolName, [parameter(Mandatory, ParameterSetName = 'Parameters')] [ValidateNotNullOrEmpty()] [string]$ResourceGroupName, [parameter(Mandatory, ParameterSetName = 'Parameters')] [ValidateNotNullOrEmpty()] [string]$SessionHostName ) Begin { Write-Verbose "Start searching" AuthenticationCheck } Process { switch ($PsCmdlet.ParameterSetName) { Parameters { $url = "https://management.azure.com/subscriptions/" + $script:subscriptionId + "/resourceGroups/" + $ResourceGroupName + "/providers/Microsoft.DesktopVirtualization/hostpools/" + $HostpoolName + "/sessionHosts/" + $SessionHostName + "?api-version=2019-12-10-preview" $parameters = @{ uri = $url Method = "Delete" Headers = $token } } } $results = Invoke-RestMethod @parameters return $results } } |