Последние пару лет я использовал этот простой маленький скрипт:
#! PowerShell
# Create utility aliases for working with fax account management cmdlets
# account searches
new-alias -name gfad -value '.\Get-FaxAcctByDNIS.ps1'
new-alias -name gfap -value '.\Get-FaxAcctByPhone.ps1'
new-alias -name gfasql -value '.\Get-FaxAcctBySQL.ps1'
new-alias -name gfasso -value '.\Get-FaxAcctBySSO.ps1'
new-alias -name Get-AcctByDNIS -value '.\Get-FaxAcctByDNIS.ps1'
new-alias -name Get-AcctByPhone -value '.\Get-FaxAcctByPhone.ps1'
new-alias -name Get-AcctBySQL -value '.\Get-FaxAcctBySQL.ps1'
new-alias -name Get-AcctBySSO -value '.\Get-FaxAcctBySSO.ps1'
# route searches
new-alias -name gfra -value '.\Get-FaxRouteByDestination.ps1'
new-alias -name gfrd -value '.\Get-FaxRouteByDNIS.ps1'
new-alias -name gfrsql -value '.\Get-FaxRouteBySQL.ps1'
new-alias -name Get-RouteBySQL -value '.\Get-FaxRouteBySQL.ps1'
new-alias -name Get-RouteByDestination -value '.\Get-FaxRouteByDestination.ps1'
new-alias -name Get-RouteByDNIS -value '.\Get-FaxRouteByDNIS.ps1'
new-alias -name Get-RouteBy -value '.\Get-FaxRouteBy.ps1'
new-alias -name Get-RouteBySQL -value '.\Get-FaxRouteBy.ps1'
# user searches
new-alias -name gfun -value '.\Get-UserByName.ps1'
new-alias -name gfusso -value '.\Get-UserBySSO.ps1'
new-alias -name gfusql -value '.\Get-UserBySQL.ps1'
new-alias -name Get-FaxUserByName -value '.\Get-UserByName.ps1'
new-alias -name Get-FaxUserBySSO -value '.\Get-UserBySSO.ps1'
new-alias -name Get-FaxUserBySQL -value '.\Get-UserBySQL.ps1'
# miscellaneous
#EoF#
Трудно представить, что с этим что-то не так (если вы не запустите его дважды и не получите "уже определенные" ошибки), верно? И это всегда работало так, как должно.
Внезапно этим утром я вызываю его, затем пытаюсь использовать один из псевдонимов и получаю следующее:
12:07:19|32|~\docs\rts\geafax# .\xyzzy.ps1 new-alias : The alias is not allowed, because an alias with the name 'Get-RouteBySQL' already exists. At C:\Users\200018252\docs\rts\geafax\xyzzy.ps1:23 char:1
+ new-alias -name Get-RouteBySQL -value '.\Get-FaxRouteBy. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceExists: (Get-RouteBySQL:String) [New-Alias], SessionStateException
+ FullyQualifiedErrorId : AliasAlreadyExists,Microsoft.PowerShell.Commands.NewAliasCommand
НО ... псевдоним НЕ уже определен:
12:07:29|33|~\docs\rts\geafax# gal get-routebysql
gal : This command cannot find a matching alias because an alias with the name 'get-routebysql' does not exist.
At line:1 char:1
+ gal get-routebysql
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (get-routebysql:String) [Get-Alias], ItemNotFoundException
+ FullyQualifiedErrorId : ItemNotFoundException,Microsoft.PowerShell.Commands.GetAliasCommand
12:07:56|34|~\docs\rts\geafax# gci alias:\get-routebysql
gci : Cannot find path 'get-routebysql' because it does not exist.
At line:1 char:1
+ gci alias:\get-routebysql
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (get-routebysql:String) [Get-ChildItem], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Также не было создано ЛЮБОГО из других псевдонимов, определенных в сценарии. Что делает странным то, что он не выдавал ошибку, пока не добрался до Get-RouteBySQL, прежде чем жаловаться!
Чтобы сделать его еще более загадочным, я могу выполнить все строки сценария непосредственно из командной строки CLI, и все они будут успешными!
Я не сделал никаких изменений в сценарии или в моей среде Powershell.
Я полностью в тупике. У кого-нибудь есть идеи?