You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中查看所有别名的作用域(Scope)?

如何列出PowerShell所有别名并显示其作用域?

创建别名时,你可以用Set-Alias指定作用域,比如:

Set-Alias -Name find -Value Find-File -Scope Local -Option Private

但用Get-Alias查看别名时,默认输出里没有直接显示作用域的属性,哪怕用类似下面的命令也看不到:

Get-Alias | Format-Table -Property Name, Visibility, Options -Autosize

# 输出示例:
# cat           Public               None
# cd            Public           AllScope

下面给你两种可行的解决方法:

方法1:遍历各作用域逐个查询

PowerShell的作用域主要有Global(全局)、Local(当前)、Script(脚本)、Private(私有)几种,你可以遍历这些作用域,分别获取对应作用域内的别名,手动添加上作用域标识:

$scopes = 'Global', 'Local', 'Script', 'Private'
foreach ($scope in $scopes) {
    Get-Alias -Scope $scope | Select-Object Name, Value, @{Name='Scope'; Expression={$scope}}
}

方法2:结合Options属性推断作用域

如果别名设置了Private或AllScope选项,能通过Options属性辅助判断作用域特性:

  • AllScope:别名会被复制到所有子作用域
  • Private:别名仅在创建它的作用域可见,不会传到子作用域

搭配作用域查询,能更精准定位别名的生效范围:

# 查看全局作用域别名
Get-Alias -Scope Global | Select-Object Name, Value, Options, @{Name='Scope'; Expression={'Global'}}
# 查看当前作用域别名
Get-Alias -Scope Local | Select-Object Name, Value, Options, @{Name='Scope'; Expression={'Local'}}

额外说明

  • Get-Alias默认返回当前作用域及上级作用域中可见的别名,但不会标注它来自哪个作用域
  • 设为Private的别名,只能在创建它的作用域里用Get-Alias -Scope <对应作用域>查到

内容的提问来源于stack exchange,提问作者not2qubit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 13:55:22