qwinsta /server:somesrv equivalent in Powershell?

前端 未结 2 1297
情歌与酒
情歌与酒 2020-12-10 15:19

When I run the qwinsta /server:somesrv command in cmd I can get a listing of all the current RDP sessions that are logged into a particular Windows

相关标签:
2条回答
  • 2020-12-10 15:39

    I used to use Terminal Services PowerShell Module (now in codeplex archive), but it was two years ago. I can't put my hand on it, but it also exists a function on gitshub or another site that embeded QWinsta/RmWinsta.

    0 讨论(0)
  • 2020-12-10 15:48

    There are multiple alternatives:

    • Use the Terminal Services PowerShell Module. Easy solution.
    • Writing a powershell wrapper that parses the output of qwinsta to objects. Easy solution. See example below
    • Use the Cassia.DLL .Net wrapper to access the native APIs that qwinsta runs behind the scene. This is the class that the TS Module uses. More difficult, but will have the benefit of being customized to your needs.
    • Go crazy and use the Native Methods that Cassia.DLL accesses using P/Invoke (wtsapi32.dll, kernel32.dll, winsta.dll). Hard and overcomplicated.

    PowerShell-wrapper for qwinsta

    function Get-TSSessions {
        param(
            $ComputerName = "localhost"
        )
    
        qwinsta /server:$ComputerName |
        #Parse output
        ForEach-Object {
            $_.Trim() -replace "\s+",","
        } |
        #Convert to objects
        ConvertFrom-Csv
    }
    
    Get-TSSessions -ComputerName "localhost" | ft -AutoSize
    
    SESSIONNAME USERNAME ID     STATE  TYPE DEVICE
    ----------- -------- --     -----  ---- ------
    services    0        Disc                     
    console     Frode    1      Active            
    rdp-tcp     65537    Listen     
    
    #This is objects, so we can manipulate the results to get the info we want. Active sessions only:
    Get-TSSessions -ComputerName "localhost" | ? { $_.State -eq 'Active' } | ft -AutoSize SessionName, UserName, ID
    
    SESSIONNAME USERNAME ID
    ----------- -------- --
    console     Frode    1 
    
    0 讨论(0)
提交回复
热议问题