powershell - powershell-从阵列问题中获取特定信息

标签 powershell remote-desktop

我有一个小脚本,可以帮助我们环境中的用户屏蔽设施中其他用户的 session (我在公司办公室工作,公司用户需要能够屏蔽其他站点上其他用户的 session )

所以我有这个:

$servers = "server1, server2, server3, server4, server5"

#search for user in servers farm
foreach ($server in $servers) { 

$results = & qwinsta.exe $userid /server:$server 

    if ($results -ne $null) {

        write-host "User found in $server"

        $serverfound = $server

        write-host $results[1]

        $sessionid = $results[1] | Where-Object { $_ -is 0..99}

        write-host "Session ID is: $sessionid"
    }
}

但是,我无法从结果中获取 session ID,这是脚本的输出:

Please wait while we search for x2adm on the RDSfarm Servers

User found in server5

rdp-tcp#0 x2adm 2 Active

Session ID is:



我试图简单地获取输出中的数字并将其分配给$ sessionid,以便使阴影过程完全自动化。

任何帮助将不胜感激。提前致谢。

最佳答案

我建议您改用ConvertFrom-String。解析这样的数据真是太棒了。

ConvertFrom-String $results[1]

P1 : 
P2 : console
P3 : Stephen
P4 : 1
P5 : Active
P6 : 

因此,我们的$SessionID值将在p4中找到(P#只是此cmdlet为其找到的字符串赋予的任意名称)。

完整的命令是
$sessionID = convertfrom-string $results[1] | select -expand P4

这将与您当前的代码一起使用,而无需进一步修改。

关于powershell - powershell-从阵列问题中获取特定信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38126779/

相关文章:

linux - 从 linux 主机捕获远程控制 session

c# - 检测远程桌面连接的来源

azure - 使用 PowerShell 从 Azure 应用程序配置获取键值对

Windows MIrror Driver Remote Display Driver VNC 服务器 windows 8

powershell - 如何在Powershell中永远重复一个命令?

powershell - PowerShell和WinApi

linux - XRDP - 连接到同一个 session (多个用户)

cmd - psexec 给系统找不到指定的文件

powershell - 将日期和时间字符串转换为日期时间

powershell - PowerShell如何处理一月份的((Get-Date).Month)-1?