Instalar um arquivo de táxi com o nome fornecido do caminho fornecido
Descrição
Este exemplo mostra como você pode usar os WindowsPackageCab
valores fornecidos pelo usuário do recurso para garantir que um pacote esteja instalado.
Você deve especificar o nome do pacote com o parâmetro Name , que define a propriedade Name do recurso.
Você deve especificar o caminho para o .cab
arquivo do qual o pacote pode ser instalado com o parâmetro SourcePath , que define a propriedade SourcePath do recurso.
Você deve especificar o caminho para um arquivo de log com o parâmetro LogPath , que define a propriedade LogPath do recurso.
Com a propriedade Ensure definida como Present
, a propriedade Name definida como o valor fornecido pelo usuário do parâmetro Name e o SourcePath definido como o valor fornecido pelo usuário do parâmetro SourcePath , o recurso instala o pacote nomeado do arquivo especificado .cab
se ele ainda não estiver instalado.
Com o LogPath definido como o valor fornecido pelo usuário do parâmetro LogPath , o recurso grava os logs para instalar o pacote nesse arquivo em vez de %WINDIR%\Logs\Dism\dism.log
.
Com Invoke-DscResource
Este script mostra como você pode usar o WindowsPackageCab
recurso com o Invoke-DscResource
cmdlet para garantir que um pacote especificado pelo usuário esteja instalado.
[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
}
}
Com uma configuração
Este snippet mostra como você pode definir um Configuration
bloco de recursos com um WindowsPackageCab
bloco de recursos para garantir que um pacote especificado pelo usuário esteja instalado.
Importante
Há uma limitação na configuração do computador que impede que um recurso DSC use quaisquer cmdlets do PowerShell não incluídos no próprio PowerShell ou em um módulo no Galeria do PowerShell. Este exemplo é fornecido para fins demonstrativos, mas como o Recurso DSC usa cmdlets do módulo DISM, que é fornecido como um dos módulos do Windows, ele não funcionará na configuração do computador.
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
}
}
}
Comentários
Enviar e exibir comentários de