Buộc người dùng xác thực đăng xuất ngay lập tức (trường hợp khẩn cấp)


24

Trong Active Directory nếu bạn muốn ngăn người dùng đăng nhập, bạn có thể vô hiệu hóa tài khoản của họ hoặc chỉ cần đặt lại mật khẩu của họ. Tuy nhiên, nếu bạn có một người dùng đã đăng nhập vào máy trạm và bạn cần ngăn họ truy cập bất kỳ tài nguyên nào càng nhanh càng tốt - làm thế nào để bạn làm điều đó? Tôi nói về một tình huống khẩn cấp trong đó một công nhân bị sa thải có hiệu lực ngay lập tức và có nguy cơ họ sẽ tàn phá nếu họ không bị khóa khỏi mạng ngay lập tức.

Vài ngày trước tôi đã phải đối mặt với một trường hợp tương tự. Lúc đầu tôi không biết phải hành động thế nào. Ngăn chặn người dùng truy cập vào chia sẻ mạng là dễ dàng nhưng điều này là không đủ. Cuối cùng, tôi đã tắt máy tính mục tiêu bằng Stop-Computer -ComputerName <name> -Forcelệnh ghép ngắn PowerShell và trong trường hợp của tôi, điều này đã giải quyết được vấn đề. Tuy nhiên, trong một số trường hợp, đây có thể không phải là lựa chọn tốt nhất, giả sử nếu người dùng bạn cần cắt đăng nhập vào một số máy trạm hoặc trên máy tính cung cấp dịch vụ quan trọng và bạn không thể tắt nó.

Giải pháp tốt nhất có thể để từ xa đăng xuất người dùng ngay lập tức từ tất cả các máy trạm là gì? Điều này thậm chí có thể trong Active Directory?


5
Câu hỏi hay, và tôi thích xem câu trả lời. Tuy nhiên, trong tình huống như vậy, nhân viên bị chấm dứt sẽ được hộ tống nhân sự 100% thời gian kể từ khi họ nhận được tin về việc chấm dứt cho đến khi họ được hộ tống khỏi tòa nhà?
EEAA

Vâng, chắc chắn họ nên được. Tuy nhiên, tôi quan tâm đến việc giải quyết vấn đề này Active Directory-khôn ngoan :)
Erathiel

Gọi bảo mật và đưa họ đến địa điểm của người đó và loại bỏ họ? Nếu họ ở ngoài mạng của bạn, hãy chặn họ trên tường lửa của bạn? Sử dụng tập lệnh powershell của bạn để tiêu diệt mọi quy trình trên tất cả các máy tính của bạn đang chạy với tài khoản người dùng đó.
Zoredache

Câu trả lời:


20

Giải pháp tốt nhất: Một nhân viên bảo vệ hộ tống người ra ...

Giải pháp tốt thứ hai:

  1. Trước tiên, hãy kiểm tra số phiên với qwinsta: QWINSTA / server: computername
  2. Viết ID phiên.
  3. Sau đó sử dụng lệnh đăng xuất: 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.

Tôi đã viết một kịch bản hàng loạt thô sơ cho điều đó. Tôi yêu cầu một số unixtoolstrong con đường cũng như 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
Có thể kết hợp hai lệnh này thành một tệp batch / powershell tự động không? Nó có thể rất hữu ích khi chỉ cần chạy một kịch bản nhanh để đăng xuất tất cả các phiên.
EtherDragon

1
Có thể có được danh sách tất cả các máy tính mà người dùng được kết nối không?
NothingsImpossible

@NothingsImpossible - cách tôi tìm ra điều này là bằng cách xem máy chủ tệp của tôi, vì người dùng đã chuyển hướng hồ sơ đến một máy chủ, tôi tìm ở đó để mở các phiên chia sẻ tệp.
ETL

@NothingsImpossible Tôi có xu hướng đạt được điều đó bằng cách sử dụng psloggedon
BE77Y

5

Không hoàn toàn dựa trên AD, nhưng nên làm những gì bạn muốn.

Vô hiệu hóa hoặc hết hạn tài khoản

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

hoặc là

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

Sau đó đăng xuất người dùng khỏi máy của họ

shutdown -m "\\computername" -l

Một cách khác để đăng xuất người dùng là sử dụng tiện ích windows tích hợp, từ dấu nhắc lệnh quản trị

logoff 1 /SEVER:computername

Điều này đăng xuất phiên id 1 từ máy tính từ xa. Nếu bạn không biết id phiên (1 là mặc định) thì bạn có thể sử dụng quser dựa vào máy từ xa để tìm nó.


1
Điều đó sẽ tắt máy, không đăng xuất người dùng, suy nghĩ, đó là những gì câu hỏi.
slybloty

2
Xin đừng hiểu sai nhưng câu trả lời của bạn chính xác là những gì tôi không muốn và tôi đã bao gồm tất cả những gì trong câu hỏi của mình: vô hiệu hóa / hết hạn tài khoản hoặc thay đổi mật khẩu không buộc người dùng đăng xuất, nó chỉ ngăn họ đăng nhập không được sử dụng trong trường hợp được mô tả trong OP.
Erathiel

3
Các shutdownlệnh theo mặc định không thực sự đóng cửa, nhưng bản ghi tắt người dùng .
Michael Hampton

Đã thêm một phương pháp thay thế để đăng xuất người dùng, hãy cho tôi biết nếu điều này gần giống với những gì bạn đang tìm kiếm. Chỉnh sửa: Không thấy câu trả lời của ETL, vì vậy đã cho anh ta +1 để đánh tôi với cú đấm.
David V

3
Chính sách trong công việc của tôi thường diễn ra như sau: người được gọi tham gia "cuộc họp" (chấm dứt), trong khi tại cuộc họp, tài khoản bị vô hiệu hóa và phiên đăng xuất từ ​​xa (tất cả máy tính để bàn đều đã cài đặt máy chủ VNC bảo mật).
Avery Payne

4

Bạn có thể khóa phiên của người dùng từ xa bằng wmic:

1 - Đầu tiên, thay đổi mật khẩu người dùng:

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

2 - Sau đó, vô hiệu hóa tài khoản:

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

3 - Sau đó, ngắt kết nối phiên người dùng:

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

Điều này có giá trị gia tăng, vì bạn sẽ không mất phiên người dùng hiện tại và do đó khi bạn mở khóa các máy trạm, bạn sẽ có thể xem liệu anh ta có đang cố làm điều gì đó khó chịu trước khi được hộ tống ra cửa không.

Tất cả các khoản tín dụng cho Blog dòng lệnh Kung Fu . Có một loạt các điều liên quan đến an ninh / pháp y điên rồ trong đó!

CẬP NHẬT: Hai bước đầu tiên dành cho người dùng cục bộ, trong môi trường thư mục hoạt động thực sự dễ dàng hơn, vô hiệu hóa tài khoản và thay đổi mật khẩu trong AD, sau đó chạy lệnh thứ 3 đối với địa chỉ IP người dùng độc hại.


Thật không may, lệnh wmic..."tsdiscon" chỉ hoạt động trên XP . Trong Vista + lệnh này không thể ngắt kết nối phiên Console.
Tôi nói phục hồi Monica

0

Chỉ cần thay đổi giờ đăng nhập để đăng nhập bị từ chối cho tất cả các giờ trong thuộc tính người dùng. Điều đó sẽ ngay lập tức đăng xuất chúng ra khỏi bất cứ nơi nào chúng được đăng nhập.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.