Tenemos algunos scripts que crean trabajos programados con el uso de PowerShell como parte de nuestra aplicación. Cuando la prueba de ellos recientemente, me di cuenta de que algunos de ellos no siempre de inmediato, y no hay ningún resultado producido nunca (ni siquiera aparecen en la Get-Job
lista).
Después de muchos días de ajuste, hemos logrado aislar a los trabajos que se ejecuten a la semana. A continuación es una secuencia de comandos que crea dos trabajos que hacer exactamente la misma cosa. Cuando lo ejecutamos en nuestro dominio, y proporcionar las credenciales de un usuario de dominio, entonces la fuerza que tanto los trabajos a ejecutar en el Programador de Tareas de interfaz de usuario (clic derecho- > Ejecutar), el diario uno corre bien (0x0) y el semanal de una falla (0x41306).
Nota: Si no proporcionar la Credencial param, tanto en trabajos de obra fina. Los trabajos no sólo si la tarea es semanal, y se ejecuta como este usuario de dominio.
No puedo encontrar información acerca de por qué esto está sucediendo, ni pensar en ninguna razón por la que se comporten de manera diferente para los puestos de trabajo semanal. La "Historia de libras en la ficha de Programador de Tareas no tiene casi ninguna información útil, sólo "la Tarea de detener debido a la solicitud de usuario" y la "Tarea terminada", ambos de los cuales no tienen información útil:
El Programador de tareas terminado "{eabba479-f8fc-4f0e-bf5e-053dfbfe9f62}" ejemplo de la "\Microsoft\Windows\PowerShell\ScheduledJobs\Prueba1" tarea. El Programador de tareas dejado de instancia "{eabba479-f8fc-4f0e-bf5e-053dfbfe9f62}" de la tarea "\Microsoft\Windows\PowerShell\ScheduledJobs\Prueba1" como petición usuario "Midominio\SomeUser" .
¿Qué pasa con esto? ¿Por qué semanal de las tareas se ejecutan de manera diferente, y ¿cómo puedo diganose este problema?
Este es PowerShell v3 en Windows Server 2008 R2. He sido incapaz de reproducir este local, pero no tengo un usuario que ha configurado en la misma manera como en el dominio de producción (estoy trabajando en ello, pero quería publicar esto lo antes posible con la esperanza de que alguien sepa lo que está pasando!).
Import-Module PSScheduledJob
$Action =
{
"Executing job!"
}
$cred = Get-Credential "MyDomain\SomeUser"
# Remove previous versions (to allow re-running this script)
Get-ScheduledJob Test1 | Unregister-ScheduledJob
Get-ScheduledJob Test2 | Unregister-ScheduledJob
# Create two identical jobs, with different triggers
Register-ScheduledJob "Test1" -ScriptBlock $Action -Credential $cred -Trigger (New-JobTrigger -Weekly -At 1:25am -DaysOfWeek Sunday)
Register-ScheduledJob "Test2" -ScriptBlock $Action -Credential $cred -Trigger (New-JobTrigger -Daily -At 1:25am)