PowerShell is a scripting language and shell framework for automating complex tasks and managing Windows servers. Azure CLI (Command Line Interface) is a set of commands used to manage Azure resources. Both are essential tools for any Azure administrator or developer.
Automating Management of Host Pools
Hosts pools are groups of session hosts that you can manage as one entity. By using PowerShell or Azure CLI, you can automate the creation, management, and deletion of host pools.
The below PowerShell commands demonstrate how to create a new host pool:
$hostPool = New-AzWvdHostPool -ResourceGroupName “myResourceGroup” -Name “myHostPool” -Location “West US 2” -HostPoolType “Pooled” -LoadBalancerType “DepthFirst” -MaxSessionLimit 10
Similarly, you can create a host pool using Azure CLI:
az desktopvirtualization hostpool create –resource-group “myResourceGroup” –name “myHostPool” –location “West US 2” –type “Pooled” –load-balancer-type “DepthFirst” –max-session-limit 10
Managing Session Hosts
A session host is a machine where the Windows Virtual Desktop agent runs. Azure PowerShell and Azure CLI simplify the automation of session host management.
Here’s how you can create a session host using PowerShell:
New-AzWvdSessionHost -ResourceGroupName “myResourceGroup” -HostPoolName “myHostPool” -Name “mySessionHost” -HostVmResourceId “/subscriptions/mySubscription/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM”
You can use the following Azure CLI command to do the same:
az desktopvirtualization sessionhost create –resource-group “myResourceGroup” –host-pool-name “myHostPool” –name “mySessionHost” –host “myVM”
Managing User Sessions
User Sessions represent individual user’s connection to the WVD environment. With PowerShell and Azure CLI, you can automate user session management tasks such as listing all user sessions, logging off a user session, or sending messages to a user session.
Here’s a PowerShell command to disconnect a user session:
Disconnect-AzWvdUserSession -ResourceGroupName “myResourceGroup” -HostPoolName “myHostPool” -UserSessionId “myUserSession”
With Azure CLI, the equivalent command is:
az desktopvirtualization usersession disconnect –resource-group “myResourceGroup” –host-pool-name “myHostPool” -name
“myUserSession”
Conclusion
Mastering the automation of host pool, session host, and user session management is essential for passing the AZ-140 exam. Both PowerShell and Azure CLI provide effective methodologies for realizing this goal. Although the learning curve can be demanding, the return in terms of productivity enhancement and cost reduction makes it worthwhile.
Practice Test
True/False: You can use PowerShell to automate the management of host pools, session hosts, and user sessions in Microsoft Azure Virtual Desktop.
- Answer: True
Explanation: PowerShell offers cmdlets that allow automation of management tasks within Microsoft Azure Virtual Desktop such as creating and managing host pools, session hosts, and user sessions.
Single Select: Which of the following is not a cmdlet in PowerShell for managing host pools in Azure Virtual Desktop?
- A. New-AzWvdHostPool
- B. Update-AzWvdHostPool
- C. Remove-AzWvdHostPool
- D. Connect-AzWvdHostPool
Answer: D. Connect-AzWvdHostPool
Explanation: The Connect-AzWvdHostPool cmdlet does not exist in PowerShell. The other cmdlets are used to create, update, and remove host pools respectively.
Multiple Select: Which of the following operations can be performed by Azure CLI for managing session hosts in Azure Virtual Desktop?
- A. Creating a new session host
- B. Updating a session host
- C. Removing a session host
- D. Connecting to a session host
Answer: A. Creating a new session host, B. Updating a session host, C. Removing a session host
Explanation: Azure CLI commands enable creating, updating, and removing of session hosts. However, Azure CLI does not support connecting to a session host.
True/False: It is possible to manage user sessions in Azure Virtual Desktop using both PowerShell and Azure CLI.
- Answer: True
Explanation: Both PowerShell and Azure CLI provide commands to manage user sessions in Azure Virtual Desktop including operations such as logging off users and sending messages to users.
Single Select: To send messages to a user session in Azure Virtual Desktop using PowerShell, which cmdlet would you use?
- A. Send-AzWvdMessage
- B. SendMessage-AzWvd
- C. AzWvd-SendMessage
- D. Send-AzWvdUserSessionMessage
Answer: D. Send-AzWvdUserSessionMessage
Explanation: The Send-AzWvdUserSessionMessage cmdlet sends a message to a user session in Azure Virtual Desktop.
Multiple Select: Which of the following are prerequisites for managing Azure Virtual Desktop using PowerShell and Azure CLI?
- A. Azure Active Directory tenant
- B. Azure subscription
- C. Azure Storage account
- D. Azure Virtual Network
Answer: A. Azure Active Directory tenant, B. Azure subscription
Explanation: An Azure Active Directory tenant and an Azure subscription are prerequisites. Azure Storage account and Azure Virtual Network are not necessary for managing Azure Virtual Desktop using PowerShell or Azure CLI.
True/False: PowerShell and Azure CLI both run on an Azure virtual machine.
- Answer: True
Explanation: Both PowerShell and Azure CLI are command-line tools which can be run on an Azure virtual machine, or any machine that has access to your Azure environment.
Single Select: Which of the following cmdlets can be used with PowerShell to manage host pools in Azure Virtual Desktop?
- A. Connect-AzAccount
- B. Set-AzContext
- C. New-AzWvdHostPool
- D. Update-AzAccount
Answer: C. New-AzWvdHostPool
Explanation: The New-AzWvdHostPool cmdlet creates a new host pool in Azure Virtual Desktop. The other cmdlets do not have direct relevance to host pool management.
Multiple Select: What are the requirements for running Azure CLI to manage Azure Virtual Desktop?
- A. Azure CLI installed
- B. Internet connection
- C. Azure Active Directory tenant
- D. Azure function app
Answer: A. Azure CLI installed, B. Internet connection, C. Azure Active Directory tenant
Explanation: For running Azure CLI, it needs to be installed, an internet connection is required and an Azure Active Directory tenant is necessary to authenticate with Azure. An Azure function app is not necessary.
True/False: Azure CLI can be used on both Linux and Windows operating systems to manage Azure Virtual Desktop.
- Answer: True
Explanation: Azure CLI is a cross-platform command-line tool that is supported on multiple operating systems including Linux and Windows for managing resources in Azure, including Azure Virtual Desktop.
Interview Questions
What is the benefit of using Powershell for managing host pools and session hosts in Azure Virtual Desktop?
Powershell allows automation of complex and repetitive tasks. It means administrative tasks can be automated and performed with fewer errors, saving both time and resources.
What is the primary purpose for Azure CLI?
Azure CLI is a command-line interface that allows developers to create, manage, and monitor all Azure resources through commands run from the command prompt.
How can you update an existing session host in a host pool using PowerShell?
You can update the session host using the
Update-AzWvdSessionHost
cmdlet. This cmdlet allows you to update settings of an existing session host within a host pool.
Which PowerShell command is used to get the list of host pools in Azure Virtual Desktop?
The
Get-AzWvdHostPool
command is used to list all the host pools in Azure Virtual Desktop.
In the context of Azure CLI, what purpose does the
az desktopvirtualization
az desktopvirtualization
command serve?
The
az desktopvirtualization
command is used to manage Azure Virtual Desktop resources like host pools, application groups, session hosts, and user sessions.
How can you automate the process of creating a new host pool using Azure CLI?
You can create a script utilizing the
az desktopvirtualization hostpool create
CLI command to automate the process of creating a new host pool.
How can you disconnect a user session using PowerShell?
You can disconnect a user session by using the
Disconnect-AzWvdUserSession
cmdlet in PowerShell.
What Azure CLI command is used to delete a host pool?
The
az desktopvirtualization hostpool delete
command is used to delete a host pool.
How do you list all the session details of a specific session host using PowerShell?
You can use the
Get-AzWvdSessionHost
cmdlet to list all the session details of a specific session host.
What command do you use in Azure CLI to get details of a user session?
The
az desktopvirtualization usersession show
command is used to show details of a user session.
Can you change the number of allowed sessions for a session host using PowerShell?
Yes, you can modify the number of allowed sessions for a session host using the
Set-AzWvdHostPool
cmdlet in PowerShell.
How can you restart a user session in Azure CLI?
You can restart a user session using the
az desktopvirtualization usersession restart
command in Azure CLI.
What is the command to update settings of an application group in Azure CLI?
The
az desktopvirtualization applicationgroup update
command is used to update settings of an application group.
How can you use PowerShell to get all active sessions in a host pool?
You can use the
Get-AzWvdUserSession
cmdlet with the -HostPoolName and -ActiveSessionsOnly parameters to list all active sessions in a host pool.
Can you create application groups in Azure Virtual Desktop using Azure CLI?
Yes, you can use the
az desktopvirtualization applicationgroup create
command to create application groups in Azure Virtual Desktop.