- Schtasks הוא ממשק הקו של פקוד מתוך מתזמן המשימות ומאפשר לך ליצור, לשנות, להפעיל ולמחוק משימות באופן מקומי ומרוחק.
- פרמטרים מרכזיים כגון /sc, /tn, /tr, /ru, /mo, /st או /d מגדירים מה פועל, עם אילו הרשאות ועם איזו תדירות או תנאי טריגר.
- ניהול הרשאות וחשבונות (מנהל, מערכת, משתמשים מרוחקים עם /uy /p) הוא קריטי ליצירה וביצוע נכון של משימות.
- Schtasks מחליף את פקודת AT הישנה ומציע פלטפורמה חזקה לאוטומציה של תחזוקה, סקריפטים ותהליכים חוזרים ב... Windows.

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

Schtasks.exe הוא כלי הקונסולה אשר משתמש ב-Windows כדי לתקשר עם מתזמן המשימות. הודות לו, ניתן להגדיר שתוכנית, תסריט הפקודה תבוצע אוטומטית בתאריך ובשעה ספציפיים או בלוח זמנים ספציפי, מבלי שיהיה צורך לגעת בממשק הגרפי.
בעזרת schtasks ניתן לתזמן משימות חוזרות (כל X דקות, שעות, ימים, שבועות או חודשים), משימות המופעלות בעת הפעלת המערכת, כאשר משתמש מסוים מתחבר, כאשר המחשב במצב סרק, או אפילו בתגובה לאירועי מערכת. בנוסף, ניתן להפעיל משימות תחת חשבונות משתמש שונים (כולל חשבון SYSTEM) ובמחשבים מרוחקים.
הפעולות הבסיסיות של schtasks הן מקובצות לשש פקודות משנה עיקריות, שהן אלו שתשתמשו בהן ב-99% מהזמן:
- שינוי משימות: משנה מאפיינים של משימה קיימת (תוכנית להפעלה, משתמש, סיסמה, מצב אינטראקטיבי...).
- יצירת משימות: יוצר משימה מתוזמנת חדשה.
- מחיקת schtasks: מוחק משימה מהמתזמן.
- סוף משימות: עוצר את התוכנית שמפעילה משימה.
- שאילתת schtasksמציג את המשימות המתוזמנות של הצוות.
- ריצת schtasks: כופה ביצוע מיידי של משימה שכבר נוצרה.
מאחורי פעולות אלו ישנם פרמטרים רבים כדי להגדיר את התדירות, תאריכי ההתחלה והסיום, המשתמש שתחתיו מבוצעת המשימה, הצוות המרוחק, עיכובים, משך זמן, רמות הרשאות וכו'. אנו מפרטים זאת עבורכם ממש למטה.
היתרים נדרשים לעבודה עם schtasks

לפני שאתם מתחילים ליצור משימות כמו משוגעיםחשוב להיות ברורים לגבי אילו הרשאות אתם צריכים, כי אחרת תקבלו משימות שנוצרות אך לא מבוצעות, או שנכשלות בשקט.
בצוות המקומי, לניהול כל המשימות כדי להציג, ליצור, לשנות ולמחוק משימות, עליך להיות מנהל מערכת. משתמש רגיל יכול ליצור משימות משלו במקרים מסוימים, אך אם ברצונך שליטה מלאה על המערכת, עשה זאת מחשבון עם הרשאות ניהול.
בצוותים מרוחקים, הדברים דומים.החשבון בו אתה משתמש חייב להיות מנהל במחשב המרוחק. אתה יכול להריץ את הפקודה מהמחשב שלך ולהשתמש בפרמטר. /s כדי לציין את צוות היעד ו /u y /p כדי לספק אישורי מנהל עבור מכונה או תחום זה.
הפרמטר /u פועל כראוי בלבד זה קורה כאשר המחשבים המקומיים והמרוחקים נמצאים באותו דומיין או בדומיינים עם אמון מוגדר. אם אין יחסי אמון, המחשב המרוחק לא יוכל לאמת את החשבון שתספק, והמשימה תהיה מוגדרת באופן שגוי או ריקה, למרות שנראה שהיא נוצרה.
בנוסף, למשימה עצמה חייבות להיות הרשאות מספיקות לעשות את מה שאתה מבקש. כברירת מחדל, משימות מופעלות תחת המשתמש הנוכחי או תחת המשתמש שאתה מציין באמצעות /uאם ברצונך שהם יופעלו עם חשבון אחר או ישירות עם הרשאות מערכת, עליך להשתמש בפרמטר /ru (הפעל כמשתמש) ובדרך כלל, /rp כדי להזין את הסיסמה.
תחביר כללי של schtasks ופרמטרים מרכזיים
התחביר של schtasks הוא די נרחבעם זאת, זה תמיד עוקב אחר אותו דפוס: פקודה משנה, ואחריה פרמטרים המגדירים מה, מתי, היכן ועם אילו הרשאות המשימה מבוצעת. הפורמט הכללי ליצירת משימות הוא:
schtasks /create /sc <tipo_programación> /tn <nombre_tarea> /tr <comando_o_programa>
הפרמטרים הבסיסיים בעת יצירת משימה הם:
- /sc: טיפו דה תכנותערכים אופייניים:
- MINUTEכל N דקות.
- שעתיכל N שעות.
- יום יומיכל N ימים.
- שְׁבוּעִיכל N שבועות.
- חודשיכל N חודשים.
- פַּעַם: הוצאה להורג אחת.
- STARTבכל אחד אתחול של המערכת.
- כניסה לאנטרנט: כאשר משתמש מתחבר.
- בטל: כאשר המערכת לא הייתה פעילה במשך X דקות.
- אירוע אחד: בתגובה לאירוע ספציפי ביומן.
- /tnשם משימה ייחודי. יכול לכלול נתיב לתיקייה (לדוגמה,
"MiCarpeta\BackupDB"). מקסימום 238 תווים. - /trנתיב מלא לקובץ ההפעלה, הסקריפט או קובץ ה-.bat שיש לבצע. אם לא תציין נתיב, הוא ייחשב ככזה.
%SystemRoot%\System32אורך מקסימלי 262 תווים. - /sמחשב מרוחק (שם או IP). אם אינך משתמש בו, אתה פועל במחשב המקומי.
- /אוֹ: אישורים שבאמצעותם הפקודה schtasks עצמה מבוצעת (לתכנות מרחוק).
- /p: סיסמת המשתמש המצוינת ב /uאם לא תספק אותו, הקונסולה תבקש זאת.
- /ru { | מערכת}החשבון שתחתיו תבוצע המשימה. ניתן להשתמש במשתמש תחום, משתמש מקומי או החשבון מערכת.
- /rp: סיסמה עבור החשבון המצוין ב /ruזה לא משמש עם
/ru Systemמכיוון שלחשבון SYSTEM אין סיסמה. - /חודש: משנה תדר בתוך סוג התכנות (כמה דקות, שעות, ימים, שבועות או חודשים).
- /דיום או ימים ספציפיים עבור שבועי או מצבים מסוימים של חודשי (לדוגמה,
/d MON,FRI). - /מ'חודשים ספציפיים (ינואר-דצמבר או * עבור כולם).
- /רְחוֹבשעת התחלה בפורמט של 24 שעות (
HH:MM). - /et o /דושעת סיום או משך זמן מקסימלי עבור לוחות זמנים לפי דקות/שעות.
- /sd y /edתאריכי התחלה וסיום בהתאם להגדרות האזוריות של המערכת.
- /פָּרִיט: גורם למשימה להריץ רק אם משתמש הביצוע מחובר באופן אינטראקטיבי.
- /np: לא שומר סיסמה; המשימה פועלת באופן לא אינטראקטיבי ורק עם משאבים מקומיים.
- /z: מוחק את המשימה באופן אוטומטי כאשר לוח הזמנים מסתיים.
- /rlרמת הרשאה (מוגבלת או גבוהה ביותר).
- /f: כופה את היצירה או השינוי, תוך כתיבה מחדש מבלי לבקש אישור.
ישנם פרמטרים מתקדמים יותר (XML, תאימות לאחור, עיכובים עם /לְעַכֵּב(קודי HRESULT וכו'), אבל עם האמור לעיל ניתן לכסות כמעט כל תרחיש סטנדרטי.
תזמון משימות בתדירות שונה
אחת מיתרונותיה של SCHTASKS זוהי הגמישות בהגדרת התדירות. ניתן להתאים את הביצועים כל כמה דקות לשחרורים ביום האחרון של חודשים מסוימים או ביום ראשון השני של כל רבעון.
עבור לוחות זמנים של דקה אחר דקה, משמש דקה /scהמגדיר / mo זה מציין באיזו תדירות המשימה מופעלת בדקות. אם לא תציין, ערך ברירת המחדל הוא דקה אחת.
מרווח לדוגמה של 20 דקות: schtasks /create /sc minute /mo 20 /tn "Security Script" /tr \\central\data\scripts\sec.vbs
דוגמה עם משבצת זמן: schtasks /create /tn "Security Script" /tr sec.vbs /sc minute /mo 100 /st 17:00 /et 08:00 /k
לתזמון משמש /sc לשעהושוב / mo מציין באיזו תדירות. לדוגמה, כדי להפעיל את MyApp כל 5 שעות החל מה-1 במרץ:
דוגמה ללוח זמנים ל-5 שעות: schtasks /create /sc hourly /mo 5 /sd 03/01/2002 /tn MyApp /tr c:\apps\myapp.exe
בלוחות הזמנים היומיים (/sc יומי) אתה יכול להשתמש / mo כדי לפזר את הביצועים. לדוגמה, הפעל את MyApp כל 12 ימים החל מתאריך מסוים:
דוגמה יומית במרווחים: schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc daily /mo 12 /sd 12/31/2002 /st 13:00
לוח הזמנים השבועי מוגדר עם /sc שבועי, שילוב / mo (מרווח של שבועות) ו /d (ימי השבוע: שני, שלישי, רביעי, חמישי, שישי, שבת, ראשון או *). לדוגמה, כדי להפעיל את MyApp כל שישי שני:
דוגמה שבועית (כל שבועיים): schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc weekly /mo 2 /d FRI
ישנן מספר אפשרויות ללוחות זמנים חודשיים:
- עד יום מסוים בחודש (1-31) עם /sc חודשי y /d.
- לשבוע וליום (ראשון, שני, שלישי, רביעי + /יום) ובאופן אופציונלי /m עם החודשים.
- היום האחרון של החודש עם /חודש יום אחרון y /m לחודשים ספציפיים או * לכולם.
דוגמה חודשית (היום האחרון של חודשים ספציפיים): schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /mo LASTDAY /m FEB,MAR /st 18:00
טריגרים מיוחדים: חד-פעמיים, הפעלה, כניסה וחוסר פעילות
לא תמיד רוצים משימה חוזרת על עצמה.לפעמים צריך להריץ משהו רק פעם אחת בתאריך ובשעה ספציפיים. בשביל זה נועד הסוג הבא. /sc פעם אחתאשר דורש א /רחוב ובדרך כלל, א /sd:
דוגמה לביצוע יחיד: schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc once /sd 01/01/2003 /st 00:00
סוג ה-ONSTART (/sc onstartזה גורם למשימה לפעול בכל הפעלת מערכת, אידיאלי עבור סקריפטים לתחזוקה, ניטור או שירותים מותאמים אישית:
דוגמה להפעלה: schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc onstart
כניסה לאנטרנט (/sc onlogonפעולה זו מבצעת את המשימה כאשר משתמש מתחבר. ניתן להשתמש בה כדי להפעיל סקריפטים של סביבה, לטעון כונני רשת, להפעיל יישומים פנימיים ועוד. לדוגמה, במחשב מרוחק:
דוגמה לכניסה מרחוק: schtasks /create /tn "Start Web Site" /tr c:\myiis\webstart.bat /sc onlogon /s Server23
בטל (/sc onidle) מפעיל את המשימה כאשר המחשב אינו פעיל למשך פרק זמן מסוים, אותו מגדירים באמצעות /i בדקות. לדוגמה, כדי להפעיל את MyApp כאשר המכשיר לא היה פעיל במשך 10 דקות:
דוגמה במצב OnIdle 10 דקות: schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc onidle /i 10
צור משימות עם הרשאות ספציפיות: משתמש חלופי ו-SYSTEM
שימוש רב עוצמה ב-schtasks הוא להפעיל משימות עם חשבונות שונים. של זה שאתה משתמש בו כעת. לדוגמה, תוכל לתזמן תחזוקה תחת חשבון מנהל גם אם אתה מחובר עם משתמש מוגבל, או להפעיל תהליכים עם חשבון SYSTEM כדי לקבל הרשאות מוגברות.
כדי להפעיל משימה עם חשבון משתמש אחר הפרמטר נמצא בשימוש /ru יחד עם הסיסמה ב /rpלדוגמה, הפעלת MyApp מדי שבוע בימי שלישי בתור Admin06 במחשב המקומי:
דוגמה לחלופה /ru: schtasks /create /tn MyApp /tr myapp.exe /sc weekly /d TUE /ru Admin06
במערכות מרוחקות, /uy ו- /p שולטים במי מתזמן את המשימהבעוד /ru הגדירו תחת איזה חשבון זה יבוצע. אלו מושגים נפרדים שאין לערבב ביניהם:
- /u: אישורים להפעלת פקודת schtasks וליצירת המשימה בשלט.
- /ruחשבון שבאמצעותו תבוצע המשימה כשיגיע הזמן.
דוגמה מרחוק עם חשבונות שונים: schtasks /create /tn MyApp /tr myapp.exe /sc daily /mo 4 /s Marketing /u Marketing\Admin01 /ru Reskits\User01
אם ברצונך להשתמש בחשבון SYSTEMלמי יש זכויות גבוהות מאוד, מספיק לציין /ru System ללא סיסמה. לדוגמה, כדי להפעיל את MyApp ב-15 בכל חודש בתור SYSTEM:
דוגמה כ-SYSTEM: schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /d 15 /ru System
קחו בחשבון שתהליכים הפועלים כ-SYSTEM הם אינם אינטראקטיביים: המשתמש אינו רואה חלונות או יכול לקיים איתם אינטראקציה. הם אידיאליים עבור שירותים, סקריפטים לתחזוקה או משימות מערכת, אך לא לפתיחת יישומים גלויים למשתמש.
ניהול משימות קיימות: שינוי, הפעלה, רשימה ועצירה
לאחר שיצרתם משימות, schtasks הוא מציע מספר פקודות משנה לניהולן מבלי לפתוח את הקונסולה הגרפית של מתזמן המשימות.
כדי לשנות מאפיינים של משימה קיימת נמצא בשימוש משימות /שינויניתן לשנות את התוכנית שהיא מפעילה, את המשתמש שהיא מפעילה עליו, את הסיסמה, או להגדיר אותה לפעול רק בפגישות אינטראקטיביות:
- / trקובץ הרצה או סקריפט חדש.
- /ruחשבון ביצוע חדש (משתמש או SYSTEM).
- /rp: סיסמה לחשבון ב-/ru.
- /פָּרִיט: מסמן את המשימה כ"רק כאשר המשתמש מחובר".
שינוי סקריפט לדוגמה: schtasks /change /tn "OpenWebinarsSchedule" /tr C:\Users\OpenWebinars\Documents\Release\nuevo_script.bat
אם אתם רוצים להפעיל משימה עכשיותוך התעלמות מהתכנות שלו, אתה משתמש משימות /הפעלהביצוע זה אינו משנה את התאריך המתוכנן הבא:
רוץ מיד: schtasks /run /tn "OpenWebinarsSchedule"
לרשימת משימות הצוות משמש schtasks /שאילתהניתן לקבל רשימה פשוטה, טבלה או פורמט רשימה מפורט:
schtasks /queryרשימה בסיסיתschtasks /query /fo LIST /vרשימה מפורטת, שימושית מאוד לפתרון בעיות
אם משימה מפעילה תוכנית שברצונך לעצור, יש לך משימות /סוףאתה צריך רק את שם המשימה:
עצירת משימה בכפייה: schtasks /end /tn "OpenWebinarsSchedule"
וכשאתה כבר לא צריך משימהאתה מבטל את זה עם schtasks /מחיקהניתן למחוק משימה ספציפית או את כולן (בזהירות):
schtasks /delete /tn OpenWebinarsSchedule /fמחק את המשימה מבלי לבקש אישור.schtasks /delete /tn * /f← מוחק את כל משימות המערכת המתוזמנות.
התמדה במשימות מתוזמנות (ראייה טכנית ובטיחותית)
שימוש מתקדם ועדין ב-schtasks זה כרוך ביצירת משימות כמנגנון התמדה: הגדרת תוכנית או סקריפט להפעלה מעת לעת או בעת הפעלת המערכת, גם אם אף אחד לא מתחבר. זה שימושי למנהלי מערכת לגיטימיים, אבל גם תוקפים משתמשים בזה, לכן חשוב להבין את זה היטב מנקודת המבט של... אבטחה cybersecurity.
משימה מתוזמנת ב-Windows היא פשוט פקודה זה מאפשר למערכת להפעיל פקודה, סקריפט או קובץ הפעלה בזמן מסוים או בתדירות מסוימת. אם משימה זו מוגדרת עם חשבון SYSTEM ובתדירות קצרה מאוד, ניתן לגרום לקובץ בינארי לפעול ברציפות גם אם מישהו סוגר אותו.
דוגמה להתמדה (SYSTEM כל N דקות): schtasks /create /ru "SYSTEM" /sc minute /mo <minutos> /tn "<nombre>" /tr "<comando>"
פירוט ההזמנה הקודמת:
- /ru «מערכת»: מבצע את המשימה עם חשבון SYSTEM, כלומר, עם הרשאות גבוהות מאוד.
- דקה /scסוג התכנות בדקות.
- /חודש: מרווח חזרות, לדוגמה 10 עבור כל עשר דקות.
- /tn « »שם מזהה של המשימה, שניתן להסוות כמשהו תמים אם מישהו רוצה שלא יבחין בו.
- /tr « »: תוכנית או סקריפט לביצוע (נתיב מלא עם ארגומנטים).
ישנן דוגמאות בהן משולבות משימות SCH עם כלים כמו plink.exe כדי ליצור חיבורים הפוכים, מנהרות נמל וכדומה, שתצורתם מוגדרת להפעלה מחדש מעת לעת. מנקודת מבט הגנתית, יש לבדוק מעת לעת את המשימות המתוזמנות עם schtasks /query /fo LIST /v ומציג האירועים חובה כדי לזהות סוג שימוש זה.
מ-AT ל-schtasks: למה לא כדאי להשתמש יותר ב-AT
במשך שנים, Windows שילבה את פקודת AT. לתזמון משימות. בגרסאות מודרניות, פקודה זו הוצאה משימוש רשמית, והקונסולה עצמה אומרת לך זאת כשאתה מנסה להשתמש בה: "פקודת AT הוצאה משימוש. השתמש ב- schtasks.exe במקום זאת."
AT אפשרה תכנות פקודות פשוטות תוך ציון רק השעה, התאריך והפקודה לביצוע. לדוגמה, כדי להעתיק מסמכים לכונן אחר בכל חצות:
דוגמה קלאסית ל-AT: at 00:00 cmd /c copy C:\Documents\*.* J:\MyDocs
ניתן גם לפרט ולמחוק משימות AT עם וריאציות של אותה פקודה (לפי מזהה, במחשבים מרוחקים וכו'). עם זאת, היא לא התקרבה לגמישות, לפירוט ההרשאות או לאפשרויות המתקדמות ש-schtasks מציעה.
ב-Windows 10 ואילך, AT עדיין קיים זה עובד רק כעטיפה של תאימות, אבל מחזיר הודעות שהבקשה אינה נתמכת. אם אתם עובדים עם גרסאות ישנות יותר של Windows שבהן זה עדיין עובד, מומלץ להעביר את האוטומציות שלכם ל-Schtasks, שהוא הכלי הנתמך והחזק הרבה יותר.
ממשק גרפי של Schtasks לעומת מתזמן המשימות
כל מה ש-schtasks עושה ניתן גם לעשות מ ה קונסולה גרפית של מתזמן משימות (נפתח) taskschd.msc מ-Run), אך לשימוש בשורת הפקודה יש יתרונות ברורים: ניתן להפוך פריסות לאוטומטיות, ליצור סקריפטים לשימוש חוזר, להחיל שינויים בכמות גדולה או לעבוד מול צוותים מרוחקים מבלי לשבת מולם.
גישה מעשית מאוד בסביבות מעורבות מדובר בשילוב של שני העולמות: יוצרים משימה בסיסית מהממשק הגרפי כדי להבין את כל ההגדרות, מייצאים אותה ל-XML, ואז משתמשים ב-schtasks עם הפרמטר /xml לפרוס עותקים על ידי התאמת מה שדרוש בלבד (משתמש, תאריכים וכו').
ניתן גם לשלב schtasks בסקריפטים מסוג .bat או .ps1. יחד עם משימות תחזוקה אחרות: ניקיון יומני, הפעלה מחדש של שירותים, הפעלת גיבויים או התראות, כולם מופעלים על ידי משימה מתוזמנת אחת שקוראת לסקריפט אב.
אם אתם מנהלים מכונות או משתמשים רבים, לשלוט ב-SCHTASKs ו- תוכניות לאוטומציה של משימות זה יחסוך לכם את הצורך לקום מוקדם כדי לבצע גיבויים ידניים, ימנע מכם לשכוח דברים, ויפחית את הסיכון לטעויות אנוש על ידי חזרה מתמדת על אותן פעולות באופן ידני. זה פשוטו כמשמעו מלמד את המערכת לעשות עבורכם את מה שגונב לכם את הזמן בכל יום.
הבנה מעמיקה של schtasks, פרמטרי התכנות שלה, והאינטראקציה בין /u, /ru, הרשאות מקומיות ומרוחקות זה מאפשר לך להפוך כמעט כל שגרה ב-Windows לאוטומטית בצורה מדויקת, בטוחה וניתנת לשחזור, ומאפשרת למחשב לעשות את מה שהוא עושה הכי טוב: לעקוב אחר הוראות בדיוק 24 שעות ביממה.
כותב נלהב על עולם הבתים והטכנולוגיה בכלל. אני אוהב לחלוק את הידע שלי באמצעות כתיבה, וזה מה שאעשה בבלוג הזה, אראה לכם את כל הדברים הכי מעניינים על גאדג'טים, תוכנה, חומרה, טרנדים טכנולוגיים ועוד. המטרה שלי היא לעזור לך לנווט בעולם הדיגיטלי בצורה פשוטה ומשעשעת.