你好,我有一个问题。 我有一台计算机通过域策略阻止了 VBScript 引擎。 可以运行nvm吗? 因为即使使用提升的命令提示符(或 PS),我仍然可以获得有关缺少的脚本引擎的信息。 没有它有没有使用 nvm 的解决方法?
不幸的是,没有办法做到这一点。 VBScript 运行提升命令,这是将节点符号链接到文件系统所必需的。
如果有人有替代方案,我会对 PR 持开放态度。 理想的情况是将它嵌入到 Go 应用程序中,但我没有足够的时间来探索它。
@h404bi感谢您的代码! 我得到一个Exit Code 5: Access Denied
- 但是在提升的 cmd 中运行时 - 它可以工作(不再使用 vba)。
@coreybutler考虑到#79,你有什么意见吗?
@AllainPL
如果您有位于C:\Program Files
/ C:\Program Files\nodejs
或其他需要提升权限的路径的东西,它仍然需要提升的 cmd。
设置.txt
root: C:\Users\<omitted>\path\to\nvm-windows\nodejs
arch: 64
proxy: none
我在用户空间中使用 nvm,这意味着我所有的 nvm 和节点的东西都存储在我的%USERPROFILE%
中,不需要访问C:\Program Files
,所以我可以用普通的受限用户管理我的所有东西,没有 vbscript,没有 UAC 弹出窗口。 我在我的 WIndows 7 SP1 和 Windows 10 机器上使用它。
但这一切都意味着我无法管理系统范围内安装的 nodejs,我认为这对我来说没问题,我没有系统范围内安装的 nodejs ,只需在我的用户空间中使用那个,一切都很好。
@AllainPL - 我倾向于使符号链接类型可配置为设置。 然而; 这很可能是 2.XX 的功能,所以没有即时的 ETA。 一旦我发布了 Fenix 3,我应该有更多的时间专注于下一个版本。
顺便说一句:如果用户安装了 PowerShell,则可以使用以下命令行来避免使用 VBScript 作为 UAC 提示符:
powershell -NoLogo Start -Verb:RunAs -Wait -FilePath:<executable> -ArgumentList:<args>
此外,如果您安装 nvm-windows 并将 NodeJS 路径设置为用户本地文件夹(例如%USERPROFILE%\AppData\Local\nodejs
),则可以通过将%USERPROFILE%\AppData\Roaming\nvm\elevate.cmd
的内容替换为下列:
<strong i="8">@setlocal</strong>
<strong i="9">@echo</strong> off
set CMD=%*
REM Old 'elevate.cmd' commands...
REM set APP=%1
REM start wscript //nologo "%~dpn0.vbs" %*
REM New 'elevate.cmd' commands...
%CMD:mklink /D=mklink /J%
这将在没有提升的情况下执行命令,将mklink /D
替换为mklink /J
以创建目录连接。
最有用的评论
此外,如果您安装 nvm-windows 并将 NodeJS 路径设置为用户本地文件夹(例如
%USERPROFILE%\AppData\Local\nodejs
),则可以通过将%USERPROFILE%\AppData\Roaming\nvm\elevate.cmd
的内容替换为下列:这将在没有提升的情况下执行命令,将
mklink /D
替换为mklink /J
以创建目录连接。