admin管理员组

文章数量:1534360

2024年4月28日发(作者:)

众所周知,win7下的权限问题很让人头疼,主要的限制是:在安装目录下不能创建文

件以及执行任何的写操作。这个问题给程序的正确执行以及后期的更新都带来了不小的困

难,为了解决这个限制,尝试了下面方案。

通过设置来降低安装目录的权限

在win7下,安装软件都是在管理员权限下执行的,所以安装目录默认是管理员权限,

如果可以在安装时设置安装目录的权限,权限问题就会迎刃而解。

方法:InstallShield在打包的时候为我们提供了设置安装目录和文件权限的方法。在

Application Data的Files and Folders子项下,右键[INSTALLDIR],选择Permessions,

配置如下的文件权限:Domain是用户机器的域,这里一定要清空,User设置为Everyone,

同时选择下面的权限。

优点:此种方法既可以解决安装目录的权限问题,又不会对安装时的用户体验造成不

好的影响。

由于我们现有的安装规范都要求必须以Admin权限登录,所以很少会碰到以上的问

题。但是对于安装包而言,增加必要的有效性判断百利而无一害。例如我们可以在安装包

运行的最开始增加对Admin权限的判断:

//---------------------------------------------------------------------------

// OnBegin

//

// The OnBegin event is called directly by the framework after the setup

// initializes.

//---------------------------------------------------------------------------

function OnBegin()

STRING szMsg;

begin

// TO DO: you may change default non-UI setting, for example

//

// You may also perform your custom initialization steps, check

requirements,etc.

if !MAINTENANCE then

// 判断是否是系统管理员权限

szMsg = "You do not have sufficient security,privileges to install software on

this computer. Please contact your system administrator or log off and log-in again

as an administrator.";

if (!_Logged_On)then

SetDialogTitle ( DLG_MSG_INFORMATION, "Information" );

MessageBox (szMsg,INFORMATION);

abort;

endif;

endif;

end;

以上的脚本执行后,如果当前登录用户没有Admin权限,安装就无法继续。

本文标签: 权限安装目录