Nvm-windows: menggunakan nvm dengan mesin VBScript yang diblokir

Dibuat pada 23 Agu 2018  ·  7Komentar  ·  Sumber: coreybutler/nvm-windows

Hai, saya punya pertanyaan. Saya memiliki komputer yang telah memblokir mesin VBScript berdasarkan kebijakan domain. Apakah mungkin untuk menjalankan nvm? Karena bahkan dengan command prompt (atau PS) yang ditinggikan saya masih mendapatkan info tentang mesin skrip yang hilang. Apakah ada solusi untuk menggunakan nvm tanpa itu?

Komentar yang paling membantu

Juga, jika Anda menginstal nvm-windows dengan jalur NodeJS disetel ke folder lokal pengguna (seperti %USERPROFILE%\AppData\Local\nodejs ), Anda dapat beralih ke persimpangan dan melewati elevasi dengan mengganti konten %USERPROFILE%\AppData\Roaming\nvm\elevate.cmd dengan pengikut:

<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%

Ini mengeksekusi perintah tanpa elevasi, menggantikan mklink /D dengan mklink /J untuk membuat sambungan direktori sebagai gantinya.

Semua 7 komentar

Sayangnya, tidak ada cara untuk melakukan ini. VBScript menjalankan perintah elevasi, yang diperlukan untuk menghubungkan simpul ke dalam sistem file.

Saya akan terbuka untuk PR jika seseorang memiliki alternatif. Situasi yang ideal adalah menyematkan ini ke dalam aplikasi Go, tetapi saya tidak punya cukup waktu untuk menjelajahinya.

Saya memiliki garpu yang benar-benar menghapus seluruh bagian izin yang ditinggikan, gunakan persimpangan untuk symlink. Sebagai pengguna terbatas, ini berfungsi dengan baik untuk saya. Anda dapat mencoba build saya untuk melihat apakah itu membantu, tetapi hanya ada noinstall build.

Dan FYI, sebenarnya, ada pelacakan masalah lama tentang persimpangan NTFS di sini .

@h404bi Terima kasih atas kodenya! Saya mendapatkan Exit Code 5: Access Denied - namun ketika menjalankan cmd yang ditinggikan - berfungsi (vba tidak digunakan lagi).

@coreybutler apakah Anda punya pendapat ke arah mana Anda akan pergi, mengingat #79?

@AllainPL
Jika Anda memiliki sesuatu yang terletak di C:\Program Files / C:\Program Files\nodejs atau jalur lain yang memerlukan izin yang lebih tinggi, itu masih memerlukan cmd yang ditinggikan.

setting.txt

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

Saya menggunakan nvm di ruang pengguna, yang berarti semua barang nvm dan simpul saya disimpan di %USERPROFILE% saya, tidak perlu mengakses C:\Program Files , jadi saya bisa mengelola semua barang saya dengan pengguna terbatas normal , tanpa vbscript, tanpa pop-up UAC. Saya menggunakannya pada mesin WIndows 7 SP1 dan Windows 10 saya.

Tapi ini semua berarti bahwa saya tidak dapat mengatur nodejs yang diinstal di seluruh sistem, saya pikir tidak apa-apa untuk saya, saya tidak memiliki nodejs yang diinstal di seluruh sistem, cukup gunakan yang itu di ruang pengguna saya, semuanya baik-baik saja.

@AllainPL - kecenderungan saya adalah membuat tipe symlink dapat dikonfigurasi sebagai pengaturan. Namun; ini kemungkinan besar akan menjadi fitur 2.XX, jadi tidak ada ETA langsung. Setelah saya merilis Fenix ​​​​3, saya harus memiliki lebih banyak waktu untuk fokus pada rilis berikutnya.

BTW: Jika pengguna telah menginstal PowerShell, Anda mungkin dapat menghindari penggunaan VBScript untuk prompt UAC menggunakan baris perintah berikut sebagai gantinya:

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

Juga, jika Anda menginstal nvm-windows dengan jalur NodeJS disetel ke folder lokal pengguna (seperti %USERPROFILE%\AppData\Local\nodejs ), Anda dapat beralih ke persimpangan dan melewati elevasi dengan mengganti konten %USERPROFILE%\AppData\Roaming\nvm\elevate.cmd dengan pengikut:

<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%

Ini mengeksekusi perintah tanpa elevasi, menggantikan mklink /D dengan mklink /J untuk membuat sambungan direktori sebagai gantinya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat