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 Set-ScheduledJob
cmdlet 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 Get-ScheduledJob
cmdlet para obtener el trabajo programado. A continuación, canalice el trabajo programado a 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 las opciones de un trabajo programado, los Add-JobTrigger
cmdlets , Set-JobTrigger
y Set-ScheduledJobOption
proporcionan formas mucho más fáciles de realizar esas tareas. Para crear un nuevo trabajo programado, use el Register-ScheduledJob
cmdlet .
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 Start-Job
cmdlet 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 una colección de cmdlets de programación de trabajos en el módulo PSScheduledJob que se incluye en Windows PowerShell.
Para 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
Este ejemplo muestra cómo cambiar el script que se ejecuta en un trabajo programado.
Get-ScheduledJob -Name "Inventory"
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
1 Inventory {1} C:\Scripts\Get-Inventory.ps1 True
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
El primer comando usa el Get-ScheduledJob
cmdlet para obtener el trabajo programado inventory. El resultado muestra que el trabajo ejecuta el script Get-Inventory.ps1.
El segundo comando usa el Get-ScheduledJob
cmdlet para obtener el trabajo programado inventory. Un operador de canalización (|
) envía el trabajo programado al Set-ScheduledJob
cmdlet . El Set-ScheduledJob
cmdlet usa el parámetro Script para especificar un nuevo script, Get-FullInventory.ps1
. El comando usa el parámetro PassThru para devolver el trabajo programado después del cambio.
Este comando no es necesario; se incluye solo para mostrar el efecto del cambio de script.
Ejemplo 2: Eliminación del historial de ejecución de un trabajo programado
En este ejemplo se elimina el historial de ejecución actual y se guardan los resultados del trabajo de un trabajo programado.
Get-ScheduledJob BackupArchive | Set-ScheduledJob -ClearExecutionHistory
El comando usa el Get-ScheduledJob
cmdlet para obtener el trabajo programado BackupArchive. Un operador de canalización (|
) envía el trabajo al Set-ScheduledJob
cmdlet para cambiarlo. El Set-ScheduledJob
cmdlet 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
Este comando cambia el script de inicialización en todos los trabajos programados en equipos remotos.
Invoke-Command -Computer "Server01, Server02" -ScriptBlock {Get-ScheduledJob |
Set-ScheduledJob -InitializationScript \\SrvA\Scripts\SetForRun.ps1}
El comando usa el Invoke-Command
cmdlet para ejecutar un comando en los equipos Server01 y Server02.
El comando remoto comienza con un Get-ScheduledJob
comando que obtiene todos los trabajos programados en el equipo. Los trabajos programados se canalizan al Set-ScheduledJob
cmdlet , que cambia el script de inicialización a SetForRun.ps1
.
Parámetros
-ArgumentList
Especifica los valores de 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 utiliza para autenticar las credenciales del usuario. Los valores permitidos para este parámetro son los siguientes:
Default
Basic
Credssp
Digest
Kerberos
Negotiate
NegotiateWithImplicitCredential
El valor predeterminado es Default
. Para obtener más información sobre los valores de este parámetro, consulte AuthenticationMechanism Enumeration en el SDK de PowerShell.
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 para autenticarse, 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 el riesgo de seguridad de la operación remota. Si el equipo remoto se ve comprometido, las credenciales que se pasen a él se pueden utilizar para controlar la sesión de red.
Tipo: | AuthenticationMechanism |
Valores aceptados: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Posición: | Named |
Valor predeterminado: | None |
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 $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs
directorio del equipo en el que se crea el trabajo. Para ver el historial de ejecución, use el Get-Job
cmdlet . Para obtener los resultados del trabajo, use el Receive-Job
cmdlet .
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: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Credential
Especifica una cuenta de usuario que tenga 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 PSCredential , como uno del Get-Credential
cmdlet. Si escribe solo un nombre de usuario, se le solicitará una contraseña.
Tipo: | PSCredential |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-FilePath
Especifica un script que 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 valor ScriptBlock o FilePath .
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 los 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 Get-ScheduledJob
comando. También puede canalizar un objeto ScheduledJobDefinition a Set-ScheduledJob
.
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 resultados de 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 dejar 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 en el equipo en el que se crea el trabajo. Para ver el historial de ejecución, use el Get-Job
cmdlet . Para obtener los resultados del trabajo, use el Receive-Job
cmdlet .
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: | None |
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. Afecta solo a instancias de trabajo que se inician cuando finalice 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 ningún resultado.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
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: | None |
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 Set-ScheduledJob
cmdlet. Este parámetro elimina la necesidad de desencadenar el Programador de tareas para ejecutar un script de Windows PowerShell inmediatamente después del registro y no requiere que los usuarios creen un desencadenador que especifique una fecha y hora de inicio.
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 para un nuevo trabajo programado Escriba un objeto ScheduledJobOptions , como uno que cree mediante el New-ScheduledJobOption
cmdlet o un valor de tabla hash.
Puede establecer opciones para un trabajo programado al registrar el trabajo programado o usar los Set-ScheduledJobOption
cmdlets o Set-ScheduledJob
para establecer o cambiar las opciones.
Muchas de las opciones y sus valores predeterminados determinan si se ejecuta un trabajo programado y cuándo ocurre esto. 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, vea New-ScheduledJobOption
.
Para enviar una tabla hash, use las claves siguientes. En la siguiente tabla hash, 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 Register-ScheduledJob
comando 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 New-JobTrigger
cmdlet o una tabla hash de claves y valores del desencadenador de trabajo.
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 los Add-JobTrigger
cmdlets o Set-ScheduledJob
para agregar desencadenadores más adelante o usar el Start-Job
cmdlet 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 claves siguientes.
@{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 un trabajo programado a este cmdlet.
Salidas
None
De forma predeterminada, este cmdlet no devuelve ninguna salida.
Cuando se usa el parámetro PassThru , este cmdlet devuelve el trabajo programado que cambió.
Vínculos relacionados
- 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