С чего начинается администрирование пользователей на сервере терминалов?
Конечно с просмотра «Активных» или «Отключенных» сессий пользователей.
Без этой картины администрирование сервера терминалов невозможно.
Помимо статьи, записал также, и подробное видео, о том как администрировать пользователей на сервере терминалов (Новичкам смотреть обязательно!)
Конечно, данная тема также подымается и на курсе: Администратор 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, Статус , Бездействие сеанса, и время входа.
Если мы хотим посмотреть только какого-то конкретного пользователя, тогда можно написать например так:
Пример:
Term01 – это логин пользователя.
Большинство системных администраторов отдают предпочтение именно этому способу.
И не только потому, что быстро, просто и т.д., но и потому что можно смотреть удаленно всех пользователей, сидя за своим ПК, где не будь в локальной сети.
И для этого достаточно ввести команду с параметром SERVER
Пример:
Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 1С
Иногда может понадобится проверить какие в данный момент залогинены в системе, то есть являются активными. Такую информацию можно использовать для аудита, например для проверки какие учетные записи за какими компьютерами сидят или для последующей перезагрузки сервера, что бы не останавливать работу коллег. В примерах ниже рассмотрено как выполнять удаленные команды для получения активных пользователей и возврата включенных пользователей Active Directory.
Получение имени залогиненного пользователя
Я не могу вспомнить готовую команду Powershell, которая бы вернула логин пользователя, но такая возможность есть через WMI:
Get-WmiObject -Class Win32_ComputerSystem | Select-Object UserName
Есть еще вариант использовать CIM, который может работать немного быстрее:
Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object UserName
Обе команды могут работать удаленно если добавить атрибут ComputerName:
Get-WmiObject -ComputerName 'localhost' -Class Win32_ComputerSystem | Select-Object UserName
Если вы планируете выполнять эти команды удаленно, то может понадобится выполнить предварительные настройки в виде открытия портов и необходимых правах.
Получить только имя пользователя можно так:
$userinfo = Get-WmiObject -ComputerName 'localhost' -Class Win32_ComputerSystem
$user = $userinfo.UserName -split '\'
$user[1]
Как вы знаете в Winodws есть так же параллельные сеансы сервисов. Если вам нужно вернуть имена этих аккаунтов нужно использовать класс «win32_LoggedOnUser»:
Get-CimInstance -ComputerName 'localhost' -Class win32_LoggedOnUser | ft
Получение списка компьютеров
Если у вас нет списка компьютеров к которым вы планируете подключиться и узнать активного пользователя — это можно сделать через AD. На примере ниже будут возвращены все компьютеры:
Get-ADComputer -Filter *
Операция по получению списка компьютеров может быть очень долгой, если у вас большой парк ПК в AD. Вы можете вернуть только компьютеры, которые не отключены в AD (Disable) следующим способом:
Get-ADComputer -Filter * | where Enabled -eq $True
Можно использовать и фильтрацию. Так я верну компьютеры имена которые начинаются на «CL»:
Get-ADComputer -Filter {Name -like 'CL*'} | where Enabled -eq $True
Получить список имен мы можем так:
$pc = Get-ADComputer -Filter {Name -like 'CL*'} | where Enabled -eq $True
$pc.Name
Если у вас список компьютеров не относится к AD или имеет другой формат — то просто преобразуйте его в массив:
# Текст с именами компьютеров
$pc = 'Computer1,Computer2,Computer3'
# Преобразование в массив
$pc_array = $pc -split ','
$pc_array
Удаленное получение залогиненных пользователей
Выше уже рассматривался вариант получения имени пользователя удаленно используя WMI и CIM. Если обе команды, то всех пользователей активных в данный момент мы можем получить так:
# Текст с именами компьютеров
$computers = (Get-AdComputer -Filter *).Name
# Удаленное получение пользователей
foreach ($computer in $computers){
Get-CimInstance -ComputerName $computer -ClassName Win32_ComputerSystem | Select-Object UserName
}
Такой подход может привести к ошибкам так как мы не проверяем включены ли компьютеры:
Мы можем просто не выводить ошибки с помощью «-ErrorAction SilentlyContinue» или заранее пинговать (что было бы правильнее с точки зрения времени выполнения). В примере ниже я так же разбиваю имя компьютера и логин в более удобный формат:
# Текст с именами компьютеров
$computers = (Get-AdComputer -Filter *).Name
# Удаленное получение имен учетных записей
foreach ($computer in $computers){
$result = Get-CimInstance -ComputerName $computer -ClassName Win32_ComputerSystem -ErrorAction SilentlyContinue
$computer_login = $result.UserName -split '\'
if ($computer_login){
Write-Host 'ComputerName: ' $computer_login[0]
Write-Host 'UserName: ' $computer_login[1]
}
}
Если вы не хотите выполнять команды удаленно через WMI, то вы можете использовать PSRemoting. От так же требует предварительных настроек, которые описаны в статье «Удаленное управление через Powershell». Команда, которая использует PSRemoting, будет выглядеть примерно так же:
# Текст с именами компьютеров
$computers = (Get-AdComputer -Filter *).Name
# Удаленное получение имен учетных записей
foreach ($computer in $computers){
$result = Invoke-Command -ComputerName $computer `
-ScriptBlock {
Get-WMIObject -ClassName Win32_ComputerSystem `
-ErrorAction SilentlyContinue
} `
-ErrorAction SilentlyContinue
$computer_login = $result.UserName -split '\'
if ($computer_login){
Write-Host 'ComputerName: ' $computer_login[0]
Write-Host 'UserName: ' $computer_login[1]
}
}
Получение включенных пользователей AD
Если вам нужно вернуть учетные записи, которые включены в AD выполните следующую команду:
Get-AdUser -Filter * | where 'Enabled' -eq $True
Для возврата только отключенных учетных записей используйте $False.
Такой подход работает и с объектами компьютеров в AD:
Get-AdComputer -Filter * | where 'Enabled' -eq $False
Для последующей выгрузки данных в Excel почитайте статью «Как в Powershell выгрузить из AD пользователей и группы CSV».
Whoami или WMI
Вы можете вспомнить команду, которая так же возвращает имя пользователя:
whoami
Как можно увидеть она вернет ту же информацию, что и класс WMI. Ситуация меняется, когда эти команды используются удаленно:
# Пользователь вошедший в Windows и открывший Powershell
whoami
# Пользователь, который будет удаленно подключатся через Powershell
$new_psuser = Get-Credential 'admin'
# Способ с whoami
Invoke-Command -ComputerName 'localhost' `
-Credential $new_psuser `
-ScriptBlock {whoami}
# Способ с WMI
Invoke-Command -ComputerName 'localhost' `
-Credential $new_psuser `
-ScriptBlock {(Get-WmiObject -Class Win32_ComputerSystem).UserName}
Как видно, в случае с whoami у нас вернулось имя учетной записи выполнившей команду Powershell, а с WMI пользователь Windows.
…
Теги:
#powershell
#wmi
#ad
Рассмотрим такие команды как:
- query
- qwinsta (query session)
- quser (query user)
- mstsc (RDS shadow)
- msg
- change logon
- shutdown
query
query — Отображение информации о процессах; сеансах; пользователя, вошедших на сервер; и серверах, обслуживающих подключение к удаленному рабочему столу
process | session | termserver | user
Более подробно здесь рассмотрятся команды:
query session
query user
а точнее их более короткие аналоги: qwinsta и quser
qwinsta
qwinsta (эквивалент query session) — Отображение информации о сеансах служб удаленных рабочих столов.
С помощью этой команды можно узнать, активен ли сеанс пользователя и ID сеанса
Просто команда без каких либо ключей и параметров выводит список сеансов на текущем сервере:
qwinsta
Ключ /server позволит указать другой сервер:
qwinsta /server:servername
Показать информацию о сеансе конкретного пользователя:
qwinsta username
Также можно узнать информацию о сеансе пользователя на другом сервере:
qwinsta username /server:servername
Остальные параметры и подробная справка по команде:
qwinsta /?
quser
quser (эквивалент query user) — Отображение информации о пользователях, вошедших в систему
Позволит помимо прочего узнать также время входа и время бездействия сеанса — весьма полезная информация в определенных случаях.
В остальном, все ключи у возможности, такие же как и у команды qwinsta:
quser
Ключ /server позволит указать другой сервер:
quser /server:servername
Показать информацию о конкретном пользователе:
quser username
Показать информацию о конкретном пользователе на другом сервере:
quser username /server:servername
Справка и все функции:
quser /?
RDS shadow (mstsc)
RDS Shadow — теневое подключение к сеансу пользователя
Для того, чтобы узнать ID сеанса, нужно воспользоваться одной из вышеупомянутых команд: qwinsta или quser
Теневое подключение без возможности управления сеансом (только просмотр):
mstsc /shadow:ID
Теневое подключение для управления другим сеансом:
mstsc /shadow:ID /control
ключ /v:servername позволит подключиться к сеансам другого сервера:
mstsc /v:servername /shadow:ID /control
msg
msg — отправить сообщение пользователю
Для того, чтобы отправить сообщение в сеанс всем пользователям, нужно воспользоваться командой:
msg * your message here
Можно отправить сообщение конкретному пользователю — по его логину, имени сеанса или ID сеанса. Например, так мы скажем пользователю с ID сеанса 12, что ему необходимо выйти из системы:
msg 12 Срочно завершите сеанс!
ID сеанса можно узнать с помощью уже рассмотренных команд qwinsta или quser
change logon
change logon — включение / отключение входа на терминальный сервер
Полностью отключить вход в терминальные сессии можно командой:
change logon /disable
Включение входа:
change logon /enable
Все возможные ключи смотрим в справке:
change logon /?
shutdown
shutdown — перезагрузка или выключение компьютера. С необходимыми параметрами команда может быть использована для перезагрузки текущего компьютера/сервера, отложенной перезагрузки, удаленной перезагрузки другого компьютера, группы компьютеров, серверов и т.п. Команда имеет множество опций.
Так, например, команда shutdown со следующими параметрами:
shutdown /r /f /t 180 /c "комментарий для перезагрузки"
перезагрузит ваш сервер (/r) спустя 180 секунд (/t 180), принудительно закроет все приложения (/f, используется при указании /t) и укажет причину перезагрузки или комментарий для пользователей (/c «комментарий для перезагрузки»).
Удаленно перезагрузить или выключить компьютер или группу компьютеров через GUI можно командой
shutdown /i
Допустим, вы администрируете сервер терминалов. (Кстати, согласно новой терминологии Майкрософт, сервер терминалов теперь называется сервером удалённых рабочих столов). Во время обслуживания сервера RDP администратору приходится его перезагружать. Но как узнать, кто из подключённых пользователей работает, а чей сеанс простаивает?
Для просмотра информации о сеансах и, в частности, о времени простоя терминальной сессии пользователя мы воспользуемся оснасткой tsadmin.msc .
Нажимаем WIN+R для запуска окна Выполнить и вводим в поле tsadmin.msc :
Открывается окно Диспетчер служб удалённых рабочих столов . В отличие от диспетчера задач, где можно узнать лишь о том, подключён сеанс или отключён, Диспетчер служб удалённых рабочих столов отображает более исчерпывающую информацию.
В окне мы видим список сеансов удалённого рабочего стола. Поле Состояние показывает, чей сеанс активен, а чей отключён :
Поле LogOnTime показывает время, когда соответствующий пользователь подключился к серверу:
Время простоя
По информации из поля Idle Time вы можете узнать, кто работает, а чей сеанс бездействует. Так, значение 18 напротив пользователя User1 означает, что сеанс пользователя простаивает в течение 18 минут :
Также, можно просмотреть процессы пользователей удалённого рабочего стола:
тогда такой вариант (powershell):
$owners = @{} get-process -ComputerName ИМЯ.КОМПЬЮТЕРА | select processname,Id,@{l="Owner";e={$owners[$_.id.tostring()]}} | sort "owner"
это выведет все процессы на удалённом компьютере. Если пользователь будет залогинен — он будет в списке. Пример:
ProcessName Id Owner ----------- -- ----- System 4 Idle 0 ipoint 3556 Admin igfxEM 4620 Admin itype 3548 Admin jucheck 3628 Admin jusched 6660 Admin SystemSettings 9204 Admin svchost 3420 Admin chrome 4452 Admin chrome 2968 Admin chrome 11996 Admin dllhost 11008 Admin firefox 6752 Admin firefox 5124 Admin explorer 4056 Admin firefox 268 Admin conhost 11296 Admin AnVir 11196 Admin ctfmon 4168 Admin RuntimeBroker 7408 Admin svchost 3784 LOCAL SERVICE svchost 4988 LOCAL SERVICE svchost 6980 LOCAL SERVICE svchost 11020 LOCAL SERVICE svchost 10680 LOCAL SERVICE dasHost 5508 LOCAL SERVICE svchost 10720 LOCAL SERVICE svchost 2120 NETWORK SERVICE svchost 4388 NETWORK SERVICE svchost 3792 NETWORK SERVICE
или ещё проще cmd:
query user /server:ИМЯ.КОМПЬЮТЕР
и вывод:
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME admin console 1 Active none 28.04.2018 09:49
вообщем, в гугле полно примеров
Содержание
- Windows admin blog
- Полезные команды cmd, powershell, администрирование, фичи и решения проблем на win/winserver
- Полезные команды для терминального сервера
- query
- qwinsta
- quser
- RDS shadow (mstsc)
- change logon
- shutdown
- 65 основных команд Windows Server
- Как запустить команды в терминале Windows Server
- Команды для Windows Server
- Настройка подключений
- Работа в системе
- Работа с локальными и виртуальными жесткими дисками
- Работа с файлами и папками
- Интерфейс командной строки
- Заключение
- Windows server посмотреть подключенных пользователей
- Что такое ID сеанса
- Методы определения ID сеанса пользователя RDP
- Определение ID сеанса через quser
- Определение ID сеанса через qwinsta
- Как узнать id пользователя через диспетчер задач
- Как узнать id пользователя через query session
- Получение информации о сеансе через Get-TerminalSession
- Получение информации о сеансе через Get-TSSession
Windows admin blog
Полезные команды cmd, powershell, администрирование, фичи и решения проблем на win/winserver
Полезные команды для терминального сервера
Рассмотрим такие команды как:
query
query — Отображение информации о процессах; сеансах; пользователя, вошедших на сервер; и серверах, обслуживающих подключение к удаленному рабочему столу
process | session | termserver | user
Более подробно здесь рассмотрятся команды:
а точнее их более короткие аналоги: qwinsta и quser
qwinsta
qwinsta (эквивалент query session) — Отображение информации о сеансах служб удаленных рабочих столов.
С помощью этой команды можно узнать, активен ли сеанс пользователя и ID сеанса
Просто команда без каких либо ключей и параметров выводит список сеансов на текущем сервере:
Ключ /server позволит указать другой сервер:
Показать информацию о сеансе конкретного пользователя:
Также можно узнать информацию о сеансе пользователя на другом сервере:
Остальные параметры и подробная справка по команде:
quser
quser (эквивалент query user) — Отображение информации о пользователях, вошедших в систему
Позволит помимо прочего узнать также время входа и время бездействия сеанса — весьма полезная информация в определенных случаях.
В остальном, все ключи у возможности, такие же как и у команды qwinsta:
Ключ /server позволит указать другой сервер:
Показать информацию о конкретном пользователе:
Показать информацию о конкретном пользователе на другом сервере:
Справка и все функции:
RDS shadow (mstsc)
RDS Shadow — теневое подключение к сеансу пользователя
Для того, чтобы узнать ID сеанса, нужно воспользоваться одной из вышеупомянутых команд: qwinsta или quser
Теневое подключение без возможности управления сеансом (только просмотр):
Теневое подключение для управления другим сеансом:
ключ /v:servername позволит подключиться к сеансам другого сервера:
msg — отправить сообщение пользователю
Для того, чтобы отправить сообщение в сеанс всем пользователям, нужно воспользоваться командой:
Можно отправить сообщение конкретному пользователю — по его логину, имени сеанса или ID сеанса. Например, так мы скажем пользователю с ID сеанса 12, что ему необходимо выйти из системы:
ID сеанса можно узнать с помощью уже рассмотренных команд qwinsta или quser
change logon
change logon — включение / отключение входа на терминальный сервер
Полностью отключить вход в терминальные сессии можно командой:
Все возможные ключи смотрим в справке:
shutdown
shutdown — перезагрузка или выключение компьютера. С необходимыми параметрами команда может быть использована для перезагрузки текущего компьютера/сервера, отложенной перезагрузки, удаленной перезагрузки другого компьютера, группы компьютеров, серверов и т.п. Команда имеет множество опций.
Так, например, команда shutdown со следующими параметрами:
перезагрузит ваш сервер (/r) спустя 180 секунд (/t 180), принудительно закроет все приложения (/f, используется при указании /t) и укажет причину перезагрузки или комментарий для пользователей (/c «комментарий для перезагрузки»).
Удаленно перезагрузить или выключить компьютер или группу компьютеров через GUI можно командой
Источник
65 основных команд Windows Server
Практически во всех операционных системах множество функций можно запустить не только «кликом», но и с помощью определенной команды. Это касается и версии Windows для серверов. Большинство из тех команд, что используются для управления сервером, схожи с теми, что предназначены для обычной Windows. Я перечислю основные команды, которые в той или иной степени будут полезны при управлении ОС Windows Server.
Как запустить команды в терминале Windows Server
Как и в десктопной версии, все указанные команды можно запустить с помощью командной строки.
Для получения указанных прав нужно действовать следующим образом:
Команды можно запускать с помощью утилиты Windows PowerShell, которую также можно найти среди предустановленных программ.
Команды для Windows Server
Все указанные команды предназначены для самых разных задач. Я постараюсь рассортировать их по функционалу. В общей сложности вышло 65 команд, без учета дополнительных параметров и атрибутов в некоторых из них.
Настройка подключений
arp – данная команда предназначена для просмотра и изменения записей в кэше ARP. Это протокол, представляющий собой таблицу соответствия IP-адресов с MAC-адресами сетевых устройств.
dnscmd – диагностирует, исправляет ошибки в конфигурациях и еще выполняет множество других действий при администрировании сервера DNS.
ftp – передает туда и обратно файлы на компьютер, в котором запущена служба протокола FTP. У команды есть несколько параметров. Вот некоторые из них, которые будут наиболее полезны:
Завершает сеанс FTP на удаленном компьютере; есть аналогичная этой команда – FTP Quit
delete
Стирает указанные файлы на удаленном компьютере
mget
Копирует файлы с удаленного на локальный компьютер, используя текущий тип перемещения файлов
mkdir
Создает новую папку на удаленном компьютере
open
Подключается к указанному FTP-серверу
rmdir
Стирает выбранный каталог на удаленном ПК
status
Показывает текущее состояние FTP-подключений
ftp trace
Переключает трассировку пакетов, отображает внутренние вызовы функций FTP при запуске команды
type
Задает или отображает тип перемещения файла
user
Указывает пользователя для удаленного компьютера
mdelete
Стирает файлы на удаленном компьютере
getmac – данный запрос определяет mac-адрес компьютера, а еще он используется для отображения mac-адресов сетевых адаптеров.
hostname – показывает наименование узла в полном имени компьютера.
ipconfig – этот параметр отображает актуальные на момент проверки параметры протокола TCP/IP. Он также применяется для обновления некоторых характеристик, задаваемых при автоматической конфигурации сетевых интерфейсов, задействующих протокол DHCP. К данной команде можно добавлять следующие атрибуты:
Выдает все доступные конфигурации IP
/displaydns
Отображает кэш DNS
/flushdns
Сбрасывает кэш DNS
/registerdns
Обновляет и повторно регистрирует параметры DNS
/release
/renew
Обновляет сведения для сетевых адаптеров
/setclassid
Меняет DHCP Class ID
/showclassid
Отображает DHCP Class ID
msg – запускает отправку сообщения указанному удаленному пользователю.
mstsc – запускает подключение к удаленному рабочему столу.
net view – показывает имя компьютера в текущем домене.
netsh – сетевое служебное приложение, позволяет локально или удаленно отображать или изменять конфигурацию сети компьютера. Программу можно запустить как в командной строке, так и в Windows PowerShell.
shadow – удаленное управление активным сеансом другого пользователя.
netstat – показывает состояние TCP-подключений и портов, на которых компьютер прослушивается, статистику Ethernet, таблицу маршрутизации IP-адресов, а без использования параметров команда отображает лишь активные TCP-подключения.
nbtstat – отображает статистику протокола и активных подключений TCP/IP посредством NetBT, причем как для локального, так и для удаленных компьютеров. При использовании без параметров эта команда выдает только справочные данные.
nslookup – выдает сведения, используемые для диагностики DNS. Чаще всего используется для определения IP-адреса по доменному имени.
tracert – производит трассировку. Если говорить проще – показывает путь, по которому проходят пакеты данных при отправке из вашего компьютера в конечную точку. При этом показывает последовательно каждый этап маршрута, позволяет узнать, на каком этапе происходят крупные потери или задержки.
pathping – точно так же, как и tracert, выполняет трассировку, дополнительно предоставляя сведения о задержке сети и сетевой утрате в промежуточных узлах.
ping – проверяет подключение и доступность указанного компьютера на уровне TCP/IP. В результате показывается сообщения с информацией о получении соответствующих ответов, а также время кругового пути. Это основная команда для проверки и устранения неполадок подключения, доступности и разрешения имен.
qappsrv – показывает полный список доступных удаленных рабочих столов в текущем сеансе.
quser – выдает информацию о пользовательских сеансах на удаленный рабочий стол в текущем сеансе. Команда позволяет определить, вошел ли конкретный пользователь на конкретный сервер узла сеансов. После сканирования выдаются следующие сведения:
rpcinfo – выводится список программ, установленных на удаленных компьютерах.
rasphone – инструмент для управления сетевыми подключениями, в основном используется на модемных линиях или в PPPOE, PPPTP.
route – можно просмотреть и изменить записи в локальной таблице маршрутизации IP. Если использовать без параметров, команда даст справку.
telnet – осуществление подключения по протоколу telnet. Позволяет проверять доступность портов. По умолчанию он не установлен, поэтому такая команда не всегда может сработать.
Работа в системе
at – запрос отвечает за планирование выполнения команд или запуска приложений в заданное время. Используется только совместно со службой расписания и с правами администратора.
compmgmt.msc – эта команда откроет инструмент «Управление компьютером», в котором можно просмотреть запланированные задачи, события, общие папки и пользователей. Также там есть инструмент для управления дисками, еще отображается раздел со списком служб и приложений.
control – запускает «Панель управления». Есть множество ее подвидов, позволяющих запустить окна для управления отдельными элементами. Среди них актуальными будут следующие:
devmgmt.msc – команда запускает «Диспетчер устройств», утилиту для управления основными аппаратными и программными компонентами.
explorer – позволяет открыть «Проводник Windows».
logman – создает сеансы трассировки событий, управляет ими и журналами производительности, а также поддерживает многие функции мониторинга системы из командной строки.
mmc – открывает определенную консоль MMC, можно в режиме автора и с указанием версии – 32 или 64-разрядной.
mode – показывает состояние системы, изменяет параметры, перестраивает порты или устройства. При задаче команды без параметров отображаются все управляемые атрибуты консоли и доступные устройства com.
msconfig – открывает инструмент для тонкой настройки системы, управления загрузкой и автозагрузкой, а также активными службами и сервисами.
msinfo32 – запускает утилиту «Сведения о системе», где отображен полный список установленного оборудования, а также системных и программных компонентов на локальном компьютере.
PowerShell – запуск нового сеанса для утилиты Windows PowerShell через окно командной строки.
PowerShell_ise – запускает сеанс в интегрированной среде сценариев Windows PowerShell (ISE). В таком режиме можно применять необязательные настройки для открытия некоторых файлов, проводить запуск без определенного профиля и так далее.
regedit – открывается редактора реестра.
secedit – анализируется и настраивается безопасность системы, текущая конфигурация сравнивается с актуальными шаблонами безопасности.
services.msc – открывается консоль для работы со службами и сервисами.
shutdown – выключение/перезагрузка локальных или удаленных компьютеров. Для той или иной процедуры стоит использовать соответствующий параметр.
systeminfo – выдача подробной информации о конфигурации компьютера и его операционной системы, включая сведения о безопасности, идентификатор продукта и свойства оборудования.
wuauclt – открывает раздел параметров «Обновления Windows».
Работа с локальными и виртуальными жесткими дисками
attach vdisk – подключает виртуальный жесткий диск с дальнейшим его отображением в меню главного компьютера в качестве локального. Для отключения его отображения должна быть использована команда detach vdisk.
chkdsk – этот запрос запускает утилиту для проверки дисков и метаданных на наличие логических и физических ошибок. При использовании без параметров лишь отображает состояние и не исправляет ошибки. Для устранения ошибок следует дополнительно вводить параметр /f. Параметр /r запустит поиск поврежденных секторов.
cleanmgr – запускает инструмент «Очистка диска», отвечающий за удаление ненужных файлов с жесткого диска компьютера. Введя отдельные параметры, можно настроить утилиту на стирание временных файлов, кэша интернета, а также провести перезапуск файлов bin.
convert – преобразует диск из одного формата в другой.
defrag – выполняет дефрагментацию файловой системы. Определяет также степень фрагментации диска, объединяет файлы для повышения производительности ОС.
dfrg.msc – с помощью этого запроса включается дефрагментатор дисков.
diskpart – открывает одноименный интерпретатор, позволяющий управлять подключенными локальными дисками, разделами, томами компьютера и виртуальными дисками тоже.
expand vdisk – расширяет созданный виртуальный жесткий диск до определенного размера, указанного в параметрах. Предварительно для выполнения данной команды рекомендуется отключить VHD.
ntbackup – запускает из командной строки резервное копирование и восстановление компьютера и файлов.
recover – проводится восстановление данных, доступных для чтения, с поврежденного или дефектного диска. Эта команда считывает файл и сектор, а затем восстанавливает данные.
sfc /scannow – выполняется проверка целостности всех защищенных системных файлов и по возможности восстановление файлов с проблемами.
Работа с файлами и папками
copy – копирует нужный файл из исходного расположение в другое.
del – удаляет один или несколько файлов. Есть аналогичная – erase. Используя определенные параметры, можно активировать запрос для подтверждения удаления, также запустить принудительное стирание файлов, доступных только для чтения.
expand – разархивирует один или несколько сжатых файлов.
fsmgmt.msc – включается консоль с общими папками в системе.
manage-bde – активирует и дезактивирует BitLocker, задает способы разблокировки, обновляет методы восстановления и разблокирует защищенные диски.
md – создает новый каталог или подкаталог. Похожая команда – это mkdir.
mqbkup – запускает инструмент для архивирования и резервного копирования сообщений MSMQ, параметров реестра на запоминающее устройство, также проводит восстановление ранее сохраненных сообщений и параметров.
Интерфейс командной строки
cls – проводит очистку командной строки.
color – меняет цвет и фон утилиты.
exit – закрывает командную строку.
help – отображает полный список команд, доступных для задействования в данном инструменте.
Заключение
Как видно, команды для Windows Server практически ничем не отличаются от тех, что используются в обычной версии системы. Разница состоит лишь в задачах – для серверной версии в ход обычно идут несколько иные запросы – команды для командной строки в Windows Server больше акцентированы на работу с подключениями и дисками.
Источник
Windows server посмотреть подключенных пользователей
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами разобрали, как сделать таймер выключения компьютера. Сегодня я хочу вас научить определять ID (Уникальный идентификатор) и номер сеанса пользователя на терминальных столах. Уметь, это нужно, для решения ситуаций, когда такой сеанс зависает и пользователь не может работать и переключиться на другую ноду RDS фермы, так как посредники подключений видят, что у него есть активная сессия. Думаю. что мой опыт, описанный в статье окажется вам полезным.
Что такое ID сеанса
Когда пользователь входит на компьютер с включенными службами удаленных рабочих столов, для него запускается сеанс. Каждый сеанс идентифицируется уникальным идентификатором сеанса. Каждый такой сеанс ассоциируется с интерактивной оконной станцией (interactive window station) «WinSta0»; поэтому каждый сеанс связан со своей собственной оконной станцией «WinSta0». Для каждой оконной станции имеется три стандартных рабочих стола: рабочий стол Winlogon, рабочий стол с заставкой и интерактивный рабочий стол.
Когда пользователь выходит с сервера удаленных рабочих столов (RDC), то сеанс, который клиент имеет на сервере узла сеансов удаленных рабочих столов (ранее назывался сервер терминалов), удаляется. Однако если сеанс консоли служб удаленных рабочих столов не смог завершится, то оконные станции, связанные с сеансом консоли, не удаляются, все процессы продолжают висеть. Это влияет на поведение приложений в среде служб удаленных рабочих столов, когда они настроены для работы в контексте безопасности интерактивного пользователя, также известного как режим активации объекта «RunAs Interactive User». Вот тогда, то и выявляется ID сеанса, чтобы его грохнуть.
Методы определения ID сеанса пользователя RDP
Существует несколько методов, которые могут вам помочь определить номер сеанса и его ID на терминальных серверах и RDS фермах.
Определение ID сеанса через quser
И так у меня есть RDS ферма состоящая из хостов с Windows Server 2012 R2, в базе Active Directory есть пользователь Барбоскин Геннадий Викторович. Данный пользователь вошел на терминал, работал, но по какой-то причине он завис и чтобы корректно разлогинить его сессию нам необходимо вычислить ее номер сеанса и уникальный идентификатор. Попробуем это выполнить через утилиту quser.
Вы можете использовать эту команду, чтобы выяснить, вошел ли конкретный пользователь на конкретный сервер Session Host. Команда возвращает:
Откройте командную строку cmd, лучше в режиме администратора и введите команду:
У вас будет выведен список всех текущих сессий на вашем терминальном сервере.Если пользователей много, то сложно сразу найти нужного, так как все идет не по алфавиту. Ранее я вам показывал, как фильтровать вывод результатов в командной строке Windows, там была команда findstr. Вводим команду:
В итоге я вижу, что номер сеанса rdp-tcp#24 и его ID 45, статус активно, это означает, что человек работает. Видно его время входа. Тот же результат можно получить и вот такой конструкцией:
Вы наверное спросите, почему сразу так не ввели, все просто, я лишь еще раз напомнил вам, о фильтрации в cmd, которая работает почти с любой командой, так сказать универсальный ключ.
Так же есть возможность запустить для конкретного сервера, для этого есть ключ /server
Определение ID сеанса через qwinsta
Для того, чтобы получить номер сеанса с ID, введите в командной строке:
Утилита выведет список всех авторизованных в системе пользователей, из полезной информации вы получите:
Чтобы вывести определенного пользователя, введите команду:
Как узнать id пользователя через диспетчер задач
Покажу и графический метод. который позволяет вам получать ID и номер сеанса на терминальных столах. Откройте диспетчер задач и перейдите на вкладку «Пользователи». У вас будет отображен список сотрудников. Тут для удобства их можно выстроить по алфавиту. Все хорошо, но нет ID и номера сеанса.
Чтобы включить отображение нужных нам столбцов, вам необходимо щелкнуть правым кликом на область с именем столбцов. В контекстном меню поставьте галки на «Код» и «Сеанс».
В итоге у вас теперь появилась возможность легко просматривать идентификационный код сеанса и имя сеанса, в моем примере, это RDP-Tcp#24.
Как узнать id пользователя через query session
Получение информации о сеансе через Get-TerminalSession
PowerShell не зря называют могучим, он поистине может все. К сожалению родных командлетов, которые бы заменяли утилиты командной строки нет, но есть возможность установить дополнительные, из репозитория. Речь пойдет, о сборнике «PowerShell Community Extensions» (Pscx 3.2.2). Данный сборник включаем в себя огромный комплекс командлетов, нас будет интересовать Get-TerminalSession.
Установка «PowerShell Community Extensions» очень проста и выполняется одной командой. Перед установкой Pscx 3.2.2, вам необходимо обновить ваш PowerShell хотя бы до версии 5.1. Далее запускаете оболочку PowerShell от имени администратора и вводите команду:
Про сам сборник вы можете почитать по ссылке (https://www.powershellgallery.com/packages/Pscx/3.2.2)
Получение информации о сеансе через Get-TSSession
Модуль PSTerminalServices, так же позволяет взаимодействовать с терминальными профилями В состав PSTerminalServices входят вот такие командлеты:
Скачать PSTerminalServices вы можете по ссылке https://github.com/imseandavis/PSTerminalServices, там будет MSI пакет, если его уже по какой-то причине не будет, то можете загрузить PSTerminalServices по ссылке слева.
Установка PSTerminalServices проста до безобразия. На первом экране нажимаем «Next».
При необходимости изменяем путь установки данного модуля.
Для продолжения нажимаем «Install»
Установка модуля завершена.
Теперь, чтобы модуль запускался вам нужно разрешить запуск скриптов, напоминаю, что для текущего пользователя, это можно сделать вот так:
Далее проверьте командой, что модуль PSTerminalServices доступен в системе, выполните:
Далее импортируем модуль и запускаем его:
На выходе вы получаете информацию, о всех ваших сеансах пользователей на терминальном столе
Источник