לעיתים אנו נאלצים להשתמש ב 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
יש לבדוק במאפייני המשתמש שמסומן Password Never Expires.
המשתמש אינו בעל הרשאות על השרת, אלא חבר בקבוצת USERS, משתמש שיוקם ב AD יהיה חבר בקבוצת Domain Users.
ניתן להיכנס ל 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
ללחוץ על Add User Or Group
כעת ניתן להוסיף את המשתמש כמורשה להפעיל קבצי JOB.
כך החלון נראה לאחד שהמשתמש מתווסף להרשאה.
מסלול הקובץ: C:\BackupScript
קובץ ההפעלה של ה JOB נקרא BACKUP.BAT.
כעת ניתן לתת לאותו משתמש הרשאה על אותה התקייה שבה נמצא קובץ ההפעלה שאותו משתמש יפעיל ב JOB
בחרתי לתת הרשאת MODIFY למשתמש, למקרה שאם ה JOB שירוץ יאלץ ליצור לוגים באותה התקייה, או לכתוב מידע בתקייה.
ניתן לבדוק אם ההרשאות חלחלו לקובץ הסקריפט שירוץ ב JOB.
להלן חלון ההרשאות על קובץ הסקריפט שירוץ ב JOB.
הגדרת ה JOB ב Task Scheduler:
כעת ניכנס ל Task Scheduler על מנת להגדיר את ה JOB.
ניצור Basic Task
נקרא שם ל Task
נבחר להריץ אותו כל יום
בחרתי להריצו בשעה 10:00 בערב.
לבחור Start a program
ניתן לנווט לקובץ שמפעיל את הסקריפט.
יש להגדיר ב Start In את תקיית המסלול, מבחינתי פעולה זו הכרחית בסקריפטים שמייצאים לוג או כותבים לתקייה, באם לא נוסיף את המסלול , ה JOB עלול לא לרוץ כראוי, לא ליצור LOG-ים לא לכתוב לתקייה משום שינסה לכתוב לתקייה הראשית אך לשם אין לאותו משתמש הרשאות, כהמלצה שלי חובה תמיד למלא את שדה ה Start In.
בחלון הסיום ניתן לסמן את Open the Properties Dialog for this task when i click finish לפתיחת חלון האפשרויות.
בחלון 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…
ניתן לבחור את המשתש שיצרנו בשלב הראשון שיפעיל את ה JOB.
יש לוודא שאותו משתמש כתוב ב: When running the task, use the following user account
במסך Triggers ניתן לראות את זמן ההפעלה הקובץ (ניתן לערוך באמצעות EDIT).
במסך Actions רואים את קובץ הסקריפט שיופעל ואת מסלולו.
בחלון ה Condition – התנאים להרצת ה JOB כלומר להריץ את ה JOB במקרה של …או לא להריץ את ה JOB במקרה של ..
אנו נשאיר את הברירות מחדל.
חלון ה Settings אלו ההגדרות עבור הרצת ה JOB ,כלומר אם ה JOB מתארך להפסיקו אחרי YY דקות, אם ה TASK לא מיועד לרוץ עוד, הוא ימחק אחרי YY ימים.
בלשונית History רואים את הלוגים לאחר שפעולת ה JOB הסתיימה בכל אותן שעות וימים.
ניתן ללחוץ על OK לאחר סיום ההגדרות , יש לכתוב את סיסמת המשתמש שיפעיל את ה JOB.
ניתן להריץ את ה JOB ידנית ולראות אם הוא אכן רץ. (קליק ימני על ה JOB שנוצר ולאחר מכן Run)
בחלון הבא קיבלנו תוצאה (0X0) The Operation Completed Succesfully
