Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 7
1

Logoff в терминале для определенных пользователей

04.10.2021, 18:24. Показов 1578. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
нужно используя команду quser, сравнить имя учетной записи со списком.
Если имя совпадает, тогда нужно получить имя сеанса или id этого пользователя и
Записать в переменную для дальнейшего использования в команде logoff
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2021, 18:24
Ответы с готовыми решениями:

Disconnect / Logoff отключенных ЛОКАЛЬНЫХ пользователей из ПК
Добрый день коллеги, знатоки. в силу определенных сложностей и процессов, появилась задача, которую...

Выполнить LOGOFF для всех пользователей, кроме себя
Всем привет! Решил попросить помощи экспертов, так как не могу находить ответ на мой вопрос...

Отображение определенных филиалов для определенных пользователей в сводной таблице
Здравствуйте! Есть сводная таблица в которой есть колонка "Филиал". Мне нужно чтоб для...

LOGOFF пользователей по имени
Добрый день! Подскажите, пожалуйста, как выполнить LOGOFF всех пользователей, начинающихся на...

9
Покинул форум
3672 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
04.10.2021, 22:34 2
Список что из себя представляет? Имена пользователей в столбик? А может CSV в виде пары "имя - сервер"? Конкретизируйте, в противном случае можно предложить лишь следующий шаблон:
PowerShell
1
2
# пример получения id сессии
((quser | sls 'пользователь1').Line.Trim('>') -split '\s{2,}')[2]
Полученный id передаёте logoff.
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 7
04.10.2021, 22:59  [ТС] 3
Желательно из файла. Txt с построчными значениями имен пользователей
0
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
04.10.2021, 23:30 4
а если какой-то пользователь разными способами заходил, то локально то по rdp?
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 7
05.10.2021, 00:30  [ТС] 5
В данный момент интересует закрытие рдп сессии
0
1329 / 489 / 137
Регистрация: 20.02.2019
Сообщений: 2,451
Записей в блоге: 42
05.10.2021, 06:38 6
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[string[]]$firstRdpUsersList = [System.IO.File]::ReadLines('C:\TMP\users.txt')
 
[string[]]$quserOutput = . quser 
$quserOutput = [System.Linq.Enumerable]::Skip($quserOutput, 1)
[string[]]$secondRdpUsersList = $quserOutput.Foreach{
    $chanks = ($_ -split "\s+")
    if ($chanks[2].StartsWith("rdp")){
        $chanks[1]
    }
}
    
$IntersectUsersList = [System.Linq.Enumerable]::Intersect($firstRdpUsersList, $secondRdpUsersList)
 
foreach ($targetuser in $IntersectUsersList){
    DoSomethingTerrible($targetuser)
}
0
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 7
06.10.2021, 11:42  [ТС] 7
Немного не понял, в конце $IntersectUsersList принимает значение имени пользователя, а мне бы хотелось чтобы там было имя сеанса пользователя. Потому что по имени пользователя нельзя произвести logoff
0
1329 / 489 / 137
Регистрация: 20.02.2019
Сообщений: 2,451
Записей в блоге: 42
06.10.2021, 12:44 8
Лучший ответ Сообщение было отмечено Doktordoom1993 как решение

Решение

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using namespace System.Collections.Generic
 
class badUsersSession {
    [String]$UserName
    [string]$SessionName
}
[list[badUsersSession]]$BadUsersSessionList =[list[badUsersSession]]::new()
 
[string[]]$firstRdpUsersList = [System.IO.File]::ReadLines('C:\tmp\users.txt')
 
[string[]]$quserOutput = . quser 
 
$quserOutput = [System.Linq.Enumerable]::Skip($quserOutput, 1)
 
$quserOutput.Foreach{
    $chanks = ($_ -split "\s+")
    if ($chanks[2].StartsWith("rdp")){
        $BadUsersSessionList.Add(
            [badUsersSession]@{
                UserName = $chanks[1]
                SessionName = $chanks[2]
            }
        )
    }
}
 
$veryBadUsersSessionsList = $BadUsersSessionList.Where{$firstRdpUsersList -contains $_.UserName}.ForEach{$_.SessionName}
$veryBadUsersSessionsList
1
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 7
06.10.2021, 12:56  [ТС] 9
Спасибо очень помогло, а то я сам пытался разобраться, не получилось)
0
1329 / 489 / 137
Регистрация: 20.02.2019
Сообщений: 2,451
Записей в блоге: 42
07.10.2021, 06:56 10
наверное все таки вот так ...
PowerShell
1
2
$veryBadUsersSessionsList = $BadUsersSessionList.FindAll({param($x) $firstRdpUsersList -contains $x.UserName})
$veryBadUsersSessionsList.SessionName
Добавлено через 1 минуту
или так...

PowerShell
1
2
$veryBadUsersSessionsList = ($BadUsersSessionList.FindAll({param($x) $firstRdpUsersList -contains $x.UserName})).SessionName
$veryBadUsersSessionsList
0
07.10.2021, 06:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2021, 06:56
Помогаю со студенческими работами здесь

Logoff пользователей на "терминалке" с исключением по текстовому файлу
Добрый день, прошу помочь со скриптом на PowerShell нужно сделать "logoff" пользователей на...

Как блокировать https запросы для определенных пользователей?
Доброе времени суток! Нужно в организации настроить фильтры ограничений для доступа к внешним...

Забрать права у определенных пользователей для вложенных папок
Приветствую Вас, уважаемые участники форума. Есть такой батник: @echo off icacls "C:\temp"...

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

D-link DNS 320l ограничить доступ к определенным папкам для определенных пользователей
Доброго времени суток! На сетевом хранилище настроил FTP. Сотрудники в компании заходят на...

Как в терминале Ubuntu посмотреть список пользователей?
подскажыте пожалуста как, или прои помощи какой команды, можно просмотреть в терминале Ubuntu 9.04,...

Перебрасывание определённых пользователей на странички
Здравствуйте, в общем дело вот в чем, живу в общаге, и моим wi-fi пользуются некие товарищи, и не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru