Nvm-windows: использование nvm с заблокированным движком VBScript

Созданный на 23 авг. 2018  ·  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 рейтинги