إلغاء تثبيت ملف MSI بالمعرف المحدد في المسار المحدد

الوصف

يوضح هذا المثال كيف يمكنك استخدام MsiPackage المورد لضمان عدم تثبيت حزمة.

مع تعيين Ensure إلى Absent، تم تعيين ProductID إلى {DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}، وتعيين المسار إلى file://Examples/example.msi، يقوم المورد بإلغاء تثبيت الحزمة example.msi إذا كانت مثبتة.

إذا تم تثبيت الحزمة ولم example.msi يكن الملف موجودا، يطرح المورد استثناء عندما يفرض الحالة المطلوبة.

مع Invoke-DscResource

يوضح هذا البرنامج النصي كيف يمكنك استخدام MsiPackage المورد مع Invoke-DscResource cmdlet لضمان عدم تثبيت حزمة على نظام الملفات المحلي.

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

مع تكوين

توضح هذه القصاصة البرمجية كيف يمكنك تعريف Configuration مع كتلة MsiPackage موارد لضمان عدم تثبيت حزمة على نظام الملفات المحلي.

Configuration UninstallPackageFromFile {
    Import-DscResource -ModuleName 'PSDscResources'

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