Windows-Server-2019

如何在不需要更改密碼的情況下啟動服務

  • February 7, 2022

我們為客戶開發了在 Windows Server 2019 上執行的 SQL Server(2019) 備份軟體。

該應用程序(.net Windows Forms)有一個界面來配置備份(例如選擇備份的日期、每天的備份時間等)和進一步的配置(到 SMTP 伺服器的數據、郵件分發列表等)。此外,客戶端包含恢復數據庫的功能。備份通過計時器啟動。

該應用程序執行良好,但必須 24/7/365 執行。

問題描述:

應用程序在客戶伺服器上執行,客戶不允許密碼永不過期的帳戶。

此外,伺服器(至少)每兩周自動重新啟動一次。所以……我們必須至少每兩周訪問一次伺服器並啟動我們的新客戶端,這不是很好。

因此,我們考慮將備份App“拆分”成兩部分:

  • Windows 客戶端(具有停用的備份和電子郵件功能)
  • Windows 服務(在啟動時讀取配置文件,進行備份,發送電子郵件)

=> 目標:伺服器重啟後自動啟動備份服務(無需手動啟動)。

需求:

服務需要能夠訪問本地磁碟(讀取 (.ini) 配置文件,儲存備份)、SQL-Server(安裝在同一台伺服器上)和 SMTP-Server(位於另一台客戶伺服器上) ) 能夠發送電子郵件。

如上所述,目標是使用沒有密碼的“系統帳戶”(必須定期更改)。

我們是開發人員,而不是系統工程師……因此“初學者問題”:

據我們所知,**“本地系統”,“本地服務”和“網路服務”**有系統帳戶(也許還有更多…… )。

上述帳戶之一是否具有所有所需的權利(或是否有其他帳戶)?

謝謝!

是的,您絕對需要將互動式“配置”和“服務”部分分開。服務部分需要一直執行,配置部分只在需要時執行。

如今,讓應用程序在 Windows Server 的“控制台”上執行的想法充其量是很麻煩的,並且隨著每個版本的 Windows 變得更加困難。生產了 20 年後仍處於生產階段的 Windows 服務,我有點驚訝您在開發和測試期間沒有遇到這個“挑戰”。

但無論如何 …

該應用程序在客戶伺服器上執行,客戶不允許密碼永不過期的帳戶。

鑑於 Windows 支持許多密碼永不過期的“系統”帳戶,這對您的應用程序來說是一個奇怪的“要求”。

問題:這個“要求”真的相關嗎?

要使用“配置”應用程序,您需要登錄機器,因此您將使用為此目的提供的任何憑據 - 那些互動式、使用者特定的憑據定期過期。

“服務”部分應該只是執行並做一些事情。

如果這些系統帳戶的密碼過期,Windows 生態系統將完全無法使用。

該服務需要訪問本地磁碟(讀取(.ini)配置文件,儲存備份)…

是的,一點沒錯。

任何“服務”帳戶都應具有此級別的訪問權限。

… 和 SMTP 伺服器 … 以便能夠發送電子郵件。

訪問任何“關閉”框需要一個網路感知帳戶。

網路服務可能是您最好的選擇。

…到 SQL-Server(安裝在同一台伺服器上)…

危險,威爾羅賓遜!

您是否認真地說您的“備份”實用程序正在SQL Server 備份儲存在與SQL Server 實例本身相同的電腦上?

這會破壞您的整個解決方案。

如果您失去了執行 SQL Server 的機器,那麼您也將失去數據庫的備份,因為存在備份的唯一原因是保證無論發生什麼可怕的事情都可以恢復數據庫,大錯特錯,那麼您的“備份解決方案”就完全被破壞了。

絕對必須將備份從該伺服器上移到另一台機器上,遠離它們所保護的數據庫。

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