Выход из системы пользователей при простое.

1. danilfg 22 18.05.12 06:32 Сейчас в теме
В общем, как ни пытался объяснить людям, что нужно нажимать Выход из системы в конце рабочего дня, так ни кто практически и не выходит. Название ОС Microsoft Windows Server 2003 R2, Standard Edition.
Есть ли стандартные средства для решения этого вопроса?

Вообще в идеале, что бы после 18 00, при простое удаленки пользователя более, чем 1 час, аккуратно закрывались программы и был произведен выход из системы=)
Мог бы сам написать батник, но как понять и не имею...
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. danilfg 22 18.05.12 06:41 Сейчас в теме
(1) danilfg, Все оказалось просто) В свойствах пользователя, вкладка сеансы=) Но может еще какие решения есть?
3. azmon 1 18.05.12 07:38 Сейчас в теме
(2) danilfg, А чем тебе этот метод не нравится. Я лично им и пользуюсь
4. danilfg 22 18.05.12 08:06 Сейчас в теме
(3) azmon, хотелось бы добавить время после которого совершался выход. А то вдруг пользователь с утра зашел, потом только после обеда, а у него все закрылось. То есть, что бы после 18 00 начинался отсчет на закрытие)
9. AlarmBozo 23.07.12 17:53 Сейчас в теме
(1) danilfg,
Сам с такой же проблемой)) "как ни пытался объяснить людям"
из-за этого бэкапы толком не делались. Таймаут простоя всё спас конечно. Но вот если они перед уходом забывали закрывать 1С было печально. Стояла 1с 7.7 так процесс просто завершался при завершении сеанса, и приходилось каждый раз переиндексировать в монополе. Пришлось убрать из 1с окошко которое при закрытие всплывает (типа вы точно хотите выйти). Теперь вообще даже не думаю кто там у меня сидит в 1с, в 19.00 всех вырубает и до 9.00 никого не пускает))
15. ghool 14.09.12 14:08 Сейчас в теме
(1) danilfg, можно сделать батник:
"shutdown /l"
и в шедулер закинуть его запуск для всех юзеров в час X
5. kaa79 9 18.05.12 10:13 Сейчас в теме
Есть команда query user с помощью которой можно в скрипте получать данные о сеансах и закрывать. Ну и сам скрипт запускать в период например с 18 по 23.

Команда терминального сервера Query user
Отображает сведения о пользовательских сеансах на сервере терминалов.
Синтаксис Query user

query user [{имя_пользователя|имя_сеанса|код_сеанса}] [/server:имя_сервера]
Параметры Query user

имя_пользователя
Задает запрашиваемое имя пользователя для входа.
имя_сеанса
Отображает имя запрашиваемого сеанса.
код_сеанса
Отображает код запрашиваемого сеанса.
/server:имя_сервера
Отображает запрашиваемый сервер терминалов. В противном случае используется текущий сервер терминалов.
/?
Отображает справку в командной строке.
Примечания
Эта команда может использоваться для выяснения того, вошел ли определенный пользователь на заданный сервер терминалов. С помощью команды query user можно получить следующие сведения:
имя пользователя;
имя сеанса на сервере терминалов;
код сеанса;
состояние сеанса (активно или отключено);
время простоя сеанса (количество минут, прошедшее с последнего нажатия клавиши клавиатуры или движения указателя мыши);
дату и время входа пользователя.
Для использования команды query user необходимо иметь разрешение «Полный доступ» или специальное разрешение на запрос информации.
При использовании команды query user без задания имени пользователя, имени сеанса или кода сеанса на экран выводится список всех пользователей, которые вошли на сервер. Кроме того, можно использовать команду query session для отображения списка всех сеансов на сервере.
При отображении сведений командой query user символ (>) выводится перед текущим сеансом.
Параметр /server необходимо использовать только при вводе команды query user с удаленного сервера.
Примеры Query user

Чтобы отобразить сведения о всех пользователях, которые вошли в систему, введите:
query user
Чтобы отобразить сведения о пользователе USER1 на сервере SERVER1, введите:
query user USER1 /server:SERVER1
Показать
CaSH_2004; +1 Ответить
23. CaSH_2004 372 30.08.14 00:14 Сейчас в теме
(5) Спасибо, давно искал что-то наподобие этого. Скажите а через WMI или реестор как-то получить можно это?
А то получается сохраняем в файл результат команды, а там как его обрабатывать? Он же не структурированный получается.
Может подскажете есть ли каки-то API Windows которые позволяют поллучить эти же данные?
6. kaa79 9 18.05.12 10:15 Сейчас в теме
Можно еще заморочиться сделать это средствами 1С, если 7.7 то в 1cpp есть интересный класс Информатор. Который позволяет получать время простоя системы:

ПолучитьВремяПростояСистемы / GetIdleTimeOfSystem

Синтаксис: ПолучитьВремяПростояСистемы()
Возвращает: тип: Время простоя в миллисекундах.

Важно: Метод работает только на Windows ME/2000/XP и выше.

Описание: Возвращает время простоя сеанса работы пользователя в Windows.
Используется соответствующие системные функции из WinAPI.
Удобно использовать внутри таймеров/обработки ожидания для проверки бездействия пользователя. Например, в целях завершения работы, если это задано административной политикой.

Пример: Создайте внешнюю обработку со следующим модулем и нажмите Сформировать Потом какое-то время ничего не нажимайте клавиатуру и не трогайте мышь и вы увидете, как увеличивается время простоя. А если тронуть мышь или нажать клавишу, время простоя сбросится к нулю!

Перем РасширениеФормы;
Перем Информатор;
Процедура Таймер() Экспорт
ПрошлоВремени = Информатор.ПолучитьВремяПростояСистемы();
Сообщить("ПрошлоВремени = <"+ПрошлоВремени+">");
КонецПроцедуры
//*******************************************
Процедура Сформировать()
РасширениеФормы = СоздатьОбъект("РасширениеФормы");
РасширениеФормы.ОбработкаОжидания("Таймер", 50);
Информатор = СоздатьОбъект("Информатор");
КонецПроцедуры
Показать
7. stavrosoleg 10 18.05.12 11:43 Сейчас в теме
ограничить пользователей по времени работы на сервере. В политиках терминального сервера есть настройки по завершению сеанса пользователя при простое, установить там время.
8. anc2002 20.07.12 18:46 Сейчас в теме
+1 ограничить пользователей по времени работы на сервере. В политиках терминального сервера есть настройки по завершению сеанса пользователя при простое, установить там время.
10. GoBliN012 25.07.12 17:28 Сейчас в теме
AlarmBozo, а как убрать запрос на выход из 1с? т.е. окно которое выходит при закрытии 1с?
12. kotuke 30.07.12 06:24 Сейчас в теме
Политики терминального доступа посмотри
13. 6a3ujI 24.08.12 12:58 Сейчас в теме
тоже была такая проблема. сделал проще. в автозагрузку всем пользователям закинул программку, которая скрывает кнопку закрытия RDP сеанса - тот самый крестик "Х" (все легко решается с помощью WinAPI). В результате завершить RDP-сеанс можно только выполнив Выход из системы. В дополнение - запрет выключения/перезагрузки клиентского компа пока есть хоть одна запущенная RDP-сессия.

Все работает на ура.
14. ghool 14.09.12 14:05 Сейчас в теме
(13) 6a3ujI, проблемы возникнут, если коннект подвиснет. или приложение в терминалке.

Хотя можно ctrl+shift+esk, и завершить процесс *)
16. 6a3ujI 14.09.12 16:34 Сейчас в теме
(14) ghool, зависшую сессию можно закрыть и с помощью диспетчера задач - это не проблема
(15) ghool, не плохой вариант
17. wowkai 4 18.09.12 10:56 Сейчас в теме
(13) 6a3ujI, спасибо, действительно интересный и простой способ.
18. A_V_E 20.09.12 10:28 Сейчас в теме
Я еще в шадулер на 23:00 закинул батник следующего содержания:
for /f "tokens=3 skip=3" %%a IN ('qwinsta') DO rwinsta %%a
for /f "tokens=2" %%a IN ('query session ^| find /i "Диск"') DO logoff "%%a" /v


Это принудительный логофф всех терминальных пользователей. К сожалению, программы закрываются принудительно, 1С 7.7, например, надо переиндексировать.
19. ser1985 19.12.12 09:11 Сейчас в теме
Много решений данной проблемы. Даже мне было интересно почитать. Имея довольно большой опыт работы в администрировании.
Я делал толи проще толи сложнее. Когда приходит время делать бекап, запускался скрипт, который смотрел кто сидит в 1С (не важно какая) и принудительно закрывала все открытые документы (без сохранения). и делался бекап.
А то что на утро из-за глюка windows некоторые пользователи не могли войти, хотя такое редко случалось, писал служебка, на юзера за не выполнение требований к терминальному доступу. Но перед этим необходимо его создать и сделать журнал. После нескольких выговор юзеры начинают выполнять их.
Раз не понимают, необходимо действовать другими методами.
20. drogs 20.12.12 17:59 Сейчас в теме
Для делания бэкапа из 1с не нужно выгонять пользователей. Просто копируете в другое место базу а затем архивируете.
А так в панель управления - рдп - настройки рдп - ставите время простоя при котором завершать сеанс.
leo stopper; +1 Ответить
25. Sanario 26 02.10.14 15:01 Сейчас в теме
(20) drogs, останется зависон на файле 1Сv7.lck если это 77. тогда базу не перекопируешь
21. kelebro63 21.12.12 14:00 Сейчас в теме
Писал что то подобное для одной организации. Что то типо если нет движений мышкой, то произвожу выход из системы. Делал на делфях. Прога висела в процессах. Вроде работало на ура
22. indeec 22.12.12 01:56 Сейчас в теме
Нет никакой возможности "мягко" завершить 1с? Тогда все сводилось бы к простому скрипту.
24. andzel 11.09.14 15:44 Сейчас в теме
Я так настраивал, когда проведение по партиям делали и установленное время автоотключения пользователя срабатывало, 1с закрывалась и с ним проведение.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот