Как увидеть время простоя пользователей на RDP-сервере
есть ли быстрый и простой способ увидеть время простоя сеанса пользователей на сервере RDP?
Диспетчер служб терминалов может предоставить вам эту информацию.
в разделе Администрирование — > Службы терминалов — > Диспетчер служб терминалов
затем выберите хост в левой панели и в средней панели выберите вкладку» сеансы». Там будет список всех активных сессий и есть столбец «IdleTime».
выход intererpeted как «дни+часы: минуты». Так, например, если выходные данные «4+11: 23» пользователь бездействовал в течение 4 дней, 11 часов, 23 минут.
также стоит отметить, что вы можете выйти из этих сессий, щелкнув правой кнопкой мыши и отключив их. Хотя было бы неплохо сначала позвонить им :p
Edit: Ну, это хороший ответ для версий сервера до 2012 года: (но поскольку они исключили Диспетчер служб терминалов из более новых версий сервера, похоже, что этот сценарий powershell может быть лучшим вариантом: https://gallery.technet.microsoft.com/scriptcenter/Get-LoggedOnUser-Gathers-7cbe93ea
Я предполагаю, что IdleTime сообщается в минутах, так как мои начальные тесты отображают только отдельные целые числа.
начиная с Windows 2008 команда quser строительство.
отображает сведения о сеансах пользователей на сервере узел сеансов удаленных рабочих столов.
фактически сценарий PowerShell, связанный с in answer, просто выполняет эту команду. OP попросил быстрый и простой способ, это определенно быстрее, чем загружать и выполнять PS-скрипт.
пример из Windows Server 2012 R2:
количество в перед + дней, так что 15+15:12-15 дней, 15 часов и 12 минут.
внимание! В документации сказано, что это то же самое, что и running query user . Команда query не существует на моих серверах. Не уверен, что это отдельная установка или часть установки компонента.
вы можете использовать powershell для поиска различных пользователей или простоя нескольких серверов Скрипт создан пользователем » Cookie.Монстр » на technet Get-UserSession-Parse запрос user result
Windows
Открываем командную строку.
Для этого нажимаем комбинацию клавиш Win + R и в появившемся окне вводим cmd:
И нажимаем OK. Откроется командная строка.
1. Команда net stats
Введем команду net stats srv
Среди результатов увидим Статистика после .
Это и будет, так называемый, uptime windows или время работы с момента последнего запуска.
2. Команда systeminfo
Для более детальной информации также можно ввести следующую команду:
Она покажет детальную информацию, в том числе общее (суммарное) время работы компьютера:
* где дата установки — дата и время, когда система была запущена в первые; время загрузки системы — дата и время, когда система была перезагружена последний раз.
Время выключения Windows
Открываем журнал Windows (команда eventvwr) и находим последнее событие с кодом 6006:
Windows uptime (аптайм) как узнать?
К сожалению, в Операционной системе Windows uptime штатной команды нет как в Unix — системах. Но посмотреть сколько проработал компьютер, или когда он был включен, возможность есть. Опишу несколько способов как узнать в Windows uptime:
1. Через команду systeminfo (самый удобный на мой взгляд способ):
Чтобы ее выполнить, нужно запустить командную строку (для Windows XP: Пуск -> Выполнить -> cmd , для Windows 7: Пуск -> в строке поиска пишем cmd и кликаем на найденный вариант , через горячие клавиши для всех Windows: Win + R cmd ).
windows uptime
Запуск командной строки через горячие клавиши
В командной строке запускаем команду systeminfo и где-то среди первых строк результата ищем что-то типа «Время загрузки системы:» («System Boot Time:» ) в Windows 7 , или «Время работы системы:» в Windows XP . В Windows 7 эта команда показывает дату и время когда система загрузилась, а в Windows XP промежуток времени прошедший с момента загрузки.
Пример ответа команды systeminfo
2. Команда net statistics workstation , или net statistics server , или net stats srv , в первой строке показывает с каких пор снимается статистика;
3. В Windows 7 , в диспетчере задач ( Ctrl + Shift + Esc ), на вкладке «Быстродействие» («Performance» ) ближе к низу есть строка «Время работы» («Up Time») :
windows uptime через «диспетчер задач» в Windows 7
Как на все эти данные влияют режимы (спящий и ждущий режим компьютера) не проверено.
Такими простыми действиями мы можем проверить узнать uptime в Windows Xp и Windows 7.
Определить дату запуска ОС Windows, используя утилиту SystemInfo
Для определения времени запуска ОС (без необходимости высчитывать от текущего времени времени работы), можно использовать утилиту SystemInfo для этого необходимо запустить командную строку Windows (cmd.exe) и в открывшейстя консоли запустить выполнить команду SystemInfo.
В 11 строке сверху будет отображает время старта ОС.
- Event ID: 12 Source: Kernel-General The operating system started at system time
- Event ID: 13 Source: Kernel-General The operating system is shutting down at system time
Проверка времени работы компьютера с помощью Powershell
Статистика длительности работы компьютера может пригодиться для проверки работы серверов или в случае мониторинга пользователей на предмет нарушения техники безопасности (пожарной и информационной) и для многих других случаев. Такую статистику можно увидеть несколькими путями:
- С помощью диспетчера задач (Task Manager).
- С помощью Systeminfo.
- В логах. Например по событию 6005, которое показывает время включения хоста.
- С помощью класса WMI Win32_OperatingSystem, по свойству LastBootUpTime.
Каждый из этих способов по своему удобен, но три из них теряют актуальность, если нужно проверить эти данные на множестве компьютеров. В случае с WMI такие данные можно получить с любого хоста. Я не исключаю, что такие данные можно получить с команд типа Get-NetAdapter или Get-ComputerInfo.
Следующим образом мы получим дату включения хоста используя команду CMD WMIC:
Аналогичный результат, но используя команду получения WMI в Powershell:
Мы можем различить дату, но желательно иметь сразу более человеческое представление. Можно преобразовать результат и с WMI, но в случае с CIM он сразу корректный:
В зависимости от региональной версии ОС формат может быть разный:
Наша задача посмотреть сколько времени работает компьютер, а не когда он был запущен. Для этого получим разницу во времени:
Попробуем выполнить команду на удаленном компьютере с Powershell, такой способ требует дополнительной настройки. Я обернул наш скрипт в функцию Get-UpTime, что бы было удобнее ее вызывать:
Я выполняю две удаленные команды на одном и том же компьютере, так как он у меня один, но для наглядности продемонстрировано что можно иметь множество хостов. Я так же отсортировал результат с помощью Sort-Object сначала по дням, затем по часам. Нам не обязательно использовать метод Invoke-Command, так как сам командлет CIM имеет такую возможность, но первый способ мне нравится больше:
В каждом варианте я использовал параметр со значением -ErrorAction SilentlyContinue , который пропускает некоторые ошибки в Powershell. Это делается на случай, если какой-то хост окажется выключенным.
Теперь попробуем использовать нашу функцию Get-Uptime для получения данных со всех компьютеров в ActiveDirectory и экспортируем результат в CSV:
Далее этот файл можно открыть в Excel и просмотреть результат. Я так же убрал сортировку, так как это можно сделать через Excel. Выполнение подобной процедуры будет долгим, если в ActiveDirectory много компьютеров и его можно сузить с помощью ключей Filter и SearchBase в команде Powershell Get-ADUser.
Шестой способ узнавать uptime windows
Ну собственно можно воспользоваться WMI и PowerShell. Выяснить время старта ОС можно вот так:
$wmi = Get-WmiObject Win32_OperatingSystem
$wmi.LastBootUpTime
Время выводится в несколько неудобном формате, поэтому сконвертируем его:
И выведем время работы с точностью до миллисекунды, вычтя из текущей даты дату последней загрузки:
Как определить UP time (время работы системы) без выключения на примере windows server 2008 R2
Надеюсь вы как и я что то для себя повторили, а кто то и просто узнал. Все спасибо, что были тут, будут вопросы жду в комментариях. Материал сайта Pyatilistnik.org