Share via


Installieren 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 installiert ist.

Wenn Sie sicherstellen , dass Present" ProductID " auf {DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}" und "Pfad " festgelegt file://Examples/example.msiist, installiert die Ressource das example.msi Paket, wenn es noch nicht installiert ist.

Wenn das Paket nicht 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 installiert ist.

[CmdletBinding()]
param()

begin {
    $SharedParameters = @{
        Name       = 'MsiPackage'
        ModuleName = 'PSDscResource'
        Properties = @{
            ProductId = '{DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}'
            Path      = 'file://Examples/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
    }
}

Mit einer Konfiguration

Dieser Codeausschnitt zeigt, wie Sie einen ConfigurationMsiPackage Ressourcenblock definieren können, um sicherzustellen, dass ein Paket im lokalen Dateisystem installiert ist.

Configuration InstallPackageFromFile {
    Import-DscResource -ModuleName 'PSDscResources'

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