我被要求指定安装在生产Web服务器上的function,以便创build副本testing环境。
我可以指出并点击我的解决scheme,但我很好奇如何通过脚本来完成。 Powershell或WMI会让人想起。 报告应显示与版本号一起安装的所有关键系统function。 理想情况下,它也会提供有关已安装的操作系统的一些信息
Win32_ServerFeature是你正在寻找的,如果你必须使用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
在Server 2008 R2中,这非常简单:
Import-Module ServerManager Get-WindowsFeature
希望这可以帮助
MSDN中有关于如何在Windows 2008 Server上添加,删除和查询angular色的博客文章
从PowerShell命令提示符
servermanagercmd.exe -query roles.xml
上面的答案适用于Server 2008R2(只要你运行的是Powershell 5或更高版本),但是如果你打算将其Add-WindowsFeature到Add-WindowsFeature (或生成一个DSC脚本),你可能不会得到所需的效果,因为如果某些子function被故意禁用,上述列表有时会包含可能不适合您的应用程序的子function。
上述脚本的这个版本正是我想要的:
Get-WindowsFeature | Where-Object { $_.Installed -eq $true -and $_.SubFeatures.Count -eq 0}