משיב מוביל
הרצה של סקריפט Powershell בעקבות פלט מסויים מסקריפט קודם

שאלה
-
שלום חברים.
יש לי סקריפט של PowerShell שמוחק את פרופילי המשתמש והוא משתמש ב-WMI.
היום יש 2 שרתים שהייתה להם בעיה ב-WMI וכתוצאה מכך הסקריפט רץ ורשם לי "could not connect to localhost" מצאתי פתרון לבעיה הזאת, אבל לקח לי המון זמן רק לגלות שיש בעיה.
מצאתי בזמנו סקריפט שיודע לשלוח מיילים ואני חושב לנסות לשלב אותו בסקריפט הנוכחי, איך אני יכול לגרום לסקריפט של שליחת המייל לרוץ רק כאשר מתקבלת ההודעה "could not connect to localhost"?
תודה לעוזרים.
תשובות
-
הנה קישור לאתר שיש בו את הסקריפט שאני משתמש למחיקת הפרופילם.
http://hardforum.com/showpost.php?p=1035365855&postcount=1
- סומן כתשובה על-ידי Meir Pinto יום שני 20 יוני 2011 06:34
כל התגובות
-
שלום.
במקרה כזה אני ממליץ לך בכלל לא להשתמש ב wmi אם זה לא נחוץ - הרי מדובר בפעולה פשוטה יחסית של מחיקה שאפשר לעשות אפילו בעזרת פקודות בסיסיות של CMD.
כמו כן אני לא יודע אם כדאי לך למחוק את הפרופילים (זה גורם לעיכוב בכניסת המשתמשים לשרת כי צריך ליצור פרופיל חדש כל פעם).
במקום זה אפשר למחוק סלקטיבית רק תיקיות temp שונות, ויחד עם זה להשתמש בהגדרות כמו quota או הרשאות או folder redirection,
כדי למנוע מהמשתמשים לנפח בטעות את כונן C של השרת.
תבדוק למשל את הסקריפט הזה:
http://yizhar.mvps.org/files/deltemp.zip
לגבי השאלה שלך עצמה - אני חושב שאת הטיפול במצבי שגיאה רצוי שתכלול בסקריפט עצמו המקורי, כלומר תוסיף מנגנון זיהוי שגיאה בתוך הסקריפט.
איך בדיוק לעשות אני לא יודע אבל אני מניח שחיפוש פשוט ב google למונחים כמו powershell error checking יתן לך כיוון.
אבל אם אפשר מראש למנוע את השגיאות על ידי שימוש בסקריפט פשוט יותר, אז זה לדעתי עדיף.
להת
יזהר
Yizhar Hurwitz http://yizhar.mvps.org -
שלום יזהר, תודה על התגובה.
לפני שהיגעתי למצב שאני מוחק את הפרופילים הייתי משתמש ב-Mandatory Profile וזה לא עבד כראוי.
אני חייב למחוק את הפרופילים זאת הדרך הכי טובה בשבילי לשמור על שינויים בפרופילים, ואין לי שום בעיה שיקח עוד טיפה זמן עד שהפרופיל יטען.
כשאתה אומר להשתמש בפקודת cmd פשוטה אתה בטח מתכוון ל-del או delprofile אז שכחתי לציין שאני משתמש ב-server 2008 ומיקרוסופט החליטו החלטה מטומטמת בעניי, בשינוי הגישה למחיקת הפרופילים, מה שהם עשו הם שמו פוליסי חדש שאתה מגדיר בו את מספר הימים (מהשימוש האחרון בפרופיל) ואז הוא אמור למחוק.
לצערי אני צריך למחוק אותם בכל סוף יום (כך שהפוליסי הזה לא עוזר לי כי המינימום שאפשר להגדיר זה יממה אחת), אז אחרי חיפוש ארוך למציאת פתרון מצאתי סקריפט מעולה (בתנאי שאין שום בעיה ב-WMI) שמוחק את הפרופילים של המשתמשים.
אני לא מוצא עכשיו את המקור לסקריפט אבל מחר כשאני יהיה במשרד אני יוכל בקלות לשים פה קישור למקור הסקריפט.
-
שלום.
* עדיין אני לא מבין למה אתה צריך למחוק כל יום את הפרופילים?
מה קורה אם הם נשארים עוד קצת? זה מפריע לגיבוי?
לא הבנתי איך זה קשור לשמירת שינויים?
הרי אם אתה רוצה לעדכן למשל קיצורי דרך בשולחן עבודה עבור כל המשתמשים, אז אתה יכול לשים אותם ב public desktop ולא צריך לשנות ב default או משהו כזה.
בקיצור לא הבנתי מה מסתתר מאחורי המשפט:
"אני חייב למחוק את הפרופילים זאת הדרך הכי טובה בשבילי לשמור על שינויים בפרופילים,"
וגם:
"לצערי אני צריך למחוק אותם בכל סוף יום"
מה קורה בסוף כל יום שמחייב מחיקה של הפרופילים?
* כן, התכוונתי לפקודת cmd אבל צריך להיזהר לא למחוק את public או default .
הפקודה הזו יכולה להוציא פלט של כל תיקיות הפרופיל הקיימות:
for /d %d in (c:\users\*) do rem %d
כאשר במקום פקודת rem %d בסוף השורה, אתה יכול לקרוא לקובץ CMD אחר שיבצע:
בדיקה שלא מדובר בתיקיית Public או default .
מחיקת התיקייה בעזרת rd
בסך הכל שני קבצי cmd פשוטים של כמה שורות בודדות.
אפשר כמובן את אותו עיקרון ליישם ב vbs או powershell, אבל אין צורך ב wmi .
כמובן צריך להיות מאד זהירים עם פקודות המחיקה ולעשות בדיקה בסביבה נפרדת לפני שמריצים על המערכת הפעילה,
וגם לוודא ששרתי ה TS מגובים לפחות אחת לשבוע.
* אתה מוזמן לשתף אותנו בסקריפט שיש לך כיום, והמקור שבו מצאת אותו.
להת
יזהר
Yizhar Hurwitz http://yizhar.mvps.org -
אני ינסה שוב להסביר.
יש לי כמה שרתי טרמינל שמשרתים מסופונים שמיועדים לקהל הרחב, זאת אומרת שכל אחד יכול לבוא ולהשתמש בו.
כמובן שאני "סוגר" אותו בעזרת GPO מכל כיוון אפשרי.
אני רוצה לשמור על צורת פרופיל מסויים ואיני מעוניין שיהיו בו שינויים. קבעתי סטנדרט מסויים של פרופיל ואותו שמתי ב-default כל משתמש שעושה לוגין מקבל העתק של פרופיל ברירת המחדל, לגבי שולחן עבודה אני משתמש ב-Folder Redirect בשביל לאפשר למשתמשים כן לשמור דברים על ה-Desktop (ובסוף היום נמחקים) וגם כאשר הם יעשו Logoff וה-LB יעביר אותם לשרת אחר עדיין יהיה להם את מה שהם שמרו על ה-Desktop אבל זה כבר סיפור אחר.
לגבי הפתרון של ה-Remove Directory זה קצת בעייתי בגלל שיש גם ערכים ב-Registry שצריך למחוק ואם אני לא יעשה זאת אני ימצע את עצמי עם Registry מנופח יותר מדי בדברים מיותרים מהר מאוד.
בכל מקרה הפתרון שמצאתי עם הסקריפט של PowerShell הוא מאוד נוח. הסקריפט בונה לי Function חדש ומאפשר לי אפשרויות Filtering מאוד נוחות ויעילות וכמובן יודע למחוק גם את הערכים מה-Registry והוא יודע לשייך את הערך לתיקייה של אותו משתמש ולמחוק אותו.
בקשר לגיבוי שרתי ה-TS שלי אני לא דואג כי אין לי שם אפליקציות מיוחדות שם בסך הכל יש לי Office ועוד כמה דברים בסיסים כמו שיש בעמדת PC רגילה, כל שרתי ה-TS שלי הם וירטואלים אז שמתרתי לעצמי קובץ VHD בצד למקרה שיהיה משהו חריג.
-
הנה קישור לאתר שיש בו את הסקריפט שאני משתמש למחיקת הפרופילם.
http://hardforum.com/showpost.php?p=1035365855&postcount=1
- סומן כתשובה על-ידי Meir Pinto יום שני 20 יוני 2011 06:34
-
היי,
אשמח אם תוכל/י לעדכן אותנו בסטטוס השאלה שלך.
במידה וקיבלת תשובה מתאימה לשאלתך, יש לסמן את התשובה המתאימה ע"י לחיצה על "סמן כתשובה" ליד סימון ה V הירוק
אם לא קיבלת תשובה, מומלץ לספק פרטים נוספים אודות הבעיה, פרטי לוג, צילומי מסך וכו'
על מנת להעלות תמונה לפורום ניתן להעזר במדריך להעלאת תמונה.
אם תגובתי פתרה את בעייתך - לחץ/י, על "סמן כתשובה" ליד סימן ה V הירוק.
על מנת להעלות תמונה לפורום ניתן להעזר במדריך להעלאת תמונה
מיקרוסופט מציעה שירות זה ללא תשלום, למטרת סיוע למשתמשים והעשרת הידע הקשור בטכנולוגיות ובמוצרים של Microsoft. תוכן זה מתפרסם כפי שהוא והוא אינו מעיד על כל אחריות מצד מיקרוסופט.