2008-12-03 77 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

相关问题