我的BasicMsi安装程序可以每台计算机安装一个应用程序(32位)MyApp。安装程序在启动时需要管理员权限。
将MyApp应用程序安装到操作员选择的INSTALLDIR文件夹中(通过UI / CommadLine),并使用子文件夹和文件创建%ProgramData%\<MyFirm>\<MyApp>
结构。
在msi表LockPermissions中,为 LOCAL 用户组“ Administrators”和“ Users”(位于以下位置)设置了<MyApp>
文件夹的修改权限(读取/写入/删除...) SID)。
<MyApp>
和子文件夹中的文件在运行时由应用程序MyApp使用和修改。
该安装程序将应用程序安装在从Win7到Win10 的系统上,以及从WinServer2003到WinServer2016 的系统上(<32> 64;打开/关闭UAC)。
该应用程序由操作员使用本地用户组“管理员”或“用户”(不“以管理员身份运行”)中的帐户启动。
问题:
在仅 WinServer2012和WinServer2016 安装后(未选中WinServer2008;并且 WinServer2003-IS正常),在本地组Administrators或Users中具有帐户的操作员没有写权限/删除/创建文件夹<MyApp>
和子文件夹中的文件。
结果-该应用程序无法正常运行(仅适用于WinServer2012和WinServer2016)。
请帮助我,提出以下问题:
%ProgramData%\<MyFirm>\<MyApp>
没有“以管理员身份运行”(打开/关闭UAC)吗?谢谢。
答案 0 :(得分:0)
更新:Setting Permissions in Windows Installer: MSILockPermissionsEX and ISLockPermissions(使用Installshield)。
权限检查 :该文件夹上显示的实际权限是什么?您可以使用Windows Explorer => Properties => Security => Advanced => Double click user / group to see detailed access
。检查可用和不可用的系统之间的差异。
如果这还不够好,请尝试SysInternals的AccessEnum或AccessChk工具来显示有关为该对象定义的权限的详细信息。
特权检查 :我还将使用Process Explorer检查您的流程运行的 NT特权-仅检查任何差异(科幻术语中的“ 鱼雷全幅传播”-就像“ 我们到底在做什么”一样)都不会受到伤害。我并不认为这会影响事情-特权和权限是不同的(特权在系统范围内适用-例如更改系统时间,作为服务登录,等等...-为安全对象(如文件和文件夹)定义了权限。
记录 :您是否进行了正确的记录?如果不是,请install and create a verbose log file。还有maybe check my answer here。并且a more elaborate version带有更多了解日志条目的提示。