方法一:
右键单击文件名,选择“属性”,选择“兼容性“选项,在下面部分能看见有“以管理员身份运行此程序”,勾上次项即可让当前用户直接以管理员身份运行此程序。
——就在“兼容性”选项的最下面,还能看见一个小盾牌图标“更改所有用户的设置”,点击进去,在下面部分能看见有“以管理员身份运行此程序”,勾上次项即可让所有用户直接以管理员身份运行此程序。
方法二:
直接从注册表中着手,为文件设置管理员身份权限。
在注册表中找到HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags
1. 新建一项
2.添加一个字符串值
名称就是完整的文件名 :C:\Test\test.exe
数据类型 : REG_SZ
数据 :RUNASADMIN
保存,再右键查看,这个时候文件以管理员权限运行已经勾选上了,并且变成了灰色,不能取消,就能让当前用户直接以管理员身份运行此程序。
——如果,新建项的数据类型选择为二进制值:REG_GBINARY,数据参照注册表已有的写入,就能让所有用户直接以管理员身份运行此程序。
方法三:
1.生成项目
例如electron,使用electron-packager生成目的,具有可以运行的exe文件
2.使生成的exe文件具备管理员权限
使用Resource Hacker工具(百度软件中心就可以下载)打开exe文件
修改:
改为
编译,保存
3.使用普通打包工具(常用的有inno setup等)使用打包工具生成安装包,打包工具内不需要设置权限。
使用安装包安装后的项目就具有了管理员权限
使程序默认以管理员权限运行(包括注册表修改法)
https://blog.csdn.net/guyue35/article/details/49055813/
UAC技巧:使Windows内置程序默认以管理员权限运行
转载:
UAC技巧:使Windows内置程序默认以管理员权限运行_最火下载站
http://www.veryhuo.com/a/view/35011.html
Windows Vista 和Windows 7 中的用户帐户控制(UAC)功能可以为用户提供一个安全的桌面环境,所有程序默认都运行在普通权限(中完整性级别)下,有可能修改系统设置或文件的操作都需要经过用户的明确批准才能以高级权限(高完整性级别)执行。
有的时候,我们需要某些程序运行在高权限下,只需在程序或快捷方式上点击右键,选择“以管理员身份运行”:
如果希望该程序每次都以高权限运行可以在程序或快捷方式的属性中切换到“兼容性”选项卡,勾选“以管理员身份运行此程序”即可:
这样,每次运行该程序都会请求以管理员身份运行,并且该程序的图标上会多出一个UAC的盾牌图标。某些老旧的应用程序在新的操作系统上遇到运行不正常的情况,就可以通过这种方式来解决。
但是,如果你希望对 Windows 内置的应用程序应用这样的设置呢?例如,有的IT管理员可能需要经常以管理员身份运行命令提示符cmd执行系统管理命令,每次都点右键显然很烦人。当他试图为命令提示符程序设置兼容性模式时,会看到这样的提示:“由于这个程序是该版本 Windows 的一部分,无法在上面设置兼容模式。”
出现这种问题的原因是由于该功能是为了解决老式应用程序的兼容性问题而设计的,而Windows 内置程序具有先天优势,本身就完全兼容于当前系统,因此不允许为他们设置兼容性属性。
要解决这个问题,让命令提示符每次都强制以管理员身份运行,你可以使用以下几种方式:
修改文件绕过系统验证(不推荐)
首先你可能会想到,系统是如何判断这个程序是系统内置程序的呢?如果把文件从系统文件夹拷贝出来,可以解决以上问题吗?实验结果是不行的,因为系统是通过数字签名来判断该程序是否是 Windows 内置的。数字签名是保证文件在发布之后不被修改,并且标明发布者身份的一种技术,只要文件被修改,该文件的 Windows 签名就会失效,系统就不会认为它是内置程序了。但修改系统文件不是一种好方法,我们有更好的办法可以实现。
注册表设置兼容性选项
其实,文件的兼容性设置的选项是保存在用户的注册表中的。我们可以运行注册表编辑器,然后找到 HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers(针对当前用户有效)或者HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers(针对所有用户有效) 这个路径,其中就保存了已经设置兼容性模式的所有程序及其设置信息:
例如: 我们可以在批处理文件中使用
REG ADD "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v %~dp0Cmder.exe /t REG_SZ /d RUNASADMIN/f来添加管理员权限
或者
REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
添加一个值(名称: Data,类型: REG_BINARY,数据: fe340ead)
REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
添加一个值(名称: MRU,类型: REG_MULTI_SZ,数据: fax\0mail\0\0)
REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^%
添加一个值(名称: Path,类型: REG_EXPAND_SZ,数据: %systemroot%)
注意: 在扩充字符串中使用插入符号 ( ^ )
依葫芦画瓢,新建一个字符串值,名称设置为程序的路径(不带引号),数据为“RUNASADMIN”,这样就可以绕过系统的限制,同时又不必修改该程序,强制指定该程序以管理员身份运行了:
快捷方式设置
第二种方法也很方便,只需在程序的快捷方式上点右键,选择‘属性’,并单击“快捷方式”选项卡上的“高级”按钮,看到没,在这里也有一个“以管理员身份运行”的选项。选中之后,我们的目的就达到了:
不过需要注意的是,第一种方法是对当前用户生效的,第二种方法只是快捷方式的一个属性,因此只对该快捷方式生效。例如,对开始菜单中的“画图”快捷方式进行了该设置,只有在单击该快捷方式时才会以管理员身份运行画图程序,运行其他地方的快捷方式,以及直接运行画图程序exe都不会应用该设置。
作者:guyue35
来源:CSDN
原文:https://blog.csdn.net/guyue35/article/details/49055813/