NVM for Windows 每次切换版本都要弹两次 UAC 提示,Nodejs环境下有什么办法不让它弹吗

发布于 1周前 作者 yuanlaile 来自 nodejs/Nestjs

NVM for Windows 每次切换版本都要弹两次 UAC 提示,Nodejs环境下有什么办法不让它弹吗

前提是不关闭 UAC 。

网上搜了一圈无果,作者似乎说没有办法,但 readme 里又说这个问题已经解决,搞不懂怎么解决。

nvm 和 node 的安装位置都选在用户文件夹下面了,还是弹。

通过组策略给了当前用户创建 symlink 的权限,然后手动执行 mklink 也没有问题,但是 nvm use 还是弹。

有没有大手子指点一下

10 回复

Windows 10 的话尝试开启开发者模式?开启后创建符号链接不需要管理员权限。


可以只是用 https://github.com/lukesampson/psutils 这个库里面的 sudo 命令来执行,应该就弹一次了

不知道你说的是不是这个项目 https://github.com/coreybutler/nvm-windows
看了 readme 似乎没有提到这个问题。代码里面写死了管理员身份运行,所以你配置权限没有用。
按理说这个问题也不是无法解决,大部分 Unix 命令行程序的做法是不检查,直接进行操作,操作失败的话用户自然会用 root 权限执行。

#4 我几年前在原 repo 参与过讨论为什么 nvm-windows 不把默认 UAC 提权创建软连接的功能,改为用其它可行的替代方案。但是作者在这个问题上一直拖延不打算有任何改变。“能用就行”的态度,除了 Fork 没啥办法。


感谢!公司电脑没有管理员权限!


nvm-windows 1.1.7 有一个问题:
https://github.com/npm/cli/issues/4340
https://github.com/npm/cli/issues/4340#issuecomment-1025833090

能不能把非管理员权限版的 nvm-windows 也更新一下?

#7 原版新版还要权限吗?我记得后来支持不用 UAC 了的。

遇到了相同的问题,检查一遍你的环境变量。环境变量可能还是把 node 放到了 C:\program files

关于NVM(Node Version Manager)for Windows 每次切换 Node.js 版本时弹出两次 UAC(用户帐户控制)提示的问题,这通常是由于NVM在安装或执行时需要管理员权限来修改系统路径或执行某些操作。尽管完全禁用UAC提示在安全性上可能不是最佳实践,但你可以尝试以下几种方法来减少或避免这种情况:

  1. 以管理员身份运行命令行: 始终使用以管理员权限运行的命令提示符或PowerShell窗口来执行NVM命令。这样可以减少UAC提示的次数,因为已经以最高权限运行。

  2. 配置环境变量: 手动设置Node.js的安装路径到系统环境变量中,而不是通过NVM频繁修改。但这种方法失去了使用NVM管理多个Node.js版本的能力。

  3. 使用脚本自动化: 编写一个PowerShell或批处理脚本,该脚本以管理员身份运行,并包含所有需要执行的NVM命令。这样,你可以通过一次UAC提示来运行整个脚本。

    示例PowerShell脚本(保存为switch_node.ps1):

    # Start PowerShell as Administrator
    Start-Process powershell "Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force; nvm use <version>" -Verb RunAs
    

    注意:<version>需要替换为你想要使用的Node.js版本。

  4. 检查NVM配置: 确保NVM的配置文件(如settings.txt)没有错误或不必要的权限要求。

这些方法可能无法完全消除UAC提示,但可以帮助减少其出现的频率。

回到顶部