Salut, j'ai une question. J'ai un ordinateur qui a bloqué le moteur VBScript par la politique de domaine. Est-il possible d'exécuter nvm ? Parce que même avec une invite de commande élevée (ou PS), j'obtiens toujours les informations sur le moteur de script manquant. Existe-t-il une solution de contournement pour utiliser nvm sans lui?
Malheureusement, il n'y a aucun moyen de le faire. Le VBScript exécute la commande d'élévation, qui est nécessaire pour lier symboliquement le nœud au système de fichiers.
Je serais ouvert aux relations publiques si quelqu'un a une alternative. La situation idéale serait d'intégrer cela dans l'application Go, mais je n'ai pas eu assez de temps pour explorer cela.
J'ai un fork qui supprime totalement toute la partie autorisation élevée, utilise des jonctions pour le lien symbolique. En tant qu'utilisateur restreint, cela fonctionne bien pour moi. Vous pouvez essayer ma construction pour voir si cela aide, mais il n'y a que noinstall
construction.
Et pour votre information, en fait, il existe un ancien problème de suivi des jonctions NTFS ici .
@h404bi Merci pour le code ! Je reçois un Exit Code 5: Access Denied
- cependant lors de l'exécution en cmd élevé - cela fonctionne (le vba n'est plus utilisé).
@coreybutler avez-vous une opinion sur la direction dans laquelle vous allez, compte tenu du #79 ?
@AllainPL
Si vous avez quelque chose qui se trouve dans C:\Program Files
/ C:\Program Files\nodejs
ou un autre chemin qui nécessite une autorisation élevée, il aura toujours besoin d'une cmd élevée.
paramètres.txt
root: C:\Users\<omitted>\path\to\nvm-windows\nodejs
arch: 64
proxy: none
J'utilise nvm dans l'espace utilisateur, ce qui signifie que tous mes éléments nvm et nœuds sont stockés dans mon %USERPROFILE%
, pas besoin d'accéder à C:\Program Files
, donc je pourrais gérer toutes mes choses avec un utilisateur restreint normal , sans vbscript, sans pop-up UAC. Je l'utilise sur mes machines Windows 7 SP1 et Windows 10.
Mais tout cela signifie que je ne pouvais pas gérer les nodejs installés à l'échelle du système, je pense que ça me va, je n'ai pas de nodejs installés à l'échelle du système, utilisez simplement celui-ci dans mon espace utilisateur, tout va bien.
@AllainPL - mon penchant est de rendre le type de lien symbolique configurable en tant que paramètre. Toutefois; ce serait très probablement une fonctionnalité 2.XX, donc pas d'ETA immédiate. Une fois que j'aurai sorti Fenix 3, je devrais avoir beaucoup plus de temps pour me concentrer sur la prochaine version.
BTW : Si l'utilisateur a installé PowerShell, vous pouvez éventuellement éviter d'utiliser VBScript pour une invite UAC en utilisant à la place la ligne de commande suivante :
powershell -NoLogo Start -Verb:RunAs -Wait -FilePath:<executable> -ArgumentList:<args>
De plus, si vous installez nvm-windows avec le chemin NodeJS défini sur un dossier local de l'utilisateur (tel que %USERPROFILE%\AppData\Local\nodejs
), vous pouvez passer aux jonctions et ignorer l'élévation en remplaçant le contenu de %USERPROFILE%\AppData\Roaming\nvm\elevate.cmd
par ce qui suit:
<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%
Cela exécute la commande sans élévation, en remplaçant mklink /D
par mklink /J
pour créer des jonctions de répertoires à la place.
Commentaire le plus utile
De plus, si vous installez nvm-windows avec le chemin NodeJS défini sur un dossier local de l'utilisateur (tel que
%USERPROFILE%\AppData\Local\nodejs
), vous pouvez passer aux jonctions et ignorer l'élévation en remplaçant le contenu de%USERPROFILE%\AppData\Roaming\nvm\elevate.cmd
par ce qui suit:Cela exécute la commande sans élévation, en remplaçant
mklink /D
parmklink /J
pour créer des jonctions de répertoires à la place.