Unregister-ScriptCopFixer.ps1
function Unregister-ScriptCopFixer { <# .Synopsis Unregisters a ScriptCop Fixer .Description Unregisters a ScriptCop fixer. ScriptCop fixers (or Repair Rules) are commands to help automatically correct encountered issues. .Example Unregister-ScriptCopFixer -Name AFixer .Example # Unregisters all fixers Get-ScriptCopFixer | Unregister-ScriptCopFixer .Link Register-ScriptCopFixer .#> [CmdletBinding(DefaultParameterSetName='Name')] [OutputType([Nullable])] [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSReviewUnusedParameter", "", Justification="PSScriptAnalyzer False Positives")] param( # Unregisters a fixer of a particular name [Parameter(ParameterSetName='Name',Mandatory=$true)] [string]$Name, # Unregisters a fixer command [Parameter(ParameterSetName='Command',ValueFromPipeline=$true,Mandatory=$true)] [Management.Automation.CommandInfo]$Command ) begin { if (-not $script:ScriptCopFixers) { $script:ScriptCopFixers = New-Object Collections.ArrayList } } process { if ($psCmdlet.ParameterSetName -eq 'Name') { #region Remove Fixer by name if ($script:ScriptCopFixers) { @($script:ScriptCopFixers) | Where-Object { $_.Name -eq $Name } | Unregister-ScriptCopFixer } #endregion } elseif ($psCmdlet.ParameterSetName -eq 'Command') { #region Remove Fixer by commnad $null= $script:ScriptCopFixers.Remove($Command) Write-Debug ($scriptCopFixers | Out-String) #endregion } } } |