Nvm-windows: 使用带有阻塞的 VBScript 引擎的 nvm

创建于 2018-08-23  ·  7评论  ·  资料来源: coreybutler/nvm-windows

你好,我有一个问题。 我有一台计算机通过域策略阻止了 VBScript 引擎。 可以运行nvm吗? 因为即使使用提升的命令提示符(或 PS),我仍然可以获得有关缺少的脚本引擎的信息。 没有它有没有使用 nvm 的解决方法?

最有用的评论

此外,如果您安装 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以创建目录连接。

所有7条评论

不幸的是,没有办法做到这一点。 VBScript 运行提升命令,这是将节点符号链接到文件系统所必需的。

如果有人有替代方案,我会对 PR 持开放态度。 理想的情况是将它嵌入到 Go 应用程序中,但我没有足够的时间来探索它。

我有一个完全删除整个提升权限部分的叉子,使用连接作为符号链接。 作为受限用户,这对我来说很好。 你可以试试我的构建,看看是否有帮助,但只有noinstall构建。

仅供参考,实际上,这里有一个关于 NTFS 连接的旧问题。

@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以创建目录连接。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

janpio picture janpio  ·  3评论

keylowgee picture keylowgee  ·  6评论

martijnsenden picture martijnsenden  ·  3评论

David263 picture David263  ·  3评论

hsali picture hsali  ·  4评论