双击程序需要权限确认打开程序和以管理员权限运行的区别

豆丁微信公众号
君,已阅读到文档的结尾了呢~~
如何双击以管理员权限运行批处理文件
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
如何双击以管理员权限运行批处理文件
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口本博专注于基于微软技术的搜索相关技术
posts - 189, comments - 3713, trackbacks - 26, articles - 0
Vista 和 Windows 7 操作系统为了加强安全,增加了 UAC(用户账户控制) 的机制,如果 UAC 被打开,用户即使是以管理员权限登录,其应用程序默认情况下也无法对系统目录,系统注册表等可能影响系统运行的设置进行写操作。这个机制大大增强了系统的安全性,但对应用程序开发者来说,我们不能强迫用户去关闭UAC,但有时我们开发的应用程序又需要以 Administrator 的方式运行,即 Win7 中 以 as administrator 方式运行,那么我们怎么来实现这样的功能呢? & 我们在 win7 下运行一些安装程序时,会发现首先弹出一个对话框,让用户确认是否同意允许这个程序改变你的计算机配置,但我们编写的应用程序默认是不会弹出这个提示的,也无法以管理员权限运行。本文介绍了 C# 程序如何设置来提示用户以管理员权限运行。 首先在项目中增加一个 Application Manifest File &
& 默认的配置如下:&?xml version="1.0" encoding="utf-8"?&
&asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&
&assemblyIdentity version="1.0.0.0" name="MyApplication.app"/&
&trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"&
&security&
&requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"&
&!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.
&requestedExecutionLevel
level="asInvoker" uiAccess="false" /&
&requestedExecutionLevel
level="requireAdministrator" uiAccess="false" /&
&requestedExecutionLevel
level="highestAvailable" uiAccess="false" /&
If you want to utilize File and Registry Virtualization for backward
compatibility then delete the requestedExecutionLevel node.
&requestedExecutionLevel level="asInvoker" uiAccess="false" /&
&/requestedPrivileges&
&/security&
&/trustInfo&
&/asmv1:assembly&
我们可以看到这个配置中有一个 requestedExecutionLevel 项,这个项用于配置当前应用请求的执行权限级别。这个项有3个值可供选择,如下表所示:
Description
The application runs with the same access token as the parent process.
Recommended for standard user applications. Do refractoring with internal elevation points, as per the guidance provided earlier in this document.
highestAvailable
The application runs with the highest privileges the current user can obtain.
Recommended for mixed-mode applications. Plan to refractor the application in a future release.
requireAdministrator
The application runs only for administrators and requires that the application be launched with the full access token of an administrator.
Recommended for administrator only applications. Internal elevation points are not needed. The application is already running elevated.
asInvoker : 如果选这个,应用程序就是以当前的权限运行。
highestAvailable: 这个是以当前用户可以获得的最高权限运行。
requireAdministrator: 这个是仅以系统管理员权限运行。
默认情况下是 asInvoker。
highestAvailable 和 requireAdministrator 这两个选项都可以提示用户获取系统管理员权限。那么这两个选项的区别在哪里呢?
他们的区别在于,如果我们不是以管理员帐号登录,那么如果应用程序设置为 requireAdministrator ,那么应用程序就直接运行失败,无法启动。而如果设置为 highestAvailable,则应用程序可以运行成功,但是是以当前帐号的权限运行而不是系统管理员权限运行。如果我们希望程序在非管理员帐号登录时也可以运行(这种情况下应该某些功能受限制) ,那么建议采用 highestAvailable 来配置。
关于requestedExecutionLevel 设置的权威文档请参考下面链接:
下面是修改后的配置文件:&?xml version="1.0" encoding="utf-8"?&
&asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&
&assemblyIdentity version="1.0.0.0" name="MyApplication.app"/&
&trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"&
&security&
&requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"&
&!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.
&requestedExecutionLevel
level="asInvoker" uiAccess="false" /&
&requestedExecutionLevel
level="requireAdministrator" uiAccess="false" /&
&requestedExecutionLevel
level="highestAvailable" uiAccess="false" /&
If you want to utilize File and Registry Virtualization for backward
compatibility then delete the requestedExecutionLevel node.
&requestedExecutionLevel level="requireAdministrator" uiAccess="false" /&
&/requestedPrivileges&
&/security&
&/trustInfo&
&/asmv1:assembly&
配置文件修改后,我们运行应用程序,就会首先弹出这样一个提示框,点 Yes 后,程序才可以继续运行,并且获得系统管理员的权限。
下面再来看看程序如何知道当前运行在系统管理员权限还是非系统管理员权限:
public static bool IsAdministrator()
WindowsIdentity identity = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(identity);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
这段代码可以用于判断当前程序是否运行在系统管理员权限下。如果配置为 asInvoker,在win7 下,这个函数会返回 false ,如果是 requireAdministrator& 则返回 true。为什么有些程序只能有“以管理员身份运行”打开。【windows7吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:469,457贴子:
为什么有些程序只能有“以管理员身份运行”打开。收藏
本人玩幻想世界超不爽,每次双击图标都提示错误。最后通过qq的提示才知道,原来要通过“以管理员身份运行”才能成功。很是郁闷。请问有没办法修正的
回复:2楼"当UAC横空出世后,pc中几乎所有的进程与运行的程序都可以被拦截,尤其对那些试图使用管理员权限自动安装或自动运行的程序有显著的效果。&&&&& Windows Vista还带来了很多其它的安全特性。Windows防火墙的升级版可以对出站和入站连接进行管理。而以往版本的Windows防火墙只能对入站连接进行管理,这意味着有可能在用户毫不知情的情况下成为攻击其它计算机的DDoS攻击者中的一员。另外,Windows Defender可以免费提供对常见恶意软件的防护。&&&&& 同时自动更新也应当被包含在安全组合中,虽然它不象前面提到的那些安全程序,但对于系统安全而言仍是必不可少的组成部分。微软每个月都会通过Windows Update对自己或其它研究机构发现的漏洞进行定期修补。&&&&& 想在一台没有安装防病毒软件的机器上和病毒交锋,那么几乎所有的重担都将落在UAC的头上。既没有防病毒软件也没有UAC的机器可以被病毒无声无息的轻易攻破。&&&&& 病毒可以通过电子邮件(如果用户运行包含病毒的附件)或其它程序感染电脑。一个非常有效的途径就是不法分子将商业软件破解(如“warez”)后植入病毒,然后通过网站、FTP、BT网络、即时通讯软件,甚至IRC进行大范围的传播。如果不安装防病毒软件对此类来源的软件进行扫描,那么就算被感染了用户也发现不了。&&&&& 更糟糕的是,病毒通常都会极快的产生各种类型的“变种”,大多数的防病毒软件是通过特征码的形式进行病毒识别的,因此如果病毒变种后的代码与防病毒软件的定义不符,那么它同样可以感染“受保护”的电脑。"以上那段看起来很重要,关掉真的好吗。
关掉 不太好啊
楼主,我也是这种情况,不得不说很无奈
按住shift?打开
登录百度帐号博客分类:
原因:项目需要开机自动重启以及每晚清理缓存自动重启。项目轮巡设备数据采用的是虚拟串口,必须以管理员身份才能通过虚拟口读取数据。
解决方法来自:http://hi.baidu.com/fateland/item/de5f8baf48f513
找了N天了!
“在任务属性对话框中,单击“安全选项”中的“更改用户或组...”按钮,输入用户组名Administrators,看清楚了,不要填错,点击确定回到任务属性对话框,选中“使用最高权限运行”复选框,最后点击“确定”,配置完成。”
浏览: 29789 次
来自: 深圳
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'以管理员身份运行与双击运行的区别?_百度知道
以管理员身份运行与双击运行的区别?
以管理员身份运行与双击运行同一个程序有什么区别?感觉上应该不同吧?
我有更好的答案
普通运行只是单纯的运行程序,不能进行更改程序和附加程序,而用管理员身份运行程序将会有更多权限,比如更新,修改等.建议你如果不是安全系数很高的程序,还是不要用管理员运行的好
查看原帖&&满意请采纳
采纳率:71%
为您推荐:
其他类似问题
管理员的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 应用程序管理员权限 的文章

 

随机推荐