Set-ScheduledJob
Cambia los trabajos programados.
Sintaxis
Set-ScheduledJob
[-Name <String>]
[-ScriptBlock <ScriptBlock>]
[-Trigger <ScheduledJobTrigger[]>]
[-InitializationScript <ScriptBlock>]
[-RunAs32]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-ScheduledJobOption <ScheduledJobOptions>]
[-InputObject] <ScheduledJobDefinition>
[-MaxResultCount <Int32>]
[-PassThru]
[-ArgumentList <Object[]>]
[-RunNow]
[-RunEvery <TimeSpan>]
[<CommonParameters>]
Set-ScheduledJob
[-Name <String>]
[-FilePath <String>]
[-Trigger <ScheduledJobTrigger[]>]
[-InitializationScript <ScriptBlock>]
[-RunAs32]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-ScheduledJobOption <ScheduledJobOptions>]
[-InputObject] <ScheduledJobDefinition>
[-MaxResultCount <Int32>]
[-PassThru]
[-ArgumentList <Object[]>]
[-RunNow]
[-RunEvery <TimeSpan>]
[<CommonParameters>]
Set-ScheduledJob
[-InputObject] <ScheduledJobDefinition>
[-ClearExecutionHistory]
[-PassThru]
[<CommonParameters>]
Description
El cmdlet Set-ScheduledJob cambia las propiedades de los trabajos programados, como los comandos que ejecutan los trabajos o las credenciales necesarias para ejecutar el trabajo. También puede usarlo para borrar el historial de ejecución del trabajo programado.
Para usar este cmdlet, empiece por usar el cmdlet Get-ScheduledJob para obtener el trabajo programado. A continuación, canalice el trabajo programado para Set-ScheduledJob o guarde el trabajo en una variable y use el parámetro InputObject para identificar el trabajo. Use los parámetros restantes de Set-ScheduledJob para cambiar las propiedades del trabajo o borrar el historial de ejecución.
Aunque puede usar Set-ScheduledJob para cambiar los desencadenadores y opciones de un trabajo programado, los cmdlets Add-JobTrigger, Set-JobTrigger y Set-ScheduledJobOption proporcionan formas mucho más fáciles de realizar esas tareas. Para crear un nuevo trabajo programado, use el cmdlet Register-ScheduledJob.
El parámetro Trigger de Set-ScheduledJob agrega uno o varios desencadenadores de trabajo que inician el trabajo. El parámetro Trigger es opcional, por lo que puede agregar desencadenadores al crear el trabajo programado, agregar desencadenadores de trabajo más adelante, agregar el parámetro RunNow para iniciar el trabajo inmediatamente, usar el cmdlet Start-Job para iniciar el trabajo inmediatamente en cualquier momento o guardar el trabajo programado no registrado como plantilla para otros trabajos.
Set-ScheduledJob es una de las colecciones de cmdlets de programación de trabajos en el módulo PSScheduledJob que se incluye en Windows PowerShell.
Para obtener más información sobre los trabajos programados, vea los temas Acerca de en el módulo PSScheduledJob.
Importe el módulo PSScheduledJob y escriba: Get-Help about_Scheduled*
o vea about_Scheduled_Jobs.
Este cmdlet se introdujo en Windows PowerShell 3.0.
Ejemplos
Ejemplo 1: Cambiar el script que ejecuta un trabajo
PS C:\> Get-ScheduledJob -Name "Inventory"
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
1 Inventory {1} C:\Scripts\Get-Inventory.ps1 True
The second command uses the Get-ScheduledJob cmdlet to get the Inventory scheduled job. A pipeline operator (|) sends the scheduled job to the **Set-ScheduledJob** cmdlet. The **Set-ScheduledJob** cmdlet uses the *Script* parameter to specify a new script, Get-FullInventory.ps1. The command uses the *Passthru* parameter to return the scheduled job after the change.
PS C:\> Get-ScheduledJob -Name "Inventory" | Set-ScheduledJob -FilePath "C:\Scripts\Get-FullInventory.ps1" -Passthru
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
1 Inventory {1} C:\Scripts\Get-FullInventory.ps1 True
En este ejemplo se muestra cómo cambiar el script que se ejecuta en un trabajo programado.
El primer comando usa el cmdlet Get-ScheduledJob para obtener el trabajo programado inventory. La salida muestra que el trabajo ejecuta el script Get-Inventory.ps1.
Este comando no es necesario; solo se incluye para mostrar el efecto del cambio del script.
Ejemplo 2: Eliminación del historial de ejecución de un trabajo programado
PS C:\> Get-ScheduledJob BackupArchive | Set-ScheduledJob -ClearExecutionHistory
Este comando elimina el historial de ejecución actual y los resultados del trabajo guardado para el trabajo programado BackupArchive.
El comando usa el cmdlet Get-ScheduledJob para obtener el trabajo programado BackupArchive. Un operador de canalización (|) envía el trabajo al cmdlet Set-ScheduledJob para cambiarlo. El cmdlet Set-ScheduledJob usa el parámetro ClearExecutionHistory para eliminar el historial de ejecución y los resultados guardados.
Para obtener más información sobre el historial de ejecución y los resultados de trabajos guardados de los trabajos programados, consulte about_Scheduled_Jobs.
Ejemplo 3: Cambiar trabajos programados en un equipo remoto
PS C:\> Invoke-Command -Computer "Server01, Server02" -ScriptBlock {Get-ScheduledJob | Set-ScheduledJob -InitializationScript \\SrvA\Scripts\SetForRun.ps1}
Este comando cambia el script de inicialización en todos los trabajos programados en los equipos Server01 y Server02.
El comando usa el cmdlet Invoke-Command para ejecutar un comando en los equipos Server01 y Server02.
El comando remoto comienza con un comando Get-ScheduledJob que obtiene todos los trabajos programados en el equipo. Los trabajos programados se canalizan al cmdlet Set-ScheduledJob, que cambia el script de inicialización a SetForRun.ps1.
Parámetros
-ArgumentList
Especifica valores para los parámetros del script especificados por el parámetro FilePath o para el comando especificado por el parámetro ScriptBlock.
Tipo: | Object[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Authentication
Especifica el mecanismo que se usa para autenticar las credenciales del usuario. Los valores aceptables para este parámetro son:
- Predeterminado
- Básico
- Credssp
- Digerir
- Kerberos
- Negociar
- NegotiateWithImplicitCredential
El valor predeterminado es Default. Para obtener más información sobre los valores de este parámetro, vea AuthenticationMechanism Enumeration en MSDN Library.
Precaución: La autenticación del proveedor de soporte técnico de seguridad de credenciales (CredSSP), en la que las credenciales del usuario se pasan a un equipo remoto que se va a autenticar, está diseñada para comandos que requieren autenticación en más de un recurso, como el acceso a un recurso compartido de red remoto. Este mecanismo aumenta el riesgo de seguridad de la operación remota. Si el equipo remoto está en peligro, se pueden usar las credenciales que se pasan a ella para controlar la sesión de red.
Tipo: | AuthenticationMechanism |
Valores aceptados: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Posición: | Named |
Valor predeterminado: | Default |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ClearExecutionHistory
Elimina el historial de ejecución actual y los resultados guardados del trabajo programado.
El historial de ejecución del trabajo y los resultados del trabajo se guardan con el trabajo programado en el directorio $home\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs en el equipo en el que se crea el trabajo. Para ver el historial de ejecución, use el cmdlet Get-Job. Para obtener los resultados del trabajo, use el cmdlet Receive-Job.
Este parámetro no afecta a los eventos que el Programador de tareas escribe en los registros de eventos de Windows y no impide que Windows PowerShell guarde los resultados del trabajo. Para administrar el número de resultados del trabajo que se guardan, use el parámetro MaxResultCount.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Credential
Especifica una cuenta de usuario que tiene permiso para ejecutar el trabajo programado. El valor predeterminado es el usuario actual.
Escriba un nombre de usuario, como User01 o Domain01\User01, o escriba un objeto de PSCredential, como uno del cmdlet Get-Credential. Si escribe solo un nombre de usuario, se le pedirá una contraseña.
Tipo: | PSCredential |
Posición: | Named |
Valor predeterminado: | Current user |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-FilePath
Especifica un script que se ejecuta el trabajo programado.
Escriba la ruta de acceso a un archivo .ps1 en el equipo local.
Para especificar valores predeterminados para los parámetros de script, use el parámetro ArgumentList.
Cada trabajo programado debe tener un scriptBlock de
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-InitializationScript
Especifica la ruta de acceso completa a un script de Windows PowerShell (.ps1). El script de inicialización se ejecuta en la sesión que se crea para el trabajo en segundo plano antes de los comandos especificados por el parámetro ScriptBlock o el script especificado por el parámetro FilePath. Puede usar el script de inicialización para configurar la sesión, como agregar archivos, funciones o alias, crear directorios o comprobar si hay requisitos previos.
Para especificar un script que ejecute los comandos de trabajo principal, use el parámetro FilePath.
Si el script de inicialización genera un error, incluido un error de no terminación, la instancia actual del trabajo programado no se ejecuta y su estado es Error.
Tipo: | ScriptBlock |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-InputObject
Especifica el trabajo programado que se va a cambiar.
Escriba una variable que contenga objetos ScheduledJobDefinition o escriba un comando o expresión que obtenga objetos ScheduledJobDefinition, como un comando Get-ScheduledJob.
También puede canalizar un objeto de
Si especifica varios trabajos programados, Set-ScheduledJob realiza los mismos cambios en todos los trabajos.
Tipo: | ScheduledJobDefinition |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-MaxResultCount
Especifica cuántas entradas de resultado del trabajo se mantienen para el trabajo programado. El valor predeterminado es 32.
Windows PowerShell guarda el historial de ejecución y los resultados de cada instancia desencadenada del trabajo programado en el disco. El valor de este parámetro determina el número de resultados de la instancia de trabajo que se guardan para este trabajo programado. Cuando el número de resultados de la instancia de trabajo supera este valor, Windows PowerShell elimina los resultados de la instancia de trabajo más antigua para dar espacio a los resultados de la instancia de trabajo más reciente.
El historial de ejecución del trabajo y los resultados del trabajo se guardan en el $home\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs\<JobName>\Output\<Timestamp> directorios del equipo en el que se crea el trabajo. Para ver el historial de ejecución, use el cmdlet Get-Job. Para obtener los resultados del trabajo, use el cmdlet Receive-Job.
El parámetro MaxResultCount establece el valor de la propiedad ExecutionHistoryLength del trabajo programado.
Para eliminar el historial de ejecución actual y los resultados del trabajo, use el parámetro ClearExecutionHistory.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | 32 |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Name
Especifica un nuevo nombre para el trabajo programado y las instancias del trabajo programado. El nombre debe ser único en el equipo local.
Para identificar el trabajo programado que se va a cambiar, use el parámetro InputObject o canalice un trabajo programado de Get-ScheduledJob a Set-ScheduledJob.
Este parámetro no cambia los nombres de las instancias de trabajo en el disco. Solo afecta a las instancias de trabajo que se inician una vez completado este comando.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-PassThru
Devuelve un objeto que representa el elemento con el que está trabajando. De forma predeterminada, este cmdlet no genera ninguna salida.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-RunAs32
Ejecuta el trabajo programado en un proceso de 32 bits.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-RunEvery
Se usa para especificar la frecuencia con la que ejecutar el trabajo. Por ejemplo, use esta opción para ejecutar un trabajo cada 15 minutos.
Tipo: | TimeSpan |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-RunNow
Inicia un trabajo inmediatamente, en cuanto se ejecuta el cmdlet set-ScheduledJob
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ScheduledJobOption
Establece las opciones del trabajo programado. Escriba un objeto ScheduledJobOptions, como uno que cree mediante el cmdlet New-ScheduledJobOption o un valor de tabla hash.
Puede establecer opciones para un trabajo programado al registrar el trabajo programado o usar el Set-ScheduledJobOption o cmdlets Set-ScheduledJob para establecer o cambiar opciones.
Muchas de las opciones y sus valores predeterminados determinan si y cuándo se ejecuta un trabajo programado. Asegúrese de revisar estas opciones antes de programar un trabajo. Para obtener una descripción de las opciones de trabajo programadas, incluidos los valores predeterminados, consulte New-ScheduledJobOption.
Para enviar una tabla hash, use las siguientes claves. En la tabla hash siguiente, las claves se muestran con sus valores predeterminados.
@{# Power SettingsStartIfOnBattery=$False;StopIfGoingOnBattery=$True; WakeToRun=$False; # Idle SettingsStartIfNotIdle=$False; IdleDuration="00:10:00"; IdleTimeout="01:00:00"; StopIfGoingOffIdle=$True; RestartOnIdleResume=$False;# Security settingsShowInTaskScheduler=$TrueRunElevated=$False;# MiscRunWithoutNetwork=$False;DoNotAllowDemandStart=$False;MultipleInstancePolicy=IgnoreNew# Can be IgnoreNew, Parallel, Queue, StopExisting}
Tipo: | ScheduledJobOptions |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ScriptBlock
Especifica los comandos que ejecuta el trabajo programado. Incluya los comandos entre llaves ( { } ) para crear un bloque de script. Para especificar valores predeterminados para los parámetros de comando, use el parámetro ArgumentList.
Cada comando de Register-ScheduledJob debe usar los parámetros ScriptBlock o FilePath.
Tipo: | ScriptBlock |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Trigger
Especifica los desencadenadores para el trabajo programado. Escriba uno o varios objetos ScheduledJobTrigger, como los objetos que devuelve el cmdlet New-JobTrigger o una tabla hash de claves y valores del desencadenador de trabajos.
Un desencadenador de trabajo inicia un trabajo programado automáticamente en una programación única o periódica o cuando se produce un evento.
Los desencadenadores de trabajo son opcionales. Puede agregar un desencadenador al crear el trabajo programado, usar el Add-JobTrigger o cmdlets set-ScheduledJob para agregar desencadenadores más adelante o usar el cmdlet Start-Job para iniciar el trabajo programado inmediatamente. También puede crear y mantener un trabajo programado que no tenga desencadenadores de trabajo.
Para enviar una tabla hash, use las siguientes claves.
@{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am"
(o cualquier cadena de tiempo válida); DaysOfWeek="Monday", "Wednesday"
(o cualquier combinación de nombres de día); Interval=2
(o cualquier intervalo de frecuencia válido); RandomDelay="30minutes"
(o cualquier cadena de intervalo de tiempo válida); User="Domain1\User01"
(o cualquier usuario válido; solo se usa con el valor de frecuencia AtLogon)
}
Tipo: | ScheduledJobTrigger[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
Puede canalizar trabajos programados a Set-ScheduledJob.
Salidas
None or Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition
Si usa el parámetro
Vínculos relacionados
- about_Scheduled_Jobs
- Add-JobTrigger
- Disable-JobTrigger
- Disable-ScheduledJob
- Enable-JobTrigger
- Enable-ScheduledJob
- Get-JobTrigger
- Get-ScheduledJob
- Get-ScheduledJobOption
- New-JobTrigger
- New-ScheduledJobOption
- Register-ScheduledJob
- Remove-JobTrigger
- Set-JobTrigger
- Set-ScheduledJob
- Set-ScheduledJobOption
- Unregister-ScheduledJob