Désinstaller le fichier MSI avec l’ID donné au chemin d’accès donné

Description

Cet exemple montre comment utiliser la MsiPackage ressource pour vous assurer qu’un package n’est pas installé.

Avec l’option Vérifier définie Absentsur , ProductID définie {DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}sur , et chemin d’accès défini file://Examples/example.msisur , la ressource désinstalle le example.msi package s’il est installé.

Si le package est installé et que le example.msi fichier n’existe pas, la ressource lève une exception lorsqu’elle applique l’état souhaité.

Avec Invoke-DscResource

Ce script montre comment utiliser la MsiPackage ressource avec l’applet Invoke-DscResource de commande pour vous assurer qu’un package sur le système de fichiers local n’est pas installé.

[CmdletBinding()]
param()

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

    $NonGetProperties = @(
        'Ensure'
        'MembersToInclude'
    )
}

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

Avec une configuration

Cet extrait de code montre comment définir un ConfigurationMsiPackage bloc de ressources pour vous assurer qu’un package sur le système de fichiers local n’est pas installé.

Configuration UninstallPackageFromFile {
    Import-DscResource -ModuleName 'PSDscResources'

    Node localhost {
        MsiPackage ExampleMsiPackage {
            ProductId = '{DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}'
            Path      = 'file://Examples/example.msi'
            Ensure    = 'Absent'
        }
    }
}