Tôi đang tạo các tác vụ theo lịch trình của Windows trong bộ chứa Docker bằng Powershell. Để thử nghiệm, tôi có một tệp lô đơn giản ghi ngày/giờ hiện tại vào tệp văn bản mỗi giờ một lần. Điều này hoạt động hoàn hảo:
RUN $action = New-ScheduledTaskAction -Execute 'C:\folder\task-tester.cmd'; \
$trigger = New-ScheduledTaskTrigger -Hàng ngày -Lúc 12 giờ sáng; \
$settings = New-ScheduledTaskSettingsSet; \
$task = Register-ScheduledTask -TaskName 'Ghi vào tệp văn bản' -Người dùng 'HỆ THỐNG' -Trigger $trigger -Action $action -Settings $settings; \
$task.Triggers.Repetition.Duration = 'P1D'; \
$task.Triggers.Repetition.Interval = 'PT1H'; \
nhiệm vụ $ Set-ScheduledTask
Khi tôi cố chạy một ứng dụng bảng điều khiển .NET, nó không hoạt động.
RUN $action = New-ScheduledTaskAction -Execute 'C:\folder\thingy.exe' -WorkingDirectory 'C:\folder'; \
$trigger = New-ScheduledTaskTrigger -Hàng ngày -Lúc 10 giờ sáng; \
$settings = New-ScheduledTaskSettingsSet; \
Register-ScheduledTask -TaskName 'Task name' -User 'SYSTEM' -Trigger $trigger -Action $action -Settings $settings
Cụ thể, các nhiệm vụ dường như chạy - ngày/giờ "lần chạy cuối cùng" là chính xác và kết quả là 0 (không), nhưng bản thân ứng dụng bảng điều khiển không được thực thi.
Trong lệnh trên, tôi đang đặt thư mục làm việc (một lỗi phổ biến với các ứng dụng bảng điều khiển .NET).
Nếu tôi SSH vào vùng chứa, tôi có thể thực thi "thing.exe" và nó hoạt động như mong đợi. Nếu tôi tự thực hiện tác vụ đã lên lịch qua PowerShell Start-ScheduleTask
, một lần nữa, dường như không có gì xảy ra.
Tôi đã thử truy vấn nhật ký sự kiện bằng PowerShell, nhưng không thể thấy điều gì hữu ích ngay lập tức.
Một biến thể của lệnh trên với các tùy chọn rõ ràng hơn như khả năng tương thích và cấp độ chạy sẽ tạo ra kết quả tương tự - tức là tác vụ không chạy:
RUN $action = New-ScheduledTaskAction -Execute 'C:\folder\thingy.exe' -WorkingDirectory 'C:\folder' ; \
$trigger = New-ScheduledTaskTrigger -Hàng ngày -Lúc 10 giờ sáng; \
$settings = New-ScheduledTaskSettingsSet -Tương thích Win8; \
$principal = New-ScheduledTaskPrincipal -UserID 'NT AUTHORITY\SYSTEM' -LogonType ServiceAccount -RunLevel Cao nhất; \
Register-ScheduledTask -TaskName 'Task name' -Trigger $trigger -Action $action -Settings $settings -Principal $principal
Có ai gặp phải điều này trước đây, và giải quyết nó? Hoặc ai đó có thể giúp tôi lấy thêm thông tin chẩn đoán từ vùng chứa bằng PowerShell không?
Cảm ơn!