איך יוצרים תנאי במתזמן המשימות של וינדוס
-
@שלמה1 אמר באיך יוצרים תנאי במתזמן המשימות של וינדוס:
יצרתי משימה נחמדה במתזמן המשימות לכבות את המחשב חצי שעה אחרי כניסה למשתמש (אגב, מומלץ בחום עבור אלה שנסחפים), המשימה נוצרה באופן שבכל כניסה מופעל קובץ BAT של כיבוי בעוד חצי שעה.
כעת אני רוצה להגביל את המשימה כך שרק אם אני נכנס למשתמש בין שעות מסוימות הוא יפעיל את הקובץ, אשמח אם מישהו יכתוב הדרכה בנושא.
תודה רבה!!!למה שלא תכתוב קודם את הפקודות שבהם יצרת את הסקריפט שלך?
אתה צריך בעיקרון לעשות כמו שכתב @A0533057932 - להתנות קודם בסקריפט - האם הזמן הנוכחי מתאים לתנאים שתציב. ורק אם מתאים הוא יפעיל את הפקודה.להתנות זמן וכו' זה סתם מסובך ב-CMD, ממליץ לך לעבור לפווארשל.
משהו כזה:$min = Get-Date '08:00' ## זמן התחלה $max = Get-Date '20:00' ## זמן סוף $now = Get-Date if ($min.TimeOfDay -le $now.TimeOfDay -and $max.TimeOfDay -ge $now.TimeOfDay) { ## הפקודה שלך }
אם הזמן הנוכחי אינו בין זמן ההתחלה וזמן הסוף - הפקודה לא תתבצע
-
@chv אמר באיך יוצרים תנאי במתזמן המשימות של וינדוס:
$min = Get-Date '08:00' ## זמן התחלה $max = Get-Date '20:00' ## זמן סוף $now = Get-Date if ($min.TimeOfDay -le $now.TimeOfDay -and $max.TimeOfDay -ge $now.TimeOfDay) { ## הפקודה שלך }
אם הזמן הנוכחי אינו בין זמן ההתחלה וזמן הסוף - הפקודה לא תתבצע
@chv שאני יהיה בטוח שאני מבין אותך נכון
במקום שכתבת הפקודה שלך אפשר להכניס פקודת CMD
נכון? -
@aaaa אמר באיך יוצרים תנאי במתזמן המשימות של וינדוס:
במקום שכתבת הפקודה שלך אפשר להכניס פקודת CMD
לא. זה סקריפט פווארשל.
אבל מה שאני כותב זה - א' רוב הפקודות שב-CMD ששייכות להתממשקות עם וינדוס - נמצאות גם בפווארשל. אז פשוט שיכתוב מה הוא רוצה לעשות ונראה יכול להיות שזה יוכל להיכנס גם כאן בפשטות.
ב' אפשר כמובן להריץ CMD משם. אבל רק בתוספת של כמה ארגומנטים.
זה פשוט חבל לעבוד עם CMD כשיש את פווארשל. -
@chv תודה רבה!!!
יש גם אפשרות להגביל בימי השבוע?
(אני רוצה לכתוב את הסקריפט למחשב שנמצא במשרד של כולל כדי שבשעות הסדרים יהיה ניתן להפעיל את המחשב רק לצורך דחוף...)
מה שאני צריך בעצם זה שבימי ראשון עד חמישי בין השעות 9 - 1 וגם בין 4 - 7 המחשב יכבה לאחר 10 דקות של פעילות.
תודה רבה!!! -
$startday = [System.DayOfWeek]::Sunday # יום ראשון $endday = [System.DayOfWeek]::Thursday # יום חמישי $startmorn = Get-Date '09:00' # זמן התחלה - בוקר $endmorn = Get-Date '13:00' # זמן סוף - בוקר $starteve = Get-Date '16:00' # זמן התחלה - צהריים $endeve = Get-Date '19:00' # זמן סוף - צהריים $now = Get-Date # ...עכשיו if ($now.DayOfWeek -ge $startday -and $now.DayOfWeek -le $endday) { if ($startmorn.TimeOfDay -le $now.TimeOfDay -and $endmorn.TimeOfDay -ge $now.TimeOfDay -or $starteve.TimeOfDay -le $now.TimeOfDay -and $endeve.TimeOfDay -ge $now.TimeOfDay) { shutdown -s -t 600 # כיבוי המחשב לאחר 10 דקות } }
לשמור בקובץ ps1 ולעשות משימה מתוזמנת בדרך שכתבתי למעלה
-
@chv תודה רבה!!!!
אין מילים!!!
הסקריפט עובד מצוין בלחצן ימני run with powershell אבל אני לא מצליח להכניס אותו כארגומנט
(כלומר יצרתי משימה בסיסית והרצתי את פאוורשל והכנסתי בadd arguments את הנוסחא שכתבת -file עם מיקום הקובץ, אבל לצערי הוא פותח את פאוורשל אך לא את הקובץ)
תודה רבה!!! -
@שלמה1 אמר באיך יוצרים תנאי במתזמן המשימות של וינדוס:
@chv תודה רבה!!!!
אין מילים!!!
הסקריפט עובד מצוין בלחצן ימני run with powershell אבל אני לא מצליח להכניס אותו כארגומנט
(כלומר יצרתי משימה בסיסית והרצתי את פאוורשל והכנסתי בadd arguments את הנוסחא שכתבת -file עם מיקום הקובץ, אבל לצערי הוא פותח את פאוורשל אך לא את הקובץ)
תודה רבה!!!צודק טעות שלי.
אולי אם משתמשים בעוד ארגומנטים שם, צריך לציין את הנתיב כ-file.
כרגע שלא משתמשים בארגומנטים (או 'פרמטרים' לדקדוקיים..) - פשוט תכתוב שם את הנתיב וזהו (בארגומנטים) בלי שום דבר חוץ מזה. -
לאחר מאמץ הצלחתי למצוא את הבעיה בארגומנט.
מה שצריך לעשות זה לעקוף את מדיניות הביצוע של פאוורשל-executionpolicy bypass -file
ואת הנתיב.
מצורף המקור:מתזמן המשימות של Windows_ הגדר להפעלת סקריפט PowerShell - מאמרים של TechNet - ארצות הברית (אנגלית) - TechNet Wiki.pdf