Compartilhar via


Instalar o arquivo MSI com a ID fornecida na URL HTTPS fornecida

Descrição

Este exemplo mostra como você pode usar o MsiPackage recurso para garantir que um pacote esteja instalado.

Com Ensure definido como Present, ProductID definido como {DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}, e Caminho definido como https://contoso.com/example.msi, o recurso instala o example.msi pacote se ele ainda não estiver instalado.

Se o pacote não estiver instalado, o recurso o baixará de https://contoso.com/example.msi quando o recurso impor o estado desejado. Se o download falhar, o recurso gerará uma exceção.

Com Invoke-DscResource

Este script mostra como você pode usar o MsiPackage recurso com o Invoke-DscResource cmdlet para garantir que um pacote em um URI da Web esteja instalado.

[CmdletBinding()]
param()

begin {
    $SharedParameters = @{
        Name       = 'MsiPackage'
        ModuleName = 'PSDscResource'
        Properties = @{
            ProductId = '{DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}'
            Path      = 'https://contoso.com/example.msi'
            Ensure    = 'Present'
        }
    }

    $NonGetProperties = @(
        'Ensure'
    )
}

process {
    $TestResult = Invoke-DscResource -Method Test @SharedParameters

    if ($TestResult.InDesiredState) {
        $QueryParameters = $SharedParameters.Clone()

        foreach ($Property in $NonGetProperties) {
            $QueryParameters.Properties.Remove($Property)
        }

        Invoke-DscResource -Method Get @QueryParameters
    } else {
        Invoke-DscResource -Method Set @SharedParameters
    }
}

Com uma configuração

Este snippet mostra como você pode definir um com um ConfigurationMsiPackage bloco de recursos para garantir que um pacote em um URI da Web esteja instalado.

Configuration InstallPackageFromHttps {
    Import-DscResource -ModuleName 'PSDscResources'

    Node localhost {
        MsiPackage ExampleMsiPackage {
            ProductId = '{DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}'
            Path      = 'https://contoso.com/example.msi'
            Ensure    = 'Present'
        }
    }
}