Installer un fichier cab avec le nom donné à partir du chemin d’accès donné
Description
Cet exemple montre comment utiliser les valeurs fournies par l’utilisateur WindowsPackageCab
de ressources pour vérifier qu’un package est installé.
Vous devez spécifier le nom du package avec le paramètre Name , qui définit la propriété Name de la ressource.
Vous devez spécifier le chemin d’accès au .cab
fichier à partir duquel le package peut être installé avec le paramètre SourcePath , qui définit la propriété SourcePath de la ressource.
Vous devez spécifier le chemin d’accès à un fichier journal avec le paramètre LogPath , qui définit la propriété LogPath de la ressource.
Avec Le paramètre Ensure défini Present
sur , la propriété Name définie sur la valeur fournie par l’utilisateur à partir du paramètre Name et SourcePath définie sur la valeur fournie par l’utilisateur à partir du paramètre SourcePath , la ressource installe le package nommé à partir du fichier spécifié .cab
s’il n’est pas déjà installé.
Avec LogPath défini sur la valeur fournie par l’utilisateur à partir du paramètre LogPath , la ressource écrit les journaux d’activité pour installer le package dans ce fichier au lieu de %WINDIR%\Logs\Dism\dism.log
.
Avec Invoke-DscResource
Ce script montre comment utiliser la WindowsPackageCab
ressource avec l’applet Invoke-DscResource
de commande pour vérifier qu’un package spécifié par l’utilisateur est installé.
[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
}
}
Avec une configuration
Cet extrait de code montre comment définir un Configuration
WindowsPackageCab
bloc de ressources pour vous assurer qu’un package spécifié par l’utilisateur est installé.
Important
Il existe une limitation dans la configuration de l’ordinateur qui empêche une ressource DSC d’utiliser toutes les applets de commande PowerShell non incluses dans PowerShell elle-même ou dans un module sur le PowerShell Gallery. Cet exemple est fourni à des fins démonstrations, mais étant donné que la ressource DSC utilise des applets de commande du module DISM, qui est fournie comme l’un des modules Windows, elle ne fonctionnera pas dans la configuration de l’ordinateur.
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
}
}
}
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour