Вот пара однострочников на powershell, которые позволяют выгнать отключенных и неактивных пользователей с терминального сервера.

Выгоняем (logoff) всех в состояниии Disconnect и всех у кого IDLE TIME больше часа:

quser | foreach { (($_.trim() -replace "\s{2}",",")) } | foreach { (($_ -replace ",{2,}",",")) } | foreach { (($_ -replace "\s","")) } | ConvertFrom-Csv | Where-Object {$_.IDLETIME -like '*:*'} | foreach {((iex 'logoff $_.SESSIONNAME'))}

Выгоняем всех в состояниии Disconnect и тех, у кого время IDLE TIME больше заданного (в данном случае 20 минут):

quser | foreach { (($_.trim() -replace "\s{2}",",")) } | foreach { (($_ -replace ",{2,}",",")) } | foreach { (($_ -replace "\s","")) } | ConvertFrom-Csv | Where-Object {($_.IDLETIME -match "\d" ) } | Where-Object { ([int64]($_.IDLETIME -replace "[:.]","")) -gt 20 } | foreach {((iex 'logoff $_.SESSIONNAME'))}