ฉันกำลังสร้างงานที่กำหนดเวลาไว้ของ Windows ในคอนเทนเนอร์ Docker ด้วย Powershell ในการทดสอบ ฉันมีแบตช์ไฟล์อย่างง่ายซึ่งเขียนวันที่/เวลาปัจจุบันลงในไฟล์ข้อความชั่วโมงละครั้ง มันทำงานได้อย่างสมบูรณ์แบบ:
RUN $action = New-ScheduledTaskAction -Execute 'C:\folder\task-tester.cmd'; \
$trigger = New-ScheduledTaskTrigger -ทุกวัน -เวลา 00.00 น.; \
$settings = ชุดงานกำหนดตารางเวลางานใหม่; \
$task = Register-ScheduledTask -TaskName 'เขียนไปยังไฟล์ข้อความ' -User 'SYSTEM' -Trigger $trigger -Action $action -Settings $settings; \
$task.Triggers.Repetition.Duration = 'P1D'; \
$task.Triggers.Repetition.Interval = 'PT1H'; \
$งาน | กำหนดตารางเวลางาน
เมื่อฉันพยายามเรียกใช้แอปคอนโซล .NET ไม่ทำงาน
RUN $action = New-ScheduledTaskAction -Execute 'C:\folder\thingy.exe' -WorkingDirectory 'C:\folder'; \
$trigger = New-ScheduledTaskTrigger -ทุกวัน - เวลา 10.00 น.; \
$settings = ชุดงานกำหนดตารางเวลางานใหม่; \
Register-ScheduledTask -TaskName 'ชื่องาน' -User 'SYSTEM' -Trigger $trigger -Action $action -Settings $settings
โดยเฉพาะ งาน ดูเหมือนว่าจะทำงาน - วันที่/เวลา "เรียกใช้ครั้งล่าสุด" ถูกต้องและผลลัพธ์คือ 0 (ศูนย์) แต่แอปคอนโซลเองไม่ได้รับการดำเนินการ
ในคำสั่งด้านบน ฉันกำลังตั้งค่าไดเร็กทอรีการทำงาน (ข้อผิดพลาดทั่วไปกับแอปคอนโซล .NET)
ถ้าฉันใส่ SSH ลงในคอนเทนเนอร์ ฉันสามารถเรียกใช้งาน "thing.exe" และทำงานได้ตามปกติ ถ้าฉันเรียกใช้งานตามกำหนดเวลาด้วยตนเองผ่าน PowerShell เริ่มงานกำหนดการ
อีกครั้งดูเหมือนจะไม่มีอะไรเกิดขึ้น
ฉันได้ลองค้นหาบันทึกเหตุการณ์ด้วย PowerShell แล้ว แต่ไม่เห็นสิ่งใดที่เป็นประโยชน์ในทันที
การเปลี่ยนแปลงของคำสั่งด้านบนที่มีตัวเลือกที่ชัดเจนมากขึ้น เช่น ความเข้ากันได้และระดับการรันจะให้ผลลัพธ์เดียวกัน นั่นคือ งานไม่ได้รัน:
RUN $action = New-ScheduledTaskAction -Execute 'C:\folder\thingy.exe' -WorkingDirectory 'C:\folder' ; \
$trigger = New-ScheduledTaskTrigger -ทุกวัน - เวลา 10.00 น.; \
$settings = New-ScheduledTaskSettingsSet - ความเข้ากันได้ Win8; \
$principal = New-ScheduledTaskPrincipal -UserID 'NT AUTHORITY\SYSTEM' -LogonType ServiceAccount -RunLevel สูงสุด; \
Register-ScheduledTask -TaskName 'ชื่องาน' -Trigger $trigger -Action $action -Settings $settings -Principal $principal
มีใครเคยเจอแบบนี้บ้าง แล้วแก้ยังไง? หรือใครสามารถช่วยฉันรับข้อมูลการวินิจฉัยเพิ่มเติมจากคอนเทนเนอร์ด้วย PowerShell
ขอบคุณ!