С чего начинается администрирование пользователей на сервере терминалов?
Конечно с просмотра «Активных» или «Отключенных» сессий пользователей.
Без этой картины администрирование сервера терминалов невозможно.
Помимо статьи, записал также, и подробное видео, о том как администрировать пользователей на сервере терминалов (Новичкам смотреть обязательно!)
Конечно, данная тема также подымается и на курсе: Администратор 1С!
И так, конечно мы должны во всех подробностях видеть, что у нас происходит на сервере терминалов!
Какие процессы запущены от имени тех или иных пользователей (в т.ч. процессы 1С) их идентификаторы, id сессий пользователей, это и многое другое помогает администратору всегда быть в курсе того что происходит на сервере и соответственно всем этим управлять, и вовремя реагировать на различные ситуации.
На разных версиях Windows server администраторы по-разному решают этот вопрос.
Кто-то смотрит пользователей используя простой «Диспетчер задач» на Windows server 2012 – 2016. Некоторые используют различные команды в CMD, ну а кое-кто использует PowerShell .
Но все администраторы хотят одного:
1. Чтоб быстро посмотреть всех пользователей кто работает на сервере.
2. Чтоб это было как можно информативней.
3. Чтоб бесплатно.
Поэтому поводу решил собрать все лучшие, простые и быстрые способы которые (на мое мнение) стоит использовать.
Уверен, что многим начинающим администраторам эти способы помогут в администрировании сервера терминалов.
И так способ первый и самый простой (На Windows server 2012 R2)
1. Диспетчер задач.
«Диспетчер задач» — вкладка «Пользователи» — позволяет нам видеть пользователей, которые работают на этом сервере.
Но по умолчанию стандартный «Диспетчер задач» — вкладка «Пользователи» нам не покажет, что пользователь работает на сервере удаленно, используя RDP, хорошо, что это можно легко исправить.
Правый клик мышкой на панели «Пользователь» и в появившимся контекстном меню
ставим птичку напротив «Сеанс» а также стоит поставить и напротив «Имя клиента».
Так мы будем знать, что этот пользователь работает у нас на сервере через RDP.
Минусы данного способа здесь очевидны, чтоб смотреть пользователей мы должны находится на сервере терминалов, где собственно и запускаем «Диспетчер задач», нет возможности сделать какую-то выборку, фильтр и т.д.
2. quser
Следующий метод это использование команды quser в CMD или PowerShell.
Quser – это аналог QUERY USER (Такое сокращение позволяет выполнять команду быстрее)
Здесь все просто запускаем CMD или PowerShell и пишем команду quser
Так мы увидим всех пользователей, что работают на этом сервере.
Метод очень простой быстрый и достаточно информативный.
Он покажет Вам — Пользователя, Сеанс, его ID, Статус , Бездействие сеанса, и время входа.
Если мы хотим посмотреть только какого-то конкретного пользователя, тогда можно написать например так:
Пример:
|
1 |
Quser Term01 |
Term01 – это логин пользователя.
Большинство системных администраторов отдают предпочтение именно этому способу.
И не только потому, что быстро, просто и т.д., но и потому что можно смотреть удаленно всех пользователей, сидя за своим ПК, где не будь в локальной сети.
И для этого достаточно ввести команду с параметром SERVER
Пример:
|
1 |
quser /server 192.168.128.50 |
Формат командной строки:
QUSER [; пользователь ; | ; имя сеанса ; | ; ID сеанса ;] [/SERVER:; сервер ;]
3. query user
Query user делает все что и команда quser.
Использовать ее можно также как в CMD так и в PowerShell.
Также возможно выполнить и удаленно
Пример:
|
1 |
query user /server 192.168.128.50 |
4. query session
Эта команда позволяет получить список всех сеансов (активных и неактивных), которые выполняются на сервере терминалов. Команда query session имеет такой синтаксис:
Использовать ее можно также как в CMD так и в PowerShell.
Также возможно выполнить и удаленно
Пример:
|
1 |
query session /server 192.168.128.50 |
У команды есть интересные параметры, такие как, например получение некоторой статистики подключений.
Пример:
|
1 |
query session /server 192.168.128.50 /counter |
В общем, еще одна неплохая команда для получения пользователей, что работают на сервере.
5. Qwinsta
Qwinsta это аналог query session, по этой причине описывать ее не буду. Работает все аналогично, вот только набрать ее можно быстрее, а соответственно и выполнить.
Теперь, когда выше перечисленные способы у Вас по каким-то причинам не сработали, или не подошли, тогда можно обратиться к сторонним компонентам.
6. Get-TerminalSession
Этот метод работает только через PowerShell и требует установки небольшого «Пака».
Скачать его можно бесплатно вот здесь:
https://pscx.codeplex.com PowerShell Community Extensions.
Установим его на сервере терминалов.
Установка как видно по скрину очень быстрая и простая.
После чего мы сможем использовать «командлет» Get-TerminalSession и получить в удобной таблице всех пользователей, что работают у нас на сервере терминалов.
Пример: Get-TerminalSession
|
1 |
Get-TerminalSession |
Также можно смотреть пользователей и с удаленного «ПК» или сервера.
Пример: Get-TerminalSession -ComputerName 192.168.128.51
|
1 |
Get-TerminalSession -ComputerName 192.168.128.51 |
Если Вы планируете удаленно выполнять этот «командлет» на Windows 7, 8 или 10.
Тогда сперва следует внести правку в политику безопасности:
Запускаем PowerShell
Напишем следующее: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
1 |
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser |
После чего Get-TerminalSession заработает у вас и с удаленной машины.
7. Get-TSSession
Еще один просто отличный «командлет» который позволяет смотреть пользователей, что работают на сервере терминалов, причем вы сможете не только смотреть, но и отправлять им уведомления, завершать сессии и процессы пользователей ставить различные фильтры, делать выборки и многое другое.
Отличная вещь для тех, кто администрирует сервер терминалов при помощи PowerShell.
И так, где брать? И как установить?
Качаем бесплатно «модуль» PSTerminalServices здесь
https://psterminalservices.codeplex.com
В двух словах о модуле:
Основан он на «open source» проекте под названием Кассия (версия 2.0.0.60), библиотека .NET для доступа к «нативной» службе терминалов Windows API.
И так установка простая несколько кликов «Далее» и модуль установлен (смотрим скрины ниже).
После установки модуля запускаем PowerShell
И выполним несколько команд, чтоб у нас все работало:
Для начала разрешим выполнение скриптов (если установили модуль на Windows 7,8,10)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
1 |
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser |
Далее следует проверить установлен ли новый «командлет»
|
1 |
Get-Module -Name PSTerminalServices -ListAvailable |
Затем выполним команду импорта
|
1 |
Import-Module PSTerminalServices |
И теперь можно посмотреть на функции которые нам доступны
|
1 |
Get-Command -Module PSTerminalServices |
Так мы будем точно знать, что все прошло успешно и «командлет»
Get-TSSession у нас работает.
И так теперь чтоб посмотреть, кто у нас работает на сервере терминалов, достаточно запустить PowerShell и выполнить:
Пример:
|
1 |
Get-TSSession |
Если хотим посмотреть удаленно, сидя за своим ПК, тогда выполняем:
Пример:
|
1 |
Get-TSSession -ComputerName 192.168.128.51 |
А вот еще примеры по модулю PSTerminalServices:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# Logs off all the active sessions from remote computer 'comp1', no confirmations Get-TSSession -ComputerName comp1 -State Active | Stop-TSSession –Force # Gets all Active sessions from remote computer 'comp1', made from IP addresses that starts with '10'. Get-TSSession -ComputerName comp1 -Filter {$_.ClientIPAddress -like '10*' -AND $_.ConnectionState -eq 'Active'} # Displays a message box inside all active sessions of computer name 'comp1'."} $Message = "Importnat`n, the server is going down for maintenance in 10 minutes. Please save your work and logoff." Get-TSSession -State Active -ComputerName comp1 | Send-TSMessage -Message $Message # Gets all processes connected to session id 0 from remote computer 'comp1'. Get-TSSession -ID 0 -ComputerName comp1 | Get-TSProcess |
Если какие-то команды или «командлеты» у Вас не работают, возможно удаленно, тогда следует добавить права пользователю, от имени которого Вы запускаете PowerShell или CMD. (Должны быть права «Администратора домена»), также смотрите, возможно, брандмауэр блокирует подключение, или служба RPC не стартовала.
Ну что ж друзья на этом все, успехов в администрировании вашего сервера терминалов.
Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 1С


















Все о технической стороне 1С можно узнать на этом курсе: (Сейчас со скидкой 35%).
https://shop.kuharbogdan.com/product/kurs-administrator-1s-vse-moduli