שאלה כיצד מוסיפים משתנה סביבה של Windows ללא אתחול מחדש?


אני רוצה להוסיף משתנה הסביבה למחשב Windows (שולחן עבודה או שרת) ולהיות מסוגל להשתמש בו ללא אתחול מחדש של המכונה.

נניח שיש לך שרת ייצור המארח מגוון אפליקציות ואפליקציה חדשה זקוקה למשתנה סביבה מסוים להפעלה. אינך רוצה לאתחל אותה בזמן שהמשתמשים מחוברים לאפליקציות האחרות שלך. אילו אפשרויות יש לך? אני לא אוהב את לחכות עד עד זמן טוב לאתחל אפשרות. חייבת להיות דרך טובה יותר. מה אני מפספס?


162
2018-05-16 04:09




היתה לי אותה בעיה. קראתי באיזה מקום להרוג את התהליך explorer.exe יהיה לעדכן את המשתנים וזה עבד. אז הייתי רק צריך להפעיל Explorer ממנהל המשימות. - user19694
עליך לסגור את שורת הפקודה ולפתוח אותה שוב, כדי לעדכן את משתני הנתיב שלך. המשתנים נטענים כאשר מתחיל cmd. - NiLInfinite


תשובות:


שינויים במשתני הסביבה ייכנסו לתוקף באופן מיידי, אם תבצע את השינוי באמצעות תיבת הדו-שיח מאפיינים עיקריים עבור המחשב המדובר (עבור אל המחשב שלי | מאפיינים | מתקדם | משתני סביבה). לאחר שמירת השינויים, Explorer משדר א WM_SETTINGCHANGE הודעה על כל החלונות כדי להודיע ​​להם על השינוי. כל התוכנות שנולדו באמצעות Explorer לאחר זה צריך לקבל את הסביבה המעודכנת, למרות שכבר פועל תוכניות לא, אלא אם כן הם מטפלים לשנות את ההגדרה.

אני לא יכול לספר מתוך תיאור הבעיה שלך איזו בעיה ספציפית אתה נתקל עם זה. האם תוכל לספר לנו עוד על התרחיש הספציפי שאינו פועל?

מאמר זה עשוי גם להיות שימוש: כיצד להפיץ משתני סביבה למערכת


153
2018-05-16 04:16



בסדר, אני מניח שאני חייב לראות את ההתנהגות הזאת על שירות פועל או משהו. הוספתי משתנה סביבה חדש בשיטה המתוארת לעיל. לאחר מכן, הצלחתי לראות את הערך לאחר פתיחת פקודת פקודה חדשה ושימוש בפקודה "echo% <myvar>%" תודה על תשובותיך. - Chad Braun-Duin
למשתמשי PowerShell קטע זה עשוי לעזור: poshcode.org/2049 - Anders Zommarin
אם אתה משתמש ב- cmd, עליך להפעיל אותו מחדש אם משתנה משתנה env - Neil McGuigan
רק מותקן סקאלה על המחשב שלי אבל PathH לא עדכון; כנראה שה- MSI לא שידר את ההודעה WM_SETTINGCHANGE. הוספתי משתנה SYSTEM Dummy כלומר CHANGE_TO_UPDATE = z, שאני מעדכן כדי להפעיל את ההודעה WM_SETTINGCHANGE - הבעיה נפתרה - Darren Bishop
תודה על CHANGE_TO_UPDATE = z, זה בדיוק הפתרון שרציתי. זה עבד בשבילי ולא הייתי צריך לאתחל מחדש. - iopq


  1. בשורת הפקודה: runas /user:yourusername@yourdomain cmd
  2. זה יפתח חדש cmd הפקודה, ולאחר מכן הקלד: taskkill /f /im explorer.exe
  3. לאחר מכן הקלד: explorer.exe

עכשיו לאחר סגירת כל פקודות, תראה כי PATH משתנה עודכן.

כל פקודות הפקודות חייבות להיות סגורות. פתח מחדש שורת פקודה חדשה, הקלד נתיב ותראה את הנתונים החדשים.


54
2018-03-20 06:36



מתוך כל התשובות בדף זה, זה היחיד שבאמת עבד בשבילי. תודה!! - CoreDumpError
זה עבד בשבילי. אני חושב שהבעיה היא שאם אתה מפעיל cmd דרך Explorer (כדי לחסוך לך צורך להקליד נתיבים ארוכים) אז Explorer הוא אף פעם לא סגור, גם אם אתה סוגר את כל החלונות Explorer. תודה על הפתרון :) - Steve Mc
עבדה בשבילי. אתה יכול גם פשוט להשתמש במנהל המשימות כדי להרוג את משימות Explorer ולהפעיל אותו מחדש (קובץ> הפעל משימה חדשה). - adabyron
ללא שם: Uhh. בבקשה לא להרוג Windows Explorer אלא אם אחד התהליכים שלה תלויים. במקום זאת, פתח את תיבת הדו-שיח של חלונות הכיבוי ובטל אותה בזמן החזקה ctrl+alt+shift. זה יהיה נקי לצאת Windows Explorer. ב Vista + את הכיבוי Windows שיח קשה יותר למצוא (אבל עדיין נוכחים, לפחות דרך 7 (לא בטוח לגבי 8 ו 10)), אז יש שיטה שנייה. ctrl + Shift + לחץ באמצעות לחצן העכבר הימני בחלק ריק של תפריט התחלה ובחר יציאה Explorer. ב 8 אפשרות היציאה זהה, אבל אתה משתמש בשורת המשימות לא בתפריט ההתחלה. - Kevin Cathcart
ההערה הנ"ל מתארת ​​את מערכת ההפעלה של הלקוח, אך היא חלה פחות או יותר על שרתים. אני לא בטוח אם כיבוי עם סיבה סיבה שיח תומך התכונה Explorer Explorer אף על פי, מעולם לא היתה הזדמנות לבדוק את זה, ואני לא רוצה להתעסק עם כל השרתים בשליטה שלי. - Kevin Cathcart


דבר אחד שיש לזכור הוא כי תוכניות רבות להשיג את המשתנים הסביבתיים כאשר הם נכתבו לראשונה, ולכן בעוד Windows לא צריך להפעיל מחדש, תוכניות מסוימות עשויות לפני שהם יוכלו להשתמש במשתנים החדשים. דוגמה טובה לכך היא לפתוח חלון פקודה חדשה לאחר הוספת PATH (כן, אני כבר מעד על ידי זה).


16
2018-05-16 06:11



בעיה זו משפיעה על כל השירותים, אפילו שירות מחדש לא יראה משתני סביבה חדשים. - gimel
האם אתה בטוח שזה לא בגלל שיתוף svchost התהליך? - Mark Sowul


אמנם אין לי מספיק מוניטין כדי להגיב על התשובה הגבוהה ביותר הצביעו על שאלה זו, אני רוצה לציין כי זה לא בדיוק נכון. אני יודע את זה כי לא משנה איזה פתרון ניסיתי לכתוב זה, שום דבר לא ממש עובד.

ה kb המאמר מקושר בתשובה זו קובע למעשה כי:

עם זאת, שים לב כי שינויים משתני הסביבה לא   לגרום לשינוי מיידי. לדוגמה, אם תפעיל פקודה אחרת   לאחר ביצוע השינויים, משתני הסביבה יהיו   משקפים את הערכים הקודמים (לא הנוכחית). השינויים אינם נוטלים   עד שתתנתק ולאחר מכן תיכנס שוב.

החלק על משתני הסביבה איפוס לערכים הקודמים לאחר טעינה מחדש של שורת הפקודה הוא בדיוק מה שחוויתי ב- Windows Server 2008.

המאמר ממשיך ואומר:

כדי לבצע שינויים אלה מבלי להתנתק, שדר הודעת WM_SETTINGCHANGE לכל החלונות במערכת, כך שכל היישומים המעוניינים (כגון סייר Windows, מנהל התוכניות, מנהל המשימות, לוח הבקרה וכן הלאה) יכולים לבצע עדכון.

אין זה אומר ש- Explorer משדר הודעת WM_SETTINGCHANGE לאחר ששינית את משתני הסביבה של המערכת, או שהיא אכן פועלת. אני לא בטוח איך היית עושה מה מוצע במאמר KB (כדי להפיץ את השינויים באופן מיידי) משורת הפקודה.


12
2017-11-26 22:30





הפוך את env. משתנה זמין מיד:

1. Open a shell

בהתאם למשתנה הסביבה שברצונך לשנות, בצע את הפעולות הבאות:    (מציעים שברצונך להוסיף PATH חדש ליישום שהותקן לאחרונה) לכן, בשורת הפקודה, הקלד את הפרטים הבאים:

2. PATH=%PATH%;C:\type\your\new\path\here

בדוק שהנתיב החדש שלך נוסף למשתנה הסביבתי

3. echo %PATH%

בוצע.

להפוך את המשתנה זמין על אתחול מחדש

1. Press WinLogoKey+Pause/Break
2. On the left pane, press 'Advanced System Settings'
3. On the 'Advanced' tab, click 'Environment Variables'
4. In 'System Variables' choose the one you want to modify
5. Click Ok

נבדק ועובד על Windows 7/10


4
2017-11-18 17:00





פתרון אפשרי עבור שירותים הוא להפעיל אותם באופן זמני כמשתמש אחר (למעט LocalSystem, LocalService, NetworkService). לדוגמה עבור שירות Apache זה עובד ללא בעיות. כדי לשנות את חשבון השירות של מסוף services.msc פתוח, בחר שירות, לחץ על מאפייני שירות ובכרטיסייה שנייה הזן אישורי כניסה עבור משתמש. הפעל מחדש את השירות ומשתני הסביבה שלו צריכים להיות מעודכנים.

אם זה משתמש אשר נרשם של זה צריך לעבוד ללא בעיות. אם אתה משתמש בחשבון המשתמש הנוכחי, ולאחר מכן הפעל מחדש את explorer.exe עשוי להיות נחוץ מדי. כמו כן, שים לב כי הפעלת שירותים כחשבון משתמש רגיל עלולה ליצור סיכוני אבטחה.


3
2017-08-09 20:26