【发布时间】:2016-09-18 07:13:23
【问题描述】:
我有一个“高级安装程序”项目,我正在尝试使用它来安装我构建的“TopShelf”Windows 服务。
我在 Advanced Installer 中找到了授予安装文件夹权限的位置,但我没有看到授予“本地系统”帐户权限的方法。
手动完成,方法是转到文件夹属性中的安全选项并添加与计算机名称同名但以$ 结尾的用户。例如MyNiceComputer$。 (哦,您必须在types 区域中选择“计算机”选项。)
但在 Advanced Installer 中无法完成所有这些操作。如果我确实制作了MyNiceComputer$ 之类的内容,它只会在安全选项卡中创建一个空条目。 (没有权限,即使我设置为完全控制。)
有没有人需要使用 Advanced Installer 执行此操作?
其他详情:
我正在安装一个作为 Windows 服务运行的应用程序。 (这是一个使用TopShelf 构建的控制台应用程序)。
我们公司的政策是将我们所有的应用程序安装到如下所示的文件夹中:
C:\OurCompanyApps\MyApp
当我创建安装程序时,它运行良好,但是当我启动 Windows 服务时,我收到以下错误:
Windows 无法在本地计算机上启动 MyApp 服务
错误 5:访问被拒绝。
但是当我授予对本地系统的访问权限时(通过在 MyApp 文件夹上授予 myNiceComputer$ 的完全控制权限),此错误消失并且应用程序运行正常。根据我的阅读,这是因为应用程序作为本地系统运行。
它需要完全控制似乎很奇怪,但没有它就无法工作。 (但据我所知,文件夹的内容没有改变)。
@Bogdan Mitrache 似乎表明无法通过高级安装程序授予本地系统权限。很高兴知道这一点(所以我不会浪费更多时间寻找)。我可能会要求我的系统管理员提供一个专用的系统帐户来运行我的服务。不理想,但它可以作为一种解决方法。
【问题讨论】:
-
我不确定是否有办法通过 AI 来实现(我的一个组显示一个 SYSTEM 用户,但它是一个 MSSQL 组,我还没有费心检查 SID) ,但您绝对可以编写一个自定义操作(我推荐 C#)来处理它。 Bogdan 很擅长回答 SO,但您可能还想访问他们的论坛,因为他们也经常在那里回答。
-
抱歉,我一定遗漏了什么。为什么需要给它特定的权限? LocalSystem 帐户是否默认拥有足够高的权限来访问机器范围的资源? stackoverflow.com/questions/510170/…
-
另外,如果您只想将这些权限写入安装文件夹,您应该重新考虑安装程序/应用程序。首先在安装文件夹中你不应该在应用程序运行时写东西,因为你有 AppData 和 UserData 文件夹。或者,如果您确实需要写入安装程序文件夹,请选择不需要任何特殊权限的默认位置。
-
@adamdc78 - 我试图去表单,但当我注册时,确认电子邮件从未进入我的收件箱或垃圾邮件过滤器,所以我无法发帖。
-
@BogdanMitrache - 我添加了解释为什么我需要我需要的东西的细节。它位于其他详细信息下。
标签: advanced-installer local-system-account localsystem