Examples/xWindowsOptionalFeatureSet_DisableConfig.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<#PSScriptInfo
.VERSION 1.0.1
.GUID 0deebd0b-2e1a-4b4f-a5e7-d8264754fa51
.AUTHOR Microsoft Corporation
.COMPANYNAME Microsoft Corporation
.COPYRIGHT
.TAGS DSCConfiguration
.LICENSEURI https://github.com/PowerShell/xPSDesiredStateConfiguration/blob/master/LICENSE
.PROJECTURI https://github.com/PowerShell/xPSDesiredStateConfiguration
.ICONURI
.EXTERNALMODULEDEPENDENCIES
.REQUIREDSCRIPTS
.EXTERNALSCRIPTDEPENDENCIES
.RELEASENOTES First version.
.PRIVATEDATA 2016-Datacenter,2016-Datacenter-Server-Core
#>


#Requires -module @{ModuleName = 'xPSDesiredStateConfiguration';ModuleVersion = '8.2.0.0'}

<#
    .SYNOPSIS
        Disables one or more Windows optional features.
 
    .DESCRIPTION
        Disables one or more Windows optional features with the specified name
        and outputs a log to the specified path.When the optional feature is
        disabled, the files associated with the feature will also be removed.
 
    .PARAMETER Name
        The name of one or more Windows optional features to disable.
 
    .PARAMETER LogPath
        The path to the file to log the disable operation to.
 
    .NOTES
        Can only be run on Windows client operating systems and Windows Server 2012 or later.
        The DISM PowerShell module must be available on the target machine.
 
    .EXAMPLE
        xWindowsOptionalFeatureSet_DisableConfig -Name @('TelnetClient', 'LegacyComponents') -LogPath 'c:\log\feature.log'
 
        Compiles a configuration that disables the Windows optional features
        TelnetClient and LegacyComponents and removes all files associated with
        these features. Outputs a log of the operations to a file at the path
        'C:\LogPath\Log.txt'.
 
    .EXAMPLE
        Start-AzureRmAutomationDscCompilationJob -ResourceGroupName '<resource-group>' -AutomationAccountName '<automation-account>' -ConfigurationName 'xWindowsOptionalFeatureSet_DisableConfig' -Parameters @{ Name = @('TelnetClient', 'LegacyComponents'); LogPath = 'c:\log\feature.log' }
 
        Compiles a configuration in Azure Automation that that disables the
        Windows optional features TelnetClient and LegacyComponents and removes
        all files associated with these features. Outputs a log of the operations
        to a file at the path 'C:\LogPath\Log.txt'.
 
        Replace the <resource-group> and <automation-account> with correct values.
#>

Configuration xWindowsOptionalFeatureSet_DisableConfig
{
    param
    (
        [Parameter(Mandatory = $true)]
        [String[]]
        $Name,

        [Parameter(Mandatory = $true)]
        [String]
        $LogPath
    )

    Import-DscResource -ModuleName 'xPSDesiredStateConfiguration'

    Node localhost
    {
        xWindowsOptionalFeatureSet WindowsOptionalFeatureSet1
        {
            Name    = $Name
            Ensure  = 'Absent'
            LogPath = $LogPath
            RemoveFilesOnDisable = $true
        }
    }
}