Programaticamente verifique se um recurso do Windows Server 2008 está instalado e instale-o

4

Gostaria de poder detectar em um script se uma instalação do Windows Server 2008 tem recursos específicos do Windows habilitados e instalá-los, se necessário. Eu não quero simplesmente usar uma abordagem "tente instalar o recurso, mesmo que já esteja instalado", já que preciso executar etapas adicionais no momento da instalação.

Por exemplo, sei que posso instalar o serviço SNMP usando a linha de comando:

pkgmgr /iu:SNMP

O que eu não sei é como verificar se esse pacote foi instalado, de preferência do VBScript / WMI, mas de uma ferramenta de linha de comando, se necessário.

Idealmente, também quero encontrar uma solução que não envolva o Powershell, já que não quero ter que baixar os privilégios de execução do PowerShell que são definidos por padrão em uma instalação do Windows 2008.

    
por Richard 25.08.2010 / 16:16

3 respostas

6

Parece-me que você pode fazer isso facilmente com um script PowerShell (executado como administrador).

Este é um exemplo de script do PowerShell encontrado na Internet :

#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
}

Você pode encontrar mais informações sobre como descobrir o nome de um recurso em: Windows Server 2008 R2: Adicionando Recursos via PowerShell

Se o WMIC for uma opção, consulte estes artigos:
Novas Dicas do Núcleo do Servidor
Usando as novas ferramentas de CLI OCList e OCSetup do Windows Server 2008 para Adicionar & Remover funções do servidor

Se a programação for uma opção, consulte este artigo sobre o stackoverflow:

    
por 25.08.2010 / 17:58
1

A resposta sugerida pode, na verdade, ser simplificada um pouco:

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

Aqui está um comando do powershell que funciona perfeitamente. Instala os Serviços SNMP (Serviço SNMP + Provedor WMI SNMP)

Servermanagercmd –install SNMP-Services
    
por 06.12.2013 / 11:34