Главная » Файлы » Программируем в 1С » 1С Разное

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

Через минуту Вы получите "Гостевой доступ"




7 способов посмотреть, кто работает на сервере терминалов
2017 Март 03, 19:47

С чего начинается администрирование пользователей на сервере терминалов?

Конечно с просмотра «Активных» или «Отключенных» сессий пользователей.

Без этой картины администрирование сервера терминалов невозможно.

Мы должны во всех подробностях видеть, что у нас происходит на сервере терминалов.

Какие процессы запущены от имени тех или иных пользователей (в т.ч. процессы 1С) их идентификаторы, id сессий пользователей, это и многое другое помогает администратору всегда быть в курсе того что происходит на сервере и соответственно всем этим управлять, и вовремя реагировать на различные ситуации.

На разных версиях Windows server  администраторы по-разному решают этот вопрос.

Кто-то смотрит пользователей используя простой «Диспетчер задач» на Windows server 2012 – 2016. Некоторые используют различные команды в CMD, ну а кое-кто использует PowerShell .

Но все администраторы хотят одного:

1.  Чтоб быстро посмотреть всех пользователей кто работает на сервере.

2.  Чтоб это было как можно информативней.

3.  Чтоб бесплатно.

 

Поэтому поводу решил собрать все лучшие, простые и быстрые способы которые (на мое мнение) стоит использовать.

Уверен, что многим начинающим администраторам эти способы помогут в администрировании сервера терминалов.

И так способ первый и самый простой (На Windows server 2012 R2)

 

1.     Диспетчер задач.

«Диспетчер задач» – вкладка «Пользователи» – позволяет нам видеть пользователей, которые работают на этом сервере.

 Dispetcher_Zadach_Windows_server_2012_r2

Но по умолчанию стандартный «Диспетчер задач» – вкладка «Пользователи» нам не покажет, что пользователь работает на сервере удаленно, используя RDP, хорошо, что это можно легко исправить.

Правый клик мышкой на панели «Пользователь» и в появившимся контекстном меню

ставим птичку напротив «Сеанс» а также стоит поставить и напротив «Имя клиента».

Dispetcher_Zadach_Windows_server_2012_r222

Так мы будем знать, что этот пользователь работает у нас на сервере через RDP.

Минусы данного способа здесь очевидны, чтоб смотреть пользователей мы должны находится на сервере терминалов, где собственно и запускаем «Диспетчер задач», нет возможности сделать какую-то выборку, фильтр и т.д. 

 

2.     quser

Следующий метод это использование команды quser в CMD или PowerShell.

Quser – это аналог QUERY USER (Такое сокращение позволяет выполнять команду быстрее)

Здесь все просто запускаем CMD или PowerShell и пишем команду quser

PowerShell_quser

Так мы увидим всех пользователей, что работают на этом сервере.

Метод очень простой быстрый и достаточно информативный.

Он покажет Вам – Пользователя, Сеанс, его ID, Статус , Бездействие сеанса, и время входа.

Если мы хотим посмотреть только какого-то конкретного пользователя, тогда можно написать например так:

Пример: 

PowerShell

1

Quser Term01

Term01 – это логин пользователя.

PowerShell_quser2

Большинство системных администраторов отдают предпочтение именно этому способу.

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

И для этого достаточно ввести команду с параметром SERVER

Пример: 

PowerShell

1

quser /server 192.168.128.50

Вместо IP можно указать (хост) имя сервера терминалов.

PowerShell_quser3

Формат командной строки:

QUSER [< пользователь > | < имя сеанса > | < ID сеанса >] [/SERVER:< сервер >]

 

3.     query user    

Query user  делает все что и команда quser. 

Использовать ее можно также как в CMD так и в PowerShell.

Также возможно выполнить и удаленно

Пример: 

PowerShell

1

query user /server 192.168.128.50

 

PowerShell_quser4

4.     query session       

Эта команда позволяет получить список всех сеансов (активных и неактивных), которые выполняются на сервере терминалов. Команда query session имеет такой синтаксис:

query session [<SessionName> | <UserName> | <SessionID> ] [/server:<servername>] [/mode] [/flow] [/connect] [/counter]

Использовать ее можно также как в CMD так и в PowerShell.

Также возможно выполнить и удаленно

Пример: 

PowerShell

1

query session /server 192.168.128.50

 

PowerShell_query_session

У команды есть интересные параметры, такие как, например получение некоторой статистики подключений.

Пример: 

PowerShell

1

query session /server 192.168.128.50 /counter

 

 PowerShell_Counter

В общем, еще одна неплохая команда для получения пользователей, что работают на сервере.

 

5.     Qwinsta

Qwinsta это аналог query session, по этой причине описывать ее не буду. Работает все аналогично, вот только набрать ее можно быстрее, а соответственно и выполнить.

PowerShell_qwinsta

 

Теперь, когда выше перечисленные способы у Вас по каким-то причинам не сработали, или не подошли, тогда можно обратиться к сторонним компонентам.

 

6.     Get-TerminalSession

Этот метод работает только через PowerShell и требует установки небольшого «Пака».

Скачать его можно бесплатно вот здесь:

https://pscx.codeplex.com   PowerShell Community Extensions.

Установим его на сервере терминалов.

Установка как видно по скрину очень быстрая и простая.

1

После чего мы сможем использовать «командлет» Get-TerminalSession и получить в удобной таблице всех пользователей, что работают у нас на сервере терминалов.

Пример: Get-TerminalSession

PowerShell

1

Get-TerminalSession

 

 Get-TerminalSession

Также можно смотреть пользователей и с удаленного «ПК» или сервера.

Пример: Get-TerminalSession -ComputerName 192.168.128.51

PowerShell

1

Get-TerminalSession -ComputerName 192.168.128.51

Если Вы планируете удаленно выполнять этот «командлет» на Windows 7, 8 или 10.

Тогда сперва следует внести правку в политику безопасности:

Запускаем PowerShell

Напишем следующее: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

PowerShell

1

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

После чего Get-TerminalSession заработает у вас и с удаленной машины.

 Get-TerminalSession2

 

7.     Get-TSSession         

Еще один просто отличный «командлет» который позволяет смотреть пользователей, что работают на сервере терминалов, причем вы сможете не только смотреть, но и отправлять им уведомления, завершать сессии и процессы пользователей ставить различные фильтры, делать выборки и многое другое.

Отличная вещь для тех, кто администрирует сервер терминалов при помощи PowerShell.

И так, где брать? И как установить?

Качаем бесплатно «модуль» PSTerminalServices здесь

https://psterminalservices.codeplex.com

В двух словах о модуле:

Основан он на «open source» проекте под названием Кассия (версия 2.0.0.60), библиотека .NET для доступа к «нативной» службе терминалов Windows API.

 

И так установка простая несколько кликов «Далее» и модуль установлен (смотрим скрины ниже).

Get-TerminalSession3

23

24

После установки модуля запускаем PowerShell

И выполним несколько команд, чтоб у нас все работало:

Для начала разрешим выполнение скриптов (если установили модуль на Windows 7,8,10)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

PowerShell

1

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Далее следует проверить установлен ли новый «командлет»

PowerShell

1

Get-Module -Name PSTerminalServices -ListAvailable

 

Get-TerminalSession4

Затем выполним команду импорта

PowerShell

1

Import-Module PSTerminalServices

И теперь можно посмотреть на функции которые нам доступны

PowerShell

1

Get-Command -Module PSTerminalServices

 

Get-TerminalSession5

Так мы будем точно знать, что все прошло успешно и «командлет»

Get-TSSession у нас работает.

И так теперь чтоб посмотреть, кто у нас работает на сервере терминалов, достаточно запустить PowerShell и выполнить:

Пример: 

PowerShell

1

Get-TSSession

Если хотим посмотреть удаленно, сидя за своим ПК, тогда выполняем:

Пример: 

PowerShell

1

Get-TSSession -ComputerName 192.168.128.51

 

Get-TerminalSession6

А вот еще примеры по модулю PSTerminalServices:

PowerShell

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С Разное | Добавил: c1
Просмотров: 6149 | Загрузок: 0 | Рейтинг: 5.0/1

Выразить благодарность - Поделиться с друзьями!

 

Здесь все о технической стороне 1С!

 

Узнай, как правильно администрировать 1С Предприятие
Регистрируйся на бесплатный 7-ми дневный курс сейчас:

Ваш E-Mail в безопасности



Всего комментариев: 0
avatar