Public/Set-PSLogProxyFeatureSetting.ps1
|
function Set-PSLogProxyFeatureSetting { <# .SYNOPSIS Sets a LogFeature Setting .DESCRIPTION Sets a Setting of a specified LogFeature .PARAMETER Name Name of the Setting .PARAMETER Value Value to be set .PARAMETER FeatureName Name of the PSLogProxyFeature .PARAMETER PSLogProxyFeatureObject Piped from a PSLogProxyFeatureObject .EXAMPLE Set-PSLogProxyFeatureSetting -FeatureName "WriteToFile" -Name "LogFile" -Value "C:\temp\PSLogProxy.log" #> [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseShouldProcessForStateChangingFunctions", "")] [CmdletBinding(DefaultParameterSetName = "FeatureName")] param( [Parameter(Mandatory)] [String]$Name, [Parameter(Mandatory)] $Value, [Parameter(ParameterSetName = "FeatureName", Mandatory)] [String]$FeatureName , [Parameter(ParameterSetName = "Pipeline", Mandatory, ValueFromPipeline = $true)] [PSLogProxyFeature]$PSLogProxyFeatureObject ) process { # Filter Feature $PSLogProxyFeatureObjectSettings = Switch ($PSCmdlet.ParameterSetName) { "FeatureName" { ($Script:PSLogProxyFeature | Where-Object Name -EQ $FeatureName).Settings } "Pipeline" { $PSLogProxyFeatureObject.Settings } } $PSLogProxyFeatureObjectSettings.$Name = $Value } } |