我遵循本指南使用Windows服务的虚拟帐户: https : //technet.microsoft.com/library/dd548356%28v=ws.10%29.aspx?f=255&MSPPError=-2147217396
因此,这些types的账户不是手动创build的,而是隐含地使用的。 本指南没有提及,但也需要授予“login即服务”权限到不存在的虚拟帐户。
例如,sql Server Express 2014为其服务使用虚拟帐户,并以NT ServiceMSsql$sqlEXPRESS的用户身份运行它们。 安装后,您可以在“作为服务login”帐户列表中find帐户名称。
问题是我不知道如何以编程方式将此权限授予虚拟帐户。 我已经看过使用pinvoke使用LsaAddAccountRights函数,但它需要指定帐户的SID。 我不相信一个虚拟帐户有一个SID。
安装1.9.2后无法让ruby 1.8.7工作
如何获取设备pipe理器Windows中带有黄色感叹号的设备列表 – c ++
Windows如何知道用什么程序打开文件?
当它过去工作时,Untar失败
我如何才能将login授予虚拟帐户的服务权限,Microsoft使用sql Server Express的方式?
如何摆脱我的PC应用程序中的UAC警告
使用SoundEffect播放同步audio剪辑时滞后
如何在Windows上使用Python处理包含EOF / Ctrl-Z字符的大型文本文件?
打开位置在Windows Phone 7中切换
当mongod正在运行时,Crtl + C不会查杀进程,并且nodemon引发错误端口已经被使用
默认情况下,“作为服务登录”的权利被授予ALL SERVICES所以你的自我回答说你不需要明确地添加每个服务。 但是,如果配置已被修改,则可能需要这样做。 (这大概是为什么sql安装程序这样做。)
虚拟服务帐户有SID,与服务名称有1:1的对应关系。 甚至有一个命令行工具,可以提前计算它们,如果你需要:
C:>sc showsid xyzzy NAME: xyzzy SERVICE SID: S-1-5-80-1601682549-2674398373-2289982826-1892655095-2161370298
一旦你安装了服务,我找不到一个API来做这个计算(注意,登录权只是为了服务启动成功,不是为了安装它),你可以查看SID的方式与查找其他SID相同,例如LookupAccountName()。
事实证明,虚拟服务帐户并不明确需要“登录即服务”权限。
问题是登录名必须匹配使用它的服务的确切名称。 因此,对于名为MyService的服务,登录名必须完全是“NT Service MyService”。 它不能是一个任意的帐户名称。
编辑:
从技术上讲,他们确实需要“作为服务登录”权限,但默认情况下这被授予NT ServiceALL SERVICES权限。 但是这个权限可能已经被用户修改了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。