以编程方式检查是否安装了 Windows Server 2008 功能,并安装它

Ric*_*ard 4 script windows-server-2008-r2 installation

我希望能够在脚本中检测 Windows Server 2008 安装是否启用了特定的 Windows 功能,并在必要时安装它们。我不想简单地使用“尝试安装该功能,即使它已经安装”的方法,因为我需要能够在安装时执行其他步骤。

例如,我知道我可以使用命令行安装 SNMP 服务:

pkgmgr /iu:SNMP

我不知道如何检查是否已安装此程序包,最好是从 VBScript/WMI 安装,但如有必要可从命令行工具安装。

理想情况下,我还想找到一个不涉及 Powershell 的解决方案,因为我不想降低 Windows 2008 安装中默认设置的 powershell 执行权限。

har*_*ymc 6

在我看来,您可以使用 powershell 脚本(以管理员身份运行)轻松完成此操作。

这是在Internet上找到的示例 powershell 脚本:

#Powershell Script To Install SNMP Services
Import-Module ServerManager
#Check If SNMP Services Are Already Installed
$check = Get-WindowsFeature | Where-Object {$_.Name -eq "SNMP-Services"}
If ($check.Installed -ne "True") {
        #Install/Enable SNMP Services
        Add-WindowsFeature SNMP-Services | Out-Null
}
Run Code Online (Sandbox Code Playgroud)

您可以在以下文章中找到有关查找功能名称的更多信息:
Windows Server 2008 R2:通过 PowerShell 添加功能

如果 WMIC 是一个选项,请参阅以下文章:
新服务器核心提示
使用新的 Windows Server 2008 核心 OCList 和 OCSetup CLI 工具添加和删除服务器角色

如果可以选择编程,请参阅此 stackoverflow 文章:
如何以编程方式检查 Windows Server 2008 中是否安装了服务器功能?