Compartir a través de


Instale el archivo MSI con el identificador especificado en la dirección URL HTTPS especificada.

Descripción

En este ejemplo se muestra cómo puede usar el MsiPackage recurso para asegurarse de que hay instalado un paquete.

Con Garantizar establecido en Present, ProductID establecido en {DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}y Ruta de acceso establecida https://contoso.com/example.msien , el recurso instala el example.msi paquete si aún no está instalado.

Si el paquete no está instalado, el recurso lo descarga desde https://contoso.com/example.msi cuando el recurso aplica el estado deseado. Si se produce un error en la descarga, el recurso produce una excepción.

Con Invoke-DscResource

Este script muestra cómo puede usar el MsiPackage recurso con el Invoke-DscResource cmdlet para asegurarse de que hay instalado un paquete en un URI web.

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

Con una configuración

Este fragmento de código muestra cómo puede definir un Configuration con un MsiPackage bloque de recursos para asegurarse de que se instala un paquete en un URI web.

Configuration InstallPackageFromHttps {
    Import-DscResource -ModuleName 'PSDscResources'

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