2

Последние пару лет я использовал этот простой маленький скрипт:

#! 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.

Я полностью в тупике. У кого-нибудь есть идеи?

0