- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用 WiX 创建了一个服务安装程序。安装程序使用 InstallPrivileges="elevated"
运行。我的服务必须访问远程文件夹,因此我想指定用户属性以确保该服务具有足够的权限。
我查看了 WiX 文档,但我只找到了如何将本地系统定义为帐户。
如何为服务定义用户(可能是当前用户)?
<ServiceInstall Id="ServiceInstaller"
Type="ownProcess"
Vital="yes"
Name="$(var.service)"
DisplayName="$(var.product)"
Start="auto"
Account="LocalSystem"
ErrorControl="normal" />
最佳答案
Credentials:您需要指定一个帐户和密码,可能如下所示(现在没时间测试)。请注意,使用 msiexec.exe
或通过 MSI 对话框 从命令行安装时可以设置公共(public)属性:
<..>
<Property Id="SERVICEACCOUNT" Hidden="yes" Value="MyUser"/>
<Property Id="SERVICEPASSWORD" Hidden="yes" Value="MyPass"/>
<..>
<Component>
<ServiceInstall Name="MyService" Start="auto" ErrorControl="normal" Type="ownProcess"
Account="[SERVICEACCOUNT]" Password="[SERVICEPASSWORD]" >
</ServiceInstall>
<ServiceControl Name="MyService" Start="install" Stop="both" Wait="yes" Remove="uninstall" />
</Component>
创建本地用户:如果您需要在您安装的机器上创建本地用户,您可以使用 WiX Util 功能。 Perhaps see this sample on github .搜索 “util:User”
。
强制说教 :-):就我个人而言,我不喜欢使用用户凭据运行的服务 - 两者都是出于安全原因
/strong> 并出于实际原因
(在不导致重大服务中断的情况下管理密码更改过程)。
更多内容在第 12 节
此处:How do I avoid common design flaws in my WiX / MSI deployment solution?请同时检查链接 - 也许特别是“ managed service accounts ”? (step-by-step)。
一些链接:
关于c# - Wix ServiceInstall 指定账号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51787967/
我一直依赖 ServiceInstaller::AfterInstall 事件来运行服务运行前所需的代码。但是,现在我需要在升级前进行某些配置检查。 AfterInstall 不会在升级时运行。有没有
我使用 WiX 创建了一个服务安装程序。安装程序使用 InstallPrivileges="elevated" 运行。我的服务必须访问远程文件夹,因此我想指定用户属性以确保该服务具有足够的权限。 我查
我不明白 System.ServiceProcess.ServiceProcessInstaller 和 System.ServiceProcess.ServiceInstaller 之间的区别。来自
我已将两个 ServiceInstaller 添加到我的 ServiceProcessInstaller。之后我改变了我的 Main() 如下: static void Main() {
我正在尝试创建一个 WIX 安装程序来安装我的 Windows 服务以在 NetworkService 帐户下运行,并在安装过程中出现权限不足错误。 我发现这篇文章似乎有人遇到了同样的问题,但没有提供
为了使用 ServiceInstaller,我必须手动将它添加到工具箱,默认情况下它不存在。但是默认情况下,工具箱中有一个名为 ServiceController 的东西。所以我想知道这是否更好,是否
为了使用 ServiceInstaller,我必须手动将它添加到工具箱,默认情况下它不存在。但是默认情况下,工具箱中有一个名为 ServiceController 的东西。所以我想知道这是否更好,是否
我是一名优秀的程序员,十分优秀!