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