Dưới đây là một giải pháp kịch bản vĩ đại để ghi lại mọi người từ xa hoặc cục bộ. Tôi đang sử dụng qwinsta để lấy thông tin phiên và xây dựng một mảng ra khỏi đầu ra đã cho. Điều này làm cho nó thực sự dễ dàng để lặp qua từng mục và chỉ đăng xuất những người dùng thực tế, chứ không phải hệ thống hoặc người nghe RDP mà thường chỉ ném một lỗi truy cập bị từ chối.
$serverName = "Name of server here OR localhost"
$sessions = qwinsta /server $serverName| ?{ $_ -notmatch '^ SESSIONNAME' } | %{
$item = "" | Select "Active", "SessionName", "Username", "Id", "State", "Type", "Device"
$item.Active = $_.Substring(0,1) -match '>'
$item.SessionName = $_.Substring(1,18).Trim()
$item.Username = $_.Substring(19,20).Trim()
$item.Id = $_.Substring(39,9).Trim()
$item.State = $_.Substring(48,8).Trim()
$item.Type = $_.Substring(56,12).Trim()
$item.Device = $_.Substring(68).Trim()
$item
}
foreach ($session in $sessions){
if ($session.Username -ne "" -or $session.Username.Length -gt 1){
logoff /server $serverName $session.Id
}
}
Trong dòng đầu tiên của tập lệnh này cung cấp $ serverName giá trị thích hợp hoặc localhost nếu chạy cục bộ. Tôi sử dụng tập lệnh này để khởi động người dùng trước khi quá trình tự động tìm cách di chuyển một số thư mục. Ngăn chặn lỗi "sử dụng tệp" cho tôi. Một lưu ý, kịch bản này sẽ phải được chạy như một người dùng quản trị nếu không bạn có thể bị truy cập bị từ chối cố gắng để đăng xuất một ai đó. Hi vọng điêu nay co ich!
Nguồn
2016-03-07 16:30:21
Tôi nghĩ rằng nên làm việc – EBGreen
tôi sử dụng này tại địa phương trong một máy chủ 'kiosk-like' cho một Lãnh thổ hải CNTT (một câu chuyện dài) và nó hoạt động. Không bao giờ thử nghiệm từ xa, nhưng tôi nghĩ rằng có thể làm việc, tôi quá. –
@ CB-Tôi gần đây đã chạy vào cùng một vấn đề mà tôi cần phải đăng xuất khỏi tất cả những người dùng bị ngắt kết nối..Bạn có thể nói cho tôi cách thực hiện điều này và ở đâu gần đây tôi có một câu hỏi tương tự ở đây http://stackoverflow.com/ câu hỏi/18377592/get-disconnect-users-and-logoff-chúng? – coder