为了在我的构build服务器上运行一些验收testing,我需要打开一个login用户会话( 白色testing框架需要有一个“屏幕”来testingWPF UI)。 这显然是一个脆弱的设置,并且在我们的过程中引入了相当多的摩擦。
是否有可能在后台运行一个Windows服务,然后可以“产生”一个会话,作为一个用户login,做一些工作(在这种情况下testing),然后注销? 或者,有没有更好的办法来处理我的情况,而不是我们现在正在做的事情? 这让人很沮丧,因为,例如,如果应用程序在某个时候崩溃了,那么会popupexception对话框,冻结我们的构build服务器。 我正在考虑禁用沃斯顿博士来解决这个问题,但是我有这种感觉,我正在走上一条充满危险的道路。
首先,有关您的环境的更多细节有所帮助。 我假设它是Windows 2003或Windows 2008 Server。
说实话,我不是这方面的专家,但谁使用这个盒子呢? 如果您拥有pipe理员权限,则可以使用psexec(如果您还没有听说过,则是免费的Sysinternals实用程序)。 你可以让它在控制台会话上启动一个进程(所以在交互式桌面上,用psexec的说法)。 如果你在一个正确的registry设置的框中自动login,你可以让PsExec这样做,如果安全设置被诅咒。 registry项包括以明文forms存储密码,所以我会locking这样一个帐户。
PsExec在远程系统上执行程序,远程执行的控制台应用程序以交互方式执行。
Usage: psexec [\\computer[,computer2[,...] | @file][-u user [-p psswd]][-ns][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-an,n,...] cmd [arguments] . . . -d Don't wait for process to terminate (non-interactive). -i Run the program so that it interacts with the desktop of the
所以,为了什么价值,我想你可以开始一个会话,然后有一个计划的任务批处理脚本,查找哪个用户login,然后执行以下操作,如果你这样做,开始一个进程与给定的会话或交互式桌面不指定,并且不会等待进程退出。 它只会产生它。
%SYSTEMDRIVE%\path\to\psexec.exe -i -d C:\path\to\your\app.exe
现在,如果您有Windows Server产品之一,我想您可以使用console参数(现在是Windows 2008中的admin参数)偶尔使用RDP(mstsc.exe)login。
然后,这又是一个noobie的散漫。 我可以远离这个工作。 更有知识的人可以帮忙。
整个“login和工作”的情况有点鸡或鸡蛋的问题。
我会从AutoHotkey开始,看看我是否无法使它自动化我需要操作的UI元素。 早在w2K的时候,我曾经有一组机器阻止了GPO的inheritance,为了明确地允许“不要使用ctrl-alt-del”,然后使用autoexec.bat来启动一个进程。 如果你能达到这一点,AHK可以自动化其余的。 绝对最糟糕的是,您可能需要使用AHK来自动化VNC会话,以避免直接login的复杂性。
我并不热衷于“服务”战略。 服务和UI之间存在限制; “允许服务与桌面交互”选项框提示您可能遇到的麻烦。
也许自动login是一个选项。
如果这不是虚拟机,显然你需要物理服务器安全控制。
启动所需的testing服务作为自动login用户的启动程序。 如果它重新启动(通过脚本与DRAC,iLO,VMware ESX进行交互,无论它运行在何处),服务将重新启动。