C#以管理员身份运行远程桌面应用程序

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

我有一个启动远程IE的代码。我希望使用“以管理员身份运行”选项启动应用程序。
如何实现这一点

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的路径