如何从PowerShell / CMD中的会话查询中导入数字

问题描述 投票:0回答:1

我正在尝试创建一个PowerShell脚本,该脚本允许我查询用户会话并在RDP中隐藏所述会话。我想从qwinsta中拉出活动会话,但是只有在为域输入凭据时才能拉出结果。这是我在PowerShell中的意思的示例:

runas /user:DOMAIN\USER "cmd /k qwinsta /server:192.168.255.2"

将输出

SESSIONNAME USERNAME ID STATE

services 0 Disc

console jdoe 2 Active

rdp-tcp 65536 Listen

这将启动cmd,并允许我查看查询的输出。但是,我不想每次都要远程进入时都这样做,因为它很繁琐。我对PowerShell非常陌生,因此请原谅我的无知,但是如何提取jdoe的ID号(在这种情况下为2),以可能的变量/字符串形式将其导入Powershell,例如[C0 ],然后像这样运行脚本

$activeSession =

感谢您的任何帮助!

python powershell import scripting rdp
1个回答
0
投票

如果要Mstsc /shadow:$activeSession /v:192.168.255.2 /control /NoConsentPrompt /prompt会话的ID,则可以执行以下操作:

Active

runas /user:DOMAIN\USER "cmd /a /c qwinsta /server:192.168.255.2 > c:\temp\sessions.txt" $activeSession = (Get-Content c:\temp\sessions.txt) -match '\b\d+\s+Active\b' -replace '\D' 命令将输出到文件cmd qwinsta。然后,您可以使用sessions.txt读取文件并解析所需的数据。

Get-Content-match使用正则表达式匹配字符串。 -replace是单词边界。 \b是一个或多个数字。 \d+是任何非数字。由于\D没有替换字符串,因此将删除所有匹配的字符。

© www.soinside.com 2019 - 2024. All rights reserved.