Désinstaller le fichier MSI avec l’ID donné au chemin d’accès donné
Description
Cet exemple montre comment utiliser la MsiPackage
ressource pour vous assurer qu’un package n’est pas installé.
Avec l’option Vérifier définie Absent
sur , ProductID définie {DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}
sur , et chemin d’accès défini file://Examples/example.msi
sur , la ressource désinstalle le example.msi
package s’il est installé.
Si le package est installé et que le example.msi
fichier n’existe pas, la ressource lève une exception lorsqu’elle applique l’état souhaité.
Avec Invoke-DscResource
Ce script montre comment utiliser la MsiPackage
ressource avec l’applet Invoke-DscResource
de commande pour vous assurer qu’un package sur le système de fichiers local n’est pas installé.
[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
}
}
Avec une configuration
Cet extrait de code montre comment définir un Configuration
MsiPackage
bloc de ressources pour vous assurer qu’un package sur le système de fichiers local n’est pas installé.
Configuration UninstallPackageFromFile {
Import-DscResource -ModuleName 'PSDscResources'
Node localhost {
MsiPackage ExampleMsiPackage {
ProductId = '{DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}'
Path = 'file://Examples/example.msi'
Ensure = 'Absent'
}
}
}