Megosztás a következőn keresztül:


Cab-fájl telepítése a megadott elérési útból származó megadott névvel

Description

Ez a példa bemutatja, hogyan használhatja a WindowsPackageCab felhasználó által megadott erőforrásértékeket a csomag telepítésének biztosítására.

Meg kell adnia a csomag nevét a Name paraméterrel, amely beállítja az erőforrás Name tulajdonságát.

Meg kell adnia annak a fájlnak az .cab elérési útját, amelyről a csomag telepíthető a SourcePath paraméterrel, amely beállítja az erőforrás SourcePath tulajdonságát.

Meg kell adnia egy naplófájl elérési útját a LogPath paraméterrel, amely beállítja az erőforrás LogPath tulajdonságát.

Ha a Ensure beállítás Presentértéke , a Name (Név) paraméterben a felhasználó által megadott értékre, a SourcePath tulajdonság pedig a SourcePath paraméter felhasználó által megadott értékére van beállítva, akkor az erőforrás telepíti a megnevezett csomagot a megadott .cab fájlból, ha még nincs telepítve.

Ha a LogPath a LogPath paraméter felhasználó által megadott értékére van beállítva, az erőforrás a csomagnak a fájlba való telepítéséhez szükséges naplókat írja ahelyett %WINDIR%\Logs\Dism\dism.log, hogy .

A Invoke-DscResource

Ez a szkript bemutatja, hogyan használhatja az WindowsPackageCab erőforrást a parancsmaggal a Invoke-DscResource felhasználó által megadott csomag telepítésének biztosítására.

[CmdletBinding()]
param(
    [Parameter (Mandatory = $true)]
    [ValidateNotNullOrEmpty()]
    [String]
    $Name,

    [Parameter (Mandatory = $true)]
    [ValidateNotNullOrEmpty()]
    [String]
    $SourcePath,

    [Parameter(Mandatory = $true)]
    [ValidateNotNullOrEmpty()]
    [String]
    $LogPath
)

begin {
    $SharedParameters = @{
        Name       = 'WindowsPackageCab'
        ModuleName = 'PSDscResource'
        Properties = @{
            Name       = $Name
            Ensure     = 'Present'
            SourcePath = $SourcePath
            LogPath    = $LogPath
        }
    }

    $NonGetProperties = @(
        'Ensure'
        'SourcePath'
        'LogPath'
    )
}

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

Konfigurációval

Ez a kódrészlet bemutatja, hogyan definiálhat egy Configuration erőforrásblokkot WindowsPackageCab a felhasználó által megadott csomag telepítésének biztosítása érdekében.

Fontos

A gép konfigurációjában van egy korlátozás, amely megakadályozza, hogy a DSC-erőforrás olyan PowerShell-parancsmagokat használjon, amelyek nem szerepelnek a PowerShellben vagy a PowerShell-galéria egy moduljában. Ez a példa szemléltetési célokra szolgál, de mivel a DSC-erőforrás a DISM-modul parancsmagjait használja, amely a Windows-modulok egyike, nem fog működni a gépkonfigurációban.

Configuration Install {
    param(
        [Parameter (Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]
        $Name,

        [Parameter (Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]
        $SourcePath,

        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]
        $LogPath
    )

    Import-DscResource -ModuleName 'PSDscResources'

    Node Localhost {
        WindowsPackageCab ExampleWindowsPackageCab {
            Name       = $Name
            Ensure     = 'Present'
            SourcePath = $SourcePath
            LogPath    = $LogPath
        }
    }
}