50 lines
No EOL
1.4 KiB
PowerShell
50 lines
No EOL
1.4 KiB
PowerShell
function Get-Broker {
|
|
<#
|
|
.SYNOPSIS
|
|
Add-on for module RemoteDesktop
|
|
Features:
|
|
Remote shadow connection to user via rdp
|
|
Disconnect user
|
|
Collection list and software
|
|
Host list and roles
|
|
.DESCRIPTION
|
|
Example:
|
|
Get-Broker localhost -r # remote shadow connection to user via rdp
|
|
Get-Broker localhost -d # disconnect user
|
|
Get-Broker localhost -c # collection list and software
|
|
Get-Broker localhost -h # host list and roles
|
|
.LINK
|
|
https://github.com/Lifailon
|
|
#>
|
|
Param (
|
|
$broker="localhost",
|
|
[switch]$r,
|
|
[switch]$d,
|
|
[switch]$c,
|
|
[switch]$h
|
|
)
|
|
if ($c) {
|
|
$Coll = Get-RDRemoteDesktop -ConnectionBroker $broker | Out-GridView -title "Broker-Connect" -PassThru
|
|
$CollName = $Coll.CollectionName
|
|
}
|
|
if ($CollName) {
|
|
Get-RDAvailableApp -ConnectionBroker $broker -CollectionName $CollName | Out-GridView -title "Software $CollName"
|
|
}
|
|
if ($h) {
|
|
Get-RDServer -ConnectionBroker $broker | Out-GridView -title "Broker-Connect"
|
|
}
|
|
if (($r) -or ($d)) {
|
|
$out = Get-RDUserSession -ConnectionBroker $broker | select hostserver, UserName, SessionState, CreateTime, DisconnectTime,
|
|
unifiedsessionid | Out-GridView -title "Broker-Connect" -PassThru | select hostserver, unifiedsessionid
|
|
}
|
|
if ($out) {
|
|
$srv = $out.HostServer
|
|
$id = $out.UnifiedSessionId
|
|
if ($r) {
|
|
mstsc /v:"$srv" /shadow:"$id" /control /noconsentprompt
|
|
}
|
|
if ($d) {
|
|
Disconnect-RDUser -HostServer $srv -UnifiedSessionID $id # -Force
|
|
}
|
|
}
|
|
} |