Variabel Lingkungan di PATH Tidak Diperluas untuk non-Admin Command Prompt?


11

Saya memiliki mesin Windows 7 yang, ketika Command Prompt dijalankan oleh pengguna normal, gagal memperluas variabel lingkungan di Windows 7 %PATH%. Jika command prompt dijalankan sebagai administrator (klik kanan, Run as administrator ) kemudian %PATH%diperluas dengan tepat.

Secara khusus, %PATH%untuk cmd.exedijalankan sebagai pengguna (ditampilkan melalui set path) adalah sebagai berikut:

Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\

... sedangkan %PATH%untuk cmd.exedijalankan sebagai Administrator adalah sebagai berikut:

Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\

Saya mencoba masuk sebagai pengguna baru untuk membuat profil baru, dan masalahnya tetap ada pada profil itu juga. HKEY_CURRENT_USER\Environment\PATHtidak ada, dan HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Pathcocok dengan jalur sistem-lebar yang ditetapkan dalam Properti Komputer -> Variabel Lingkungan.

Apakah ada yang punya ide tentang apa ini, atau di mana saya bisa melihat?

Jawaban:


8

Dua hal yang mungkin saya coba.

  1. Jalankan sfc /scannowuntuk melihat apakah itu memperbaiki masalah yang lebih besar yang sedang dimainkan.
  2. Periksa registri untuk Pathkunci HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. Apa jenis . Seharusnya dikatakanREG_EXPAND_SZ

Itu dia. Jika saya mengambil mesin normal dan mengaturnya ke REG_SZmasalah terjadi, jika saya mengaturnya kembali REG_EXPAND_SZdiperbaiki.
Steve Vigneau

@Steve - Manis! Saya bahkan belajar sesuatu tentang itu :)
Nixphoe

1
Tapi saya ingin tahu. Mengapa ini membuat mereka env vars dengan tipe nilai yang salah di registri? Saya tidak ingat mengalami masalah ini sebelumnya, saya menggunakan Pembaruan 1 Windows 8.1 dan sepertinya masalah ini mungkin terjadi bahkan di XP! support.microsoft.com/kb/329308
Adrián Pérez

0

Saya mengalami masalah yang sama ketika mencoba mengkonfigurasi Maven ...

Saya menemukan posting ini di Superuser yang menjelaskan masalah ini, tetapi tidak berhasil bagi saya. Masalahnya tampaknya tentang peningkatan hak, karena shell admin akan berfungsi, tetapi shell pengguna tidak. Saya akhirnya memutuskan untuk hanya membuat ulang variabel pengguna sebagai variabel sistem, dan menambahkannya ke jalur global.

Ini bekerja untuk beberapa variabel, tapi saya punya satu pasangan yang masih tidak akan berkembang. Saya membuat ulang mereka dengan nama-nama baru beberapa kali, tetapi tidak berhasil. Namun, variabel akhirnya diperluas dengan benar di shell pengguna setelah saya menonaktifkan UAC, reboot, mengaktifkan kembali UAC, dan reboot lagi.


0

Saya memiliki masalah yang sangat mirip - solusi sederhana adalah menambahkan titik koma setelah alias dalam definisi path .

Cerita panjang:

Saya menggunakan node.jssehingga memiliki alias NODE_HOME didefinisikan melalui variabel lingkungan pengguna. Saya kemudian menambahkan alias ini ke variabel lingkungan PATH saya .

Apa yang saya temukan adalah bahwa setelah boot ulang, shell telah kehilangan path ke NODE_HOME sehingga npmdll tidak akan berfungsi. Apa yang sedang terjadi?

Pada inspeksi, saya melihat bahwa NODE_HOME diatur, tetapi ajaibnya telah memperoleh semi-colon.

C:\Users\ob>echo %NODE_HOME%
C:\Users\ob\node-8.11.1;

PATH sekarang berakhir pada string literal % NODE_HOME% alih-alih jalur yang diperluas ke folder simpul:

C:\Users\ob>echo %PATH%
C:\Program...rams\Git\cmd;%NODE_HOME%

Untuk memperbaikinya:

Pertama, hapus semi-colon yang salah dari akhir definisi NODE_HOME .

Kedua, tambahkan tanda titik koma setelah simbol NODE_HOME dalam definisi PATH :

C:\Program...rams\Git\cmd;%NODE_HOME%;

Sekarang ketika saya memulai shell baru dan memperluas PATH , ia menemukan NODE_HOME :

C:\Users\ob>echo %PATH%
C:\Program...ams\Git\cmd;C:\Users\tkobo\Installations\node-8.11.1;

Dan npmberfungsi lagi!


-1

MASALAH : Masalah saya hanya sinilar, karena saya mengerti Anda dengan benar. "Path" saya berisi ...;% ANT_HOME% \ bin; ... Saya telah menetapkan variabel ANT_HOME di bawah Variabel System (bukan pengguna), dan CMD -> SET sama dengan "echo% ANT_HOME%" mencetaknya dengan benar .

SOLUSI : Saya memecahkan masalah dengan memindahkan folder dari c: \ dev \ 3rd \ ant ... ke c: ** Programm Files (x86) ** \ dev \ 3rd \ ant ...

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.