Примусово негайний вихід користувача (аварійний випадок)


24

Якщо ви не хочете ввійти в систему в Active Directory, ви можете вимкнути його обліковий запис або просто скинути пароль. Однак якщо у вас є користувач, який уже увійшов на робочу станцію, і вам потрібно не допустити їх доступу до будь-яких ресурсів якомога швидше - як це зробити? Я кажу про надзвичайну ситуацію, в якій працівника звільняють з негайним наслідком, і є ризик, що вони загрожують хаосом, якщо вони не будуть негайно закриті з мережі.

Кілька днів тому я стикався з подібним випадком. Спочатку я не був впевнений, як діяти. Запобігти користувачеві доступ до мережевих спільних ресурсів легко, але цього недостатньо. Врешті-решт я вимкнув цільовий комп'ютер з Stop-Computer -ComputerName <name> -Forceкомандлетом PowerShell, і в моєму випадку це вирішило проблему. Однак у деяких випадках це може бути не найкращим вибором, скажімо, якщо користувач, якого потрібно відключити, увійшов на декілька робочих станцій або на комп'ютері, який надає важливу послугу, і ви просто не можете його вимкнути.

Що є найкращим можливим рішенням для віддаленого примусового виходу з негайного користувача з усіх робочих станцій? Це можливо навіть в Active Directory?


5
Добре запитання, і мені цікаво бачити відповіді. Однак, у такій ситуації, чи не закінчився б працівник, який закінчився, із супроводженням кадрів у 100% часу, коли вони отримують звістку про їхнє звільнення, доки їх не супроводжують із будівлі?
ЄЕАА

Так, звичайно, вони повинні бути. Мені, однак, цікаво вирішити цю проблему в Active Directory-мудрий :)
Ератьєль,

Зателефонуйте в службу безпеки та фізично перейдіть до місцезнаходження людини та видаліть їх? Якщо вони знаходяться за межами вашої мережі, заблокувати їх у брандмауері? Використовуйте свій скрипт повноважень, щоб знищити будь-які процеси на всіх своїх комп’ютерах, які працюють із цим обліковим записом користувачів.
Зоредаче

Відповіді:


20

Найкраще рішення: охоронець ескортує людину ...

Друге найкраще рішення:

  1. Спочатку перевірте номер сеансу за допомогою qwinsta: QWINSTA / сервер: ім'я комп’ютера
  2. Запишіть ідентифікатор сеансу.
  3. Потім скористайтеся командою виходу з системи: LOGOFF sessionID / сервер: ім'я комп'ютера.
C:\>qwinsta /?
Display information about Remote Desktop Sessions.

QUERY SESSION [sessionname | username | sessionid]
              [/SERVER:servername] [/MODE] [/FLOW] [/CONNECT] [/COUNTER] [/VM]

  sessionname         Identifies the session named sessionname.
  username            Identifies the session with user username.
  sessionid           Identifies the session with ID sessionid.
  /SERVER:servername  The server to be queried (default is current).
  /MODE               Display current line settings.
  /FLOW               Display current flow control settings.
  /CONNECT            Display current connect settings.
  /COUNTER            Display current Remote Desktop Services counters information.
  /VM                 Display information about sessions within virtual machines.


C:\>logoff /?
Terminates a session.

LOGOFF [sessionname | sessionid] [/SERVER:servername] [/V] [/VM]

  sessionname         The name of the session.
  sessionid           The ID of the session.
  /SERVER:servername  Specifies the Remote Desktop server containing the user
                      session to log off (default is current).
  /V                  Displays information about the actions performed.
  /VM                 Logs off a session on server or within virtual machine. The unique ID of the session needs to be specified.

Я написав для цього рудиментарний пакетний сценарій. Мені також потрібні деякі unixtoolsна шляху psexec.

@ECHO OFF
:: Script to log a user off a remote machine
::
:: Param 1: The machine
:: Param 2: The username

psexec \\%1 qwinsta | grep %2 | sed 's/console//' | awk '{print $2}' > %tmp%\sessionid.txt
set /p sessionid=< %tmp%\sessionid.txt
del /q %tmp%\sessionid.txt
psexec \\%1 logoff %sessionid% /v

2
Чи можливо комбінувати ці дві команди в автоматизований файл партії / повноважень? Це може бути дуже корисно просто запустити швидкий скрипт, щоб вийти з сеансу.
EtherDragon

1
Чи можливо отримати список усіх комп'ютерів, до яких підключений користувач?
NothingsImpossible

@NothingsImpossible - я знаходжу це, переглядаючи мій файловий сервер, оскільки користувачі переспрямовують профіль на сервер, я шукаю там відкриті сеанси спільного використання файлів.
ETL

@NothingsImpossible Я домагаюся цього, використовуючи psloggedon
BE77Y

5

Не на основі AD, але слід робити те, що хочеш.

Вимкнути або закінчити термін дії облікового запису

import-module activedirectory
set-aduser -identity "username" -accountexperationdate "12:09 pm"

або

set-aduser -identity "username" -enabled $false

Тоді вийдіть з комп'ютера з користувачем

shutdown -m "\\computername" -l

Ще один спосіб виходу з користувача - це використання вбудованої утиліти Windows з адміністративного командного рядка

logoff 1 /SEVER:computername

Це вимикає ідентифікатор сеансу 1 з віддаленого комп'ютера. Якщо ви не знаєте ідентифікатора сеансу (1 за замовчуванням), ви можете знайти quser проти віддаленої машини, щоб знайти його.


1
Це дозволить вимкнути машину, а не вийти з користувача, подумав, до чого і було питання.
slybloty

2
Будь ласка, не зрозумійте мене неправильно, але Ваша відповідь - це саме те, чого я не хотів, і я включив все, що у своєму запитанні: відключення / закінчення терміну дії облікового запису або зміна пароля не змушують користувачів виходити з системи, це просто заважає їм увійти в систему не приносить користі у випадку, описаному в ОП.
Ератьєль

3
shutdownКоманда за замовчуванням фактично не закрили, але журнали геть користувача .
Майкл Хемптон

Додано альтернативний метод для відключення користувача, повідомте мені, чи це більше схоже на те, що ви шукаєте. Редагувати: Не бачив відповіді ETL, тому дав йому +1 за побиття мене на удар.
Давид V

3
Політика в моїй роботі зазвичай йде так: людину викликають на "зустріч" (припинення), тоді як на нараді обліковий запис вимкнено, а сеанс віддалено вийшов (на всіх робочих столах встановлені захищені сервери VNC).
Евері Пейн

4

Ви можете заблокувати сеанс користувача віддалено за допомогою wmic:

1 - Спочатку змініть пароль користувача:

C:\> wmic /node:[IPaddr] /user:[Admin] /password:[password] process call
  create "net user [user] [NewPassword]"

2 - Потім вимкніть обліковий запис:

C:\> wmic /node:[IPaddr] /user:[Admin] /password:[password] process call
  create "net user [user] /active:no"

3 - Потім відключіть сеанс користувача:

C:\> wmic /node:[IPaddr] /user:[Admin] /password:[password] process call
  create "tsdiscon"

Це має додаткову цінність, оскільки ви не втратите поточний сеанс користувача, а отже, коли ви розблокуєте робочі станції, ви зможете побачити, чи намагався він зробити щось неприємне перед супроводом до дверей.

Усі кредити до блогу командного рядка кунг-фу . Там є купа шалених з питань безпеки / криміналістики речей!

ОНОВЛЕННЯ: Перші два кроки призначені для місцевих користувачів, в активному середовищі каталогів насправді простіше, вимкніть обліковий запис і змініть пароль в AD, а потім запустіть третю команду проти IP-адреси зловмисного користувача.


На жаль, команда wmic..."tsdiscon" працює лише на XP . У Vista + ця команда не може відключити сеанс консолі.
Я кажу, відновіть Моніку

0

Просто змініть години реєстрації на режим відхилення для всіх годин у користувальницьких властивостях. Це негайно вийде з них, де б вони не входили.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.