ProductivityTools.NewAliasSafe.psm1
function New-AliasSafe { [cmdletbinding()] param([string]$Name, [string]$Value) $alias=Get-Alias $Name -ErrorAction Ignore if($alias -eq $null) { New-Alias -Name $Name -Value $Value -Scope Global Write-Verbose "Alias $Name set. It is pointing to $Value" } else { if ($alias.Definition -eq $Value) { Write-Verbose "Alias already setup" } else { throw "Alias $Name exists and it points to $($alias.Definition)" } } } Export-ModuleMember New-AliasSafe |