Share via


Deinstallieren Der MSI-Datei mit der angegebenen ID im angegebenen Pfad

Beschreibung

In diesem Beispiel wird gezeigt, wie Sie die MsiPackage Ressource verwenden können, um sicherzustellen, dass ein Paket nicht installiert ist.

Mit "Stellen Sie sicherAbsent, dass ProductID auf {DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}" und "Pfadfile://Examples/example.msi" festgelegt ist, deinstalliert die Ressource das example.msi Paket, wenn sie installiert ist.

Wenn das Paket installiert ist und die Datei nicht vorhanden ist, löst die example.msi Ressource eine Ausnahme aus, wenn sie den gewünschten Zustand erzwingt.

Mit Invoke-DscResource

Dieses Skript zeigt, wie Sie die MsiPackage Ressource mit dem Invoke-DscResource Cmdlet verwenden können, um sicherzustellen, dass ein Paket im lokalen Dateisystem nicht installiert ist.

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

Mit einer Konfiguration

In diesem Codeausschnitt wird gezeigt, wie Sie einen MsiPackage Ressourcenblock definieren Configuration können, um sicherzustellen, dass ein Paket im lokalen Dateisystem nicht installiert ist.

Configuration UninstallPackageFromFile {
    Import-DscResource -ModuleName 'PSDscResources'

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