Aktivieren des angegebenen Windows-optionalen Features und Ausgabeprotokolle für den angegebenen Pfad
Beschreibung
In diesem Beispiel wird gezeigt, wie Sie die WindowsOptionalFeature
Ressource mit vom Benutzer bereitgestellten Werten verwenden können, um sicherzustellen, dass ein optionales Windows-Feature aktiviert ist.
Sie müssen den Namen des optionalen Windows-Features angeben, das mit dem FeatureName-Parameter aktiviert wird, der die Name-Eigenschaft der Ressource festlegt.
Sie müssen den Pfad zu einer Protokolldatei mit dem LogPath-Parameter angeben, der die LogPath-Eigenschaft der Ressource festlegt.
Mit "Sicherstellen" und "Name"-Eigenschaft, die auf den vom Benutzer bereitgestellten Wert aus dem FeatureName-Parameter festgelegt Present
ist, ermöglicht die Ressource das angegebene optionale Windows-Feature, wenn sie deaktiviert ist.
Wenn LogPath auf den vom Benutzer bereitgestellten Wert aus dem LogPath-Parameter festgelegt ist, schreibt die Ressource die Protokolle, um das Feature anstelle dieser %WINDIR%\Logs\Dism\dism.log
Datei zu aktivieren.
Mit Invoke-DscResource
Dieses Skript zeigt, wie Sie die WindowsOptionalFeature
Ressource mit dem Invoke-DscResource
Cmdlet verwenden können, um sicherzustellen, dass ein vom Benutzer angegebenes Feature aktiviert ist.
[CmdletBinding()]
param(
[Parameter (Mandatory = $true)]
[String]
$FeatureName,
[Parameter(Mandatory = $true)]
[String]
$LogPath
)
begin {
$SharedParameters = @{
Name = 'WindowsOptionalFeature'
ModuleName = 'PSDscResource'
Properties = @{
Name = $FeatureName
Ensure = 'Present'
LogPath = $LogPath
}
}
$NonGetProperties = @(
'Ensure'
'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
}
}
Mit einer Konfiguration
In diesem Codeausschnitt wird gezeigt, wie Sie einen WindowsOptionalFeature
Ressourcenblock definieren Configuration
können, um sicherzustellen, dass ein vom Benutzer angegebenes Feature aktiviert ist.
Wichtig
Es gibt eine Einschränkung in der Computerkonfiguration, die verhindert, dass eine DSC-Ressource keine PowerShell-Cmdlets verwendet, die nicht in PowerShell selbst oder in einem Modul auf dem PowerShell-Katalog enthalten sind. Dieses Beispiel wird für demonstrative Zwecke bereitgestellt, aber da die DSC-Ressource Cmdlets aus dem DISM-Modul verwendet, das als eines der Windows-Module bereitgestellt wird, funktioniert sie nicht in der Computerkonfiguration.
Configuration Enable {
param(
[Parameter (Mandatory = $true)]
[String]
$FeatureName,
[Parameter(Mandatory = $true)]
[String]
$LogPath
)
Import-DscResource -ModuleName 'PSDscResources'
Node Localhost {
WindowsOptionalFeature TelnetClient {
Name = $FeatureName
Ensure = 'Present'
LogPath = $LogPath
}
}
}