问题:

问题:

问题:

在 Windows 家庭版/专业版(Windows 10)中,创建本地服务帐户的推荐方法是什么?

有没有这方面的文档?(Powershell、GUI 等)。

澄清:这不是 Active Directory 问题 - 或 Windows 服务管理帐户问题 - 仅限于桌面。

语境:

Bittorent 的 BTSync 安装提示选择作为本地 Windows 服务启动。

在安装过程中,它会提示您输入本地服务帐户的用户名和密码。

与 Linux 一样...:

在 Linux 中,我通常使用 useradd,并将帐户与适当的组关联:

useradd -M btsync
usermod -L btsync

注意:-r 用于在 Linux 中创建服务帐户,但它是否禁用登录似乎不一致 - 并且没有记录(手册链接)。

不会创建主目录,登录将被禁用,

答案1

适用于:

Windows 7、8/8.1、Windows 10——家庭版和专业版。

程序(如 BTSync)安装服务 - 但不像其他程序(IIS、MySQL、SQL Server 等)那样遵循 Windows 服务约定。

问题:

  1. 软件缺陷: 某些安装(例如 BitTorrent Sync)不会安装 Windows 服务 - 除非指定了常规用户帐户。  
  2. 预期行为:应该自动提供正确的 NT 服务帐户身份,或者至少允许用户提供。
  3. 安全问题:用户被迫创建另一个常规用户帐户,(作为最佳实践,这永远不应该这样做)。  
  4. 解决方法:指定适当的服务帐户后,应删除该临时用户帐户。

参考

  1. Windows 不使用“服务帐户”—— 在 Linux 意义上,而是“虚拟账户“ 和 ”托管服务帐户(适用于参与 LDAP 环境的计算机

  2. 服务帐户命名约定:根据命名约定,虚拟账户应遵循以下形式:“命令名称”-[扩展] +“svc”
    评论中的注释: NT Service\ 应为“属性”>“常规”选项卡中的服务名称 - 它不必包含“svc”或命令名称。(不过,我还没有用 PowerShell 脚本测试过这一点。)

    "btsync.exe" becomes "NT Service\btsyncsvc"

创建虚拟“NT 服务”帐户:

  1. 打开本地服务管理单元“services.msc”

  2. 导航到所需的服务(btsync),右键单击“属性”。

  3. 选择“登录”选项卡。

  4. 选择指定用户的选项。

  5. 输入上面描述的“常规”服务名称:(不带引号)。

    NT Service\btsyncsvc

  6. 删除密码。

  7. 保存 - 应用

  8. 重新启动服务。

设置文件夹权限:

设置文件夹权限 - 使用完整帐户名:“NT Service \btsyncsvc”,(根据上下文可能需要或不需要使用引号......)...

btsyncsvc 不需要具有执行权限,因此如果愿意的话可以删除——否则则完全控制。

错误 - 由于“帐户名称和安全 ID 之间无映射”导致服务启动失败:

例如,如果您指定“NT Service\btsync”而不是“NT Service\btsyncsvc”,就会发生此错误...

以下命令将返回当前服务帐户名称的列表。

使用 PowerShell(PS),根据您指定用于“登录”的列表验证列表:

PS > get-service | foreach {Write-Host NT Service\$($_.Name)}

错误 - 服务无法启动,因为帐户尚未被授予“作为服务登录”权限:

如果您指定了错误的“常规名称”或者确实缺少权限,则可能会发生此错误 - 但是,如果使用正确的约定,将自动分配。

在 Windows 10 家庭版中,用户将无法使用本地安全策略管理单元来配置此功能(secpol.msc),而必须通过 PowerShell 或其他实用程序手动完成。

PowerShell 脚本:

为了解决这个问题,可以使用 PowerShell。“Grant-Log-on-as-a-service PowerShell 脚本,来自 Technet 库”

如果 PowerShell 报告“ExecutionPolicy 错误”,则可能需要更改 ExecutionPolicy:

PS > Set-ExecutionPolicy RemoteSigned

...可能会导致签名错误--然后更改为:

PS > Set-ExecutionPolicy Unrestricted

然后使用脚本分配权限:

PS > .".\Add Account To LogonAsService.ps1" "NT Service\btsyncsvc"

如果需要,重置 ExecutionPolicy:

PS > Set-ExecutionPolicy Restricted

希望这可以帮助!

相关内容