【问题标题】:How to kill all RDP sessions using powershell script如何使用 powershell 脚本终止所有 RDP 会话
【发布时间】:2022-11-03 19:44:13
【问题描述】:

我正在编写如下所示的 powershell 脚本,但无法从查询结果中读取 sessionid,然后终止所有活动会话。

$queryResults = quser /server:$server; Write-Output "users : $users";
        foreach($queryResult in $queryResults){                    
          Write-Output "session ID : $queryResult.sessionid";  
         }

任何建议如何从 queryResult 中读取会话 ID,然后注销所有会话。

【问题讨论】:

  • 只需循环并注销所有会话 ID:logoff $SessionId
  • 我猜 $SessionId 只是一个变量,但我的 Qs 是如何读取会话 ID 然后存储到 $SessionId

标签: windows powershell


【解决方案1】:

您需要解析 quser 的输出(它不是 PS 命令,因此输出是一个简单的字符串) - 我这样做是为了让您收到一个更有用的对象:

$server = 'myserver'

# Get list of logged in users
$queryResults = quser /server:$server

# Parse the output and store results in a new object
$UserList = $queryResults | Select-Object -Skip 1 -ErrorAction Stop | ForEach-Object {

    $CurrentLine = $_.Trim() -Replace 's+',' ' -Split 's'
  # If session is disconnected different fields will be selected
    If ($CurrentLine[2] -eq 'Disc') {
        $SearchResult = [pscustomobject]@{
            UserName = $CurrentLine[0];
            SessionName = $null;
            Id = $CurrentLine[1];
            State = $CurrentLine[2];
            IdleTime = $CurrentLine[3];
            LogonTime = $CurrentLine[4..($CurrentLine.GetUpperBound(0))] -join ' '
        }
     }
     Else {
        $SearchResult = [pscustomobject]@{
            UserName = $CurrentLine[0];
            SessionName =  $CurrentLine[1];
            Id = $CurrentLine[2];
            State = $CurrentLine[3];
            IdleTime = $CurrentLine[4];
            LogonTime = $CurrentLine[5..($CurrentLine.GetUpperBound(0))] -join ' '
        }
     }
     $SearchResult
}

# To logoff everyone, you can just loop through

$UserList | ForEach-Object {
    logoff $_.Id
}

# Or you could just logoff the disconnected users:


$UserList | Where-Object {$_.State -eq 'Disc'} | ForEach-Object {
    logoff $_.Id
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2022-12-13
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    相关资源
    最近更新 更多