unity打包的windows程序运行权限问题整理

在Vista以后的windows版本中,有些时候需要提升编译后生成程序的权限,即希望让生成的程序以管理员身份运行。虽然在一般情况下,可以使用鼠标右键选择的方式来强行以管理员身份运行,但它并没有屏蔽普通运行方式,而且普通人通常也不会使用右键选择以管理员身份运行,所以必须在生成程序时就限定程序只能以管理员方式来运行。
在Vista以后的windows版本中,微软引入了UAC机制,它的目的是防止程序对操作系统本身进行恶意篡改。要让程序以管理员身份运行,就需要在程序中引入UAC标注,也即让程序显示“UAC盾牌”(就是软件icon右下角会有一个盾牌的logo)
在这里插入图片描述

UAC Execution Level可选参数:
0: asInvoker:应用程序将使用与启动它的进程相同的权限运行。 可通过选择“以管理员身份运行”将应用程序提升为更高权限。 (俗称中权限)
1: highestAvailable:应用程序将使用可能的最高权限级别运行。 如果启动该应用程序的用户为管理员组的一个成员,则此选项与 requireAdministrator 相同。 如果可用的最高权限级别高于打开进程的级别,则系统将提示提供凭据。
2: requireAdministrator:应用程序将使用管理员权限运行。 启动该应用程序的用户必须是管理员组的一个成员。 如果打开进程未使用管理权限运行,则系统将提示提供凭据。(俗称高权限)

对于unity程序,打包是使用的windowsplayer.exe文件(路径就在下面)来打包的,level的设置是在unity的安装目录下的Data\PlaybackEngines\windowsstandalonesupport\Source\WindowsPlayer\WindowsPlayer\WindowsPlayer.manifest"
在这里插入图片描述

当level = asInvoker的时候,没有小盾牌
当level = requireAdministrator的时候,是有小盾牌的

官方文档解释manifest文件属性

unity打包win包将高权限改为中权限的一个处理方案

tips1: 如果level = anInvoker 但打出来的包仍然有小盾牌,或者包移动到其他电脑上显示出了小盾牌,那么需要查一下打包后的脚本操作。比如可以通过这种方法修改,进行权限签名操作。(也就是说可以通过外部命令行的形式进行修改)

在这里插入图片描述

tips2: 为什么我的电脑图标带有小盾牌,却没有弹出让我获取管理员权限的提示呢?
跟自己的电脑安全设置有关

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值