2

我正在寻找一种在 Windows Vista(和更新的 Redmond OS,例如 Server 2008)中以编程方式更改功能(“程序和功能”->“打开或关闭 Windows 功能”)的方法。

理想的解决方案是 Powershell 脚本(Get-Features、Set-Features)的形式,但是任何指向 MSDN/其他文档的指针都非常受欢迎!(我最初的快速 Google/StackOverflow 搜索是空的)。

拥有一种自动打开或关闭功能的方法可以让我针对不同的场景自动设置计算机。例如,要使用 IIS 开发 ASP.NET 应用程序,需要安装一些默认情况下未安装的 IIS 功能。我目前的“确保至少检查了此屏幕截图中显示的功能”的过程还有很多不足之处。

4

5 回答 5

3

I just found an extension that works for Windows 7. "PowerShell module to Add/Remove Windows 7 features" - https://psclientmanager.codeplex.com/

于 2011-09-28T14:02:17.937 回答
1

在 windows server 2008 中,有ServerManagerCmd命令。这可以安装带有或不带有您想要的子功能的 IIS。您还可以安装/卸载大多数主要的 Windows 功能。

  1. 您可以按照自己的方式设置服务器,然后运行 ​​ServerManagerCmd -query template.xml。这会将配置导出到 XML 文件。
  2. 您需要转换文件以准备在其他服务器上使用
  3. 将转换后的文件复制到您要配置的服务器并运行 ServerManagerCmd -inputPath transformTemplate.xml
于 2008-12-15T14:15:54.657 回答
1

在 Vista 和 Windows 2008 中执行此操作的方法是使用 PKGMGR 命令行工具。在 MSDN 中搜索此工具以查找功能/包列表。

于 2008-12-19T22:28:38.197 回答
1

It looks live Powershell V2 on Server 2008 R2 (Beta) has a module that does exactly this. Let's hope Windows 7 will have this functionality as well...

For more details, see Managing Server Features with PowerShell Cmdlets on Windows 2008 Server R2 Beta

于 2009-02-05T20:44:17.147 回答
0

不幸的是,目前还没有一组 cmdlet,WMI 或任何其他易于访问的区域中也没有任何内容。有趣的是,Server Core 的基于脚本的角色管理功能仅适用于 Server Core :)。Windows 7 可能会在这方面带来一些缓解——但也可能不会。同时,您几乎只剩下另一个答案中提到的本机 Win32 API。

顺便说一句,我应该指出,出于安全考虑,MS 故意不希望应用程序安装主要的操作系统功能。添加 IIS 不是一件轻而易举的事,它带来了安全考虑和责任。见证 MS 自己的应用程序设置,它会检查类似的先决条件,但不提供为您安装它们。虽然我理解希望使您的应用程序设置尽可能轻松,但将主要功能放入操作系统中也会造成损害 :)。我个人更希望应用程序在谨慎方面犯错,告诉我他们需要什么,让我决定如何安装以及安装什么——尤其是打开端口并能够执行任意代码的主要功能,比如 IIS .

于 2008-12-03T19:03:40.103 回答