Необходим сценарий powershell, который перечисляет все сеансы в списке серверов. А затем сможете выбрать сеанс и выйти из него. В идеале мне нужно было бы иметь возможность отбросить ему несколько аргументов, таких как список серверов и личность, если я хочу найти специфицированного c пользователя
Я написал для него псевдокод так:
Get-SessionsData -serverlist -identity
$AllSessions = new object
for each $server in $serverlist
quser /server:$server - add to $AllSessions
end for
if (identity) {
for each $session in $AllSessions
if $session.user = identity {
list user and processes
write-host "Log off user?"
}
end for
}
До сих пор я дошел до этого: (я импортирую Get-RemoteRDPSession.ps1 от paolofri go)
Import-module C:\Users\username\Documents\Get-RemoteRDPSession.ps1 -Force
$computerlistRDP = "wts01", "wts02", "wts02", "wts03", "wts04", "wts05", "wts06", "wts07"
$computerlistCTX = "cx001", "cx002", "cx003", "cx004", "cx005", "cx006", "cx007", "cx008"
$computerlist = ""
function Show-MainMenu
{
param (
[string]$Title = 'Logg off RDP or Citrix sessions'
)
cls
Write-Host "================ $Title ================"
Write-Host "1: Press '1' to query RDP sessions."
Write-Host "2: Press '2' to query Citrix sessions."
Write-Host "3: Press 'Q' to Quit."
}
do
{
Show-MainMenu
$input = Read-Host "Please make a selection"
switch ($input)
{
'1' {
cls
$computerlist = $computerlistRDP
} '2' {
cls
$computerlist = $computerlistCTX
} 'q' {
return
}
}
cls
Get-RemoteRDPSession -computername ($computerlist)
pause
}
until ($input -eq 'q')
Но я не уверен, как структурировать код, чтобы иметь возможность удерживать объекты и go перемещаться по меню, не выходя из сценария.
Любая помощь приветствуется!