组策略是否会干扰 Sql Server Express 安装?

组策略是否会干扰 Sql Server Express 安装?

我们有一个软件包,可供客户安装在其用户的笔记本电脑上。

安装程序的一部分运行 MS 的 Sql Server Express 2014。

我们将命令行选项传递给安装程序,该选项应该启用 SA 登录,并向 Windows BUILTIN\Administrators 组授予 sqladmin 权限。

我们运行的安装程序命令行:

SETUP.EXE /QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=Install /FEATURES=SQL /INSTANCENAME=SQLEXPRESS /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" /SECURITYMODE=SQL /SAPWD="ASecretPassword"

我爱UI,/SECURITYMODE=SQL应该启用 SA 登录,并且/SQLSYSADMINACCOUNTS=应该向 Windows 组授予 sqladmin 权限。

关于这些论点的文档在这里:

从命令提示符安装 SQL Server

在我尝试的每台机器上以及客户的机器上,我都可以在安装程序日志中准确地看到该命令行。

但在客户的机器上,这些参数似乎没有生效。

当我运行以下查询时:

SELECT name, is_disabled
    FROM master.sys.server_principals sp
    JOIN master.sys.server_role_members sr
    ON sr.member_principal_id = sp.principal_id
    WHERE sr.role_principal_id = 3

在我安装了该软件的机器上,我看到:

name                           type_desc        is_disabled
sa                             SQL_LOGIN        False
BUILTIN\Administrators         WINDOWS_GROUP    False
NT SERVICE\SQLWriter           WINDOWS_LOGIN    False
NT SERVICE\Winmgmt             WINDOWS_LOGIN    False
NT Service\MSSQL$SQLEXPRESS    WINDOWS_LOGIN    False
DESKTOP1\KT Developer          WINDOWS_LOGIN    False

这正是我所期望的。

但是,当用户在安装我们的软件后,在其域中的机器上运行相同的查询时,他会看到:

name                           type_desc        is_disabled
sa                             SQL_LOGIN        True

尽管我们已将参数传递给 Sql Server Express 安装,告诉它启用 SA 登录并添加对 BUILTIN/Administrators 的授权,但情况仍然如此。我们不仅没有看到启用 SA,或授予 BUILTIN/Administrators 管理员权限,也没有看到授予标准 Windows 服务的权限。

此时,我准备告诉客户问题出在他们自己的安全组策略上,并告诉他们需要更改策略,我们无能为力。

但在此之前,我想确认一下,安装的 Sql Express 数据库没有我们告诉安装程序要创建的管理用户的唯一原因是客户自己的组策略阻止了它。

有人能想到发生这种情况的其他原因吗?


一些额外的澄清。

这是一个多年来一直为许多客户提供服务的应用程序和安装程序。在 Windows 1809 升级后,它停止为一位客户提供服务。

在干净的笔记本电脑上安装失败,全新安装了 Windows 10,没有安装任何附加软件。

答案1

好吧,事实证明在这种情况下,就像在许多其他情况下一样,当用户报告他做某事后发生的事情没有任何意义时,这是因为用户没有告诉你发生了什么,或者他没有告诉你他在做什么。

在这种情况下,当用户安装到“干净”的机器上时,他是在安装已安装然后卸载的应用程序,但尚未卸载 SQL Server Express 的机器上进行安装。

我对 Sql Server Express 安装所做的更改以启用 SA 和 BUILTIN\Administrators,但没有生效,这并不是因为安全策略,而是因为如果 SQL Server Express 安装程序已经存在,它就不会运行。

相关内容