C# 从本地环境打开应用程序后如何在远程计算机上运行应用程序

C# 从本地环境打开应用程序后如何在远程计算机上运行应用程序,c#,.net,impersonation,C#,.net,Impersonation,我的目标是在我的CODEDUI测试中打开一个具有不同用户凭据的windows应用程序,在做了很多Google搜索之后,我尝试了模拟LLD,但无法使其工作。我决定直接打开远程桌面连接,并指示代码启动目标应用程序,但该应用程序是在本地环境中启动的,而不是在远程桌面上启动的 使用此代码,我可以成功登录到远程计算机 var rdcProcess = new Process(); rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVa

我的目标是在我的CODEDUI测试中打开一个具有不同用户凭据的windows应用程序,在做了很多Google搜索之后,我尝试了模拟LLD,但无法使其工作。我决定直接打开远程桌面连接,并指示代码启动目标应用程序,但该应用程序是在本地环境中启动的,而不是在远程桌面上启动的

使用此代码,我可以成功登录到远程计算机

var rdcProcess = new Process();
rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe");
rdcProcess.StartInfo.Arguments = "/generic:TERMSRV/MachineName/user:" + userName+ " /pass:" + "password";
rdcProcess.Start();

rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\mstsc.exe");
rdcProcess.StartInfo.Arguments = "/v " + "MachineName"; // ip or name of computer to connect
rdcProcess.Start();
然后,我想在此远程计算机中启动应用程序:

Apps = ApplicationUnderTest.Launch(@"application.exe");

而是从本地环境启动应用程序。要在远程环境中启动应用程序,我必须做些什么?

首先使用windows资源管理器(或从cmd.exe\servername)查看,您可以在尝试使用软件之前访问这些文件。如果windows资源管理器不工作,则您的软件将无法工作。这两台计算机需要位于同一组中,并使用相同的凭据(管理员除外)才能工作。您使用的是什么版本的windows?谢谢您的回复。这两台计算机位于同一组和域中,但凭据不同。我正在使用windows 8.1 Pro。您可以通过使用窗口资源管理器打开来连接更改文件吗?您应该能够键入URL\\MachineName。或从cmd.exe尝试cd\\MachineName。您应该能够移动到带有cd的文件夹。使用dir获取文件夹中的文件列表。您可以使用通配符,如cd abc*。然后,当您进入文件夹时,可以键入应用程序名称。我怀疑一个文件或文件夹上的凭据必须更改,才能使两个帐户位于同一用户组中。非常感谢您的回复,我找到了解决问题的方法,但方式不同。我没有意识到CodedUI中的启动方法可能会被CodedUI中的用户名、密码和域重载。以防其他人需要此解决方案。Apps=ApplicationUnderTest.Launch(ConfigurationManager.AppSettings[“AUT”],null,null,“用户名”,密码,“域”);首先使用windows资源管理器(或从cmd.exe\servername)查看,您可以在尝试使用软件之前访问这些文件。如果windows资源管理器不工作,则您的软件将无法工作。这两台计算机需要位于同一组中,并使用相同的凭据(管理员除外)才能工作。您使用的是什么版本的windows?谢谢您的回复。这两台计算机位于同一组和域中,但凭据不同。我正在使用windows 8.1 Pro。您可以通过使用窗口资源管理器打开来连接更改文件吗?您应该能够键入URL\\MachineName。或从cmd.exe尝试cd\\MachineName。您应该能够移动到带有cd的文件夹。使用dir获取文件夹中的文件列表。您可以使用通配符,如cd abc*。然后,当您进入文件夹时,可以键入应用程序名称。我怀疑一个文件或文件夹上的凭据必须更改,才能使两个帐户位于同一用户组中。非常感谢您的回复,我找到了解决问题的方法,但方式不同。我没有意识到CodedUI中的启动方法可能会被CodedUI中的用户名、密码和域重载。以防其他人需要此解决方案。Apps=ApplicationUnderTest.Launch(ConfigurationManager.AppSettings[“AUT”],null,null,“用户名”,密码,“域”);