如何以编程方式更改Windows Vista中的功能?

时间:2008-12-03 16:40:38

标签: powershell windows-vista system-administration

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

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

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

5 个答案:

答案 0 :(得分:3)

我刚刚找到适用于Windows 7的扩展程序。“PowerShell模块添加/删除Windows 7功能” - https://psclientmanager.codeplex.com/

答案 1 :(得分:1)

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

  1. 您可以按照自己的方式设置服务器,然后运行ServerManagerCmd -query template.xml。这会将配置导出到Xml文件。
  2. 您需要transform the file准备在其他服务器上使用
  3. 将转换后的文件复制到要配置的服务器并运行ServerManagerCmd -inputPath transformTemplate.xml

答案 2 :(得分:1)

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

答案 3 :(得分:1)

它看起来像服务器2008 R2上的Powershell V2(Beta)有一个模块可以做到这一点。我们希望Windows 7也具备此功能......

有关详细信息,请参阅Managing Server Features with PowerShell Cmdlets on Windows 2008 Server R2 Beta

答案 4 :(得分:0)

遗憾的是,还没有一组cmdlet,WMI或任何其他易于访问的区域也没有任何内容。有趣的是,Server Core的基于脚本的角色管理功能仅适用于Server Core :)。 Windows 7可能会在这方面带来一些缓解 - 但它也可能没有。与此同时,您还可以使用其他答案中提到的本机Win32 API。

另外,我应该指出,由于安全考虑,MS故意不希望应用程序安装主要的OS功能。添加IIS不是轻易做到的事情,它带来了安全性考虑和责任。见证MS自己的应用程序设置,检查这样的预先要求,但不提供为您安装它们。虽然我理解想要让你的应用程序设置尽可能轻松,但是在将某些功能放入操作系统的同时也会造成损害:)我个人更希望应用程序在谨慎方面犯错,告诉我他们需要什么,让我做出关于如何安装和安装什么的决定 - 特别是将打开端口并能够执行任意代码的主要功能,如IIS