Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    Пользовательский менеджер удаляет просроченных пользователей

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

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Пользовательский менеджер удаляет просроченных пользователей, RouterOS
     
    letabawireless
    Guest
    #1
    0
    16.09.2014 07:24:00
    Привет! Я настроил тестовую точку доступа с профилем, который действует 5 минут и лимитом трафика 50 МБ. Проблема в том, что старые пользователи накапливаются. В реальной клиентской сети у меня сотни пользователей, и я заметил, что когда параметр start-time переходит в статус «unknown», это значит, что аккаунт истёк. Я хотел бы ежедневно удалять таких пользователей с помощью скрипта. Но, похоже, все параметры веб-интерфейса недоступны через командную строку, что для Mikrotik не характерно. Может, я что-то делаю неправильно? Помогите, вручную удалять пользователей — это настоящая проблема и слишком непрофессионально ожидать, что клиент будет этим заниматься. Спасибо за помощь!
     
     
     
    parinya1957
    Guest
    #2
    0
    01.10.2014 02:36:00
    Привет, letabawireless! Чтобы удалить просроченных пользователей в userman, я использовал скрипт ниже. Можно настроить его на запуск с нужной периодичностью, но у меня это происходит раз в неделю, потому что у меня не так много пользователей. Я выставил профиль пользователя с ограничением 1 день (1d) и 1 месяц (4w2d), и заметил в списке пользователей, что когда срок пользователя истекает, данные actual-profile становятся пустыми. У меня это работает на ROS v6.19 как на RB2011, так и на R951, но не работает на ROS v6.15 (раньше на моём RB2011 стояла версия v6.15, и там скрипт не работал).

    # Автоматическое удаление пользователей с пустым actual-profile в User Manager для ROS v6.19  
    :local username

    :foreach i in [/tool user-manager user find where !actual-profile] do={
     :set username [/tool user-manager user get $i name]
     :log error ("Remove user name $username")  
     [/tool user-manager user remove $i]
    }

    Надеюсь, это поможет.
     
     
     
    letabawireless
    Guest
    #3
    0
    01.10.2014 08:52:00
    Молодец! Всё сработало отлично!
     
     
     
    enjoy
    Guest
    #4
    0
    11.02.2017 16:03:00
    Не работает на версии 6.38.1, почему?
     
     
     
    Wolfgang
    Guest
    #5
    0
    22.02.2017 13:44:00
    @enjoy: Ты запускаешь это как запланированную задачу? Какие права ты установил для скрипта и задачи?
     
     
     
    ahmedalmi
    Guest
    #6
    0
    29.04.2017 21:24:00
    это работает в 6.38: /tool user-man user remove [find !actual-profile];
     
     
     
    Hamosal
    Guest
    #7
    0
    19.10.2017 16:02:00
    /tool user-manager user remove [find where !actual-profile and uptime-used>0s];
     
     
     
    fernando1787
    Guest
    #8
    0
    26.01.2018 00:31:00
    Привет, у меня такая же проблема: в некоторых случаях сессия пользователя истекает, но actual-profile остаётся, то есть: время действия профиля = 1 час, ограничение по времени работы = 1 час, пользователь входит, потом закрывает сессию до истечения времени работы, и после этого больше не запускает сессии. Профиль истекает по времени действия, но у пользователя сохраняется значение actual-profile. Мне трудно подобрать условие, чтобы удалять пользователей в таких ситуациях.
     
     
     
    hardwarematik
    Guest
    #9
    0
    02.05.2018 21:36:00
    Привет! Я знаю, как удалять пользователей через API на C# с помощью библиотеки tik4net, она отличная. Вот пример: IEnumerable command = new string { "/tool/user-manager/user/remove", "=numbers=*" + textBox3.Text }; В textBox3 ты вводишь номер записи, которую хочешь удалить. Мне интересно, как удалить всех просроченных пользователей через API с этой библиотекой. Что нужно написать в моём массиве строк? Например: IEnumerable command = new string { "/tool/user-manager/user/remove", "[find where !actual-profile and uptime-used>0s]" } Может, так сработает? Потому что я точно не знаю, как использовать команду "find". Заранее спасибо!
     
     
     
    hardwarematik
    Guest
    #10
    0
    03.05.2018 14:18:00
    Привет! Я знаю, как удалять пользователей через API на C# с использованием библиотеки tik4net — она отличная. Вот пример: IEnumerable command = new string { "/tool/user-manager/user/remove", "=numbers=*" + textBox3.Text }, в textBox3 можно ввести номер элемента, который хочешь удалить. Мне интересно, как удалить всех просроченных пользователей через API с этой библиотекой, что нужно написать в моей строке? IEnumerable command = new string { "/tool/user-manager/user/remove", "[find where !actual-profile and uptime-used>0s]" } Может, так сработает? Потому что я действительно не понимаю, как использовать команду “find”. Заранее спасибо!
     
     
     
    tawasol4sy
    Guest
    #11
    0
    06.07.2018 12:54:00
    Скрипты сканируют просроченные карты и срок действия их собственных сессий:  
    / Tool user-manager user print brief without-paging;  
    : Foreach i in = [/ tool user-manager user find where! Actual-profile] do = {
     : Local tawasol4sy [/ tool user-manager user remove $i];
    }  
    https://tawasol4sy.org/حذف-الكروت-المنتهية-user-manager-in-mikrotik/
     
     
     
    kvee
    Guest
    #12
    0
    09.03.2023 00:55:00
    Обновлённый код для RouterOS (тестировался на версии 6.49):  
    # Автоматическое удаление пользователей с пустым actual-profile в User Manager для ROS v6.19  
    # http://forum.mikrotik.com/t/user-manager-delete-expired-users/81006/1  

    :local username  

    :foreach i in [/tool user-manager user find where !actual-profile] do={
       :set username [/tool user-manager user get $i username]
       :log info "script: Удаляем пользователя с именем $username"  
       [/tool user-manager user remove $i]
    }; Не знаю, какие политики для этого нужны, но скрипт просто работает.
     
     
     
    saifulmd0
    Guest
    #13
    0
    29.03.2023 13:33:00
    Все приведённые выше коды не работают на RouterOS V7.x. Кто-нибудь, помогите, пожалуйста, с обновлённым скриптом для V7.x.
     
     
     
    rextended
    Guest
    #14
    0
    29.03.2023 16:33:00
    RouterOS 7 не имеет user-manager. То, что называют «user manager» в версии 7, — это совсем другое.
     
     
     
    risi
    Guest
    #15
    0
    30.03.2023 07:55:00
    Всем привет! В RouterOS 7 USER-MANAGER сильно отличается от той версии, что была в RouterOS 6. Документация на данный момент полностью не готова. Мне нужно найти способ (скрипт) для удаления просроченных пользователей в RouterOS 7 (скрипт, который я использовал в RouterOS 6, тут не работает). Я пытался разобраться с текущими командами в терминале, но пока не понимаю, как удалить просроченного пользователя. В моём случае нужно удалить всех пользователей, у которых в User Manager поле total uptime больше… (больше 1д 00:00:00). Может, у кого есть идеи или скрипт для RouterOS 7?
     
     
     
    risi
    Guest
    #16
    0
    05.04.2023 07:31:00
    Да, OgasaYasu, User Manager в RouterOS 7 сильно отличается от предыдущей версии, все старые скрипты не работают, а набор команд, на мой взгляд, неполный. Я использую User Manager для управления пользователями, которые получают доступ через Hotspot, и обычно автоматически создаю сотни пользователей через скрипт или вручную. Мне также нужно автоматически удалять всех пользователей с истекшим сроком действия через скрипт, но я не могу найти такую команду или скрипт в RouterOS 7. Если у кого-то есть пример, как найти всех пользователей с общим временем подключения больше … (больше 1д 00:00:00) и удалить их, буду благодарен. Предлагаю в будущем реализовать все команды, которые были в RouterOS 6, и, конечно, полный веб-интерфейс для управления профилями и пользователями как можно скорее. По моему мнению, User Manager — это сильная сторона RouterOS, и этому стоит уделить внимание в Mikrotik.
     
     
     
    parinya1957
    Guest
    #17
    0
    17.04.2023 22:30:00
    Привет, risi! Вот мой скрипт для удаления пользователя в User-manager V7.x. Его нужно запускать по расписанию хотя бы раз в день в любое удобное время. Надеюсь, это поможет. #ROS 7.X

    :local username  
    :local userid

    # Находим пользователей со статусом "used" в user-profile  
    :foreach i in [/user-manager/user-profile/find state=used] do={
     # Получаем имя пользователя и указатель  
     :set username [/user-manager/user-profile/get $i user]
     :set userid [/user-manager/user/find name=$username]
     # Удаляем сессии пользователя, если их больше одной  
     :foreach j in [/user-manager/session/find user=$username] do={
       /user-manager/session/remove $j  
     }  
     # Удаляем из user-profile  
     /user-manager/user-profile/remove $i  
     # Удаляем из user  
     /user-manager/user/remove $userid  
     :log error "$number. Удаляем User-Manager $username/$userpassword со всеми данными.";  
    }
     
     
     
    saifulmd0
    Guest
    #18
    0
    19.05.2023 20:29:00
    Огромное спасибо, Parinya! Этот скрипт сработал отлично!
     
     
     
    risi
    Guest
    #19
    0
    20.05.2023 10:17:00
    СЦЕНАРИЙ ПРОСТО ПОТРЯСАЮЩИЙ! РАБОТАЕТ ИДЕАЛЬНО! СПАСИБО!
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры