定期修改Windows密碼和SQL Server密碼

工作需要,Server和SQL Server的密碼需要每月變化,記錄一下實現思路。

修改Windows密碼

可以用以下命令來實現:

net user [YourName] [YourPassword]

修改SQL Server密碼

首先判斷用戶是否存在,如果存在就修改,如果不存在就創建:

IF EXISTS (SELECT 1 FROM MASTER.DBO.SYSXLOGINS WHERE NAME=N'{0}')
BEGIN
    ALTER LOGIN [YourName] WITH PASSWORD=N'YourPassword'
END
ELSE
BEGIN
    CREATE LOGIN [YourName] WITH PASSWORD=N'YourPassword', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
    EXEC master..sp_addsrvrolemember @loginame = N'YourName', @rolename = N'sysadmin'
END
GO

思路實現:

由於要批量修改服務器,所以用VS寫個小程序來實現:

1. 建立密碼錶,預先設定或者自動生成密碼

2. 用Process 調用net.exe, 拼接參數來修改windows密碼,獲取執行後結果,然後記錄到日誌中

3. 通過註冊表來枚舉出服務器上安裝的SQL Instance,然後循環連接執行SQL,並捕捉錯誤記錄到日誌中。

SQL Instance List在註冊表:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\InstalledInstances

可以直接讀取註冊表來獲取到列表:

using Microsoft.Win32;

var sql_instance_list = (string[])(Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Microsoft SQL Server").GetValue("InstalledInstances"));

調用SqlConnection來連接執行SQL即可。

4. 設置計劃任務,以SYSTEM用戶每月1日1:00執行,記錄日誌(發送郵件給管理通知)

 

發佈了7 篇原創文章 · 獲贊 0 · 訪問量 9426
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章