Массовый выход из системы и удаление пользовательских сеансов WVD

Опубликовано: 1 Марта, 2023
Массовый выход из системы и удаление пользовательских сеансов WVD

Как и другие службы Microsoft, виртуальный рабочий стол Windows поставляется с необходимыми модулями PowerShell для взаимодействия с ресурсами WVD. Портал Microsoft Azure предоставляет ограниченный набор функций, с помощью которых вы можете управлять некоторыми аспектами среды виртуальных рабочих столов Windows, но вам по-прежнему необходимо использовать модули PowerShell для выполнения определенных задач. Например, вы не можете массово удалять или отключать сеансы пользователей с помощью портала Azure. Вот где эта статья пригодится. В этой статье мы объясним разницу между действиями выхода из системы и удаления и какие модули PowerShell использовать для выхода из системы и удаления пользовательских сеансов WVD для всех или выбранных пулов узлов. Обратите внимание, что в этой статье объясняются модули, используемые для весеннего обновления виртуальных рабочих столов Windows. Прежде чем вы начнете использовать команды или сценарии PowerShell, описанные в этой статье, убедитесь, что вы установили модули WVD PowerShell.

Понимание разницы между выходом из системы и удалением пользовательских сеансов

Прежде чем вы начнете использовать команды и сценарии PowerShell, описанные в этой статье, давайте разберемся в различиях между выходом из системы и удалением пользовательских сеансов. Когда вы выходите из сеанса пользователя из арендатора WVD, процесс фактически отключает сеанс и поддерживает сеанс в состоянии «отключено» на хосте сеанса. С другой стороны, когда вы удаляете сеанс пользователя, процесс фактически удаляет сеанс с хоста сеанса, а также удаляет запись о сеансе из базы данных WVD.

Совет. Удаление сеанса всегда высвобождает системные ресурсы на хосте сеанса, в то время как завершение сеанса сохраняет сеанс активным, который, в свою очередь, использует системные ресурсы. Таким образом, если на каком-либо из узлов сеанса заканчиваются системные ресурсы из-за того, что конкретный пользователь вызывает использование системных ресурсов приложениями, запущенными пользователем, вы можете использовать метод удаления, чтобы удалить сеанс пользователя с узла сеанса.

Установка модуля PowerShell Az.DesktopVirtualization

Для WVD 2.0 необходимо использовать модуль PowerShell Az.DesktopVirtualization. Чтобы установить модули PowerShell Az.DesktopVirtualization, необходимо выполнить следующую команду:
Install-Module -Name Az.DesktopVirtualization
После выполнения вышеуказанной команды на вашем компьютере должны быть установлены модули Az.DesktopVirtualization PowerShell. Чтобы убедиться, что у вас установлены модули PowerShell Az.DesktopVirtualization, откройте интегрированную среду сценариев PowerShell, а затем проверьте наличие Get-AzWVDUserSession или аналогичных командлетов PowerShell.

Подключение к среде Azure Windows Virtual Desktop 2.0

После установки модулей PowerShell вам потребуется использовать модуль Connect-AzConnect PowerShell для подключения к среде WVD 2.0. Вы можете либо подключиться с помощью имени пользователя и пароля Azure, либо использовать субъекта-службы.

Выход из системы или удаление одного пользовательского сеанса

Чтобы выйти из WVD или удалить отдельный сеанс пользователя, всегда можно использовать командлет PowerShell Disconnect-AzWVDUserSession или Remove-AzWVDUserSession. Вот несколько примеров, объясняющих, как выйти из системы или удалить сеансы отдельных пользователей с помощью командлетов PowerShell. Перед выполнением обязательно укажите входные данные для переменных как часть команд.

Чтобы выйти из сеанса пользователя:

$CurResGroup = "ThisResourceGroup" $CurPool = "HostPoolName" $SessHost = "SessionHostName" $CurSessID = "15" Disconnect-AzWvdUserSession  $CurResGroup  $CurPool  $SessHost  $CurSessID

Чтобы удалить сеанс пользователя:

$CurResGroup = "ThisResourceGroup" $CurPool = "HostPoolName" $SessHost = "SessionHostName" $CurSessID = "15" Remove-AzWvdUserSession  $CurResGroup  $CurPool  $SessHost  $CurSessID

Массовый выход из системы или удаление сеансов пользователей

Чтобы начать массовый выход из системы или удаление пользовательских сеансов, вы можете использовать приведенный ниже сценарий PowerShell. Обязательно измените сценарии, чтобы они предоставляли входные данные для группы ресурсов и пула узлов. Приведенный ниже сценарий PowerShell, собранный из пакетов управления Wintellisys WVD Manager, можно использовать только для одного пула узлов.

Обратите внимание, что сценарий можно использовать для выполнения одного действия за раз — либо удалить сеанс пользователя, либо выйти из сеанса пользователя. По умолчанию выполняется действие «Удалить». Чтобы изменить действие, измените переменную «$LogOffOrRemove».

$CurResGroup = "ThisResourceGroup" $CurPool = "HostPoolName" $LogOffOrRemove = "Удалить" $UserSessFile = "C:TempAllUserSessions.CSV" Remove-item$UserSessFile  Get-AzWvdUserSession-ResourceGroupName$CurResGroup  $CurPoolName | Выбрать-Объект* | Export-CSV$UserSessFile $CSV = Import-CSV$UserSessFile ForEach ($Item в $CSV) { $SessHost = $Item.SessionHostName $CurSessID = $Item.SessionID $Error.Clear() IF ($LogOffOrRemove -eq "Remove ") { Remove-AzWvdUserSession-ResourceGroupName  CurResGroup  $CurPool  $SessHost  $CurSessID } IF ($LogOffOrRemove -eq "Выход из системы") { Disconnect-AzWvdUserSession-ResourceGroupName $CurResGroup  $CurPool  $CurSessID  $CurSessID } IF ($Error.Count -eq 0) { Write-Host"UserWasRemoved..." } else { Write-Host"ErrorRemovingUser:$Error" } }

Сценарий PowerShell подключается к пулу узлов, указанному в переменной «$CurPool», а затем собирает все сеансы пользователей из этого пула узлов. Сеансы пользователей сохраняются в файле CSV с именем C:TempAllUserSessions.CSV для обработки следующими командами PowerShell. Цикл ForEach извлекает необходимую информацию из CSV-файла, а затем выполняет действие: удаляет или выходит из системы.

Только один пул хостов

Сценарий может быть нацелен только на один пул узлов, и вам необходимо указать имя группы ресурсов пула узлов. Если у вас есть сотни пулов узлов, поддержка сценариев PowerShell для всех пулов узлов становится немного сложной задачей, а также вам необходимо убедиться, что вы выполняете команды выхода или удаления для правильного пула узлов, чтобы избежать сбоев в работе ваших бизнес-служб. Стоит отметить, что существуют доступные приложения и инструменты, которые можно использовать, не вызывая простоя служб WVD. Wintellisys WVD Manager версии 2.1 предоставляет компонент диспетчера пользовательских сеансов, который поддерживает подключения для всех пулов хостов в вашей производственной среде и помогает вам выходить из системы или удалять пользовательские сеансы WVD для выбранных пулов хостов, как показано на снимке экрана ниже:

Приложение также ведет журналы действий, выполняемых с помощью Wintellisys WVD Manager. Например, если пользователь выполняет действие выхода из системы, а другой пользователь выполняет действие удаления, вы можете легко найти, кто что выполнил, просматривая операционные журналы в WVD Manager.