Windows

使用 secedit 啟用即時文件初始化的腳本

  • November 21, 2018

我希望能夠通過 T-SQL 或 Powershell 在帶有 SQL Server 的新的或現有的 Windows Server 機器上打開 IFI http://bit.ly/1dK32Dc 。不想通過“本地安全 > 本地策略 > 使用者權限分配 > 執行卷維護任務 > 添加使用者”路線 - 需要通過腳本部署新機器,無需手動互動。假設 SQL Server 服務帳戶沒有更改。

對於新安裝,當我選擇帳戶時,我可以執行以下 Powershell 腳本並解決問題:

$sqlaccount = "domain\account"
# https://technet.microsoft.com/en-gb/library/bb490997.aspx
secedit /export /cfg C:\secexport.txt /areas USER_RIGHTS
$line = Get-Content C:\secexport.txt | Select-String 'SeManageVolumePrivilege'
(Get-Content C:\secexport.txt).Replace($line,"$line,$sqlaccount") | Out-File C:\secimport.txt
secedit /configure /db secedit.sdb /cfg C:\secimport.txt /overwrite /areas USER_RIGHTS

但是,對於現有的 SQL 安裝,無法找到查詢配置的 SQL Server 服務帳戶的方法 - 並將其提供給此腳本。尋找一個考慮到 WS 2012 R2 的解決方案,但最好也適用於 WS 2003 R2 的解決方案(如果我沒記錯的話,最多支持 Powershell 2?)。

(Get-WmiObject win32_service | where { $_.displayname -eq "SQL Server"} ).startname

將名稱替換為 SQL Server 服務的顯示名稱

工作正常,但在 Windows Server 2016 中,它掛在 secedit 配置上。為避免這種情況,只需添加:

寫主機 “y” | secedit /configure /db secedit.sdb /cfg C:\secimport.txt /overwrite /areas USER_RIGHTS

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