Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/225: Рейтинг темы: голосов - 225, средняя оценка - 4.92
 Аватар для DateMasamune
1 / 1 / 0
Регистрация: 23.12.2011
Сообщений: 5
1

Завершение сеансов удаленных пользователей

23.12.2011, 09:03. Показов 43126. Ответов 32
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем добрый день и с Наступающим всех!!!

Такой вопрос: Есть пользователи, которые логинятся на сервер(2008) с удаленных раб мест. После работы их сеансы продолжают висеть в статусе "Disconnected". Решил сделать батник который будет выпинывать пользователей кроме Администратора. Поискал в инете и на этом сайте, в итоге сделал вот, что:

Bash
1
2
3
query session >logoff.txt
FIND /V "Admin" logoff.txt >logoff2.txt
for /F"skip=2 tokens=3," %%i in (logoff2.txt) DO c:\Windows\System32\logoff.exe %%i
Но не робит. Мб это как то умнее делается без 2х вспомогательных файлов или с другой командой?
Буду рад любой помощи. Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.12.2011, 09:03
Ответы с готовыми решениями:

Завершение сеанса пользователей на терминальном сервере (RDP)
Помогите со скриптом, суть такая есть терминальный сервер, необходима завершать сессии по расписанию в час ночи, всех пользователей, кроме...

Закрытие удаленных сеансов и отключение учетных записей пользователей
Добрый, день есть необходимость сваять следующее по rdp подключаемся под неким пользователем (права пользователя удаленного рабочего...

Завершение сеансов всех пользователей и их программ в определенное время
Добрый день, коллеги, такой вопрос - если можно Как в windows server 2012R2 создать задание по закрытию всех пользователей и их программ...

32
 Аватар для Ris
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
23.12.2011, 12:23 2
А у вас сама команда query session "робит" ?
У меня такой не находит.
0
 Аватар для DateMasamune
1 / 1 / 0
Регистрация: 23.12.2011
Сообщений: 5
23.12.2011, 13:48  [ТС] 3
Да, работает. Записывает в файл сессии. Вот пример записи в файле:
Завершение сеансов удаленных пользователей


Если просто написать Logoff 3, то сессию закрывает, а в цикле не хочет.
Мб тогда подскажите, как мне скопировать с одного файла в другой лишь 1 столбец?
Тогда я с файла, что представил на рисунке скопирую столбец "ID" в новый текстовый файл,
а в нем переберу циклом все числа подставив их в logoff.
Или как мне при обходе файла циклом for, выгружать в другой файл только столбец "ID" в
каждой строке?
Заранее спасибо.
0
 Аватар для Ris
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
23.12.2011, 16:41 4
Bash
1
for /F"tokens=3 delims=[TAB_надо_прописать_в_батнике]" %%i in (logoff2.txt) DO (c:\Windows\System32\logoff.exe "%%i")
Мб так?
0
 Аватар для DateMasamune
1 / 1 / 0
Регистрация: 23.12.2011
Сообщений: 5
27.12.2011, 08:29  [ТС] 5
К сожалению не работает.
А "Мб тогда подскажите, как мне скопировать с одного файла в другой лишь 1 столбец?" сложно реализовать?
0
 Аватар для Ris
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
28.12.2011, 00:40 6
Киньте пример, в формате текстового файла (а не скрина), и скажите какой столбец надо в другой файл записать.
0
 Аватар для DateMasamune
1 / 1 / 0
Регистрация: 23.12.2011
Сообщений: 5
28.12.2011, 12:24  [ТС] 7
Только столбец "ID". Чтоб новый файл содержал только номера ID и все.logoff2.txt
1
 Аватар для Ris
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
29.12.2011, 18:37 8
Это блин, не столбец...здесь, то пустая строка первого столбца, то второго.

Добавлено через 18 минут
В частном случае можно попробовать такое подобие кода:
Bash
1
2
setlocal enabledelayedexpansion
for /f "tokens=2,3" %%i in ('query session ^| findstr /v /c:"Admin" ^| findstr /r /c:"[0-9]"') do ((if not "%%i"=="0" (set /a x=%%i&if not "!x!"=="0" (c:\Windows\System32\logoff.exe %%i)) else (c:\Windows\System32\logoff.exe %%i))&(if not "%%j"=="0" (set /a y=%%j&if not "!y!"=="0" (c:\Windows\System32\logoff.exe %%j)) else (c:\Windows\System32\logoff.exe %%j)))
1
887 / 189 / 16
Регистрация: 18.07.2011
Сообщений: 260
30.12.2011, 09:22 9
В частном случае можно сделать и так:
Bash
1
2
3
4
5
6
7
8
:: out_id.cmd
@echo off
del yourfile.txt
for /f "delims=`" %%S in (logoff2.txt) do (call :outid "%%S" >>yourfile.txt)
exit
:outid
set line=%~1
echo. %line:~42,4%
2
 Аватар для Ris
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
30.12.2011, 12:20 10
Тогда уж лучше так:
Bash
1
2
3
4
5
6
7
8
9
@echo off
for /f "delims=`" %%S in ('query session ^| findstr /V /c:"Admin"') do (call :outid "%%S")
exit
:outid
set line=%~1
if "%line:~44,2%"=="" exit /b
if "%line:~44,2%"=="ID" exit /b
if "%line:~44,1%"==" " ("C:\Windows\System32\logoff.exe" %line:~45,1%) else ("C:\Windows\System32\logoff.exe" %line:~44,2%)
exit /b
2
 Аватар для DateMasamune
1 / 1 / 0
Регистрация: 23.12.2011
Сообщений: 5
05.01.2012, 07:19  [ТС] 11
Большое спасибо, работает, плюсую за помощь).
0
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 10
01.06.2013, 12:19 12
Добрый день!
Отличный скрипт. Но я не могу добиться того, чтобы он выполнялся без запроса на подтверждение.
Суть задачи в том, чтобы скрипт выполнялся шедулером и завершал сессии всех пользователей.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18022 / 7725 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
01.06.2013, 12:24 13
Цитата Сообщение от rez0n Посмотреть сообщение
без запроса на подтверждение.
а что говорит?
0
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 10
01.06.2013, 15:59 14
Говорит следующее.
If you reset this session, all users using this protocol will be logged off,
Continue (n=no)?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18022 / 7725 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
01.06.2013, 16:19 15
Bash
1
echo Y| logoff
0
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 10
01.06.2013, 16:58 16
Аналогично.

Попробовал вставить как в конец скрипта, так и перед последним exit
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18022 / 7725 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
01.06.2013, 17:21 17
маленькую y пробовали?
И как у Вас теперь код выглядит?
0
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 10
01.06.2013, 17:24 18
Выглядит так.
Bash
1
2
3
4
5
6
7
8
9
10
@echo off
for /f "delims=`" %%S in ('query session ^| findstr /V /c:"support"') do (call :outid "%%S")
exit
:outid
set line=%~1
if "%line:~44,2%"=="" exit /b
if "%line:~44,2%"=="ID" exit /b
if "%line:~44,1%"==" " ("C:\Windows\System32\logoff.exe" %line:~45,1%) else ("C:\Windows\System32\logoff.exe" %line:~44,2%)
exit /b
echo Y| logoff
Пробовал и маленькой и без logoff. До и после последнего exit /b
Bash
1
2
3
4
echo Y| logoff
echo y| logoff
echo Y
echo y
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18022 / 7725 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
01.06.2013, 17:34 19
Тогда завершайте сначала сессии всех пользователей, а уже затем хоста: Выполнить LOGOFF для всех пользователей, кроме себя
0
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 10
01.06.2013, 17:40 20
В этой теме немного не то. И я не понял что Вы имели ввиду здесь "а уже затем хоста".
На самом деле - мне нужно выполнить logoff абсолютно для всех пользователей. Может это упростит задачу и сократит батник до 2х строк?
Взял за основу сабжевый скрипт, так как мою учетку не обязательно завершать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.06.2013, 17:40
Помогаю со студенческими работами здесь

Завершение сеансов польз-лей в файловой базе
Уважаемые знатоки, подскажите наиболее удобный способ принудительно завершать сеансы польз-лей с целью обновления базы (желательно...

Идентификация удаленных пользователей
Hi All! Есть процедура в БД, которая получает данные из локальных сетевых ресурсов от имени работающего пользователя. Соответственно...

Как сбросить авторизацию удаленных пользователей?
Не стану поднимать новую тему, так как вопрос тоже по авторизации: Пользователь авторизовался, зашел, работает. Я удаляю...

Невозможность подключиться к VPN для удаленных пользователей
Здравствуйте! У меня следующий вопрос: можно ли сделать так, чтобы при включенном VPN ко мне могли подключаться люди извне, из интернета? И...

Ограничить пользователей службы удаленных рабочих столов одним сеансом
Здравствуйте. Имеется NLB-кластер из 3-х терминальных серверов (балансировка нагрузки). "Посредником подключений к удаленному...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Winforstrap или красявый дизайн своими руками на HTML+JS+Winform­s
anomal6 04.03.2025
Сидел тут вечером ковырял проект на MAUI, и как же глупо создаются пакеты MSIX и система обновлений пакета публикации, но не об этом. Бывает нужен современный дизайн программы а писать на MAUI,. . .
Формат данных для симуляции физики, посредством распространённы­­­­­­­х не обученных моделей.
Hrethgir 04.03.2025
Что-то как-то снова потерялось, зато катангенсы закатангесились в одном сообщении. На днях писал, что планирую для работы апгрейдить (на этот раз удачно) девайс для работы (конкретно - здоровья для,. . .
Концепция variadic
CoderHuligan 04.03.2025
Мне не очень нравится (а кому это нравится?) что у нас есть отдельно компилятор, отдельно линковщик, причем со своим собственным командным языком. При этом усложнении надо знать помимо языка. . .
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class — два мощных инструмента для обуздания неизменяемых структур данных, каждый со своим уникальным подходом к решению этой задачи. История их появления весьма. . .
Создание производительны­­­х API с Java и gRPC
Wired 04.03.2025
В мире микросервисной разработки вопрос производительности часто становится краеугольным камнем. И хотя REST API давно завоевал сердца разработчиков своей простотой и интуитивностью, при высоких. . .
Что нового в JDK 24
Wired 04.03.2025
JDK 24 — это настоящий прорыв в эволюции Java, который кардинально меняет правила игры. В этом релизе разработчики Oracle наконец-то довели до ума множество критически важных улучшений в. . .
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Погружаясь в мир блокчейн-разработки на Java, разработчик получает доступ к внушительному арсеналу инструментов. В отличие от Solidity, который "заперт" в экосистеме Ethereum, Java предоставляет. . .
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru