Страницы: 1 2 След.
RSS
Скрипт на смену группы
 
Доброго времени суток.
Поиск по форуму не помог сильно, то что то показывает, а что то нет.

Суть такова.
Нужен скрипт который переводил бы из группы в группу пользователя.
 
Готового материала нет. Используйте API, со справкой тут https://www.smart-soft.ru/doc/SDK20/index.html
 
а если ссылка  https://www.smart-soft.ru/doc/SDK20/index.html </span>не работает?
Отправляет на главную сайта
 
Корректная ссылка:

https://www.smart-soft.ru/support/documentation/doc20/sdk20/index.html
 
Цитата
Доброго времени суток.
Поиск по форуму не помог сильно, то что то показывает, а что то нет.

Суть такова.
Нужен скрипт который переводил бы из группы в группу пользователя.


Понимаю, что вопрос скорее всего уже не актуальный, но может кому пригодится как основа для скриптов под другие задачи.

Set Args = WScript.Arguments.Unnamed
If Args.Count <> 5 Then
 WScript.Echo "change_group.vbs Administrator Password User Group1 Group2"
 WScript.Quit       
End If
 
AdmID = Args(0)
AdmPass = Args(1)
User = Args(2)
Group1 = Args (3)
Group2 = Args (4)

Set Srv = CreateObject("TrafInsp.TrafInspAdmin")
Set Perm = Srv.QueryPermissions()
LogOn = Perm.DoSharedLogon(AdmID, AdmPass, "Script")

Set Dom = WScript.CreateObject("Msxml2.DOMDocument.6.0")

itUserGroup = 2
conf_AttrLevelDetail = 5
Dom.LoadXML Srv.GetList(itUserGroup, null, null, conf_AttrLevelDetail)
Set DocEl = Dom.DocumentElement
    Set Nodes = DocEl.selectNodes("UserGroupItem")
        For Each Node in Nodes
            If Node.getAttribute("DisplayName") <> Group2 then
            Else
                Group2Name = Group2
                Group2GUID = Node.getAttribute("GUID")
                Wscript.Echo Group2Name
                Wscript.Echo Group2GUID

            END IF
        Next

itUser = 3
conf_AttrLevelNormal = 0
Set Dom1 = WScript.CreateObject("Msxml2.DOMDocument.6.0")
Dom1.LoadXML Srv.GetList(itUser, null, null, conf_AttrLevelDetail)

Set DocEl = Dom1.DocumentElement
    Set Nodes = DocEl.selectNodes("UserItem")
        For Each Node in Nodes
            If Node.getAttribute("DisplayName") <> User Then
                Wscript.Echo "Нет пользователя с такими именем"
            Else

                WScript.Echo "Имя клиента        " & Chr(9) & Node.getAttribute("DisplayName")
                WScript.Echo "Группа             " & Chr(9) & Node.getAttribute("GroupDisplayName")
                WScript.Echo "Группa GUID        " & Chr(9) & Node.getAttribute("Group")
   
                Node.setAttribute "GroupDisplayName", Group2Name   
                Node.setAttribute "Group", Group2GUID

                Srv.UpdateList itUser, Dom1.xml

                WScript.Echo "Имя клиента        " & Chr(9) & Node.getAttribute("DisplayName")
                WScript.Echo "Группа             " & Chr(9) & Node.getAttribute("GroupDisplayName")
                WScript.Echo "Группa GUID        " & Chr(9) & Node.getAttribute("Group")
            End IF
        Next

Проверок никаких не выписывал, скрипт "в лоб" меняет группу у указанного пользователя.
 
Ещё как актуально. Остаётся только додумать отбор по условию...Например всех у кого состояние "пауза" в мониторе - переводить в группу из "вайфай" в "сотрудники" , отсекать сотрудников-халявщиков от клиентов реальных)
Буду дальше думать, за скрипт профит!
 
Цитата
Ещё как актуально. Остаётся только додумать отбор по условию...Например всех у кого состояние "пауза" в мониторе - переводить в группу из "вайфай" в "сотрудники" , отсекать сотрудников-халявщиков от клиентов реальных)
Буду дальше думать, за скрипт профит!


Тодга текущий скрипт можно поменять на такой вид:


Set Args = WScript.Arguments.Unnamed
If Args.Count <> 3 Then
 WScript.Echo "change_group.vbs Administrator Password Group"
 WScript.Quit       
End If
 
AdmID = Args(0)
AdmPass = Args(1)
Group = Args(2)


Set Srv = CreateObject("TrafInsp.TrafInspAdmin")
Set Perm = Srv.QueryPermissions()
LogOn = Perm.DoSharedLogon(AdmID, AdmPass, "Script")

Set Dom = WScript.CreateObject("Msxml2.DOMDocument.6.0")

itUserGroup = 2
conf_AttrLevelDetail = 5
Dom.LoadXML Srv.GetList(itUserGroup, null, null, conf_AttrLevelDetail)
Set DocEl = Dom.DocumentElement
    Set Nodes = DocEl.selectNodes("UserGroupItem")
        For Each Node in Nodes
            If Node.getAttribute("DisplayName") <> Group then
            Else
                GroupName = Group
                GroupGUID = Node.getAttribute("GUID")
                Wscript.Echo GroupName
                Wscript.Echo GroupGUID

            END IF
        Next

itUser = 3
conf_AttrLevelNormal = 0
Set Dom1 = WScript.CreateObject("Msxml2.DOMDocument.6.0")
Dom1.LoadXML Srv.GetList(itUser, null, null, conf_AttrLevelDetail)

Set DocEl = Dom1.DocumentElement
    Set Nodes = DocEl.selectNodes("UserItem")
        For Each Node in Nodes
            If Node.getAttribute("BlockReason") = 0 Then
                Wscript.Echo "Пользователь в статусе -Активен-"
            Else

                WScript.Echo "Имя клиента        " & Chr(9) & Node.getAttribute("DisplayName")
                WScript.Echo "Группа             " & Chr(9) & Node.getAttribute("GroupDisplayName")
                WScript.Echo "Группa GUID        " & Chr(9) & Node.getAttribute("Group")
   
                Node.setAttribute "GroupDisplayName", GroupName   
                Node.setAttribute "Group", GroupGUID

                Srv.UpdateList itUser, Dom1.xml

                WScript.Echo "Имя клиента        " & Chr(9) & Node.getAttribute("DisplayName")
                WScript.Echo "Группа             " & Chr(9) & Node.getAttribute("GroupDisplayName")
                WScript.Echo "Группa GUID        " & Chr(9) & Node.getAttribute("Group")
            End IF
        Next

Т.е. в качестве атрибутов указать, например:

change_group.vbs Administrator Password сотрудники

'сотрудники' - это группа в которую перемещаем пользователей в состоянии "пауза"
 
Ушёл прикручивать!
 
Цитата
Ушёл прикручивать!


Немного поторопился.

В эту групппу попадут ещё те кто в состоянии "Стоп", надо будет немного переписать скрипт.
 
Вещь очень нужная, как основа для всех, и точное решение для смс'ников. Почему именно пауза, а не стоп- потому что при "стоп" отправляет клиенту заново форму авторизации...
Страницы: 1 2 След.
Читают тему (гостей: 2)