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

如何取消关联微软新sudo命令并指向自定义sudo.ps1脚本?

解决Windows预装sudo命令覆盖自定义PowerShell脚本的问题

微软已发布新的sudo命令,目前该命令已预装在所有Windows设备中。这个系统自带的sudo二进制文件优先级高于自定义的sudo PowerShell脚本,且无法正常兼容PowerShell命令。

问题示例

执行PowerShell命令时会报错:

λ  sudo Set-Service -Name ssh-agent -StartupType Manual
Command not found

原因是预装的sudo仅支持可执行文件,无法识别PowerShell命令。

即使禁用该预装功能也无法解决问题,执行命令会提示:

λ  sudo netstat -ab
Sudo is disabled on this machine. To enable it, go to the Developer Settings page in the Settings app

如何在不删除system32目录下sudo.EXE的前提下,让sudo指向自定义的sudo.ps1?

方案1:调整PATH环境变量优先级

  1. 找到你的sudo.ps1所在的目录
  2. 打开系统属性 → 高级 → 环境变量
  3. 在系统变量的Path列表中,将自定义脚本所在目录拖动到C:\WINDOWS\system32条目之前
  4. 重启终端或PowerShell,系统会优先加载你的脚本

方案2:设置PowerShell别名(可持久化)

  • 临时生效(当前会话):
    New-Alias -Name sudo -Value "C:\你的脚本路径\sudo.ps1"
    
  • 永久生效:
    1. 打开PowerShell配置文件:
      notepad $PROFILE
      
    2. 将上述别名命令添加到文件中,保存后重启PowerShell即可

方案3:定义PowerShell函数(更灵活)

编辑PowerShell配置文件(notepad $PROFILE),添加以下函数:

function sudo {
    & "C:\你的脚本路径\sudo.ps1" @args
}

保存后重启PowerShell,调用sudo时会直接执行你的脚本,并自动传递所有参数


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 07:31:10