在Windows管理员模式下运行时,“choco”命令未被识别

44

按照网站上的说明 (https://chocolatey.org/install),我安装了 Chocolatey。

在 cmd 正常运行 'choco' 命令时没有问题,但以管理员身份运行时会返回以下错误:

C:\WINDOWS\system32>choco install -y wget 7zip.commandline
'choco' is not recognized as an internal or external command,
operable program or batch file.

如果不以管理员身份运行,则安装choco install -y wget 7zip.commandline失败。

我该如何在管理员cmd中修复“未识别”的错误?


1
在本站中搜索“not recognized as an internal or external command”,将会出现成千上万的现有帖子,涉及到同样的问题。事实上,当您发布帖子时,您被展示了许多潜在的重复帖子;它们在相关列表中--->>>至少其中一个将告诉您如何解决问题。在发布帖子之前进行至少简单的搜索是自己寻找解决方案的一部分。 - Ken White
3
我已经阅读了过去30分钟的这样的帖子。当我以管理员身份运行cmd时,该命令仍然无法正常工作。我已检查了PATH,它被正确设置了。然而,只有在我正常打开cmd(而不是作为管理员)时才有效。请问你能否指出任何提到以管理员身份运行cmd的问题? - Nicholas Kajoh
1
如果您正在使用较新版本的Windows终端:您不能仅打开一个新标签页。您需要重新启动整个Windows终端应用程序以识别环境变量更新。 - JasonCoder
10个回答

61
  1. 首先,请确保您正在使用管理员权限的命令提示符(https://www.howtogeek.com/194041/how-to-open-the-command-prompt-as-administrator-in-windows-8.1/)。
  2. 将下面的文本复制到命令提示符中。

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
  • 然后从键盘上按下回车键。几秒钟后,您将获得有关当前安装的完整信息。

  • 如果您没有看到任何错误,请现在键入chocochoco -?

  • 参考资料


    7
    无法运行。这与普通的巧克力安装有何不同?请用更通俗易懂的语言解释一下。 - alelom
    1
    谢谢你,伙计。 - Asell
    我收到了“访问被拒绝”的提示。有什么方法可以克服这个问题吗?我已经将cmd以管理员身份运行了。 - user3437460

    29

    choco 环境变量已被更改。当我尝试为 Java SDK 设置 env variable 时,遇到了类似的问题,但是当我运行在 文档 中呈现给我的 commands 时,我很快就意识到了它,这些命令完全覆盖了我的 env Path variable

    如果您确定已安装 choco,请检查您的 System variables 并查找 Path variable,如果它有一些值,例如 C:\ProgramData\chocolatey\choco.exe;C:\ProgramData\chocolatey\bin,如果没有,请 add 它。

    通过安装它可以节省您的时间。通过 cmd line 进行安装:

    Powershell:

    将下面的代码复制并粘贴到您的 PowerShell 中

    Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
    

    或者 Windows 命令提示符:

    @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
    

    安装完成后:运行 choco 命令,即可查看已安装的 Chocolatey 版本。我的版本是


    Chocolatey v0.10.14
    Please run 'choco -?' or 'choco <command> -?' for help menu.
    

    希望这有所帮助 了解更多


    1
    在Windows 11中,我以管理员身份打开PowerShell并运行了您的代码。它运行正常。谢谢。 - undefined

    20

    首先以管理员身份打开命令提示符,然后运行 -

    @powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
    

    然后重新启动命令提示符,现在choco已成功安装。


    不幸的是,这对我也不起作用,尽管“SET PATH”可能是解决问题的方法。 - alelom

    4

    以管理员身份打开命令提示符,并运行以下命令:

    @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " [System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
    

    1
    我建议阅读:https://stackoverflow.com/help/how-to-answer - Ashok

    2

    仅纠正@Krishnarjun Banoth在答案中给出的内容:

    powershell -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"
    

    您不需要添加 PATH 变量,因为 choco 会自动将自己添加到 PATH 中。

    1
    将路径条目从 'C:\ProgramData\chocolatey\bin' 更改为 'C:\ProgramData\chocolatey' 并重新启动 Windows 对我很有帮助。

    2
    你也可以运行 refreshenv 而不是重新启动。 - Sid

    1

    安装 Chocolatey Yarn:

    首先

    下载安装程序 这将为您提供一个 .msi 文件,运行该文件将引导您在 Windows 上安装 Yarn。

    如果您使用安装程序,则首先需要安装 Node.js。

    https://classic.yarnpkg.com/lang/en/docs/install/#windows-stable

    然后执行 choco install 命令

    Powershell:

    将下面的代码复制并粘贴到您的 PowerShell 中

    Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
    

    或者窗口 CMD.exe:

    @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
    

    安装完成后:运行choco,您将看到已安装的Chocolatey版本。
    choco -v
    之后只需再做一件事情
    在PowerShell或cmd中,只需复制并粘贴以下命令以在系统中安装Chocolatey Yarn
    choco install yarn
    您的Yarn已安装,请使用以下命令检查您的Yarn版本。
    yarn -v
    就是这样!! :)
    这肯定会起作用 :)

    1

    以管理员身份运行Powershell

    运行Get-ExecutionPolicy命令。如果返回值是Restricted,则运行Set-ExecutionPolicy AllSigned或者Set-ExecutionPolicy Bypass -Scope Process命令。

    现在运行下面的命令:

    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
    

    0

    我使用C:\ProgramData\chocolatey\bin\choco.exe install -y wget 7zip.commandline成功安装了软件。但我仍然不明白为什么在管理员模式下运行cmd时,choco命令无法正常工作。希望能得到帮助。谢谢!


    1
    这应该是另一个问题或评论 @Moderator - rahulserver

    0

    安装choco到你的Windows系统,按照以下步骤进行:

    • 首先以管理员身份打开cmd。
    • 在cmd(作为管理员)中复制此命令:
    @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe"
    -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object
    System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"
    && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
    

    这将下载 choco 所需的依赖项并在您的 Windows 系统中安装它。

    为了交叉检查,请运行 choco 命令,例如:

    choco install -y nodejs.install python2 jdk8
    

    1
    不确定为什么这个被踩了,但我也发现你必须使用cmd。Powershell对我来说不起作用,但在cmd中运行相同的命令立即就可以工作。 - Grant Curell

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接