3

我浏览了论坛并没有找到任何可以帮助我完成我想做的事情的东西。我正在寻找的是一种为远程服务器上的应用程序启动 GUI 的方法。我已经看到,只要我知道我的特定远程会话的会话 ID 是什么,我就可以使用 PsExec 执行此操作。但是,随着会话 ID 的变化,这不是我可以可靠使用的东西。有没有办法做到以下几点:

  • 拥有特定用户的永久会话 ID
  • 查找特定用户的会话 ID
  • 在服务器上的会话中启动 GUI 的其他方法

任何帮助,将不胜感激。

4

1 回答 1

1

当需要在远程机器上启动 gui 测试时,我曾经实现过类似的东西。

您可以使用 psexec 的 -i 参数,它会在指定的会话中“交互地”运行命令,对于特定用户,它看起来像这样:

psexec.exe \\<MachineName> -u <Username> -p <Password> -i <SessionNumber>

要获取 sessionNumber,您还可以使用相同的 psexec 实用程序,您可以在远程计算机上为指定用户执行“查询会话”。

您可以创建 .bat 文件,该文件将使用以下代码返回会话编号:

@echo off
setlocal enabledelayedexpansion

set username=%2
set password=%3
set machine=%1

psexec.exe \\%machine% -u %username% -p %password% query session %username%>sessid.txt

set /a counter=0
for /F "tokens=* skip=1" %%a in (sessid.txt) do (
for %%b in (%%a) do (
set /a counter+=1
if !counter! == 3 (
    echo !counter!:%%b
    exit %%b
)
)
)

这个批处理文件对我很有效,你可以像这样使用它

getSessionNumber.bat <ServerName> <User> <Password>
于 2013-05-10T14:45:57.927 回答