Как посчитать количество реальных пользователей Citrix ?
Определение количества уникальных пользователей Citrix
Определение количества уникальных пользователей Citrix
09.01.2015 13:40:30
|
|
|
09.01.2015 13:43:21
Скажу сразу у меня завалялась старая статья на эту тему 2010 года, незнаю может оно актуально будет и сейчас. Начну сразу с кода по повер шелл:
# Очищаем экран cls # Создаем пустой ассоциативный массив (хэш таблицу) $hashTable = @{} # Тут сделал while т.к. надо было проверять количество сессий каждую минуту # Решение конечно не очень красивое while(1) { # Получаем в массив все уникальные ICA сессии в Citrix ферме. $GetSessions = @(Get-XASession | where{$_.Protocol -eq 'ICA'} | ` Select-Object AccountName -Unique) # Проходим по всем элементам массива. Добавляем в нашу хэш таблицу элементы. for ($i = 0; $i -le $GetSessions.Length; $i++) { # Все помещаем в блоки Try...Cath для того что бы не получать Exception по # воводу того, что элемент в таблице уже существует try { # Применяя параметр Add при добавлении элемента в хэш таблицу добавляются # только новые элементы, которых в ней не существует $hashTable.Add($GetSessions[$i].AccountName, $i) } catch {} } # Собственно выводим в файл количество уникальных сессий $hashTable.Count | Out-File c:\Scripts\NewCount.txt # Ждем 60 секунд до повторного выполения кода Start-Sleep 60 } А теперь описание: Итак, исходные данные, ферма с серверами XenApp6. На нее заходит определенное количество пользователей, при этом один пользователь может выйти, но другой зайти, следовательно на сервере будет то же количество пользователей, но лицензий будет использовано на одну больше. Для мониторинга количества уникальных пользователей у нас есть максимум 2 дня. Вообщем смысл думаю понятен. Для получения необходимых сведений использовал Powershell, скажу сразу, я с Citrxi работал очень мало, по этому не знаю есть ли встроенный функционал для получения подобных данных. Немного почитав сайт Citrix я обнаружил, что есть SDK который позволяет получать данные фермы при помощи Powershell. Собственно я сразу же открыл на сервере консоль Powershell и добавил модуль Citrix. Сделать это можно несколькими способами, один из них выполнить команду ImportSystemModules, в этом случае вы получите все установленные модули на рабочей станции/сервере, либо загрузить модуль только для XenApp, для этого выполнять команду Add-PSSnapin Citrix.XenApp.Commands. После подключения приступим непосредственно к написанию кода. У меня получился такой. Сразу предупреждаю, я никогда не был программистом, и не писал код, так что если будут читать блог товарищи программисты не стоит воспринимать все близко к сердцу Выполняем данный код и ждем не закрывая консоль Powershell, ну например 1 день, через 1 день вы открываете файл получившийся на выходе, и смотрите количество уникальных пользователей которые подключались к вашей ферме. |
||||
|
||||
Форма ответов