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

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

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

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

pkgmgr /iu:SNMP

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

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

答案1

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

以下是在以下位置找到的一个 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
}

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

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

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

答案2

建议的答案实际上可以稍微简化一下:

$check = get-windowsfeature -name SNMP-Services
if ($check.Installed -ne "True") {
        #Install/Enable SNMP Services
        Add-WindowsFeature SNMP-Services | Out-Null
}

答案3

这是一个运行良好的 powershell 命令。它安装 SNMP 服务(SNMP 服务 + SNMP WMI 提供程序)

Servermanagercmd –install SNMP-Services

相关内容