DSCResources/DSC_WindowsEventLog/en-US/about_WindowsEventLog.help.txt

.NAME
    WindowsEventLog
 
.DESCRIPTION
    This resource is used to configure the settings of an event log.
 
    ## RestrictGuestAccess and Event Log DACLs
 
    If you choose to restrict guest access to an event log, the
    RestrictGuestAccess registry key will be configured and the event
    log's DACL will be checked and updated to ensure the built-in
    Guests group has been removed. Conversely, if you choose to
    allow guest access, the registry key will be configured and the
    DACL will be checked and updated to ensure the built-in Guests
    group has been added.
 
    This DACL behavior also applies if you configure your own custom
    DACL via the SecurityDescriptor property and a warning will be
    displayed to notify you of the change.
 
    ## RegisteredSource and Resource Files
 
    The PowerShell cmdlets that define event log sources do not check
    for the presence of the resource file on the computer and this
    resource follows the same paradigm. If you choose to create your
    own resource files and want to register them with the event source,
    you must ensure the files have been copied to the computer via a
    DSC File resource definition or equivalent.
 
.PARAMETER LogName
    Key - String
    Specifies the name of a valid event log
 
.PARAMETER IsEnabled
    Write - Boolean
    Specifies whether the specified event log should be enabled or disabled
 
.PARAMETER MaximumSizeInBytes
    Write - SInt64
    Specifies the maximum size in bytes for the specified event log
 
.PARAMETER LogMode
    Write - String
    Allowed values: AutoBackup, Circular, Retain
    Specifies the log mode for the specified event log
 
.PARAMETER SecurityDescriptor
    Write - String
    Specifies the SDDL for the specified event log
 
.PARAMETER LogFilePath
    Write - String
    Specifies the file name and path for the specified event log
 
.PARAMETER LogRetentionDays
    Write - SInt32
    Specifies the number of days to retain events when the log mode is AutoBackup
 
.PARAMETER RegisteredSource
    Write - String
    Specifies the name of an event source to register for the specified event log
 
.PARAMETER CategoryResourceFile
    Write - String
    Specifies the category resource file for the event source
 
.PARAMETER MessageResourceFile
    Write - String
    Specifies the message resource file for the event source
 
.PARAMETER ParameterResourceFile
    Write - String
    Specifies the parameter resource file for the event source
 
.PARAMETER RestrictGuestAccess
    Write - Boolean
    Specifies whether to allow guests to have access to the specified event log
 
.EXAMPLE 1
 
Sets the Application log to a maximum size of 4096MB,
the log mode to circular, and ensure it is enabled.
 
Configuration WindowsEventLog_SetLogSize_Config
{
    Import-DSCResource -ModuleName ComputerManagementDsc
 
    Node localhost
    {
        WindowsEventLog Application
        {
            LogName = 'Application'
            IsEnabled = $true
            LogMode = 'Circular'
            MaximumSizeInBytes = 4096MB
        }
    }
}
 
.EXAMPLE 2
 
Example script that registers MyEventSource as an event
source with all resource files on the Application log.
 
Configuration WindowsEventLog_RegisterEventSourceWithAllFiles_Config
{
    Import-DSCResource -ModuleName ComputerManagementDsc
 
    Node localhost
    {
        File MyEventSourceCategoryDll
        {
            Ensure = 'Present'
            Type = 'File'
            SourcePath = '\\PULLSERVER\Files\MyEventSource.Category.dll'
            DestinationPath = 'C:\Windows\System32\MyEventSource.Category.dll'
        }
 
        File MyEventSourceMessageDll
        {
            Ensure = 'Present'
            Type = 'File'
            SourcePath = '\\PULLSERVER\Files\MyEventSource.Message.dll'
            DestinationPath = 'C:\Windows\System32\MyEventSource.Message.dll'
        }
 
        File MyEventSourceParameterDll
        {
            Ensure = 'Present'
            Type = 'File'
            SourcePath = '\\PULLSERVER\Files\MyEventSource.Parameter.dll'
            DestinationPath = 'C:\Windows\System32\MyEventSource.Parameter.dll'
        }
 
        WindowsEventLog Application
        {
            LogName = 'Application'
            RegisteredSource = 'MyEventSource'
            CategoryResourceFile = 'C:\Windows\System32\MyEventSource.Category.dll'
            MessageResourceFile = 'C:\Windows\System32\MyEventSource.Messages.dll'
            ParameterResourceFile = 'C:\Windows\System32\MyEventSource.Parameters.dll'
            DependsOn = '[File]MyEventSourceCategoryDll',
                                    '[File]MyEventSourceMessageDll',
                                    '[File]MyEventSourceParameterDll'
        }
    }
}
 
.EXAMPLE 3
 
Example script that sets the MSPaint Admin event channel
to log mode AutoBackup, a maximum size of 2048MB, log
retention for 10 days, and ensure it is enabled.
 
Configuration WindowsEventLog_SetLogMode_Config
{
    Import-DSCResource -ModuleName ComputerManagementDsc
 
    Node localhost
    {
        WindowsEventLog MSPaintAdmin
        {
            LogName = 'Microsoft-Windows-MSPaint/Admin'
            IsEnabled = $true
            LogMode = 'AutoBackup'
            LogRetentionDays = 10
            MaximumSizeInBytes = 2048KB
        }
    }
}
 
.EXAMPLE 4
 
Example script that sets the DSC Analytic log
to size maximum size 4096MB, log mode to 'Retain' and
ensures it is enabled.
 
Configuration WindowsEventLog_EnableWindowsEventLog_Config
{
    Import-DSCResource -ModuleName ComputerManagementDsc
 
    Node localhost
    {
        WindowsEventLog DscAnalytic
        {
            LogName = 'Microsoft-Windows-Dsc/Analytic'
            IsEnabled = $true
            LogMode = 'Retain'
            MaximumSizeInBytes = 4096MB
            LogFilePath = '%SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-DSC%4Analytic.evtx'
        }
    }
}
 
.EXAMPLE 5
 
Example script that disables the DSC Analytic log.
 
Configuration WindowsEventLog_DisableWindowsEventLog_Config
{
    Import-DSCResource -ModuleName ComputerManagementDsc
 
    Node localhost
    {
        WindowsEventLog DscAnalytic
        {
            LogName = 'Microsoft-Windows-Dsc/Analytic'
            IsEnabled = $false
        }
    }
}
 
.EXAMPLE 6
 
Example script that reconfigures the security
descriptor (DACL) of the Application log.
 
Configuration WindowsEventLog_SetSecurityDescriptor_Config
{
    Import-DSCResource -ModuleName ComputerManagementDsc
 
    Node localhost
    {
        WindowsEventLog Application
        {
            LogName = 'Application'
            SecurityDescriptor = 'O:BAG:SYD:(A;;0x7;;;BA)(A;;0x7;;;SO)(A;;0x3;;;IU)(A;;0x3;;;SU)(A;;0x3;;;S-1-5-3)(A;;0x3;;;S-1-5-33)(A;;0x1;;;S-1-5-32-573)'
        }
    }
}
 
.EXAMPLE 7
 
Example script that prohibits guests from accessing
the System event log.
 
Configuration WindowsEventLog_RestrictGuestAccess_Config
{
    Import-DSCResource -ModuleName ComputerManagementDsc
 
    Node localhost
    {
        WindowsEventLog System
        {
            LogName = 'System'
            RestrictGuestAccess = $true
        }
    }
}
 
.EXAMPLE 8
 
Example script that allows guests to access
the Application event log.
 
Configuration WindowsEventLog_AllowGuestAccess_Config
{
    Import-DSCResource -ModuleName ComputerManagementDsc
 
    Node localhost
    {
        WindowsEventLog System
        {
            LogName = 'System'
            RestrictGuestAccess = $false
        }
    }
}
 
.EXAMPLE 9
 
Example script that registers MyEventSource as an event
source on the Application log.
 
Configuration WindowsEventLog_RegisterEventSource_Config
{
    Import-DSCResource -ModuleName ComputerManagementDsc
 
    Node localhost
    {
        WindowsEventLog Application
        {
            LogName = 'Application'
            RegisteredSource = 'MyEventSource'
        }
    }
}
 
.EXAMPLE 10
 
Example script that registers MyEventSource as an event
source with a message resource file on the Application log.
 
Configuration WindowsEventLog_RegisterEventSourceWithMessageFile_Config
{
    Import-DSCResource -ModuleName ComputerManagementDsc
 
    Node localhost
    {
        File MyEventSourceMessageDll
        {
            Ensure = 'Present'
            Type = 'File'
            SourcePath = '\\PULLSERVER\Files\MyEventSource.dll'
            DestinationPath = 'C:\Windows\System32\MyEventSource.dll'
        }
 
        WindowsEventLog Application
        {
            LogName = 'Application'
            RegisteredSource = 'MyEventSource'
            MessageResourceFile = 'C:\Windows\System32\MyEventSource.dll'
            DependsOn = '[File]MyEventSourceMessageDll'
        }
    }
}