В Active Directory, если вы хотите запретить пользователю вход в систему, вы можете отключить его учетную запись или просто сбросить пароль. Однако, если у вас есть пользователь, который уже вошел в систему на рабочей станции, и вам нужно как можно быстрее запретить ему доступ к каким-либо ресурсам - как вы это делаете? Я говорю о чрезвычайной ситуации, в которой работник немедленно увольняется, и существует риск того, что он нанесет ущерб, если его немедленно не заблокируют в сети.
Несколько дней назад я столкнулся с подобным случаем. Сначала я не знал, как действовать. Предотвратить доступ пользователей к общим сетевым ресурсам легко, но этого недостаточно. В конце концов я выключил целевой компьютер с помощью Stop-Computer -ComputerName <name> -Force
Командлет PowerShell, и в моем случае это решило проблему. Однако в некоторых случаях это может быть не лучший выбор, например, если пользователь, которого вам нужно отключить, вошел в систему на нескольких рабочих станциях или на компьютере, который предоставляет важную услугу, и вы просто не можете его отключить.
Какое наилучшее решение для удаленного принудительного немедленного выхода пользователя из системы со всех рабочих станций? Возможно ли это вообще в Active Directory?
Лучшее решение: охранник проводит человека ...
Второе лучшее решение:
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
Не полностью основан на 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 на удаленной машине, чтобы найти его.
Вы можете заблокировать сеанс пользователя удаленно с помощью 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-адреса злонамеренного пользователя.
Просто измените часы входа на все часы в свойствах пользователя. Это немедленно выведет их из системы, где бы они ни находились.