除非以管理员身份,否则无法从 CLI(cmd 或 powershell)运行 WSL

除非以管理员身份,否则无法从 CLI(cmd 或 powershell)运行 WSL

我遇到了一个奇怪的情况。除非我以提升的(管理员)权限执行此操作,否则我无法从命令行或 powershell 调用 wsl。我认为在升级到 WSL2(例如,允许运行 Docker)之前我可以这样做。

事情就该是这样吗?

还是因为我意外地以管理员身份安装/升级了它?

有没有办法让它以非管理员身份工作(而不必重新安装整个东西)?

谢谢。

PS. C:\Windows\system32 位于系统路径中,也位于非提升路径中。

dir但是,以非提升权限的用户身份从命令行执行命令时,system32 目录下的 wsl.exe 是不“可见的” 。

仅以管理员身份运行时才从命令行可见。

奇怪的是,我可以通过从文件资源管理器双击来运行 wsl.exe(无需提升权限)。

有任何想法吗?

答案1

您是否为您的主要用户运行备用终端应用程序,但在启动提升/管理员终端时可能使用“普通”Windows 控制台?

自从你:

  • wsl.exe从文件资源管理器中查看和启动C:\Windows\System32,但是......
  • 不能在 PowerShell 或 CMD 中wsl.exe发出命令时查看dirC:\Windows\System32

最可能的原因(但可能不是唯一的原因)是您正在 32 位终端中运行。

dir C:\Windows\Sysnative\wsl.exe在您现有的终端/shell 中尝试。如果您wsl.exe使用该方法找到,则您正在运行 32 位。

如果是这种情况,我建议切换到 Windows 终端(可从 Microsoft Store 安装)。它是:

  • 传统 Windows 控制台的现代替代品
  • 由微软积极开发
  • 功能丰富(可以说是 Windows 上所有终端应用程序中功能最丰富的,甚至可能是 Linux 上的)
  • 开源(Github 仓库
  • 可以自动检测任何 WSL、PowerShell、CMD、Git Bash 等安装并自动为其创建配置文件。
  • 也许在这种情况下最重要的是64位:-)

相关内容