Installieren 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 installiert ist.
Wenn Sie sicherstellen , dass Present
" ProductID " auf {DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}
" und "Pfad " festgelegt file://Examples/example.msi
ist, installiert die Ressource das example.msi
Paket, wenn es noch nicht installiert ist.
Wenn das Paket nicht 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 installiert ist.
[CmdletBinding()]
param()
begin {
$SharedParameters = @{
Name = 'MsiPackage'
ModuleName = 'PSDscResource'
Properties = @{
ProductId = '{DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}'
Path = 'file://Examples/example.msi'
Ensure = 'Present'
}
}
$NonGetProperties = @(
'Ensure'
)
}
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
Dieser Codeausschnitt zeigt, wie Sie einen Configuration
MsiPackage
Ressourcenblock definieren können, um sicherzustellen, dass ein Paket im lokalen Dateisystem installiert ist.
Configuration InstallPackageFromFile {
Import-DscResource -ModuleName 'PSDscResources'
Node localhost {
MsiPackage ExampleMsiPackage {
ProductId = '{DEADBEEF-80C6-41E6-A1B9-8BDB8A05027F}'
Path = 'file://Examples/example.msi'
Ensure = 'Present'
}
}
}