Làm cách nào tôi có thể sửa đổi biến môi trường PATH của người dùng mà không cần đăng xuất?


22

Câu hỏi khá nhiều nói lên tất cả; Tôi có người dùng không có quyền chỉnh sửa PATHbiến môi trường của riêng họ và nếu họ cần sửa đổi vì lý do nào đó, họ cần phải đăng xuất để Quản trị viên có thể đăng nhập và thay đổi PATHcho họ, trước khi người dùng đăng nhập lại . Đây không phải là lý tưởng. Nó có thể được thực hiện một cách tốt hơn?


Chỉ tò mò - nhưng chính xác thì làm thế nào bạn ngăn người dùng thay đổi môi trường mặc định của riêng họ? Bạn có đang từ chối họ truy cập vào Biến máy tính / Thuộc tính / Nâng cao / Môi trường của tôi không? Họ vẫn có thể sửa đổi HKCU / Môi trường thông qua nhiều phương pháp.
Cooper


Ưu đãi chính sách nhóm? Chỉ là một ý nghĩ.
Simon Catlin

Câu trả lời:


6

Bạn luôn có thể gọi shell cmd với quyền quản trị viên (hoặc bất kỳ phương thức runas nào khác) và sử dụng một công cụ như SETX để sửa đổi đường dẫn vĩnh viễn. Các shell hiện có và / hoặc các chương trình đang chạy có thể sẽ sử dụng đường dẫn cũ, nhưng bất kỳ shell / chương trình mới nào cũng sẽ sử dụng các cài đặt mới.


25

Đối với tài khoản không có đặc quyền quản trị viên:

Mở "Tài khoản người dùng" và chọn "Thay đổi biến môi trường của tôi" ( http://support.microsoft.com/kb/931715 ).

Hộp thoại này sẽ hiển thị cho bạn các biến người dùng hiện tại cũng như các biến hệ thống. Bạn có thể cần thêm một biến PATH cục bộ nếu bạn chưa có.

Ví dụ, để cập nhật Đường dẫn của bạn để bao gồm thư mục Python 3.3, bấm Mới:

Tên biến: PATH Giá trị biến:% PATH%; C: \ Python33

Điều này tạo ra một PATH cục bộ bằng cách lấy PATH hệ thống hiện tại và thêm vào nó.


2
Tôi đã phải suy nghĩ câu trả lời này, " Tôi có những người dùng không có quyền chỉnh sửa PATH của riêng họ ...", và làm như vậy vĩnh viễn , tốt hơn so với những người còn lại. Hoàn thành rất tốt. Tự hỏi tại sao nhấp vào đó từ Máy tính của tôi được quản trị viên bảo vệ nếu điều này không? Chỉ bảo vệ các trường không cục bộ giống như cách UI thực hiện khi truy cập theo cách này.
ruffin

10

Máy tính / Thuộc tính / Nâng cao / Biến môi trường của tôi. Thay đổi có hiệu lực ngay lập tức ngoại trừ các cửa sổ nhắc lệnh đã mở. Không cần phải đăng xuất và đăng nhập lại.

LƯU Ý: Nếu bạn không có quyền truy cập vào cửa sổ đó, bạn có thể có được nó bằng cách chạy rundll32 sysdm.cpl,EditEnvironmentVariablestừ cửa sổ Run hoặc dòng lệnh.


người sử dụng thường xuyên trên mạng của tôi không thể thay đổi các biến môi trường riêng của họ như thế này, trừ khi tôi có thể mở màn hình mà với privs nâng lên thông qua "chạy như ..." hoặc một cái gì đó tương tự, điều này sẽ không làm việc cho tôi
ninesided

4

Trong một dấu nhắc lệnh bạn có thể làm:

set PATH=C:\somedir;%PATH%

nhưng điều này chỉ thay đổi nó cho dấu nhắc lệnh (và bất kỳ ứng dụng nào được khởi chạy từ dấu nhắc lệnh). Giả sử bạn muốn điều này áp dụng cho mọi thứ mà người dùng thực hiện, bạn sẽ thay đổi các biến môi trường của người dùng. Nhấp chuột phải vào Biến máy tính, Thuộc tính, Nâng cao, Môi trường của tôi và trong "Biến người dùng để thêm biến:

PATH = C:\whatever

Khi người dùng đăng nhập vào đây sẽ được thêm vào đường dẫn toàn hệ thống.


Tôi cần phải thay đổi thứ tự các mục đã có trong PATH, vì vậy việc thêm hoặc bỏ ra khỏi các biến tài không làm việc cho tôi trong trường hợp này
ninesided

setx, như @Berzemus đã đề cập, có thể chỉnh sửa biến PATH của hệ thống (công /mtắc) vĩnh viễn.
Pat

2

Người dùng có thể đặt biến PATH tại dấu nhắc lệnh sẽ ghi đè biến PATH trên toàn hệ thống, ngay cả khi người dùng không có quyền "Quản trị viên". Thay đổi sẽ có hiệu lực đối với các quy trình mới mà người dùng bắt đầu từ dấu nhắc lệnh đó. (Quá trình Explorer hiện tại và bất kỳ quy trình nào khác mà người dùng đang chạy khi thay đổi được thực hiện, sẽ không "thấy" thay đổi.)


1

Ngoài các câu trả lời ở trên, bạn cũng có thể cập nhật sổ đăng ký (có ưu điểm là có thể viết được script):

Biến PATH được lưu trữ trong HKEY_CURRENT_USER \ Môi trường.

Để đọc đường dẫn hiện tại:

reg query HKEY_CURRENT_USER\Environment /v PATH

Để nối một giá trị c: \ somedir vào đường dẫn:

reg add HKEY_CURRENT_USER\Environment /v PATH /d "%PATH%;c:\somedir"

Lưu ý rằng các quy trình đọc môi trường khi được khởi chạy, vì vậy bạn sẽ phải khởi động lại quy trình cho nó để có đường dẫn mới.

Cập nhật: Một cách khác tôi tìm thấy là chạy:

rundll32 sysdm.cpl,EditEnvironmentVariables

Một lần nữa, applet này chỉnh sửa registry và có tác dụng tương tự như trên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.