问题描述
两者之间的真正区别是什么:
我阅读了帮助但并没有真正理解它:
IsAdminInstallMode
:如果安装程序正在运行,则返回 True
管理安装模式或者如果卸载正在运行
管理权限。
IsAdmin
:如果安装/卸载,则返回 True
正在以管理权限运行。
管理安装 / 管理权限有什么区别?
我之所以这么问是因为在构建时我收到了这个警告:
警告:第 118 行,第 6 列:[提示] 支持函数“IsAdminLoggedOn”已重命名。改用“IsAdmin”或考虑使用“IsAdminInstallMode”。
我应该使用哪个,为什么?
解决方法
如文档所述,IsAdminInstallMode
如果安装程序在 administrative install mode 中运行,则返回 True。 管理安装模式意味着:
-
{group}
文件夹是在 All Users 配置文件中创建的。 - 目录和 Shell 文件夹常量的“自动”形式映射到“通用”形式。
- HKA、卸载信息和字体安装根密钥将为 HKEY_LOCAL_MACHINE。
是否使用管理员安装模式取决于PrivilegesRequired
directive。如果安装程序需要特权,您基本上使用目录来声明。
虽然 IsAdmin
(又名 IsAdminLoggedOn
)为真,但如果安装程序以管理员权限执行。所以这是用户控制的东西,而不是安装程序。
IsAdminLoggedOn | IsAdminInstallMode | 含义 |
---|---|---|
真的 | 真的 | 安装程序以管理员权限执行,并使用管理员权限为所有用户安装应用程序。 |
真的 | 错误 | 安装程序是使用管理员权限执行的,但不需要管理员权限,并且仍仅为当前用户安装应用程序。 |
错误 | 错误 | 安装程序不是以管理员权限执行的,不需要管理员权限,因为它只会为当前用户安装应用程序。 |
错误 | 真的 | 不可能。 |
IsAdmin
相当于 IsAdminLoggedOn
。但通常情况下,您实际上想要的是 IsAdminInstallMode
,而不是 IsAdminLoggedOn
。这就是为什么该函数被重命名并拆分为这两个的原因。这取决于你测试什么。