Không thể đăng xuất, ngắt kết nối hoặc đặt lại người dùng máy chủ đầu cuối trong môi trường sản xuất


19

Tôi đang tìm kiếm một số ý tưởng về cách ngắt kết nối, đăng xuất hoặc đặt lại phiên của người dùng trong Máy chủ đầu cuối 2008 (không thể đăng nhập với tư cách người dùng vì nó đã bị khóa hoàn toàn). Đây là một môi trường sản xuất, vì vậy việc khởi động lại máy chủ hoặc làm một cái gì đó trên toàn hệ thống là điều không cần thiết bây giờ. Bất kỳ thủ thuật Powershell để giúp chúng tôi với điều này?

Chúng tôi đã cố gắng ngắt kết nối, đăng xuất người dùng và đặt lại phiên cũng như hủy quá trình của phiên, trực tiếp từ cùng một máy chủ đầu cuối (từ trình quản lý tác vụ, Trình quản lý dịch vụ đầu cuối và Trình giám sát tài nguyên) mà không có kết quả.

Cứu giúp!


CẬP NHẬT: Chúng tôi đã kết thúc việc khởi động lại máy chủ vì không có nỗ lực nào khác mà chúng tôi có thể nghĩ là đã hoạt động. Tôi sẽ bỏ ngỏ câu hỏi này với hy vọng ai đó có thể có thêm thông tin về vấn đề này và đó là cách khắc phục tiềm năng


2
Tôi có cùng một vấn đề chính xác trên các máy chủ Terminal 2008 R2 SP1 của tôi. Họ chỉ treo ngẫu nhiên và người dùng không thể đăng xuất hoặc đăng nhập vào máy chủ. Tôi không thể đăng nhập vào localy như quản trị viên cục bộ hoặc quản trị viên tên miền. Cách duy nhất để kết nối với máy chủ là sử dụng compmgmt.msc nhưng ngay cả ở đây tôi không thể thấy bất kỳ vấn đề nào trong nhật ký sự kiện. Ở một số giai đoạn tôi nhận được một thông báo nói rằng dịch vụ IMA không phản hồi và máy chủ đã bị xóa khỏi trang trại. Cách duy nhất để giải quyết vấn đề này là khởi động lại máy chủ Hard. Tắt nguồn và bật lại. Tôi đã không thể thu hẹp nguyên nhân của điều này xuống bất cứ điều gì và tôi



1
Các liên kết hữu ích tiềm năng cho bất kỳ ai gặp phải vấn đề này sẽ được chuyển tiếp
JohnLBevan

Câu trả lời:


7

Điều làm việc cho tôi để giải quyết vấn đề tương tự này là loại bỏ tất cả các quy trình đang chạy trong tài khoản bị khóa từ Trình quản lý tác vụ và sau đó tôi có thể đăng xuất tài khoản đó (từ tài khoản Quản trị viên).

Người dùng sau đó có thể đăng nhập lại dưới tài khoản.

Không cần khởi động lại và không cần tải xuống phần mềm của bên thứ ba.


-Cảm ơn, đã cứu tôi khỏi việc khởi động lại máy chủ! Thực sự không muốn đuổi tất cả mọi người trong ngày làm việc vì 1 phiên bị kẹt.
MAW74656

Có an toàn để giết các quá trình này? Người dùng của tôi có csrss.exe, dwm.exe, LoginUI.exe, và winlogon.exe. Tôi nghĩ rằng việc giết chóc winlogon.exesẽ kích hoạt một BSOD Ngày
b Liệu

6

Tôi muốn chia sẻ cách tôi thiết lập lại tài khoản mà không cần phải khởi động lại máy chủ. Trước hết bạn cần có quyền truy cập quản trị viên vào máy chủ. Tôi sử dụng tùy chọn đăng nhập sau: mstsc / v: servername / console / admin để truy cập máy chủ. Sau đó, trong "Trình quản lý Windows của Windows", chuyển đến tab Người dùng và tiến hành nhấp chuột phải vào tài khoản mà bạn muốn "Đăng xuất", chọn đăng xuất. Điều này sẽ giải phóng phiên bị khóa được sử dụng bởi tài khoản đó.


1
ngoại trừ nó không luôn luôn. Cộng với OP cho biết họ đã thử điều này.
BeowulfNode42

Đối với vấn đề này, nút Đăng xuất trong Trình quản lý tác vụ → Người dùng không làm gì cả.
binki

5

Câu trả lời đơn giản là chạy một dấu nhắc lệnh nâng cao và gõ "TASkmgr" và sau đó nó sẽ cho phép bạn đăng xuất các phiên trong tab USERS. Nó sẽ không hoạt động mà không có trong phiên nâng cao.


Đã thử nghiệm & giải pháp đó đã làm việc.
Vượt qua

1
Không dành cho tôi. Cũng không thể sử dụng taskmanager làm quản trị viên để giết bất kỳ quy trình nào của người dùng.
BeowulfNode42

3

Bạn có thể bắt đầu một cmd, thực hiện một phiên truy vấn , kiểm tra id của phiên bị giết và sau đó thực hiện phiên đặt lại . Chẳng hạn, nếu với phiên truy vấn, bạn nhận được tên phiên là ndp-tcp # 1 là tên bạn muốn giết, thì bạn có thể thực hiện đặt lại phiên làm việc thứ 1-tcp # 1 và giết nó.


Cảm ơn, nhưng điều đó cũng không giúp được gì.
l0c0b0x

Khi tôi chạy reset session 9lệnh đó chỉ bị treo. Phiên Mỹ tiếp tục có bốn tiến trình đang chạy mà không xuất hiện để chủ động: crss.exe, dwm.exe, LogonUI.exe, và winlogon.exe. i.imgur.com/cFM62RA.pngquery session 9đầu ra No User exists for 9.
binki

3

Tôi cho rằng điều tương tự đã xảy ra ngày hôm nay trên Máy chủ đầu cuối Win2008R2 của tôi. Các triệu chứng là: 1. Anh ấy gọi điện cho tôi với tin nhắn "kết nối" cứ bị treo mãi mãi ". Anh ấy chỉ là một người dùng đơn giản nên tôi không thể mong đợi mô tả vấn đề chi tiết. 2. Đã thử đăng xuất / đặt lại phiên (thường giúp trong những trường hợp này) - không hoạt động. Phiên vẫn bị treo trong danh sách với trạng thái 'bị ngắt kết nối'. 3. Đã thử giết tất cả các quy trình cho người dùng đó - không giúp được gì. Phiên vẫn tồn tại và từ chối để bị giết.

Giải pháp là - kết nối với tư cách người dùng (đăng nhập bằng thông tin đăng nhập của anh ấy nếu bạn có thể đặt lại mật khẩu của anh ấy hoặc sử dụng một số loại hỗ trợ từ xa để xem điều gì xảy ra trên máy tính của anh ấy) và xem điều gì xảy ra trong cửa sổ đăng nhập. Khi kết nối, tôi đã nhấp vào nút 'chi tiết' của RDP Client - và đây là thông báo lỗi winlogon đã làm gì đó sai, nó đang chờ người dùng nhấp vào nút 'thử lại / bỏ qua / etc' và vì đó là winlogon toàn năng mà nó gây ra tất cả những hành vi kỳ lạ đó.

ps Tôi không thể tìm thấy bất kỳ cách nào để thực sự buộc giết một phiên :(


CÁi này đã sửa nó giúp tôi! Nó đang chờ người dùng chọn ngắt kết nối người dùng khác hoặc nhấn hủy. Tôi nhấn hủy và bây giờ Người dùng bị kẹt trong tab Người dùng của Trình quản lý tác vụ đã biến mất. Cảm ơn!
binki

Đây là tình huống của tôi khi gặp sự cố: i.imgur.com/W6eO5wW.png i.imgur.com/EpPwyJc.png i.imgur.com/cFM62RA.png Ngoài ra, tôi đang sử dụng Windows Server 2016
b Liệu

3

Chúng tôi vừa gặp sự cố tương tự với máy chủ Remote Server Windows Server 2008 R2. Phiên người dùng đã hiển thị "Hoạt động" khi xem Trình quản lý RDS, nhưng không có ID phiên liên quan hoặc thiết bị được kết nối hiển thị (cả hai đều trống).

Tất cả các thủ thuật trên không giải quyết được vấn đề. Khi kết nối với tư cách là người dùng được đề cập, một thông báo lỗi đã quay lại cho biết Terminal Server đang bận và để thử lại sau hoặc liên hệ với quản trị viên.

Chúng tôi cũng khởi động lại máy chủ.


2

Tôi gặp vấn đề tương tự trong Windows Server 2016. Người dùng không thể đăng nhập.

Vì vậy, tôi đã thử các bước sau để ngắt kết nối phiên mồ côi:

  1. trên CLI qwinsta liệt kê tất cả các phiên có sẵn, không hoạt động và hoạt động, có một phiên bị ngắt kết nối (được gọi là "getr." trong ảnh chụp màn hình) mà không có tên người dùng, nhưng id phiên.

hiển thị các phiên hoạt động và tiêu diệt chúng

  1. với id phiên (7) từ 1. Tôi đã cố gắng giết phiên này bằng cách đặt lại phiên 7 (fyi: rwinsta là bí danh cho phiên đặt lại)

  2. nó hoạt động được một phiên, nhưng lần sau nó không có tác dụng, vì vậy tôi đã mở trình quản lý tác vụ và tab người dùng. Ở đó bạn tìm thấy một danh sách có thể mở rộng được gán cho mọi người dùng máy tính để bàn từ xa - một danh sách không có tên người dùng trong đó và chỉ hiển thị 4 tác vụ đang chạy.

  3. Tôi đã thử một điều hiển nhiên: Đăng xuất khỏi người dùng. Không có tác dụng.

cố gắng đăng xuất người dùng

  1. Vì vậy, tôi đã cố gắng kết thúc 4 nhiệm vụ được giao cho người dùng này. Hãy cẩn thận, bởi vì một số tác vụ, quan trọng nhất là csrss.exe, khi bị giết, cũng sẽ dẫn đến việc khởi động lại hệ thống. Tôi bỏ qua chúng và chỉ giết một số nhiệm vụ RDP rõ ràng.

Sau Bước / Thử 4, ngay cả phiên bị lỗi cuối cùng cũng bị hủy và người dùng có thể đăng nhập lại

  1. Nếu điều này vẫn không hoạt động, hãy thử giải pháp này từ một câu hỏi khác : Khi bạn kết nối với ứng dụng khách RDP, hãy nhấp vào nút "chi tiết". Ở đó bạn sẽ thấy một lỗi và thậm chí bạn có thể nhấp vào thử lại hoặc bỏ qua .

Bạn có thể cụ thể hơn về quá trình bạn đã giết và quá trình nào không được giết? Tôi nghĩ rằng tôi nên bỏ qua winlogon.exenhưng không chắc chắn về những người khác như LoginUI.exe, csrss.exe, và dwm.exe.
binki

Các triệu chứng cho phiên thứ hai bạn có âm thanh tương tự như của tôi và serverfault.com/a/176080/164429 . Bạn có thể có thể thêm vào Kết nối mật mã như một bước để thử một giải pháp hoàn chỉnh hơn và thậm chí có thể tránh việc phải hủy các quy trình.
binki

@binki nó phải là "csrss.exe" - nếu bạn giết quá trình này, hệ thống sẽ khởi động lại.
nr

1

Có thể kiểm tra xem người dùng không có hộp bật lên thông tin ẩn sau cửa sổ máy tính để bàn từ xa với tab alt +.

Một đồng nghiệp đã có cùng một vấn đề; không thể đăng xuất hoặc đặt lại và tất cả các quy trình của anh ta đều được tắt thủ công. Khi tôi cố gắng truy cập gui cho hệ thống mà anh ấy đang từ xa TỪ, tôi thấy một hộp thông tin ẩn sau phiên làm việc từ xa.


1

Tôi cũng gặp tình huống tương tự: Windows Server 2008 R2 với Remote Desktop Services, kết nối RDP được thiết lập để đăng xuất người dùng sau khi phiên không hoạt động hoặc bị ngắt kết nối 3 giờ và vẫn còn một số phiên bị khóa. Tôi đã cố gắng đăng xuất chúng bằng cả Remote Desktop Manager và qwinsta / quser, nhưng không thành công.

Đây là cách tôi giải quyết nó:

  1. Tôi đã tìm ID phiên với qwinsta.
  2. Tôi đã định vị được PID winlogon.execho phiên treo với query process /ID:yourid.
  3. Tôi đã giết quá trình với taskkill /f /PID yourPID.

Con đường để đi. Tôi muốn tìm cách giải quyết để điều này không xảy ra.


1

Những gì làm việc cho tôi là:

  • đăng nhập vào máy chủ
  • quản lý công việc mở
  • tìm kiếm người dùng trong tab người dùng
  • nhấp chuột phải, kết nối, nhập mật khẩu người dùng, tôi thấy màn hình 'Vui lòng đợi'
  • nhấn alt-tab, điều đó đã đăng xuất tôi khỏi máy chủ và cũng đăng xuất khỏi người dùng

1

Tôi gặp vấn đề này với người dùng ứng dụng Remote Desktop bị khóa. Tôi đã viết tập lệnh Powershell này để chạy trên một tác vụ theo lịch trình để đăng xuất người dùng hiển thị bị ngắt kết nối trong hơn 2 phút. Chỉnh sửa duy nhất được yêu cầu là SERVERNAME mà tôi đã đặt để loại trừ Máy chủ môi giới máy tính từ xa, tuy nhiên bạn có thể loại trừ bất kỳ máy chủ nào bạn thích hoặc không có máy chủ nào cả.

Nhân tiện, kịch bản của tôi đã được viết cho Windows Server 2012 R2, nhân tiện ...

Kịch bản thực hiện điều này:

  • Nhận danh sách tất cả các phiên người dùng máy tính từ xa.
  • Bỏ qua mọi phiên không nói "STATE_DISCONNECTED".
  • Bỏ qua Máy chủ môi giới (hoặc bất kỳ máy chủ nào khác)
  • Bỏ qua mọi phiên không có Id phiên hợp nhất
  • Bỏ qua bất kỳ phiên nào không có thời gian ngắt kết nối
  • Đối với những phiên có thời gian ngắt kết nối, nó sẽ kiểm tra thời gian hiện tại và nếu chênh lệch thời gian giữa giờ và thời gian ngắt kết nối là hơn X phút (trong trường hợp này là 2), sẽ giết quá trình winlogon.
  • Nó cũng cố gắng đưa ra một lệnh đăng xuất (Điều này rất có thể sẽ thất bại sau khi quá trình winlogon bị giết).

Nó làm việc cho tôi! Tôi hy vọng nó sẽ giúp người khác! :)

CLS
$RD = Get-RDUserSession | select ServerName, UserName, SessionState, DisconnectTime, UnifiedSessionId, SessionId #Get details about the sessions
foreach ($item in $RD) {
    $UsessionID = $item.UnifiedSessionId -as [int] 
    $sessionID = $item.SessionId -as [int] 
    if ($item.SessionState -eq "STATE_DISCONNECTED" -and $item.ServerName -ne "SERVERNAME" -and $item.DisconnectTime -ne $null -and $item.UnifiedSessionId -ne $null){
        $TimeDiff = New-TimeSpan -start $item.DisconnectTime -end (Get-Date) #check time difference between disconnect time and now. If time is greater than 2 minutes....
        if ($TimeDiff.Minutes -gt 2) {
            #Kill winlogon session for the user
            Get-WmiObject -ComputerName $item.Servername -query "select * from win32_process where name='winlogon.exe'" | Where-Object {$_.SessionId -eq $SessionId} | %{$_.terminate()}
            #Log off user if session still exists (will fail if user kicked)
            Invoke-RDUserLogoff -HostServer $item.ServerName -UnifiedSessionID $UsessionID -Force -erroraction 'silentlycontinue'
            }
         }
      }

Hoặc nếu bạn thích một phiên bản mà bạn có thể thấy những gì đang diễn ra trên màn hình:

 CLS
    $RD = Get-RDUserSession | select ServerName, UserName, SessionState, DisconnectTime, UnifiedSessionId, SessionId
    foreach ($item in $RD) {
        $UsessionID = $item.UnifiedSessionId -as [int]
        $sessionID = $item.SessionId -as [int]
        if ($item.SessionState -eq "STATE_DISCONNECTED" -and $item.ServerName -ne "SERVERNAME" -and $item.DisconnectTime -ne $null -and $item.UnifiedSessionId -ne $null){
            #On Screen Output
            write-host " Name : " $Item.UserName -ForegroundColor "yellow" -NoNewline
            write-host " Unified Session Id : " $UsessionID -ForegroundColor "darkcyan" -NoNewline
            write-host " User Session Id : " $sessionID -ForegroundColor "darkyellow" -NoNewline
            write-host " Session State : " $item.SessionState -ForegroundColor "magenta" -NoNewline
            write-host " Server : " $item.ServerName -ForegroundColor "cyan" -NoNewline
            write-host " Disconnect Time : " $item.DisconnectTime -ForegroundColor "gray" 
            #End On Screen Output
            $TimeDiff = New-TimeSpan -start $item.DisconnectTime -end (Get-Date)
            if ($TimeDiff.Minutes -lt 2) {
                write-host " Disconnected for less than 2 minutes" -ForegroundColor "Green"}
            else {
                write-host " Disconnected for more than 2 minutes" -ForegroundColor "Red" -BackgroundColor "darkyellow"
                write-host " Killing session : " $item.ServerName " ID : " $UsessionID $item.UserName -ForegroundColor "Red"
                #Kill Process "Winlogon.exe" for the user (this should kill the session)
                Get-WmiObject -ComputerName $item.Servername -query "select * from win32_process where name='winlogon.exe'" | Where-Object {$_.SessionId -eq $SessionId} | %{$_.terminate()}
                #Logout User (if session still exists)
                Invoke-RDUserLogoff -HostServer $item.ServerName -UnifiedSessionID $UsessionID -Force -erroraction 'silentlycontinue'
                Write-host " Done! " -ForegroundColor "Green" -BackgroundColor "blue"
                }
             }
          }

1

Tạo một tập tin trong notepad và gọi nó là findession.cmd. Đặt lệnh Truy vấn Phiên / máy chủ: servername | tìm / i "% 1" và lưu vào một thư mục. Tạo một tệp khác gọi là resetsession.cmd và đặt lệnh Đặt lại Phiên% 1 / máy chủ:% 2 và lưu.

Từ một dấu nhắc lệnh đi đến thư mục bạn đã lưu các tệp đó và nhập tên người dùng tìm thấy (đăng nhập của người dùng bạn đang cố gắng tìm). Nhấn enter và bạn sẽ thấy ID đăng nhập và phiên. Nhập resetsession.cmd ID Servername và nó sẽ đặt lại phiên đó. Tôi sử dụng điều này hàng ngày và nó cực nhanh để tìm kiếm người dùng và đặt lại phiên của họ.


vui lòng sử dụng các tùy chọn định dạng văn bản cho các lệnh highligh và trao quyền cho khả năng đọc. Đó là một câu trả lời tốt, nhưng xin vui lòng, chỉnh sửa nó.
Marco

Không có điểm nào để viết các tệp bó khi các lệnh quá ngắn và dù sao bạn cũng cần phải vượt qua các đối số của chúng
binki

1
  1. Xác định vị trí ID phiên với qwinsta.
  2. Giết tất cả các quy trình trong phiên taskkill /FI "SESSION eq 1" /F, giả sử ID phiên bạn muốn kết thúc được trả về từ qwinsta là 1.

Điều này hoạt động trên Server 2012 Phiên bản 6.2 Build 9200, tôi hy vọng nó sẽ hoạt động trên tất cả các phiên bản windows.


1

Kịch bản shell-power này làm việc cho tôi, nó thậm chí còn cung cấp một tệp nhật ký đẹp. Tôi đã nhận nó từ đây. : Tôi hy vọng điều này sẽ giúp người khác vì các câu trả lời khác có rất nhiều điều kiện tiên quyết và hoặc không hiệu quả với tôi.

    # .SYNOPSIS
    #   Checks for disconnected sessions and logs off the disconnected user sessions.

    #.DESCRIPTION
    #   Checks for disconnected sessions and logs off the disconnected user sessions.

    #.NOTES
    #   File Name: Logoff-DisconnectedSession.ps1
    #   Author   : Bart Kuppens
    #   Version  : 1.1

    #.EXAMPLE
    #   PS > .\Logoff-DisconnectedSession.ps1


    function Ensure-LogFilePath([string]$LogFilePath)
    {
     if (!(Test-Path -Path $LogFilePath)) {New-Item $LogFilePath -ItemType directory >> $null}
    }

    function Write-Log([string]$message)
    {
       Out-File -InputObject $message -FilePath $LogFile -Append
    }

    function Get-Sessions
    {
       $queryResults = query session
       $starters = New-Object psobject -Property @{"SessionName" = 0; "UserName" = 0; "ID" = 0; "State" = 0; "Type" = 0; "Device" = 0;}
       foreach ($result in $queryResults)
       {
          try
          {
             if($result.trim().substring(0, $result.trim().indexof(" ")) -eq "SESSIONNAME")
             {
                $starters.UserName = $result.indexof("USERNAME");
                $starters.ID = $result.indexof("ID");
                $starters.State = $result.indexof("STATE");
                $starters.Type = $result.indexof("TYPE");
                $starters.Device = $result.indexof("DEVICE");
                continue;
             }

             New-Object psobject -Property @{
                "SessionName" = $result.trim().substring(0, $result.trim().indexof(" ")).trim(">");
                "Username" = $result.Substring($starters.Username, $result.IndexOf(" ", $starters.Username) - $starters.Username);
                "ID" = $result.Substring($result.IndexOf(" ", $starters.Username), $starters.ID - $result.IndexOf(" ", $starters.Username) + 2).trim();
                "State" = $result.Substring($starters.State, $result.IndexOf(" ", $starters.State)-$starters.State).trim();
                "Type" = $result.Substring($starters.Type, $starters.Device - $starters.Type).trim();
                "Device" = $result.Substring($starters.Device).trim()
             }
          } 
          catch 
          {
             $e = $_;
             Write-Log "ERROR: " + $e.PSMessageDetails
          }
       }
    }

    Ensure-LogFilePath($ENV:LOCALAPPDATA + "\DisconnectedSessions")
    $LogFile = $ENV:LOCALAPPDATA + "\DisconnectedSessions\" + "sessions_" + $([DateTime]::Now.ToString('yyyyMMdd')) + ".log"

    [string]$IncludeStates = '^(Disc)$'
    Write-Log -Message "Disconnected Sessions CleanUp"
    Write-Log -Message "============================="
    $DisconnectedSessions = Get-Sessions | ? {$_.State -match $IncludeStates -and $_.UserName -ne ""} | Select ID, UserName
    Write-Log -Message "Logged off sessions"
    Write-Log -Message "-------------------"
    foreach ($session in $DisconnectedSessions)
    {
       logoff $session.ID
       Write-Log -Message $session.Username
    }
    Write-Log -Message " "
    Write-Log -Message "Finished"  

Chỉnh sửa:
Ban đầu tôi đã sử dụng tập lệnh này để đăng xuất và đóng tất cả các phiên "ngắt kết nối". Chúng tôi có một vài ứng dụng máy chủ đầu cuối với nhiều người dùng và giấy phép hạn chế. Các phiên bị ngắt kết nối sẽ mở trong một thời gian rất dài và đôi khi nó sẽ mở vô thời hạn. Điều này dẫn đến các phiên không được sử dụng sẽ chiếm một số giấy phép và những người dùng khác sau đó sẽ không thể kết nối.

  • Tôi chạy tập lệnh bằng cách sử dụng tác vụ theo lịch trình để thường xuyên kiểm tra và
    ngắt kết nối các phiên trên một số máy chủ của mình. Nó hoạt động tự chủ
    mà không cần bất kỳ tương tác cần thiết.
  • Tôi sử dụng nó trên hệ điều hành Windows 2008 R2 Server và Windows 2012 R2 Server.
  • Nó chỉ đóng các phiên bị ngắt kết nối.
  • Nó cập nhật tệp 'nhật ký' với người dùng hoặc phiên bị ngắt kết nối.

Bạn có thể giải thích những gì nó làm?
Konrad Gajewski

1
Xin chào Konrad, tôi đã chỉnh sửa câu trả lời một chút và hy vọng rằng nó giải thích những gì kịch bản làm. Về cơ bản, tập lệnh sẽ đóng tất cả các phiên bị ngắt kết nối vẫn mở sau khi người dùng từ xa ngắt kết nối với máy chủ.
9953-div-37

0

Có thể có một quy trình vẫn đang chạy, chặn quá trình đăng xuất. Kiểm tra các quy trình vẫn đang chạy cho người dùng bị ảnh hưởng. Sau đó giết từng người một để thấy phù thủy đang gây ra vấn đề.

Kiểm tra HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Runkhóa Registry mà chỉ các Quá trình cần thiết được bắt đầu. Trong 64 bit là vậy HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run.


0

Bạn có thể tải xuống công cụ " Process Explorer " từ Microsoft và sử dụng công cụ đó để giải quyết vấn đề của bạn. Nếu bạn có ID phiên, bạn có thể tìm thấy các quy trình tương ứng của chúng. Sau đó, nếu một phiên người dùng bị ngắt kết nối, bạn có thể tắt tiến trình với Process Explorer.


0

Không chính xác cùng một môi trường (chúng tôi có 2012r2) nhưng khởi động lại dịch vụ Quản lý máy ảo Hyper-V (VMMS) đã phát hành kết nối cho tôi.


0

Bạn cần nhấp để xử lý và hiển thị quy trình từ tất cả người dùng và sau đó bạn sẽ có thể ngắt kết nối.

tại sao không tạo chính sách phiên trong cấu hình máy chủ phiên máy tính từ xa kết thúc phiên bị ngắt kết nối hoặc phiên nhàn rỗi sau khoảng thời gian nhất định.


0

Cách khắc phục của tôi: Trên một máy chủ mạng khác tôi đã kết nối với máy chủ có vấn đề thông qua công cụ Quản lý máy tính, trong các phiên mở tôi đã nhấp chuột phải và đóng mọi tệp đang mở sau đó có thể kết nối qua mstsc


0

bạn luôn có thể sử dụng powershell từ máy cục bộ của mình và thực hiện từ xa

Invoke-command -computername <servername> -Credential (get-credential) { 
    $session = ((quser | ? { $_ -match <username> }) -split ' +' )[2]
    logoff $session
} 

Để làm cho câu trả lời của bạn hữu ích hơn nữa, sẽ rất hữu ích khi cung cấp một lời giải thích cơ bản về cách thức hoạt động của lệnh này. Không phải ai cũng có đủ kinh nghiệm với PowerShell để hiểu nó. Cảm ơn đã đóng góp.
Tôi nói phục hồi Monica

-1

Không may. Phiên người dùng của tôi đã bị ngắt kết nối. Trình quản lý tác vụ không hiển thị bất kỳ quy trình nào đang chạy như người dùng. Tôi không thể đăng xuất người dùng từ trình quản lý tác vụ. Tôi đã thử thiết lập lại lệnh id phiên và cuối cùng cũng bị đóng băng. Tôi đã phải kết thúc việc đăng nhập vào một phiên khác với tư cách quản trị viên, xóa tài khoản và tạo lại tài khoản mới.


-1

Bạn đã thử đăng xuất người dùng từ de Remote Desktop Services Manager chưa? Chuyển đến Công cụ quản trị -> Dịch vụ máy tính từ xa -> Trình quản lý dịch vụ máy tính từ xa và đăng xuất khỏi phiên. Nó có thể làm việc.


-1

Đi đến cửa sổ bắt đầu và bấm vào tên của bạn

Xem mẫu tại đây


Tôi nghĩ rằng đây là sự lặp lại của một số câu trả lời khác ở đây (hầu hết trong số đó khá chi tiết hơn) - ví dụ: serverfault.com/a/804638/402709 . Nó có thể giúp cải thiện câu trả lời của bạn để mở rộng nó với một số bối cảnh và kinh nghiệm của riêng bạn.
iwaseatenbyagrue

Tôi không nghĩ vậy, nhưng hãy tận hưởng nó.
syb
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.