С Новым годом! Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.60/287: Рейтинг темы: голосов - 287, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 02.02.2013
Сообщений: 38

Выполнить LOGOFF для всех пользователей, кроме себя

03.02.2013, 00:05. Показов 56585. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Решил попросить помощи экспертов, так как не могу находить ответ на мой вопрос нигде...

Задача такова:

Выполнить "Выход из Системы" другим учетным записям а свою учетку не трогать. Вот например на данном скриншоте:


Как вы видите здесь 2 аналогические учетки под именем "test1". Одна активная ( моя ), другая неактивная. Возможно ли программно выполнить Log Off всех аналогических учетках кроме своей активной? Помогите пожалуйста разобраться
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.02.2013, 00:05
Ответы с готовыми решениями:

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

Число совершенно,если она равна сумме всех своих делителей кроме самого себя
Число совершенно,если она равна сумме всех своих делителей кроме самого себя. Пример :6=1+2+3 найдите все совершенные числа от 1 до 1000 и...

Как вывести всех пользователей, привязанных к роли, кроме текущего (того, кто тоже в этой роли)?
Есть роль User (identity).Текущий пользователь заходит в приложение и видит список всех пользователей в роли User, выведенных на экран,...

42
5025 / 1054 / 147
Регистрация: 29.01.2013
Сообщений: 6,188
03.02.2013, 01:41
Конечно, возможно, но ваша учётная запись должна обладать правами администратора. сомневаюсь, что это возможно средствами командной строки, но я её довольно плохо знаю.
1
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
03.02.2013, 14:02
Цитата Сообщение от Alli_Lupin Посмотреть сообщение
сомневаюсь, что это возможно средствами командной строки, но я её довольно плохо знаю.
Я ее довольно неплохо знаю)) , но про исполнение команд другим учеткам не слышал
1
5025 / 1054 / 147
Регистрация: 29.01.2013
Сообщений: 6,188
03.02.2013, 14:09
Скорее всего потому, что в винде этого нет. но вам не надо исполнять команду от другого имени.
Помните, в диспетчере задач есть вкладка "Пользователи"? Вот там, если кликнуть ПКМ по пользователю, появится пунктик "Выход из системы". Средствами VBS это точно можно сделать.
1
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
03.02.2013, 15:03
Попробуйте так:
Bash
1
2
3
4
5
6
7
@echo off
SetLocal enabledelayedexpansion
 
for /f "delims=" %%a in ('dir/b/ad-h "%userprofile%\..\*"^|findstr/ixvc:"All Users"') do (
if /i not "%%a"=="%UserName%" taskkill /fi "UserName eq %%a" /f
)
pause
Добавлено через 33 минуты
Нагуглил до кучи oldcmp
2
1 / 1 / 0
Регистрация: 02.02.2013
Сообщений: 38
22.02.2013, 02:59  [ТС]
К сожалению скрипт не работает, а oldcmp используется для удаления старых учеток, я не отключения от компьютера...

Добавлено через 35 минут
нашел ответ в Google,

http://support.microsoft.com/kb/259436/en-us

Но этот скрипт выполняет Log Off всех пользователей, а мне нужно чтобы моя осталась активной. Есть возможность определить личную учетку?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
22.02.2013, 03:08
Bash
1
2
3
@echo off
for /f "skip=2 tokens=2,3" %%a in ('query session') DO if "%%a" neq "%username%" logoff %%b
pause>nul
1
1 / 1 / 0
Регистрация: 02.02.2013
Сообщений: 38
22.02.2013, 18:11  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
Bash
1
2
3
@echo off
for /f "skip=2 tokens=2,3" %%a in ('query session') DO if "%%a" neq "%username%" logoff %%b
pause>nul
не работает...

Сеанс Диск не найден
Сеанс Диск не найден
Сеанс Подключено не найден
Сеанс Прием не найден
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
22.02.2013, 19:01
Версия утилиты отличается. У меня Windows 7.
Нужен листинг файла query.log:
Bash
1
query session>c:\query.log
1
1 / 1 / 0
Регистрация: 02.02.2013
Сообщений: 38
22.02.2013, 19:14  [ТС]
хм, и так не работает... Можно как-то создавать генеральный скрипт для всех версии? Ну чтобы по очереди пробовал отключать с версиями от WinServer 2003 и выше. И если можно напишите скрипт полностью, а то я не очень в батниках)
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
22.02.2013, 20:42
Так ничего и не должно работать. Это для меня скрипт. Мне нужен этот файл.
Он должен отработать и создать вот здесь: c:\query.log или укажите другое место (корень диска C может быть защищен от записи без повышенных прав).

Озвучте версию операционной системы...

Добавлено через 58 секунд
Цитата Сообщение от Slackerok Посмотреть сообщение
Можно как-то создавать генеральный скрипт для всех версии
Можно, но нужно увидеть, чем отличается Ваша версия от моей.
1
1 / 1 / 0
Регистрация: 02.02.2013
Сообщений: 38
22.02.2013, 21:51  [ТС]
Скрипт не создал такого файла на диске C. Вот с этим скриптом работает на всех версиях независимо от версии ОС:

Bash
1
2
3
query session >session.txt
for /f "skip=2 tokens=3," %%i in (session.txt) DO logoff %%i
del session.txt
Можно же сделать так чтобы активную твою учетку не отключало а пропускало?
Версия ОС: Windows Server 2008 R2 Standart
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
22.02.2013, 21:54
Удалите строку № 3 из скрипта.
Приложите сюда к посту файл session.txt (он будет создан рядом с батником).

Прикрепить так - "Расширенный режим", Скрепка.
1
1 / 1 / 0
Регистрация: 02.02.2013
Сообщений: 38
22.02.2013, 22:54  [ТС]
В общем скрипт который я дал выше не работает когда моя активная учетка находится сверху, а неактивная снизу. Вот как на этом скрине:



Я думаю просто скрипт берет все по очереди и делает Log Off а когда доходит до моей учетки, сессия выполняет выход из системы вместе со скриптом, вследствии чего остаются остальные сессии.

А в session.txt вышли какие-то крякозябры =)
Вложения
Тип файла: txt session.txt (550 байт, 57 просмотров)
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
22.02.2013, 23:20
Попробуйте так:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@echo off
Setlocal EnableDelayedExpansion
 
::// Вариации: токен 1 или 2 - это имя пользователя; токен 2 или 3 - ID
for /f "skip=2 tokens=1-3" %%a in ('query session') DO (
  Call :FindToken "%%c"
  if !errorlevel!==0 (set "user=%%b"& set "ID=%%c") else (set "user=%%a"& set "ID=%%b")
  echo Found user=!user! ID=!ID!
  if "%username%" neq "!user!" (logoff !ID!& Echo user=!user! was log off.)
)
pause
Exit /B
 
:://Возвращает 1, если в токене № 3 есть нечисловые символы
:FindToken
echo.%~1|>nul findstr /R "[^0-9]"&& exit /B 1
exit /b 0
1
1 / 1 / 0
Регистрация: 02.02.2013
Сообщений: 38
22.02.2013, 23:51  [ТС]
Found user=Администратор ID=1
Не удалось выполнить выход для идентификатора сеанса 1, код ошибки 5
Ошибка [5]:Отказано в доступе.
user=Администратор was log off.
Found user=admin ID=2
Found user=admin ID=3
Found user=console ID=4
Не удалось выполнить выход для идентификатора сеанса 4, код ошибки 5
Ошибка [5]:Отказано в доступе.
user=console was log off.
Found user=rdp-tcp ID=65536
Не удалось выполнить выход для идентификатора сеанса 65536, код ошибки 5
Ошибка [5]:Отказано в доступе.
user=rdp-tcp was log off.
Для продолжения нажмите любую клавишу . . .
Не работает

У меня нету админских прав на терминале, но если мануально выключить аналоговые учетки ( в моем случае admin ) тогда все нормально. Мне просто нужно для автоматизации выключить все неактивные учетки, а мою оставить. Если уж Админискую учетку не убрать то пускай остается. Свои аналогические убрать бы...
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
23.02.2013, 00:05
Цитата Сообщение от Slackerok Посмотреть сообщение
но если мануально выключить аналоговые учетки ( в моем случае admin ) тогда все нормально.
Так admin - это же Вы сами себя отключаете. Для этого по сути прав на терминале и не нужно.

Чтобы других отключать конечно нужно ними обладать.

Мой код работает как и задумано.
1
1 / 1 / 0
Регистрация: 02.02.2013
Сообщений: 38
23.02.2013, 00:09  [ТС]
Да ваш код работает но вот вторую неактивную учетку по именем "admin" он не отключил. Смотрите скрин:

Выполнить LOGOFF для всех пользователей, кроме себя
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
23.02.2013, 00:24
Я пока с серверами на Вы.

Какую нужно отключать? 2 или 3 ?

.... 
>rdp-tcp#0admin2Активноrdpwd
 admin3Диск 
1
1 / 1 / 0
Регистрация: 02.02.2013
Сообщений: 38
23.02.2013, 00:28  [ТС]
3. Ведь она неактивная, но бывают случаи допустим 10 аналогических учеток оставленных незакрытыми, вот скрипт должен все мои аналогические убить кроме моей под которой я сижу в данном случае.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.02.2013, 00:28
Помогаю со студенческими работами здесь

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

Для группы пользователей закрыть доступ ко всем файлам , кроме их документов на терминальном сервере
Имеется терминальный сервер,требуется для группы пользователей закрыть доступ ко всем файлам , кроме их документов. Есть группа...

Сделать для всех текстов 12рх, кроме h1.h6
Сделал в начале * {font-size: 12px;}, но это ведь влияет на h1..h6. Подскажите что-нибудь, кроме javascript'а (так как я закинул в html/css...

Написать функцию, которая вычисляет количество всех атомов в списке(кроме NIL) с учетом всех подсписков всех уровней вложенности
Написать функцию, которая вычисляет количество всех атомов в списке(кроме NIL) с учетом всех подсписков всех уровней вложенности

Софт для очистки мусора (Temp,Cache) для всех пользователей
Здравствуйте! Ищу софт для очистки временных файлов, кеша браузеров, и другого мусора. Ccleaner, Advanced Sysytem Care, Glagy...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru