2016-03-15 269 views
0

我已經創建了一個Installshield MSI,它在WinServer 2008或Vista(或更高版本)的Windows操作系統上部署了幾個.NET控制檯應用程序。Windows任務計劃:處理執行帳戶的密碼更改

安裝過程在本地管理員帳戶下運行。

在安裝過程中,Installshield MSI提示admin輸入密碼,並在DOS命令中使用此密碼創建若干計劃任務,這些任務將在管理員帳戶下編程,運行和執行。

我不禁感到有一種更好的方式來處理這些任務的創建,而無需詢問密碼或使用SYSTEM帳戶並且不會創建安全漏洞。

密碼也可以過期的安裝帳戶,所以我想找出一個更實際的方法來創建這些計劃的任務。

計劃任務必須啓動訪問SQL CE 4.0數據庫的.NET控制檯應用程序,爲外部郵件服務器創建SMTP/POP3客戶端,在本地系統HD中寫入文件。

任何鏈接或幫助讚賞有關如何執行最佳實踐計劃任務的創建,

問候,

回答

0

我假設你正在打電話的schtasks創建計劃任務。

選項1:使用SYSTEM賬號

SCHTASKS /Create /RU SYSTEM /SC DAILY /ST 00:00:00 /TN "MyTaskName" /TR "MyConsoleApp.exe" 

這是推薦的方法,但它有一定的侷限性:

  1. 程序可以訪問數據庫和電子郵件匿名,或者使用另一個, 預定義帳戶。
  2. 該程序不需要用戶特定的環境變量或註冊表設置。
  3. 程序在應用程序寫入的 文件夾上具有相應的文件系統權限(安裝可以照顧它)。

選項2:使用一個特定的帳戶

SCHTASKS /Create /RU username /RP password /SC DAILY /ST 00:00:00 /TN "MyTaskName" /TR "MyConsoleApp.exe" 

如果你依賴於應用程序的用戶上下文登錄到數據庫和發送電子郵件時,通常的做法是詢問用戶,在安裝開始時,提供憑證,並提醒他以後任何密碼更改都需要更新相關的計劃任務。這也有其他的含義:

  1. 的「disabledomaincreds的安全策略必須設置爲false 命令工作(你可以將其設置回運行它後,它的原始值 )。您可以檢查下 HKLM\System\CurrentControlSet\Control\Lsa

  2. 用戶通過閱讀 和編輯註冊表值改變政策必須有「登錄批量的許可。這可以通過運行:ntrights.exe + r SeBatchLogonRight -u「username」

+0

謝謝,這是我需要的那種迴應。我實施了選項2,並忘記考慮'disabledomaincreds'的政策價值。 – user4953001