本文介绍了如何从具有管理员权限的进程开始没有管理员权限的新工艺?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我创建了一个应用程序的自动更新。该应用程序是由用户启动,并没有管理员权限运行。该autoupdater启动具有管理员权限,并杀死它下载新的文件之前,该应用程序。
问题是当我想要的autoupdater完成后启动更新的应用程序。如果使用常规System.Diagnostics.Process.Start(文件),应用程序启动时具有管理员权限过了,它的的的对当前用户运行按预期。工作
所以,我怎样才能让autoupdater启动应用程序作为当前用户而不是管理员?
我已经尝试使用以下尝试:
VAR PSI =新的ProcessStartInfo(){
UseShellExecute =假,
用户名= Environment.UserName,
文件名=文件
};
System.Diagnostics.Process.Start(PSI);
不过,这将引发错误无效的用户名或密码。我已签了名是正确的,据我所知,大概密码是无效的,因为我没有将它。但它不是一个选项,以请求用户输入他/她的口令,由于整个原因自动启动应用程序,以使其更易于为用户
有什么建议?
解决方案
你所要实现的目标,不能很容易完成的,并且不支持。然而,有可能使用黑客的一点点。亚伦Margosis写了article描述的技术。
要引用的有关部分,你将需要进行下列步骤:
The article contains a download link for some demo C++ source from which it should be simple enough to translate to C#.
这篇关于如何从具有管理员权限的进程开始没有管理员权限的新工艺?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!