تثبيت ملف MSI مع المعرف المحدد في HTTPS URL المحدد

الوصف

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

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

إذا لم يتم تثبيت الحزمة، يقوم المورد بتنزيلها من https://contoso.com/example.msi عندما يفرض المورد الحالة المطلوبة. إذا فشل التنزيل، يطرح المورد استثناء.

مع Invoke-DscResource

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

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

مع تكوين

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

Configuration InstallPackageFromHttps {
    Import-DscResource -ModuleName 'PSDscResources'

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