Saya memiliki hak yang tinggi untuk laptop saya tetapi bukan hak admin. Hak admin diperlukan untuk memodifikasi variabel lingkungan sistem. Saya berharap bahwa jika saya membuat variabel lingkungan pengguna dengan nama yang sama dengan variabel lingkungan sistem, variabel pengguna akan menimpa variabel sistem tetapi ini tampaknya bukan kasusnya.
Setelah menambahkan variabel pengguna dengan nama yang sama sebagai variabel sistem, saya membuka jendela cmd baru dan menggunakan perintah gema untuk menampilkan variabel. Ini menunjukkan kepada saya nilai variabel sistem, bukan nilai variabel pengguna.
Saya hanya ingin mengkonfirmasi ini perilaku yang diharapkan dan memahami alasan di baliknya. Saya berharap pengaturan pengguna yang lebih spesifik untuk menimpa sistem.
Saya memiliki Windows 7.
Jawaban:
Menurut variabel lingkungan artikel MSKB di Windows NT :
Satu pengecualian penting adalah
PATH
variabel yang merupakan hasil gabungan dari variabel sistem dan pengguna:Artikel ini juga membahas pengecualian identik untuk perluasan
LibPath
danOs2LibPath
variabel serta bagaimana mereka ditentukan dalamautoexec.bat
ditangani. Poin-poin ini cenderung menemukan sedikit relevansi dalam lingkungan khas saat ini.Terima kasih atas jawaban SO ini
sumber
Segala sesuatu yang Twisty Impersonator katakan dalam jawaban mereka benar. Gagasan bahwa variabel jalur pengguna ditambahkan telah disorot, dan saya percaya konsekuensi dari perbedaan itu memerlukan beberapa perawatan tambahan.
Ketika Anda menjalankan program dieksekusi (atau script executable, seperti
.bat
,.vbs
, dll) Anda tidak perlu menyediakan lintasan yang memenuhi syarat.Misalnya, untuk menjalankan
java
, Anda dapat mengetikkan salah satu dari ini:Contoh pertama menggunakan jalur yang sepenuhnya memenuhi syarat. Ini akan selalu menggunakan versi Java di jalur yang tepat itu.
Contoh kedua akan melalui masing-masing direktori di
%Path%
variabel lingkungan, mencari file yang dapat dieksekusi bernamajava.exe
. Ini akan menjalankan yang pertama yang ditemukan, dan berhenti mencari. Jika ada dua file bernamajava.exe
suatu tempat di%Path%
, hanya yang pertama ditemukan digunakan.Contoh ketiga, seperti yang kedua, akan beralih ke direktori yang tercantum dalam
%Path%
. Selain itu, karena ekstensi file tidak disediakan, daftar ekstensi file yang dapat dieksekusi ditambahkan ke nama file, dalam urutan yang ditentukan dalam%PATHEXT%
variabel lingkungan. Jika ada beberapa file yang bernamajava.com
,java.exe
,java.bat
, dll di suatu tempat di%Path%
, hanya yang pertama berhasil ditemukan digunakan.Anda dapat melihat daftar ekstensi jalur yang dapat dieksekusi di sistem Anda dengan membuat file batch berikut:
Di mesin saya, ini adalah:
Apa artinya semua ini?
Dalam kontras dengan variabel lingkungan lainnya, jalur pengguna tidak memungkinkan Anda untuk menimpa sistem jalan. Justru sebaliknya yang terjadi. Dari contoh di atas, ada banyak kasus di mana Anda dapat mengubah versi default Java. Namun, jika sudah ada versi Java yang terdaftar di jalur sistem, itu adalah versi yang akan SELALU ditemukan terlebih dahulu, karena jalur tersebut dicari secara berurutan, dari kiri ke kanan, dan jalur pengguna ditambahkan di sebelah kanan. sisi-sisi, dengan jalur sistem di sebelah kiri.
Apa yang bisa saya lakukan?
Jika Anda tidak memiliki akses ke variabel lingkungan sistem, Anda tidak dapat mengesampingkan program default di jalur sistem dengan menggunakan jalur pengguna. (Sebenarnya, harus seperti ini, atau program tertentu akan berhenti bekerja dengan benar, dan itu akan membuka sistem Anda untuk dirusak oleh perangkat lunak berbahaya. Tidak ada yang menginginkan itu.)
Sebaliknya, Anda harus menggunakan jalur yang sepenuhnya memenuhi syarat jika Anda harus menggunakan versi tertentu.
sumber