安装程序无法为WinServer2012 +上的%ProgramData%\ MyFirm \ MyApp设置正确的文件夹权限。

时间:2018-10-31 16:06:02

标签: windows permissions installation windows-installer installshield

我的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%下的文件夹权限有什么区别,或者Win10(或WinServer2003)与(WinServer2012和WinServer2016)的本地内置用户组(“管理员”或“用户”)的权限有什么区别? ?
  • 系统中应更改的其他内容(WinServer2012和 WinServer2016),由安装程序执行,以便从本地帐户 组管理员或用户在文件夹中具有写/删除权限 %ProgramData%\<MyFirm>\<MyApp> 没有“以管理员身份运行”(打开/关闭UAC)吗?

谢谢。

1 个答案:

答案 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的AccessEnumAccessChk工具来显示有关为该对象定义的权限的详细信息。

特权检查 :我还将使用Process Explorer检查您的流程运行的 NT特权-仅检查任何差异(科幻术语中的“ 鱼雷全幅传播”-就像“ 我们到底在做什么”一样)都不会受到伤害。我并不认为这会影响事情-特权权限是不同的(特权在系统范围内适用-例如更改系统时间,作为服务登录,等等...-为安全对象(如文件和文件夹)定义了权限。

  • 启动流程浏览器
  • 双击您的申请流程(如果启动)
  • 转到“安全”标签,然后查看下面的框:

Process Explorer


记录 :您是否进行了正确的记录?如果不是,请install and create a verbose log file。还有maybe check my answer here。并且a more elaborate version带有更多了解日志条目的提示。