Nvm-windows: ブロックされたVBScriptエンジンでnvmを使用する

作成日 2018年08月23日  ·  7コメント  ·  ソース: coreybutler/nvm-windows

こんにちは、質問があります。 ドメインポリシーによってVBScriptエンジンをブロックしているコンピューターがあります。 nvmを実行することは可能ですか? 昇格されたコマンドプロンプト(またはPS)を使用しても、不足しているスクリプトエンジンに関する情報を取得する必要があるためです。 それなしでnvmを使用するための回避策はありますか?

最も参考になるコメント

また、NodeJSパスをユーザーローカルフォルダー( %USERPROFILE%\AppData\Local\nodejsなど)に設定してnvm-windowsをインストールする場合は、 %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 /Dmklink /Jに置き換えられ、代わりにディレクトリジャンクションが作成されます。

全てのコメント7件

残念ながら、これを行う方法はありません。 VBScriptは、ノードをファイルシステムにシンボリックリンクするために必要なelevationコマンドを実行します。

誰かが代替案を持っていれば、私はPRを受け入れるでしょう。 理想的な状況はこれをGoアプリに埋め込むことですが、これを調べるのに十分な時間がありませんでした。

昇格された許可部分全体を完全に削除するフォークがあり、シンボリックリンクにジャンクションを使用します。 制限付きユーザーとして、これは私にとっては問題なく機能します。 私のビルドを試して、それが役立つかどうかを確認することもできますが、ビルドはnoinstallしかありません。

そして参考までに、実際には、ここにNTFSジャンクションに関する古い問題追跡があります。

@ h404biコードをありがとう! Exit Code 5: Access Deniedを取得しますが、昇格したcmdで実行すると機能します(vbaは使用されなくなりました)。

@coreybutler #79を考慮して、どの方向に進むかについて意見はありますか?

@AllainPL
C:\Program Files / C:\Program Files\nodejsまたは昇格されたアクセス許可を必要とする他のパスにあるものがある場合でも、昇格されたcmdが必要です。

settings.txt

root: C:\Users\<omitted>\path\to\nvm-windows\nodejs
arch: 64
proxy: none

私はユーザースペースでnvmを使用しています。つまり、すべてのnvmとノードのものは%USERPROFILE% C:\Program Filesにアクセスする必要がないため、通常の制限付きユーザーですべてのものを管理できます。 、vbscriptなし、UACポップアップなし。 WIndows7SP1およびWindows10マシンで使用しています。

しかし、これはすべて、システム全体にインストールされたnodejsを管理できなかったことを意味します。私は問題ないと思います。システム全体にインストールされたnodejsはありません。ユーザースペースでそれを使用するだけで、すべてがうまくいきます。

@AllainPL-私の傾向は、シンボリックリンクタイプを設定として構成可能にすることです。 しかし; これはおそらく2.XXの機能であるため、即時のETAはありません。 Fenix 3をリリースしたら、次のリリースに集中するための時間がもっとあるはずです。

ところで:ユーザーがPowerShellをインストールしている場合は、代わりに次のコマンドラインを使用してUACプロンプトにVBScriptを使用しないようにすることができます。

powershell -NoLogo Start -Verb:RunAs -Wait -FilePath:<executable> -ArgumentList:<args>

また、NodeJSパスをユーザーローカルフォルダー( %USERPROFILE%\AppData\Local\nodejsなど)に設定してnvm-windowsをインストールする場合は、 %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 /Dmklink /Jに置き換えられ、代わりにディレクトリジャンクションが作成されます。

このページは役に立ちましたか?
0 / 5 - 0 評価