public/Resolve-MrParameterAlias.ps1
#Requires -Version 3.0 function Resolve-MrParameterAlias { <# .SYNOPSIS Resolves aliases for parameters of specified cmdlets. .DESCRIPTION This function takes a list of cmdlets and their parameters and resolves any aliases to their original parameter names. .PARAMETER Cmdlet Specifies the cmdlets for which to resolve parameter aliases. This parameter is mandatory. .PARAMETER Parameter Specifies the parameters to resolve. This parameter is mandatory. .EXAMPLE Resolve-MrParameterAlias -Cmdlet Get-ChildItem -Parameter GC Resolves the alias 'GC' for the Get-ChildItem cmdlet. .NOTES Author: Mike F. Robbins Website: https://mikefrobbins.com/ Twitter: @mikefrobbins #> [CmdletBinding()] param ( [Parameter(Mandatory)] [string[]]$Cmdlet, [Parameter(Mandatory)] [string[]]$Parameter ) foreach ($cmd in $Cmdlet) { $cmdInfo = Get-Command -Name $cmd -ErrorAction SilentlyContinue if ($null -eq $cmdInfo) { Write-Warning "Command '$cmd' not found" continue } $paramAliases = Get-MrParameterAlias -Name $cmd foreach ($prm in $Parameter) { $alias = $paramAliases | Where-Object Aliases -contains $prm $resolvedParam = if ($null -eq $alias) { $prm } else { $alias.Name } [pscustomobject]@{ Command = $cmd Parameter = $resolvedParam } } } } |