C#以管理员身份运行远程桌面应用程序
我有一个启动远程IE的代码。我希望使用“以管理员身份运行”选项启动应用程序。C#以管理员身份运行远程桌面应用程序,c#,.net,internet-explorer,rdp,C#,.net,Internet Explorer,Rdp,我有一个启动远程IE的代码。我希望使用“以管理员身份运行”选项启动应用程序。如何实现这一点 private static void StartSession(string hostName) { var filespec = Path.Combine(GetRootFolderSpec(), "session.rdp"); if (File.Exists(filespec)) File.Delete(filespec); var settings = GetRdpSet
如何实现这一点
private static void StartSession(string hostName)
{
var filespec = Path.Combine(GetRootFolderSpec(), "session.rdp");
if (File.Exists(filespec)) File.Delete(filespec);
var settings = GetRdpSettings(hostName);
File.WriteAllText(filespec, settings);
File.SetAttributes(filespec, FileAttributes.Hidden);
Process.Start(filespec);
}
private static string GetRdpSettings(string hostName)
{
return @"redirectclipboard:i:1
redirectposdevices:i:0
redirectprinters:i:0
redirectcomports:i:1
redirectsmartcards:i:0
devicestoredirect:s:
drivestoredirect:s:
session bpp:i:32
prompt for credentials on client:i:1
span monitors:i:1
use multimon:i:1
remoteapplicationmode:i:1
server port:i:1111
allow font smoothing:i:1
screen mode id:i:1
smart sizing:i:1
promptcredentialonce:i:1
authentication level:i:2
gatewayusagemethod:i:2
gatewayprofileusagemethod:i:0
gatewaycredentialssource:i:0
full address:s:" + hostName + @"
alternate shell:s:||iexplore
remoteapplicationprogram:s:||iexplore
gatewayhostname:s:
remoteapplicationname:s:iexplore.exe
remoteapplicationcmdline:s:";
}
如果您在Windows或更高版本上运行
if (Environment.OSVersion.Version.Major >= 6)
{
processStartInfo.Verb = "runas";
}
您是否可以控制目标计算机以添加其他可以代替IE运行的软件?(例如,对
备用shell
参数使用您自己的程序,并将其启动IE,然后等待关闭。)。此外,如果这是任何其他应用程序以外的IE,我想你会有更多的选择了。你是一直在做IE呢,还是只是在这个例子中选择了IE?谢谢Scott。对于我正在处理的项目,使用IE是必要的。目标计算机可以根据不同的客户而有所不同。因此,硬编码也将在一秒钟内完成。您是想以管理员身份运行mstsc.exe
(远程桌面程序),还是想以管理员身份在连接到的服务器上运行iexplore.exe
?在我以管理员身份连接到的服务器上运行iexplore.exe?这与C.
或.net
无关。您只是通过C#生成了.RDP文件,但在这之后,就没有任何相关内容了。在这个站点上或者在服务器故障上询问关于RDP的具体问题会更好。谢谢Simone,但是如果我使用processStartInfo,即processStartInfo.FileName=filespec;Process.Start(processStartInfo);代码无法识别session.rdp的路径