Терминал кода Visual Studio, как запустить команду с правами администратора?


86

Новая версия 1.2.0 включает терминал, но когда я пытаюсь установить какой-либо пакет с помощью узла, я получаю ошибку npm ERR! код EPERM, который я обычно решаю, щелкнув правой кнопкой мыши и запустив его от имени администратора. Итак, как мне это сделать в терминале vscode? Есть что-то вроде sudo для linux?

терминал vscode


4
Я нашел ответ, просто запустите код Visual Studio от имени администратора. Просто щелкните по нему правой кнопкой мыши. Не знаю, почему я не подумал об этом раньше.
Dragod83 09

нет другого способа обойти это? Я много лет использую Visual Studio в качестве администратора, но это почему-то кажется «неправильным». Также иногда в VSCode мне не нужно этого делать. Это можно получить только тогда, когда пакет удаляется или обновляется?
Simon_Weaver 01

`просто запустите код Visual Studio от имени администратора. Просто щелкните по нему правой кнопкой мыши. он работает, только если вы закроете все экземпляры VScode раньше
JinSnow

Ответы:


118

Вариант 1 - проще и надежнее

Выполнение кода Visual Studio от имени администратора должно помочь.

Если вы используете Windows, вы можете:

  1. Щелкните правой кнопкой мыши ярлык или приложение / exe
  2. Перейти к свойствам
  3. Вкладка совместимости
  4. Установите флажок «Запустить эту программу от имени администратора».
Однако есть нюанс

Убедитесь, что все остальные экземпляры VS Code закрыты, а затем попробуйте запустить его от имени администратора. Электронная структура любит останавливать процессы при их закрытии, поэтому лучше проверить диспетчер задач и убить оставшиеся процессы.

Связанные изменения в кодовой базе

Вариант 2 - Больше похоже на Судо

Если по какой-то странной причине он не выполняет ваши команды в качестве администратора, вы можете попробовать runasкоманду. Microsoft: команда runas

Примеры
  • runas /user:Administrator myCommand
  • runas "/user:First Last" "my command"
Ноты
  • Только не забывайте заключать в двойные кавычки все, что имеет пробел.
  • Также вполне возможно, что вы никогда не устанавливали пароль для учетной записи администратора, так как он попросит вас ввести пароль при попытке запустить команду. Вы всегда можете использовать учетную запись без имени пользователя администратора, если у нее есть права / разрешения администратора.

1
Расположение по умолчанию для исполняемого файлаC:\Program Files\Microsoft VS Code\Code.exe
bbsimonbb

1
когда я использую runas "user: domain \ adname" "npm install -g @ angular / cli", я получаю сообщение об ошибке "RUNAS ERROR: Unable to run - npm install -g @ angular / cli the system cannot find the file specified"
Tom McDonald

Если он не может найти npm, вам может потребоваться добавить установку узла в PATHпеременную среды System . Вы также можете попробовать проверить, существует ли он, выполнив что-то вроде where.exe npmили npm -vдля отображения версии. Также, если вы используете powershell, иногда вам нужно добавить exe в конце, чтобы у вас было что-то вроде: runas.exe /user:Administrator myCommand
CTS_AE

1
Вы не сможете использовать подключенные диски в своем проекте или коде с
Clay

1
Как упоминается в ответе, вы можете обнаружить, что никогда не устанавливали пароль администратора, в этом случае оставление пароля пустым не будет работать (по крайней мере, в Windows 10), но вы также можете обнаружить, что ваша собственная учетная запись пользователя также администратор, поэтому используйте свое собственное имя пользователя вместо, Administratorи вы получите тот же результат.
Tomáš Hübelbauer

4

Шаг 1. Перезапустите VS Code от имени администратора.

(щелкните ключ Windows, найдите «Код Visual Studio», щелкните правой кнопкой мыши, и вы увидите параметр администратора)

Шаг 2. Запустите терминал PowerShell в коде VSSet-ExecutionPolicy Unrestricted


Это работает. Я не знаю, почему все до сих пор голосуют за другие ответы, когда это работает. Я что-то упустил, есть ли недостаток?
Джейми Маршалл

3

Запуск от имени администратора мне не помог. (также есть ошибки с syscall: rename)

Оказывается, эта ошибка также может возникать, если файлы заблокированы Windows.

Это может произойти, если:

  • Вы фактически запускаете проект
  • У вас есть файлы, открытые как в Visual Studio, так и в VSCode.

Запуск от имени администратора не позволяет обойти блокировку файлов Windows.

Я создал новый проект в VS2017, а затем переключился на VSCode, чтобы попытаться добавить больше пакетов. После остановки проекта и закрытия VS2017 он смог завершить работу без ошибок.

Отказ от ответственности: я не совсем уверен, означает ли это, что запуск от имени администратора не нужен, но старайтесь избегать этого, если возможно, чтобы избежать возможности того, что какой-то мошеннический пакет сделает то, для чего он не предназначен.


Спасибо, именно это и случилось со мной. Закройте другие приложения, использующие эту папку, а затем переустановите через cmd в Admin.
Annie Lagang

2

Вот что я получаю.

Я использую код Visual Studio и его терминал для выполнения команд npm.

Код Visual Studio (не как администратор)
PS g: \ labs \ myproject> npm install bootstrap @ 3

Приводит к ошибкам scandir и / или разрешению.

Код Visual Studio (от имени администратора)
Запустите эту команду после того, как я запустил что-то вроде 'ng serve'

PS g: \ labs \ myproject> npm установить bootstrap @ 3

Приводит к ошибкам scandir и / или разрешению.

Код Visual Studio (как администратор - закрытие и открытие среды IDE).
Если я уже выполнил другие команды, которые могут повлиять на модули узлов, я решил сначала закрыть Visual Studio Code, открыв его как администратор, а затем выполнив команду:

PS g: \ labs \ myproject> npm установить bootstrap @ 3

Результат, который я получаю: + bootstrap@3.3.7
добавил 115 пакетов и обновил 1 пакет за 24,685 с.

Это не постоянное решение, поскольку я не хочу продолжать закрывать VS Code каждый раз, когда хочу выполнить команду npm, но это действительно решило проблему до определенного момента.


-1

Откройте код Visual Studio от имени администратора, и открытие нового терминала запускается от имени администратора.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.