Functions/Functions/Azure/Confirm-AzApplicationGroup.ps1
function Confirm-AzApplicationGroup { <# .SYNOPSIS Tests for the existence of a Windows Virtual Desktop ApplicationGroup in Azure. .DESCRIPTION The Confirm-AzApplicationGroup function takes the name of an ApplicationGroup as input and returns $true if it is found, otherwise returns $false. .PARAMETER ApplicationGroupName The name of the Windows Virtualization ApplicationGroup to look for. .PARAMETER ResourceGroupName The name of the Resource Group that the ApplicationGroup is supposed to be in. .PARAMETER Location The location where the ApplicationGroup is expected to be. If not specified, the location check will be skipped. .PARAMETER ApplicationGroupType The type of the ApplicationGroup. If not specified, the type check will be skipped. .EXAMPLE # Check if an ApplicationGroup named "MyWvdAppGroup" exists in the "MyResourceGroup" Resource Group Confirm-AzApplicationGroup -ApplicationGroupName "MyWvdAppGroup" -ResourceGroupName "MyResourceGroup" .EXAMPLE # Check if an ApplicationGroup named "MyWvdAppGroup" exists in the "MyResourceGroup" Resource Group and store the # result in a variable $exists = Confirm-AzApplicationGroup -ApplicationGroupName "MyWvdAppGroup" -ResourceGroupName "MyResourceGroup" if ($exists) { Write-Output "MyWvdAppGroup exists in the MyResourceGroup Resource Group." } else { Write-Output "MyWvdAppGroup does not exist in the MyResourceGroup Resource Group." } .EXAMPLE # Check with a specific location Confirm-AzApplicationGroup -ApplicationGroupName "MyWvdAppGroup" -ResourceGroupName "MyResourceGroup" ` -Location "eastus" .EXAMPLE # Check with a specific ApplicationGroupType Confirm-AzApplicationGroup -ApplicationGroupName "MyWvdAppGroup" -ResourceGroupName "MyResourceGroup" ` -ApplicationGroupType "DesktopApplicationGroup" .EXAMPLE # How to use this in a Pester test Describe "MyWvdAppGroup Application Group" { It "Should exist in the MyResourceGroup Resource Group" { Confirm-AzApplicationGroup -ApplicationGroupName "MyWvdAppGroup" -ResourceGroupName "MyResourceGroup" ` | Should -Be $true } } .NOTES Author: Doug Seelinger #> [CmdletBinding()] param ( [Parameter(Mandatory=$true)] [string]$ApplicationGroupName, [Parameter(Mandatory=$true)] [string]$ResourceGroupName, [Parameter(Mandatory=$false)] [string]$Location, [Parameter(Mandatory=$false)] [string]$ApplicationGroupType ) begin { Import-Module Az.Accounts Import-Module Az.DesktopVirtualization if (-not (Get-AzContext)) { Connect-AzAccount } $appGroup = Get-AzWvdApplicationGroup -ResourceGroupName $ResourceGroupName -Name $ApplicationGroupName ` -ErrorAction SilentlyContinue if ($null -eq $appGroup) { return $false } if ($Location -ne $null -and $Location -ne '' -and $appGroup.Location -ne $Location) { return $false } if ($ApplicationGroupType -ne $null -and $ApplicationGroupType -ne '' -and $appGroup.ApplicationGroupType ` -ne $ApplicationGroupType) { return $false } return $true } } |