Рестарт сессии для группы клиентов

Previous pageReturn to chapter overviewNext page

 

 Запуск этого скрипта позволяет закрыть сессию для клиентов группы, сбросив все счетчики и запустить новую. Остатки по предыдущей сессии при этом пропадают. Типичное применение - в организации, где в начале каждого месяца надо выставить сотрудникам новые лимиты потребления трафика. Скрипт запускается ежемесячно, что полностью автоматизирует это процесс.

 

 Скрипт запускается из командной строки в директории scripts.

 

 cscript.exe rstsess.vbs APIPassword GroupID Cash /sn:ServerName

 

 Здесь

 APIPassword - пароль доступа.

 GroupID - GUID или имя группы.

 Cash - новый лимит на месяц.

 ServerName - имя сервера - необязательный параметр - задается при запуске скрипта с удаленного компьютера.

 

 Заметим, что этот скрипт после сброса сессии возвращает клиента в то состояние, в котором он был ранее. Т.е. если он был в паузе, то и снова будет в паузе.

 


Set Args = WScript.Arguments.Unnamed

If Args.Count <> 3 Then

 WScript.Echo "??? usage: cscript.exe rstsess.vbs APIPassword GroupID Cash /sn:ServerName"        

 WScript.Quit        

End If

 

APIPass = Args(0)

Obj = Args(1)

Cash = Args(2)

 

If WScript.Arguments.Named.Exists("sn") Then

 ServName = WScript.Arguments.Named.Item("sn")

 Set Srv = CreateObject("TrafInsp.TrafInspAdmin",ServName)

Else

 Set Srv = CreateObject("TrafInsp.TrafInspAdmin")

End If

Srv.APILogon(APIPass)

 

UserList = Srv.ApiGetBillProp(3, Obj)

 

' Получили список клиентов группы

' Проверяем, что это таблица - двухмерный массив

 

If Not IsArray(UserList) Or Not IsArray(UserList(0)) Then

 WScript.Echo "Нет данных"        

 WScript.Quit        

End If

 

For I = 0 To UBound(UserList, 1)

 User = UserList(I)

 ' Получили строку - описание пользователя

 UserID = User(1)

 UserState = Srv.APIGetUserState(UserID)

 ' Считываем текущее состояние сессии

 OldState = UserState(4)

 ' Переводим пользователя в СТОП

 Srv.APISetUserState UserID, -1, 0, "Script", "Очищаем сессию"

 ' Переводим сессию пользователя в состояние, которое было ранее. Если надо всех запустить, то поправьте на '2'

 Srv.APISetUserState UserID, Cash, OldState, "Script", "Запускаем сессию"

 WScript.Echo "Клиент " & User(0)

Next

 

 

 


Текущая страница справки: help.smart-soft.ru/index.html?apidemorst.htm

Сайт разработчиков Traffic Inspector