Windows

組策略是否可能干擾 Sql Server Express 安裝?

  • November 13, 2018

我們有一個軟體包,我們的客戶可以安裝在他們使用者的筆記型電腦上。

安裝程序的一部分執行 MS 的 Sql Server Express 2014。

我們將命令行選項傳遞給應該啟用 SA 登錄的安裝程序,並將 sqladmin 權限授予 Windows BUILTIN\Administrators 組。

我們執行的安裝程序命令行:

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

AIUI,/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,並且沒有安裝其他軟體。

好吧,事實證明,在這種情況下,就像在許多其他情況下一樣,當使用者在他做某事後報告發生的事情沒有任何意義時,這是因為使用者要麼沒有告訴你正在發生的事情,要麼他沒有告訴你他在做什麼。

在這種情況下,當使用者安裝到“乾淨”的機器上時,他正在安裝的機器上安裝了應用程序然後解除安裝,但沒有解除安裝 SQL Server Express。

我對 Sql Server Express 安裝的更改以啟用 SA 和 BUILTIN\Administrators 沒有生效,不是因為安全策略,而是因為如果 SQL Server Express 安裝程序已經存在,它就不會執行。

引用自:https://serverfault.com/questions/939343