Dans Active Directory, si vous souhaitez empêcher un utilisateur de se connecter, vous pouvez désactiver son compte ou simplement réinitialiser son mot de passe. Cependant, si un utilisateur est déjà connecté à un poste de travail et que vous devez l'empêcher d'accéder aux ressources le plus rapidement possible - comment procédez-vous? Je parle d'une situation d'urgence dans laquelle un travailleur est licencié avec effet immédiat et il y a un risque qu'il fasse des ravages s'il n'est pas immédiatement verrouillé du réseau.
Il y a quelques jours, j'ai été confronté à un cas similaire. Au début, je ne savais pas trop comment agir. Il est facile d'empêcher l'accès des utilisateurs aux partages réseau, mais cela ne suffit pas. Finalement, j'ai éteint l'ordinateur cible avec le Stop-Computer -ComputerName <name> -Force
Applet de commande PowerShell et dans mon cas, cela a résolu le problème. Cependant, dans certains cas, cela peut ne pas être le meilleur choix, par exemple si l'utilisateur que vous devez couper est connecté sur plusieurs postes de travail ou sur un ordinateur qui fournit un service important et que vous ne pouvez tout simplement pas le désactiver.
Quelle est la meilleure solution possible pour forcer à distance une déconnexion immédiate de l'utilisateur de tous les postes de travail? Est-ce même possible dans Active Directory?
Meilleure solution: un gardien de sécurité escorte la personne ...
Deuxième meilleure solution:
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.
J'ai écrit un script batch rudimentaire pour cela. J'ai besoin de unixtools
dans le chemin ainsi que 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
Pas entièrement basé sur AD, mais devrait faire ce que vous voulez.
Désactiver ou expirer le compte
import-module activedirectory
set-aduser -identity "username" -accountexperationdate "12:09 pm"
ou
set-aduser -identity "username" -enabled $false
Déconnectez ensuite l'utilisateur de sa machine
shutdown -m "\\computername" -l
Une autre façon de déconnecter l'utilisateur consiste à utiliser un utilitaire Windows intégré, à partir d'une invite de commande administrative
logoff 1 /SEVER:computername
Cela déconnecte l'ID de session 1 de l'ordinateur distant. Si vous ne connaissez pas l'ID de session (1 par défaut), vous pouvez utiliser quser sur la machine distante pour le trouver.
Vous pouvez verrouiller la session de l'utilisateur à distance avec wmic:
1 - Tout d'abord, changez le mot de passe utilisateur:
C:\> wmic /node:[IPaddr] /user:[Admin] /password:[password] process call
create "Net User [user] [NewPassword]"
2 - Ensuite, désactivez le compte:
C:\> wmic /node:[IPaddr] /user:[Admin] /password:[password] process call
create "Net User [user] /active:no"
3 - Ensuite, déconnectez la session utilisateur:
C:\> wmic /node:[IPaddr] /user:[Admin] /password:[password] process call
create "tsdiscon"
Cela a une valeur ajoutée, car vous ne perdrez pas la session utilisateur en cours et donc lorsque vous déverrouillerez les postes de travail, vous pourrez voir s'il essayait de faire quelque chose de méchant avant d'être escorté jusqu'à la porte.
Tous les crédits à Command Line Kung Fu Blog . Il y a un tas de choses folles liées à la sécurité/criminalistique là-dedans!
MISE À JOUR: Les deux premières étapes sont destinées aux utilisateurs locaux, dans un environnement Active Directory est en fait plus facile, désactivez le compte et modifiez le mot de passe dans AD, puis exécutez la 3e commande par rapport à l'adresse IP de l'utilisateur malveillant.
Modifiez simplement les heures d'ouverture de session en ouverture de session refusée pour toutes les heures dans les propriétés de l'utilisateur. Cela les déconnectera immédiatement de l'endroit où ils sont connectés.