我知道如何使用以下流程从进程启动具有管理员权限的进程:
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.Verb = "runas";
Run Code Online (Sandbox Code Playgroud)
其中proc是System.Diagnostics.Process.但是,如何做相反的事情呢?
如果您所处的进程已经提升,那么如何在没有管理员权限的情况下启动新进程?更准确地说,我们需要使用与Windows资源管理器相同的权限级别启动新进程,因此如果禁用UAC则无需更改,但如果启用了UAC,但我们的进程正在升级,则需要执行某项操作因为我们正在创建一个虚拟驱动器,如果它是使用提升的权限创建的,并且Windows资源管理器运行速度不高,则不会显示.
随意将标题更改为更好的标题,我无法想出一个好的描述.
我有一个应用程序,我必须以管理员身份运行.
该应用程序的一小部分是使用Process.Start启动其他应用程序
启动的应用程序也将作为管理员运行,但我宁愿看到它们作为"普通"用户运行.
我该如何做到这一点?
/约翰/
我有一个以提升权限开始的批处理文件(我的安装程序生成它),但在某个时刻我需要以启动我的安装程序的原始用户(即从提升的权限中删除)运行命令.
有可能这样做吗?
好吧,我在网上查了好久,根本找不到这方面的资料。
基本上,我想要做的是从提升的 PowerShell 脚本运行程序,但我希望该程序以标准用户身份运行。
我需要这样做,因为我需要运行的程序需要访问域管理员帐户无权访问的映射网络驱动器。因此,我基本上需要一行代码来使脚本脱离提升模式,或者对 Start-Program 命令进行一些扩展,使其作为登录用户而不是运行脚本的管理员帐户运行。
当安装程序(由Inno Setup构建)启动进程时,该进程始终以管理员权限运行. - 因为安装程序已作为管理员运行.
我想将子进程作为当前用户的权限运行.
有好办法吗?
elevation ×2
uac ×2
.net ×1
batch-file ×1
c# ×1
manifest ×1
powershell ×1
process ×1
winapi ×1
windows ×1