Deinstallieren Der MSI-Datei mit der angegebenen ID im angegebenen Pfad
Beschreibung
In diesem Beispiel wird gezeigt, wie Sie die MsiPackage
Ressource verwenden können, um sicherzustellen, dass ein Paket nicht installiert ist.
Mit "Stellen Sie sicherAbsent
, dass ProductID auf {DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}
" und "Pfadfile://Examples/example.msi
" festgelegt ist, deinstalliert die Ressource das example.msi
Paket, wenn sie installiert ist.
Wenn das Paket installiert ist und die Datei nicht vorhanden ist, löst die example.msi
Ressource eine Ausnahme aus, wenn sie den gewünschten Zustand erzwingt.
Mit Invoke-DscResource
Dieses Skript zeigt, wie Sie die MsiPackage
Ressource mit dem Invoke-DscResource
Cmdlet verwenden können, um sicherzustellen, dass ein Paket im lokalen Dateisystem nicht installiert ist.
[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
}
}
Mit einer Konfiguration
In diesem Codeausschnitt wird gezeigt, wie Sie einen MsiPackage
Ressourcenblock definieren Configuration
können, um sicherzustellen, dass ein Paket im lokalen Dateisystem nicht installiert ist.
Configuration UninstallPackageFromFile {
Import-DscResource -ModuleName 'PSDscResources'
Node localhost {
MsiPackage ExampleMsiPackage {
ProductId = '{DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}'
Path = 'file://Examples/example.msi'
Ensure = 'Absent'
}
}
}