こんにちは、質問があります。 ドメインポリシーによってVBScriptエンジンをブロックしているコンピューターがあります。 nvmを実行することは可能ですか? 昇格されたコマンドプロンプト(またはPS)を使用しても、不足しているスクリプトエンジンに関する情報を取得する必要があるためです。 それなしでnvmを使用するための回避策はありますか?
残念ながら、これを行う方法はありません。 VBScriptは、ノードをファイルシステムにシンボリックリンクするために必要なelevationコマンドを実行します。
誰かが代替案を持っていれば、私はPRを受け入れるでしょう。 理想的な状況はこれをGoアプリに埋め込むことですが、これを調べるのに十分な時間がありませんでした。
@ 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 /D
がmklink /J
に置き換えられ、代わりにディレクトリジャンクションが作成されます。
最も参考になるコメント
また、NodeJSパスをユーザーローカルフォルダー(
%USERPROFILE%\AppData\Local\nodejs
など)に設定してnvm-windowsをインストールする場合は、%USERPROFILE%\AppData\Roaming\nvm\elevate.cmd
の内容を次のように置き換えることで、ジャンクションに切り替えて昇格をスキップできます。以下:これにより、昇格せずにコマンドが実行され、
mklink /D
がmklink /J
に置き換えられ、代わりにディレクトリジャンクションが作成されます。