我知道如何使用以下流程从进程启动具有管理员权限的进程:
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.Verb = "runas";
Run Code Online (Sandbox Code Playgroud)
其中proc是System.Diagnostics.Process.但是,如何做相反的事情呢?
如果您所处的进程已经提升,那么如何在没有管理员权限的情况下启动新进程?更准确地说,我们需要使用与Windows资源管理器相同的权限级别启动新进程,因此如果禁用UAC则无需更改,但如果启用了UAC,但我们的进程正在升级,则需要执行某项操作因为我们正在创建一个虚拟驱动器,如果它是使用提升的权限创建的,并且Windows资源管理器运行速度不高,则不会显示.
随意将标题更改为更好的标题,我无法想出一个好的描述.
我正在尝试以编程方式检查文件扩展名(例如.jnlp文件)的文件关联.我一直在读
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\JNLPFile\Shell\Open\Command
Run Code Online (Sandbox Code Playgroud)
是要检查的注册表项.但是,如果通过Windows资源管理器更改关联:
打开方式>选择程序>(始终使用所选程序)
此注册表项中的更改完全没有反映出来.这些信息还存储在哪里?
我有一个应用程序,我必须以管理员身份运行.
该应用程序的一小部分是使用Process.Start启动其他应用程序
启动的应用程序也将作为管理员运行,但我宁愿看到它们作为"普通"用户运行.
我该如何做到这一点?
/约翰/
我有一个提升的控制台运行一些bat文件.让此控制台以提升模式运行是必需的,因为它能够执行某些任务,如管理网络共享等,而无需请求权限.但有时脚本还必须启动一些不希望运行升级的应用程序.所以我们希望我们的升级蝙蝠开始以非升高模式应用.在Windows上有没有内置的方法可以做到这一点?使用DOS命令START启动进程到日期.
顺便说一句,该机器是Windows 7旗舰版x64.
我知道这个问题已经在许多问题中以编程方式进行了讨论(这会收集其中许多问题),但我们的要求是在cmd上运行的bat脚本,以及可能对我们的任务有帮助的任何独立可执行文件,如nircmd,7z等.
澄清:我们已经有一个计划任务启动控制台升级,升级控制台不是问题所在.