2008-12-03 81 views
2

我正在尋找一種在Windows Vista(以及更新的Redmond OS,例如Server 2008)中以編程方式更改功能(「程序和功能」 - >「打開或關閉Windows功能」)的方法。如何以編程方式更改Windows Vista中的功能?

理想的解決方案將採用Powershell腳本(Get-Features,Set-Features)的形式,但是任何指向MSDN /其他文檔的指針都將非常受歡迎! (我最初的Google/StackOverflow搜索快到了)。

通過自動方式打開或關閉功能,可以讓我爲不同場景自動完成計算機設置。例如,要使用IIS開發ASP.NET應用程序,需要安裝一些默認不安裝的IIS功能。我目前的「確保至少顯示此截圖中顯示的功能」的過程留下了許多不足之處。

回答

0

不幸的是沒有一組cmdlet,但在WMI或任何其他易於訪問的區域也沒有任何內容。有趣的是,Server Core的基於腳本的角色管理功能只能在Server Core上運行:)。 Windows 7在這方面可能會帶來一些緩解 - 但它也可能不會。與此同時,你幾乎留下了其他答案中提到的本機Win32 API。另外,我應該指出,由於安全考慮,MS故意不希望應用程序安裝主要的操作系統功能。添加IIS不是輕而易舉的事,它帶來了安全考慮和責任。見證MS自己的應用程序設置,它會檢查這樣的前置請求,但不要爲你安裝它們。雖然我明白想要儘可能讓您的應用程序設置儘可能無痛苦,但在將主要功能置於操作系統下的人的鼻子中也會造成損害:)。我個人更希望應用程序在謹慎的方面犯錯,告訴我他們需要什麼,並讓我做出關於如何安裝東西以及如何安裝的決定 - 特別是將打開端口並能夠執行任意代碼的主要功能,如IIS 。

+0

那麼我希望能夠以可重複的方式設置我的機器。我希望我的所有開發機器都安裝了一些特定功能。您是否認爲根據屏幕截圖/書面筆記手動選擇每臺機器的所有功能會更好? – 2009-01-22 15:40:42

1

在windows server 2008中,有ServerManagerCmd命令。這可以安裝有或沒有你想要的子功能的IIS。您還可以安裝/卸載大部分主要的Windows功能。

  1. 您可以按照您希望的方式設置您的服務器,然後運行ServerManagerCmd -query template.xml。這將配置導出到一個Xml文件。
  2. 您需要transform the file到準備使用其他服務器上的
  3. 複製轉換文件到您想要配置和運行ServerManagerCmd -inputPath transformTemplate.xml
1

在Vista中做到這一點的方式,服務器而Windows 2008則使用PKGMGR命令行工具。搜索此工具的MSDN以查找功能/軟件包列表。

1

它看起來在服務器2008 R2(測試版)上的Powershell V2有一個模塊可以完全做到這一點。讓我們希望Windows 7將具備此功能,以及...

有關詳細信息,請參閱Managing Server Features with PowerShell Cmdlets on Windows 2008 Server R2 Beta

+0

是否有可用於Windows 7 x64的模塊?當我嘗試運行「Import-Module ServerManager」時,出現以下錯誤: 「指定模塊'ServerManager'未加載,因爲在任何模塊目錄中找不到有效的模塊文件。」 我需要將它下載到什麼地方嗎?是否有其他模塊可供使用?任何援助非常感謝! – 2011-09-28 12:54:02

相關問題