Привет, у меня есть вопрос. У меня есть компьютер, который заблокировал механизм VBScript политикой домена. Можно ли запустить nvm? Потому что даже с командной строкой с повышенными правами (или PS) я все равно получаю информацию об отсутствующем механизме сценариев. Есть ли обходной путь для использования nvm без него?
К сожалению, нет возможности сделать это. 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
, чтобы вместо этого создавать соединения каталогов.
Самый полезный комментарий
Кроме того, если вы устанавливаете nvm-windows с указанием пути NodeJS к локальной папке пользователя (например,
%USERPROFILE%\AppData\Local\nodejs
), вы можете переключиться на соединения и пропустить повышение прав, заменив содержимое%USERPROFILE%\AppData\Roaming\nvm\elevate.cmd
на последующий:Это выполняет команду без повышения прав, заменяя
mklink /D
наmklink /J
, чтобы вместо этого создавать соединения каталогов.