Frage Erzwingen der sofortigen Abmeldung des authentifizierten Benutzers (Notfall)


Wenn Sie in Active Directory verhindern möchten, dass sich ein Benutzer anmeldet, können Sie entweder sein Konto deaktivieren oder einfach sein Passwort zurücksetzen. Wenn Sie jedoch einen Benutzer haben, der bereits an einer Arbeitsstation angemeldet ist, und Sie so schnell wie möglich daran hindern müssen, auf Ressourcen zuzugreifen, wie machen Sie das? Ich spreche von einer Notfallsituation, in der ein Arbeiter mit sofortiger Wirkung entlassen wird, und es besteht die Gefahr, dass er Unheil anrichtet, wenn er nicht sofort aus dem Netz ausgesperrt wird.

Vor ein paar Tagen war ich mit einem ähnlichen Fall konfrontiert. Am Anfang war ich mir nicht sicher, wie ich mich verhalten sollte. Das Verhindern des Benutzerzugriffs auf Netzwerkfreigaben ist einfach, aber das ist nicht genug. Irgendwann habe ich den Zielcomputer mit dem ausgeschaltet Stop-Computer -ComputerName <name> -Force PowerShell-Cmdlet und in meinem Fall hat dies das Problem gelöst. In einigen Fällen ist dies jedoch nicht die beste Wahl, z. B. wenn der Benutzer, den Sie abschalten müssen, auf mehreren Arbeitsstationen oder auf einem Computer angemeldet ist, der einen wichtigen Dienst bereitstellt und Sie ihn nicht einfach ausschalten können.

Was ist die bestmögliche Lösung, um eine sofortige Benutzerabmeldung von allen Arbeitsstationen per Fernzugriff zu erzwingen? Ist das in Active Directory überhaupt möglich?


24
2018-02-14 16:40


Ursprung


Gute Frage, und ich bin daran interessiert, die Antworten zu sehen. Aber würde der gekündigte Mitarbeiter in einer solchen Situation nicht zu 100% von einer Person begleitet werden, wenn er die Nachricht von seiner Kündigung erhält, bis er aus dem Gebäude eskortiert wird? - EEAA
Ja, sicher sollten sie sein. Ich bin jedoch daran interessiert, dieses Problem Active Directory-weise zu lösen :) - Erathiel
Sicherheit anrufen und sie physisch zum Aufenthaltsort der Person bringen und sie entfernen lassen? Wenn sie sich außerhalb Ihres Netzwerks befinden, blockieren Sie sie auf Ihrer Firewall? Verwenden Sie Ihr Powershell-Skript, um alle Prozesse auf allen Computern zu beenden, die mit diesem Benutzerkonto ausgeführt werden. - Zoredache


Antworten:


Beste Lösung: Ein Wachmann begleitet die Person ...

Zweitbeste Lösung:

  1. Überprüfen Sie zuerst die Sitzungsnummer mit qwinsta: QWINSTA / Server: Computername
  2. Notieren Sie die Sitzungs-ID.
  3. Verwenden Sie dann den Abmeldungsbefehl: LOGOFF sessionID / server: Computername.
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.

Ich habe dazu ein rudimentäres Batch-Skript geschrieben. Ich brauche etwas unixtools auf dem Weg sowie 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

19
2018-02-14 18:07



Ist es möglich, diese beiden Befehle zu einer automatisierten Batch / Powershell-Datei zu kombinieren? Es könnte sehr nützlich sein, einfach ein schnelles Skript auszuführen, um alle Sitzungen abzumelden. - EtherDragon
Ist es möglich, eine Liste aller Computer zu erhalten, mit denen ein Benutzer verbunden ist? - NothingsImpossible
@NothingsImpossible - Ich finde das heraus, indem ich meinen Dateiserver anschaue, da die Benutzer ein Profil auf einen Server umgeleitet haben, ich suche dort nach offenen Dateifreigaben. - ETL
@NothingsImpossible tendiere ich dazu, das zu erreichen psloggedon - BE77Y


Nicht vollständig AD basiert, aber sollte tun, was Sie wollen.

Deaktivieren oder verfallen Sie das Konto

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

oder

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

Melden Sie den Benutzer dann von seinem Computer ab

shutdown -m "\\computername" -l

Eine andere Möglichkeit, den Benutzer abzumelden, ist die Verwendung eines integrierten Windows-Dienstprogramms über eine administrative Eingabeaufforderung

logoff 1 /SEVER:computername

Dadurch wird die Sitzungs-ID 1 vom Remotecomputer abgemeldet. Wenn Sie die Sitzungs-ID nicht kennen (1 ist Standard), können Sie quser auf dem Remote-Computer verwenden, um sie zu finden.


5
2018-02-14 17:12



Das wird die Maschine herunterfahren, den Benutzer nicht abmelden, dachte, was die Frage war. - slybloty
Bitte versteh mich nicht falsch, aber deine Antwort ist genau das, was ich nicht wollte und ich habe alles in meine Frage aufgenommen: das Deaktivieren / Verfallen des Accounts oder das Ändern des Passworts erzwingt keine Abmeldung des Benutzers, es verhindert lediglich, dass sie sich einloggen nützt in dem im OP beschriebenen Fall nichts. - Erathiel
Das shutdown Befehl standardmäßig nicht eigentlich heruntergefahren, aber Meldet den Benutzer ab. - Michael Hampton♦
Fügen Sie eine alternative Methode hinzu, um den Benutzer abzumelden, lassen Sie mich wissen, ob dies mehr mit dem übereinstimmt, wonach Sie suchen. Edit: Habe ETLs Antwort nicht gesehen, also gab er mir +1 für den Schlag gegen mich. - David V
Richtlinie bei meiner Arbeit geht normalerweise so: Person wird zu einem "Meeting" (Kündigung) aufgerufen, während in der Besprechung das Konto deaktiviert ist und die Sitzung remote abgemeldet wurde (auf Desktops sind alle gesicherten VNC-Server installiert). - Avery Payne


Sie können die Sitzung des Benutzers remote mit wmic sperren:

1 - Ändern Sie zuerst das Benutzerpasswort:

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

2 - Deaktivieren Sie dann das Konto:

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

3 - Trennen Sie dann die Benutzersitzung:

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

Dies hat einen zusätzlichen Wert, da Sie die aktuelle Benutzersitzung nicht verlieren und daher, wenn Sie die Arbeitsstationen entsperren, können Sie sehen, ob er etwas Böses versucht hat, bevor er zur Tür geleitet wurde.

Alle Kredite an Befehlszeile Kung Fu Blog. Da sind eine Menge verrückter Sachen, die sich auf Sicherheit und Forensik beziehen.

AKTUALISIEREN: Die ersten beiden Schritte sind für lokale Benutzer gedacht, in einer Active Directory-Umgebung ist es tatsächlich einfacher, deaktivieren Sie das Konto und ändern Sie das Kennwort in AD und führen Sie dann den 3. Befehl gegen die böswillige Benutzer-IP-Adresse.


4
2018-02-14 22:04



Leider der Befehl wmic..."tsdiscon"  funktioniert nur auf XP. In Vista + kann dieser Befehl die Konsolensitzung nicht trennen. - Twisty Impersonator


Ändern Sie in den Benutzereigenschaften die Anmeldestunden nur für die Anmeldung, die für alle Stunden verweigert wird. Das wird sie sofort dort abmelden, wo sie gerade eingeloggt sind.


0
2018-05-25 16:47