在Windows 8中启动/等待RDP文件

我不知道是否应该在这里或在StackOverflow中发布这个。

我想要一个打开RDP连接文件的BAT,然后当连接closures时,注销机器。

start /WAIT "ConnectionFile.rdp" logoff 

但注销发生瞬间,它不等待退出。 我也尝试使用C#和Process.WaitforExit()。

你该怎么办? 当参数是RDP文件时,我认为是mstsc.exe的问题。

更新 :我正在testing,这在Windows 7中运行良好,但在Windows 8和Windows 7的瘦PC它不工作。

更新使用powershell我稍微提前。 我的蝙蝠看起来像这样,在PowerShell的过程中启动它的工作。

 powershell -version 2.0 -Sta -ExecutionPolicy UnRestricted Start-Process -Wait -FilePath mstsc -ArgumentList ConnectionFile.rdp; logoff 

但是,如果RDP是一个有效的文件,当Windows要求证书失败,并继续下一个进程。 为了演示目的,我改变了计算的注销。 在这里输入图像说明

尝试这个:

START /WAIT !_MSTSC! !_FILE! !_CONSOLE!

哪里

  • !_MSTSC! 是MSTSC.EXE的path
  • !_文件! 是一个保存的RDP文件的path,包含主机名,login名和pwd,也许是连接上执行的文件的名字,等等等等等等
  • !_安慰! 根据需要设置为“”(空)或“/ ADMIN”

这明确地取决于MSTSC上的WAIT,而不仅仅是RDP文件的“成功打开”。 因此,它应该(!)工作得更好一点。

而且…这是来自START帮助文件的一个有趣的警告:

  If Command Extensions are enabled, external command invocation through the command line or the START command changes as follows: When executing an application that is a 32-bit GUI application, CMD.EXE does not wait for the application to terminate before returning to the command prompt. This new behavior does NOT occur if executing within a command script. 

所以…这里可能需要将MSTSC命令和参数包装到CONNECT-REMOTE.CMD文件中,然后等待THAT终止。