Nvm-windows: Verwenden von nvm mit blockierter VBScript-Engine

Erstellt am 23. Aug. 2018  ·  7Kommentare  ·  Quelle: coreybutler/nvm-windows

Hallo, ich habe eine Frage. Ich habe einen Computer, der die VBScript-Engine durch Domänenrichtlinie blockiert hat. Ist es möglich, nvm auszuführen? Denn selbst mit erhöhter Eingabeaufforderung (oder PS) bekomme ich immer noch die Informationen über die fehlende Skript-Engine. Gibt es eine Problemumgehung, um nvm ohne es zu verwenden?

Hilfreichster Kommentar

Wenn Sie nvm-windows installieren und den NodeJS-Pfad auf einen benutzerlokalen Ordner (z. B. %USERPROFILE%\AppData\Local\nodejs ) setzen, können Sie außerdem zu Junctions wechseln und die Erhöhung überspringen, indem Sie den Inhalt von %USERPROFILE%\AppData\Roaming\nvm\elevate.cmd durch ersetzen die folgende:

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

Dadurch wird der Befehl ohne Erhöhung ausgeführt, wobei mklink /D durch mklink /J ersetzt wird, um stattdessen Verzeichnisverbindungen zu erstellen.

Alle 7 Kommentare

Leider gibt es dafür keine Möglichkeit. Das VBScript führt den Höhenbefehl aus, der erforderlich ist, um den Knoten symbolisch mit dem Dateisystem zu verknüpfen.

Ich wäre offen für PR's, wenn jemand eine Alternative hat. Die ideale Situation wäre, dies in die Go-App einzubetten, aber ich hatte nicht genug Zeit, um dies zu erkunden.

Ich habe einen Fork , der den gesamten Teil mit erhöhten Berechtigungen vollständig entfernt und Junctions für Symlinks verwendet. Als eingeschränkter Benutzer funktioniert das gut für mich. Sie könnten meinen Build ausprobieren, um zu sehen, ob das hilft, aber es gibt nur einen noinstall -Build.

Und zu Ihrer Information, tatsächlich gibt es hier ein altes Problem, das sich mit NTFS-Übergängen befasst.

@h404bi Danke für den Code! Ich bekomme ein Exit Code 5: Access Denied - aber wenn es in erhöhtem cmd ausgeführt wird - es funktioniert (das vba wird nicht mehr verwendet).

@coreybutler hast du eine Meinung, in welche Richtung du gehen wirst, angesichts von #79?

@AllainPL
Wenn Sie etwas haben, das sich in C:\Program Files / C:\Program Files\nodejs oder einem anderen Pfad befindet, der eine erhöhte Berechtigung erfordert, ist dennoch eine erhöhte cmd erforderlich.

settings.txt

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

Ich verwende nvm im User-Space, was bedeutet, dass alle meine nvm- und Node-Inhalte in meinem %USERPROFILE% gespeichert sind, kein Zugriff auf C:\Program Files erforderlich ist, sodass ich alle meine Dinge mit einem normalen eingeschränkten Benutzer verwalten kann , ohne VBScript, ohne UAC-Popup. Ich verwende es auf meinen Computern mit Windows 7 SP1 und Windows 10.

Aber das alles bedeutet, dass ich die systemweit installierten nodejs nicht verwalten konnte, ich denke, es ist in Ordnung für mich, ich habe keine systemweit installierten nodejs , benutze einfach diese in meinem Benutzerbereich, alles gut.

@AllainPL - ich neige dazu, den Symlink-Typ als Einstellung konfigurierbar zu machen. Aber; Dies wäre höchstwahrscheinlich eine 2.XX-Funktion, also keine sofortige ETA. Sobald ich Fenix ​​3 veröffentlicht habe, sollte ich viel mehr Zeit haben, mich auf die nächste Version zu konzentrieren.

Übrigens: Wenn der Benutzer PowerShell installiert hat, können Sie möglicherweise die Verwendung von VBScript für eine UAC-Eingabeaufforderung vermeiden, indem Sie stattdessen die folgende Befehlszeile verwenden:

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

Wenn Sie nvm-windows installieren und den NodeJS-Pfad auf einen benutzerlokalen Ordner (z. B. %USERPROFILE%\AppData\Local\nodejs ) setzen, können Sie außerdem zu Junctions wechseln und die Erhöhung überspringen, indem Sie den Inhalt von %USERPROFILE%\AppData\Roaming\nvm\elevate.cmd durch ersetzen die folgende:

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

Dadurch wird der Befehl ohne Erhöhung ausgeführt, wobei mklink /D durch mklink /J ersetzt wird, um stattdessen Verzeichnisverbindungen zu erstellen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen