无需连接代理即可管理 2012 R2 RDSH 池会话

无需连接代理即可管理 2012 R2 RDSH 池会话

我正在尝试管理没有 2012 R2 连接代理角色的 vWorkspace 8.6.1 场内 10+ 2012 R2 RDSH 主机上的用户会话。

我担心添加连接代理、创建池并向其中添加服务器会干扰 vWorkspace 中的策略设置和负载平衡规则设置(两个司机,一辆车)。而且 vWorkspace 控件不够直观,无法部署到一级支持,而且有点笨重。

这在 2008 年及之前的版本中不是问题,但现在微软已经替换了所有之前的独立工具,并且似乎强制设置他们的服务器管理器/连接管理器角色。

寻找一个 powershell 脚本(或其他)选项来管理用户注销、影子会话等(跨池),不引用连接代理。大多数 powershell 脚本/工具现在引用一个集合:TechNet 获取 RDUserSession

获取 RDUserSession-ConnectionBroker“rdcb.contoso.com”

答案1

您实际上可以使用Get-RDUserSession此任务。只需引用集合名称,而不是连接代理

Get-RDUserSession -collectionname "Mycollection" | ft Username, UnifiedSessionId

这将获取所有 RDP 连接的会话 ID

然后你可以用这个命令来隐藏它们(在这个例子中,sessionid"3"被隐藏了)

Mstsc /shadow:3 /control

为了让您的生活更轻松,您可以使用查找用户名的函数。

function ShadowSession([string]$UserName, [string]$CollectionName)
{
    $SessionID = Get-RDUserSession -collectionname $CollectionName |
        select UnifiedSessionId | ? {$_.Username -eq $UserName}
    mstsc /shadow:$SessionID /control
}

所以你的命令是

ShadowSession -UserName "User01" -CollectionName "MyCollection"

如果你只有一个 RDS 集合,请使用此

function ShadowSession([string]$UserName)
{
    $SessionID = Get-RDUserSession -collectionname "MyCollection" |
        select UnifiedSessionId | ? {$_.Username -eq $UserName}
    mstsc /shadow:$SessionID /control
}

那么你不必引用集合名称,只需引用用户名

ShadowSession -UserName "User01"

您甚至可以更进一步,向您的功能添加开关

那么您可以使用此功能进行任何您想要的操作。例如,跟踪、注销等。

相关内容