2009-11-04 60 views
1

這裏的情景:遙控和自動化的IIS 7的管理 - 權限問題

  • Win2003的構建服務器(CCNET)
  • IIS7目標部署服務器

的各種MSBuild任務(SDC .Tasks,MSBuild的社區,MSBuild擴展包)執行此操作(創建VDirs,設置程序池屬性)不適合用於至少一個或多個下面的原因:

  • 爲IIS 7.
  • 無可能性不支持通過域用戶名/密碼來執行該操作。
  • Microsoft.Web.Management.dll在構建服務器上不可用。
  • '訪問被拒絕'錯誤。

有沒有問題,在IIS 6創建Vdirs - 儘管我們實際上炮擊了以Iisvdir.vbs將,因爲使用任何上述的MSBuild任務似乎要麼不支持域用戶名/密碼身份驗證時執行該操作或將簡單地引發一個基本的「訪問被拒絕」消息(儘管在IIS 6元數據庫上具有適當的權限)。

另外 - 請記住,如果沒有指定特定域user/pw,只要當前認證環境具有正確的權限,各種方法就可以在IIS 7上完美地工作,但出於顯而易見的原因,我們不希望全部我們的CCNET構建在這種情況下運行。

我甚至用psexec.exe來遠程執行appcmd.exe,如果當前的安全上下文有適當的權限,這也可以正常工作,但只要您在psexec上指定用戶名/密碼,就會得到一個錯誤消息說「由於權限不足,無法讀取配置文件」。指定的用戶是域帳戶,並且是2008服務器上本地管理員組的一部分。

而且 - 我已經結束了我自己的滾動運行方式MSBuild任務,從Exec任務繼承和使用可編程的模擬。然後,我使用它調用psexec,但沒有在psexec中指定用戶名和密碼,而是通過模擬psexec的shelling模擬,但我只是得到1的退出碼 - 沒有任何更多細節。

正如你所看到的,我已經用盡了所有的選擇,或者我認爲。

如果你能想到的任何東西,或者已經實現管理IIS7遠程,從自動化的過程在非IIS7盒(使用特定的非本地管理員用戶),請讓我知道。

回答

2

對。稍微有些混亂之後,它看起來像Windows 2008用戶帳戶控制(UAC)正在阻礙。如果您使用的是其他管理員帳戶而不是內置管理員,則UAC的管理員審批模式會啓用。

很明顯,在自動化腳本(非交互模式)中,您將被拒絕訪問,因爲您沒有在UAC對話框中單擊「繼續」的選項。

唯一的選擇是編輯的安全選項在組策略(GPEDIT.MSC)並設置「運行管理員在管理員批准模式」本地計算機從啓用爲禁用。

重新啓動,你很好。

如果您可以在特定管理員帳戶上爲管理員審批模式設置UAC例外情況,它實際上會更好,更安全。如果你正在閱讀,MS - 把它放在功能列表中!