我被要求指定安装在生产 Web 服务器上的功能,以便可以创建副本测试环境。
我可以通过点击找到解决方案,但我很好奇如何通过脚本完成此操作。我想到的是 Powershell 或 WMI。报告应显示已安装的所有关键系统功能以及版本号。理想情况下,它还会提供有关已安装操作系统的一些信息
答案1
Win32_服务器功能如果您必须使用 WMI 编写脚本,那么这就是您要找的东西。它仅适用于 Windows 2008。以下是 MSDN 链接中的示例 VBScript 代码。
strComputer = "FABRIKAM"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colFeatureList = objWMIService.ExecQuery _
("SELECT Name FROM Win32_ServerFeature")
For Each objFeature In colFeatureList
WScript.Echo objFeature.Name
Next
答案2
在 Server 2008 R2 中,这非常简单:
Import-Module ServerManager
Get-WindowsFeature
希望这可以帮助
答案3
MSDN 上有一篇博客文章介绍如何在 Windows 2008 Server 上添加、删除和查询角色
从 PowerShell 命令提示符
servermanagercmd.exe -query roles.xml
答案4
我跟着这用于导出已安装的 Windows 功能并将其导入新服务器的链接。
要获取所有已安装的角色和功能 -
Get-WindowsFeature | where{$_.Installed -eq $True} | select displayname,name
将所有角色导出到 .csv 文件,以便您可以在另一台服务器上使用它 -
Get-WindowsFeature | where{$_.Installed -eq $True} | select name | Export-Csv C:\scripts\Roles.csv -NoTypeInformation -Verbose
现在,您可以在具有完全相同角色和功能的新服务器上使用此 .csv 文件 -
Import-Csv C:\scripts\Roles.csv | foreach{Add-WindowsFeature $_.name }
我已经在 Windows Server 2012 上尝试过这个,我认为它也适用于其他版本。