DCSIMG
June 2011 - Posts - הבלוג שלי

הבלוג שלי

הבלוג של חיים ליזרוביץ Microsoft Most Valuable Professional (Microsoft MVP)

June 2011 - Posts

כיצד להגדיר משימה מתוזמנת (Task Scheduler) במערכות הפעלה Windows 2008 ו Windows 2008 R2 עם משתמש ללא הרשאות מלאות על השרת.


לעיתים אנו נאלצים להשתמש ב TASK שמבצע פעולה שבד"כ יומיומית על השרת, אם זה ניקוי של קבצים ישנים, גיבוי כזה או אחר, פקודות שרצות על השרת שמוגדרות כהכרחיות, פקודה שרצה ע"י יישום כלשהו וכדומה.

בהרבה מאוד ארגונים מנהל הרשת מריץ את המשימות עם ההרשאות שלו שזה הרבה יותר פשוט משום שלאותו משתמש ישנן הרשאות מלאות על השרת – פעולה לא תקינה לכשעצמה וכמובן לא לפי ה Best Practice.
במקרה זה, יש לשקול מה יקרה ל JOB-ים שירוצו בזמן שהחשבון של אותו משתמש לא יהיה פעיל ? מה יקרה אם אותו משתמש ישנה את סיסמתו ?

אחד הדגשים להרצה של תוכנית כלשהי, הוא לעבוד עם משתמש נייטרלי, אפליקטיבי שמוגדר לצורת ביצוע הפעולה,
את אותו משתמש יש להגדיר כ:

* בעל הרשאות ניווט לקובץ עם יכולת להפעילו. (הרשאות NTFS על התקייה ועל הקובץ שיש להפעיל)
* הגדרה באמצעות ה GPO של אותו שרת או על שרתים כ Log on as a batch job.
* יש להגדיר אצל אותו משתמש ב AD את האופציה של   Password Never Expires. (מומלץ סיסמא מוקשחת שתוחלף אחת בכמה חודשים).

דגשים:

* במידה ויהיה צורך לשנות את סיסמתו של המשתמש, יש לעבור אחר כל ה JOB-ים שרצים עם אותו חשבון משתמש ולשנות בהתאם את הסיסמא.

* יש לתעד את אותם JOB-ים ועל אילו שרתים חשבון משתמש זה פעיל על מנת שאם נצטרך לעבור על אותם JOB-ים הפעולה תהיה פשוטה יותר, 
  פעולת התיעוד הכרחית גם כדי להעביר את המידע לכל אחד מאנשי הצוות.

 

פעולות מקדימות להכנת ה JOB עבור המשתמש הספציפי

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

להלן המשתמש שיריץ את קובץ ה JOB- שם חשבון המשתמש יקרא BackupSRV

image

יש לבדוק במאפייני המשתמש שמסומן Password Never Expires.

image

המשתמש אינו בעל הרשאות על השרת, אלא חבר בקבוצת USERS, משתמש שיוקם ב AD יהיה חבר בקבוצת Domain Users.

image

 

ניתן להיכנס ל GPO של אותו שרת ולהגדיר עבור אותו משתמש Log on As a Batch Job.

ניתן להיכנס ל GPO באמצעות הפקודה gpedit.msc יש לנווט ל:

computer configuration –> windows settings -> security settings –> User rights Assignment

ללחוץ פעמיים על Log on As a Batch Job

image

ללחוץ על Add User Or Group

image

כעת ניתן להוסיף את המשתמש כמורשה להפעיל קבצי JOB.

image

כך החלון נראה לאחד שהמשתמש מתווסף להרשאה.

image

 

מסלול הקובץ:  C:\BackupScript

קובץ ההפעלה של ה JOB נקרא BACKUP.BAT.

image

כעת ניתן לתת לאותו משתמש הרשאה על אותה התקייה שבה נמצא קובץ ההפעלה שאותו משתמש יפעיל ב JOB

image

בחרתי לתת הרשאת MODIFY למשתמש, למקרה שאם ה JOB שירוץ יאלץ ליצור לוגים באותה התקייה, או לכתוב מידע בתקייה.

image

ניתן לבדוק אם ההרשאות חלחלו לקובץ הסקריפט שירוץ ב JOB.

image

להלן חלון ההרשאות על קובץ הסקריפט שירוץ ב JOB.

image

 

הגדרת ה JOB ב Task Scheduler:

כעת ניכנס ל Task Scheduler על מנת להגדיר את ה JOB.

image

ניצור  Basic Task

image

נקרא שם ל Task

image

נבחר להריץ אותו כל יום

image

בחרתי להריצו בשעה 10:00 בערב.

image

לבחור Start a program

image

ניתן לנווט לקובץ שמפעיל את הסקריפט.

יש להגדיר ב Start In את תקיית המסלול, מבחינתי פעולה זו הכרחית בסקריפטים שמייצאים לוג או כותבים לתקייה, באם לא נוסיף את המסלול , ה JOB עלול לא לרוץ כראוי, לא ליצור LOG-ים לא לכתוב לתקייה משום שינסה לכתוב לתקייה הראשית אך לשם אין לאותו משתמש הרשאות, כהמלצה שלי חובה תמיד למלא את שדה ה Start In.

image

בחלון הסיום ניתן לסמן את Open the Properties Dialog for this task when i click finish לפתיחת חלון האפשרויות.

image

בחלון General יש לסמן Run whether user is logged on or not ואת Run with highest privileges.
יש לשים לב שברגע שמגדירים את האופציה של Run whether user is logged on or not לא ניתן יהיה לראות ברקע את הפקודה רצה, לרבות תוכנות GUI כמו למשל תוכנת AV לסריקת וירוסים.

יש ללחוץ על Change User Or Group…

image

ניתן לבחור את המשתש שיצרנו בשלב הראשון שיפעיל את ה JOB.

image

יש לוודא שאותו משתמש כתוב ב: When running the task, use the following user account

image

במסך Triggers ניתן לראות את זמן ההפעלה הקובץ (ניתן לערוך באמצעות EDIT).

image

במסך Actions רואים את קובץ הסקריפט שיופעל ואת מסלולו.

image

בחלון ה Condition – התנאים להרצת ה JOB כלומר להריץ את ה JOB במקרה של …או לא להריץ את ה JOB במקרה של ..
אנו נשאיר את הברירות מחדל.

image

חלון ה Settings אלו ההגדרות עבור הרצת ה JOB ,כלומר אם ה JOB מתארך להפסיקו אחרי YY דקות, אם ה TASK לא מיועד לרוץ עוד, הוא ימחק אחרי YY ימים.

image

בלשונית History רואים את הלוגים לאחר שפעולת ה JOB הסתיימה בכל אותן שעות וימים.

image

ניתן ללחוץ על OK לאחר סיום ההגדרות , יש לכתוב את סיסמת המשתמש שיפעיל את ה JOB.

image

 

ניתן להריץ את ה JOB ידנית ולראות אם הוא אכן רץ. (קליק ימני על ה JOB שנוצר ולאחר מכן Run)

image

בחלון הבא קיבלנו תוצאה (0X0) The Operation Completed Succesfully

image