Community Tutorials Windows Server كيفية جدولة المهام باستخدام برنامج جدولة المهام في Windows
كيفية جدولة المهام باستخدام برنامج جدولة المهام في Windows
WINDOWS SERVER

كيفية جدولة المهام باستخدام برنامج جدولة المهام في Windows

SKYLINE Knowledge Base
Photo by Windows on Unsplash

دليل عملي خطوة بخطوة لـ كيفية جدولة المهام باستخدام برنامج جدولة المهام في Windows. أوامر مختبرة في الإنتاج، متطلبات مسبقة، تحقق نهائي وروابط لمواضيع ذات صلة.

Task Scheduler هو مكافئ Windows لـ cron — لا يقل أهمية. هذا الدليل ينشئ مهمة مجدولة بسرعة عبر PowerShell.

المتطلبات المسبقة

  • Windows Server 2019/2022 مع PowerShell كمسؤول.
  • سكربت للتشغيل — سنستخدم C:\Scripts\nightly-cleanup.ps1.

الخطوة 1: اكتب السكربت

C:\Scripts\nightly-cleanup.ps1:

$Log = "C:\Logs\nightly-cleanup.log"
"$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')  Cleanup started" | Out-File $Log -Append

Get-ChildItem 'C:\inetpub\logs\LogFiles' -Recurse -Include '*.log' |
    Where-Object LastWriteTime -lt (Get-Date).AddDays(-30) |
    Remove-Item -Force -ErrorAction SilentlyContinue

"$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')  Cleanup finished" | Out-File $Log -Append

اختبره يدويًا:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\Scripts\nightly-cleanup.ps1

الخطوة 2: أنشئ المهمة المجدولة عبر PowerShell

$Action  = New-ScheduledTaskAction `
              -Execute 'powershell.exe' `
              -Argument '-NoProfile -ExecutionPolicy Bypass -File "C:\Scripts\nightly-cleanup.ps1"'
$Trigger = New-ScheduledTaskTrigger -Daily -At 02:30AM
$Settings = New-ScheduledTaskSettingsSet -StartWhenAvailable -DontStopIfGoingOnBatteries
$Principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest

Register-ScheduledTask `
    -TaskName "Nightly IIS log cleanup" `
    -Action $Action -Trigger $Trigger -Settings $Settings -Principal $Principal

الخطوة 3: التحقق والتشغيل عند الطلب

Get-ScheduledTask -TaskName "Nightly IIS log cleanup" | Get-ScheduledTaskInfo
Start-ScheduledTask -TaskName "Nightly IIS log cleanup"
Get-ScheduledTask -TaskName "Nightly IIS log cleanup" | Get-ScheduledTaskInfo |
    Format-List LastRunTime, LastTaskResult

الخطوة 4: مشغلات غير زمنية

$Trigger = New-ScheduledTaskTrigger -AtLogOn -User "CORP\ops"
$Trigger = New-ScheduledTaskTrigger -AtStartup

الخطوة 5: تصدير و version control

Export-ScheduledTask -TaskName "Nightly IIS log cleanup" |
    Out-File "C:\Repos\ops\tasks\nightly-iis-cleanup.xml" -Encoding UTF8

Register-ScheduledTask -TaskName "Nightly IIS log cleanup" `
                       -Xml (Get-Content "C:\Repos\ops\tasks\nightly-iis-cleanup.xml" -Raw) `
                       -User "SYSTEM" -Force

التحقق

Get-ScheduledTask | Where-Object State -ne "Disabled" | Format-Table TaskName, State
Get-WinEvent -LogName "Microsoft-Windows-TaskScheduler/Operational" -MaxEvents 20

الخاتمة

Task Scheduler يتفوق على cron في مشغلات غنية وهوية لكل مهمة. يخسر في البساطة، لكن New-ScheduledTask* يجعله قابلاً للسكربتة.

الخطوات التالية

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Windows Server for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.