Terminal Visual Studio Code, jak uruchomić polecenie z uprawnieniami administratora?

88

Nowa wersja 1.2.0 zawiera terminal, ale kiedy próbuję zainstalować dowolny pakiet z węzłem, pojawia się npm ERR! kod EPERM, który zazwyczaj rozwiązuję klikając prawym przyciskiem myszy i uruchamiając go jako administrator. Jak więc to zrobić w terminalu Vscode? Czy jest coś takiego jak sudo dla linuxa?

terminal vscode

Dragod83
źródło
4
Sam znalazłem odpowiedź, po prostu uruchom kod Visual Studio jako administrator. Kliknij prawym przyciskiem myszy. Nie wiem, dlaczego wcześniej o tym nie pomyślałem.
Dragod83,
czy nie ma innego rozwiązania tego problemu? Używam Visual Studio od lat jako administrator, ale wydaje się to po prostu „złe”. Czasami w VSCode nie muszę tego robić. Czy otrzymujesz to tylko wtedy, gdy pakiet jest usuwany lub aktualizowany?
Simon_Weaver,
`po prostu uruchom Visual Studio Code jako administrator. Kliknij go prawym przyciskiem myszy ”. działa tylko wtedy, gdy zamkniesz wszystkie wystąpienia VScode przed
JinSnow

Odpowiedzi:

120

Opcja 1 - łatwiejsza i trwalsza

Uruchomienie Visual Studio Code jako administrator powinno załatwić sprawę.

Jeśli używasz systemu Windows, możesz:

  1. Kliknij prawym przyciskiem myszy skrót lub app / exe
  2. Przejdź do właściwości
  3. Karta Zgodność
  4. Zaznacz „Uruchom ten program jako administrator”
Jest jednak pewne zastrzeżenie

Upewnij się, że wszystkie inne wystąpienia programu VS Code są zamknięte, a następnie spróbuj uruchomić go jako administrator. Struktura elektronów lubi wstrzymywać procesy podczas ich zamykania, dlatego najlepiej sprawdzić menedżera zadań i zabić pozostałe procesy.

Powiązane zmiany w bazie kodu

Opcja 2 - Bardziej jak Sudo

Jeśli z jakiegoś dziwnego powodu to nie uruchamia twoich poleceń jako administrator, możesz wypróbować runaspolecenie. Microsoft: polecenie runas

Przykłady
  • runas /user:Administrator myCommand
  • runas "/user:First Last" "my command"
Uwagi
  • Po prostu nie zapomnij umieścić podwójnych cudzysłowów wokół wszystkiego, co ma w sobie spację.
  • Jest również całkiem możliwe, że nigdy nie ustawiłeś hasła na koncie administratora, ponieważ poprosi Cię o hasło podczas próby uruchomienia polecenia. Zawsze możesz używać konta bez nazwy użytkownika Administratora, jeśli ma ono prawa dostępu / uprawnienia administratora.
CTS_AE
źródło
1
Domyślną lokalizacją pliku wykonywalnego jestC:\Program Files\Microsoft VS Code\Code.exe
bbsimonbb
1
kiedy używam runas "user: domain \ adname" "npm install -g @ angular / cli" pojawia się błąd "RUNAS ERROR: Nie można uruchomić - npm install -g @ angular / cli system nie może znaleźć określonego pliku"
Tom McDonald
Jeśli nie można znaleźć npm, może być konieczne dodanie instalacji węzła do PATHzmiennej środowiskowej System . Możesz również spróbować sprawdzić, czy istnieje, wykonując coś takiego where.exe npmlub npm -vwyświetlając wersję. Ponadto, jeśli używasz PowerShell, czasami musisz dodać exe na końcu, abyś miał coś takiego: runas.exe /user:Administrator myCommand
CTS_AE
1
Nie będziesz mógł używać zmapowanych dysków w swoim projekcie lub kodzie z Opcją 1. stackoverflow.com/a/32715171/5060792
Clay
1
Jak wspomniano w odpowiedzi, może się okazać, że nigdy nie ustawiałeś hasła administratora, w takim przypadku pozostawienie pustego hasła nie zadziała (przynajmniej w systemie Windows 10), ale może się również okazać, że Twoje własne konto także administratorem, więc zamiast niej użyj własnej nazwy użytkownika, Administratora osiągniesz ten sam wynik.
Tomáš Hübelbauer
5

Krok 1: Uruchom ponownie VS Code jako administrator

(kliknij klawisz Windows, wyszukaj „Visual Studio Code”, kliknij prawym przyciskiem myszy, a zobaczysz opcję administratora)

Krok 2: W kodzie VS uruchom terminal PowerShellSet-ExecutionPolicy Unrestricted

cham
źródło
1
To działa. Nie wiem, dlaczego wszyscy nadal głosują za innymi odpowiedziami, kiedy to działa. Czy coś przeoczyłem, czy jest jakaś wada?
Jamie Marshall
Ma to nawet tę zaletę, że nie musisz potwierdzać działania VSC jako administrator podczas uruchamiania.
lema
3

Bieganie jako administrator mi nie pomogło. (również wystąpiły błędy z syscall: rename)

Okazuje się, że ten błąd może również wystąpić, jeśli pliki są zablokowane przez system Windows.

Może się to zdarzyć, jeśli:

  • Aktualnie prowadzisz projekt
  • Masz otwarte pliki w programie Visual Studio i VSCode.

Uruchomienie jako administrator nie omija blokowania plików systemu Windows.

Utworzyłem nowy projekt w VS2017, a następnie przełączyłem się na VSCode, aby spróbować dodać więcej pakietów. Po zatrzymaniu uruchomienia projektu i zamknięciu VS2017 udało się zakończyć bez błędów

Zastrzeżenie: Nie jestem do końca pewien, czy oznacza to, że uruchomienie jako administrator nie jest konieczne, ale staraj się tego unikać, jeśli to możliwe, aby uniknąć możliwości zrobienia przez jakiś nieuczciwy pakiet rzeczy, do których nie jest przeznaczony.

Simon_Weaver
źródło
Dzięki, dokładnie to mi się przydarzyło. Zamknięcie innych aplikacji korzystających z folderu, a następnie ponowna instalacja za pomocą polecenia cmd w panelu Admin.
Annie Lagang
2

Oto, co otrzymałem.

Używam programu Visual Studio Code i jego terminala do wykonywania poleceń „npm”.

Visual Studio Code (nie jako administrator)
PS g: \ labs \ myproject> npm install bootstrap @ 3

Powoduje skandir i / lub błędy pozwolenia.

Visual Studio Code (jako administrator)
Uruchom to polecenie po uruchomieniu czegoś takiego jak „ng serv”

PS g: \ labs \ myproject> npm install bootstrap @ 3

Powoduje skandir i / lub błędy pozwolenia.

Visual Studio Code (jako Administrator - zamykanie i otwieranie IDE)
Jeśli wykonałem już inne polecenia, które miałyby wpływ na moduły węzłów, postanowiłem najpierw spróbować zamknąć Visual Studio Code, otwierając go jako Administrator, a następnie uruchamiając polecenie:

PS g: \ labs \ myproject> npm install bootstrap @ 3

Wynik jaki otrzymuję to: + [email protected]
dodał 115 pakietów i zaktualizował 1 pakiet w 24.685s

Nie jest to trwałe rozwiązanie, ponieważ nie chcę kontynuować zamykania VS Code za każdym razem, gdy chcę wykonać polecenie npm, ale rozwiązało to problem do pewnego momentu.

Jacques
źródło