Як я можу змінити змінну середовища PATH користувача без виходу з системи?


22

Питання майже все це говорить; У мене є користувачі, які не мають дозволу редагувати власну PATHзмінну середовища, і якщо їм потрібно змінити її з якоїсь причини, вони повинні вийти, щоб адміністратор міг увійти та змінити PATHїх, перш ніж користувач знову ввійде в систему. . Це не ідеально. Чи можна це зробити кращим чином?


Просто цікаво - але як саме ви заважаєте користувачам змінювати власне середовище за замовчуванням? Ви просто забороняєте їм доступ до "Мій комп'ютер" / "Властивості" / "Розширений / змінна середовище"? Вони все ще могли змінювати HKCU / Середовище за допомогою різних методів.
Купер

Дивіться також superuser.com/questions/189654/…
Пат

Налаштування групової політики? Просто думка.
Саймон Кетлін

Відповіді:


6

Ви завжди можете викликати оболонку cmd з правами адміністратора (або будь-який інший метод runas ) і використовувати інструмент, такий як SETX, щоб постійно змінювати шлях. Існуючі оболонки та / або запущені програми, ймовірно, будуть використовувати старий шлях, але будь-яка нова оболонка / програма використовуватиме нові налаштування.


25

Для облікових записів без прав адміністратора:

Відкрийте "Облікові записи користувачів" та виберіть "Змінити мінливі мій середовища" ( http://support.microsoft.com/kb/931715 ).

Це діалогове вікно покаже ваші поточні користувацькі змінні, а також системні змінні. Можливо, вам потрібно буде додати локальну змінну PATH, якщо ви ще цього не зробили.

Наприклад, щоб оновити свій шлях до включення каталогу Python 3.3, натисніть кнопку Створити:

Назва змінної: PATH Значення змінної:% PATH%; C: \ Python33

Це створює локальний PATH, приймаючи поточну систему PATH та додаючи до неї.


2
Мені належить подумати, що це відповідає: "У мене є користувачі, які не мають дозволу редагувати власну PATH ...", і робить це постійно , краще, ніж решта. Дуже красиво зроблено. Цікаво, чому натискання клавіші "Мій комп'ютер" захищено адміністратором, якщо це не так? Просто захистіть нелокальні поля так само, як це робить інтерфейс користувача, коли до нього звертаються.
ruffin

10

Мій комп'ютер / Властивості / Розширені / Змінні середовища. Зміни набувають чинності негайно, за винятком уже відкритих вікон командного рядка. Не потрібно виходити та знову входити.

ПРИМІТКА. Якщо у вас немає доступу до цього вікна, ви можете отримати його, запустивши rundll32 sysdm.cpl,EditEnvironmentVariablesз вікна Запуск або командного рядка.


постійні користувачі в моїй мережі не в змозі змінити власні змінні середовища, як це, якщо я не можу відкрити цей екран із підвищеними приватними елементами через "запустити як ..." чи щось подібне, для мене це не буде працювати
дев'яносторонній

4

У командному рядку ви можете:

set PATH=C:\somedir;%PATH%

але це змінює його лише для командного рядка (і будь-яких додатків, запущених із командного рядка). Припустимо, що ви хочете, щоб це стосувалося всього, що користувач робить, ви змінюєте змінні середовища користувача. Клацніть правою кнопкою миші Мій комп'ютер, Властивості, Додатково, Змінні середовища та в розділі "Користувацькі змінні для додавання змінної:

PATH = C:\whatever

Коли користувач входить до цього, додається до системного шляху.


Мені потрібно змінити порядок записів уже в PATH, тому додавання видалення зі змінних користувачів не працює для мене в цьому випадку
дев'яносторонній

setxЯк зазначає @Berzemus, можна редагувати системну змінну PATH ( /mкомутатор) постійно.
Пат

2

Користувач може встановити змінну PATH в командному рядку, яка буде заміняти загальносистемну змінну PATH, навіть якщо користувач не має прав "Адміністратор". Зміна набуде чинності для нових процесів, які користувач починає з цієї командної лінії. (Існуючий процес Провідника та будь-які інші процеси, які користувач виконує під час внесення змін, зміни не "бачать".)


1

Окрім наведених вище відповідей, ви також можете оновити реєстр (який має перевагу в тому, щоб бути написаним сценарієм):

Змінна PATH зберігається у HKEY_CURRENT_USER \ Environment.

Щоб прочитати поточний шлях:

reg query HKEY_CURRENT_USER\Environment /v PATH

Щоб додати значення c: \ somedir до шляху:

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

Зауважте, що при запуску процеси читають середовище, тому вам доведеться перезапустити процес, щоб отримати новий шлях.

Оновлення. Ще один спосіб, який я знайшов - це запустити:

rundll32 sysdm.cpl,EditEnvironmentVariables

Знову ж таки, цей аплет редагує реєстр і має той же ефект, що і вище.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.