Михаил Захаров
В одном из коментариев прозвучала проблема подсчета занятых лицензий. Подсчитать занятые лицензии не трудно. Лицензии конкурентные и учитываются так - сесии открытые с одной машины от одного пользователя занимают одну лицензию.
T-SQL запрос к базе:
1) Считаем лицензии без учета сессий от определенных учетных записей (например, сервис Workflow имеет собственную лицензию)
-- Получение количества занятых лицензий
-- Ограничиваем сессии от конкретных аккаунтов
DECLARE @SysAccounts table
(AccountName nvarchar(256))
INSERT INTO @SysAccounts VALUES
-- Здесь нужно задать учетные записи, лицензии которых не должны учитываться
(
'DOMAIN\User'
)
SELECT COUNT(DISTINCT dvsys_sessions.UserID) 'Licenses count' FROM dvsys_sessions
JOIN dvsys_users
ON dvsys_users.UserID = dvsys_sessions.UserID
WHERE dvsys_users.AccountName NOT IN (SELECT AccountName FROM @SysAccounts)
2) Считаем лицензии без учета сессий от определенных машин (так же можно учитывать сеансы системных сервисов)
-- Получение количества занятых лицензий
-- Ограничиваем сессии от конкретных машин
DECLARE @SysMachines table
(MachineName nvarchar(256))
INSERT INTO @SysMachines VALUES
-- Здесь нужно задать имена машин, сессии от которых не должны учитываться при подсчете
(
'SUPPORT1'
)
SELECT COUNT(DISTINCT dvsys_sessions.UserID) 'Licenses count' FROM dvsys_sessions
Если задачу подсчета нужно проводить постоянно, то можно написать собственное расширение консоли настройки (snap-in). В данное расширение будет выполнять запрос к базе.
Ссылки по теме