Aktivera den angivna valfria Windows-funktionen och utdataloggarna till den angivna sökvägen
Description
Det här exemplet visar hur du kan använda resursen WindowsOptionalFeature
med värden från användaren för att säkerställa att en valfri Windows-funktion är aktiverad.
Du måste ange namnet på den valfria Windows-funktionen för att aktivera med parametern FeatureName , som anger egenskapen Namn för resursen.
Du måste ange sökvägen till en loggfil med LogPath-parametern , som anger LogPath-egenskapen för resursen.
Med Se till inställt på Present
och egenskapen Namn inställt på värdet från parametern FeatureName aktiverar resursen den angivna valfria Windows-funktionen om den är inaktiverad.
Med LogPath inställt på det användardefinierade värdet från LogPath-parametern skriver resursen loggarna för att aktivera funktionen till filen i stället för %WINDIR%\Logs\Dism\dism.log
.
Med Invoke-DscResource
Det här skriptet visar hur du kan använda resursen WindowsOptionalFeature
med cmdleten Invoke-DscResource
för att säkerställa att en användardefinerad funktion är aktiverad.
[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
}
}
Med en konfiguration
Det här kodfragmentet visar hur du kan definiera en Configuration
med ett WindowsOptionalFeature
resursblock för att säkerställa att en användardefinierad funktion är aktiverad.
Viktigt
Det finns en begränsning i datorkonfigurationen som förhindrar att en DSC-resurs använder PowerShell-cmdletar som inte ingår i själva PowerShell eller i en modul på PowerShell-galleriet. Det här exemplet tillhandahålls i demonstrativt syfte, men eftersom DSC-resursen använder cmdletar från DISM-modulen, som levereras som en av Windows-modulerna, fungerar det inte i datorkonfigurationen.
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
}
}
}
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för