Compartir a través de


New-ScheduledJobOption

Crea un objeto que contiene las opciones avanzadas de un trabajo programado.

Syntax

New-ScheduledJobOption
   [-RunElevated]
   [-HideInTaskScheduler]
   [-RestartOnIdleResume]
   [-MultipleInstancePolicy <TaskMultipleInstancePolicy>]
   [-DoNotAllowDemandStart]
   [-RequireNetwork]
   [-StopIfGoingOffIdle]
   [-WakeToRun]
   [-ContinueIfGoingOnBattery]
   [-StartIfOnBattery]
   [-IdleTimeout <TimeSpan>]
   [-IdleDuration <TimeSpan>]
   [-StartIfIdle]
   [<CommonParameters>]

Description

El New-ScheduledJobOption cmdlet crea un objeto que contiene opciones avanzadas para un trabajo programado.

Puede usar el objeto ScheduledJobOptions que New-ScheduledJobOption devuelve para establecer opciones de trabajo para un trabajo programado nuevo o existente. Como alternativa, puede establecer opciones de trabajo mediante el Get-ScheduledJobOption cmdlet para obtener las opciones de trabajo de un trabajo programado existente o mediante un valor de tabla hash para representar las opciones de trabajo.

Sin parámetros, New-ScheduledJobOption genera un objeto que contiene los valores predeterminados para todas las opciones. Dado que todas las propiedades excepto la propiedad JobDefinition se pueden editar, puede usar el objeto resultante como plantilla y crear objetos de opción estándar para su empresa.

Al crear trabajos programados y establecer opciones de trabajos programados, revise los valores predeterminados de todas las opciones del trabajo programado. Los trabajos programados solo se ejecutan cuando se cumplen todas las condiciones para su ejecución.

New-ScheduledJobOption 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: Creación de un objeto de opción de trabajo programado con valores predeterminados

En este ejemplo se crea un objeto de opción de trabajo programado con los valores predeterminados.

New-ScheduledJobOption

Ejemplo 2: Creación de un objeto de opción de trabajo programado con valores personalizados

En este ejemplo se crea un objeto de opción de trabajo programado con valores personalizados.

New-ScheduledJobOption -RequireNetwork -StartIfOnBattery

StartIfOnBatteries     : True
StopIfGoingOnBatteries : True
WakeToRun              : False
StartIfNotIdle         : True
StopIfGoingOffIdle     : False
RestartOnIdleResume    : False
IdleDuration           : 00:10:00
IdleTimeout            : 01:00:00
ShowInTaskScheduler    : True
RunElevated            : False
RunWithoutNetwork      : False
DoNotAllowDemandStart  : False
MultipleInstancePolicy : Ignore
NewJobDefinition       :

El comando siguiente crea un objeto de trabajo programado que requiere la red y ejecuta el trabajo programado, incluso aunque el equipo no esté conectado a la corriente alterna.

La salida muestra que el parámetro RequireNetwork cambió el valor de la propiedad RunWithoutNetwork a $false y el parámetro StartIfOnBattery cambió el valor de la propiedad StartIfOnBatteries a $true.

Ejemplo 3: Establecimiento de opciones para un nuevo trabajo programado

En este ejemplo se muestra cómo usar el objeto ScheduledJobOptions que New-ScheduledJobOption devuelve para establecer las opciones de un nuevo trabajo programado.

$runAsAdmin = New-ScheduledJobOption -RunElevated
Register-ScheduledJob -Name Backup -FilePath D:\Scripts\Backup.ps1 -Trigger $Mondays -ScheduledJobOption $RunAsAdmin
Get-ScheduledJobOption -Name Backup

StartIfOnBatteries     : False
StopIfGoingOnBatteries : True
WakeToRun              : False
StartIfNotIdle         : True
StopIfGoingOffIdle     : False
RestartOnIdleResume    : False
IdleDuration           : 00:10:00
IdleTimeout            : 01:00:00
ShowInTaskScheduler    : True
RunElevated            : True
RunWithoutNetwork      : True
DoNotAllowDemandStart  : False
MultipleInstancePolicy : IgnoreNew
JobDefinition          : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

El primer comando crea un objeto ScheduledJobOptions con el parámetro RunElevated . Guarda el objeto en la $runAsAdmin variable .

El segundo comando usa el Register-ScheduledJob cmdlet para crear un nuevo trabajo programado. El valor del parámetro ScheduledJobOption es el objeto option en el valor de la $runAsAdmin variable.

El tercer comando usa el Get-ScheduledJobOption cmdlet para obtener las opciones de trabajo del trabajo programado de copia de seguridad. La salida del cmdlet muestra que la propiedad RunElevated está establecida $true en y la propiedad JobDefinition del objeto de opción de trabajo ahora se rellena con el objeto de trabajo programado para el trabajo programado backup.

Ejemplo 4: Ordenar las propiedades de un objeto de opción de trabajo programado

En este ejemplo se muestra cómo ordenar las propiedades de un objeto ScheduledJobOptions en orden alfabético para facilitar la lectura.

$options = New-ScheduledJobOption -WakeToRun
$options.PSObject.Properties | Sort-Object -Property Name | Format-Table -Property Name, Value -Autosize

Name                       Value
----                       -----
DoNotAllowDemandStart      False
IdleDuration            00:10:00
IdleTimeout             01:00:00
JobDefinition
MultipleInstancePolicy IgnoreNew
RestartOnIdleResume        False
RunElevated                False
RunWithoutNetwork           True
ShowInTaskScheduler         True
StartIfNotIdle              True
StartIfOnBatteries         False
StopIfGoingOffIdle         False
StopIfGoingOnBatteries      True
WakeToRun                   True

El primer comando usa el New-ScheduledJobOption cmdlet para crear un objeto ScheduledJobOptions . El comando usa el parámetro WakeToRun y guarda el objeto resultante en la $options variable .

Para obtener las propiedades de $Options como objetos, el segundo comando usa la propiedad PSObject de todos los objetos de Windows PowerShell y su propiedad Properties. A continuación, el comando canaliza los objetos de propiedad al Sort-Object cmdlet , que ordena las propiedades en orden alfabético por nombre y, a continuación, al Format-Table cmdlet , que muestra los nombres y valores de las propiedades de una tabla.

Este formato facilita mucho la búsqueda de la propiedad WakeToRun del objeto ScheduledJobOptions en $options y para comprobar que su valor ha cambiado de $false a $true.

Parámetros

-ContinueIfGoingOnBattery

No detenga el trabajo programado si el equipo cambia a la energía de la batería (se desconecta de corriente alterna) mientras se ejecuta el trabajo. De forma predeterminada, los trabajos programados se detienen cuando el equipo se desconecta de la corriente alterna.

El parámetro ContinueIfGoingOnBattery establece el valor de la propiedad StopIfGoingOnBatteries de los trabajos programados en $true.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DoNotAllowDemandStart

Inicie el trabajo solo cuando se haya desencadenado. Los usuarios no pueden iniciar el trabajo manualmente, como con la característica Ejecutar del Programador de tareas.

Este parámetro solo afecta al Programador de tareas. No impide que los usuarios usen el Start-Job cmdlet para iniciar el trabajo.

El parámetro DoNotAllowDemandStart establece el valor de la propiedad DoNotAllowDemandStart de los trabajos programados en $true.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HideInTaskScheduler

El trabajo no se muestra en el Programador de tareas. Este valor solo afecta al equipo en el que se ejecuta el trabajo. De forma predeterminada, las tareas programadas aparecen en el Programador de tareas.

Incluso si una tarea está oculta, los usuarios pueden mostrar la tarea seleccionando la opción Mostrar vista tareas ocultas en el Programador de tareas.

El parámetro HideInTaskScheduler establece el valor de la propiedad ShowInTaskScheduler de los trabajos programados en $false.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IdleDuration

Especifica cuánto tiempo el equipo debe estar inactivo antes de que el trabajo se inicie. El valor predeterminado es 10 minutos. Si el equipo no está inactivo durante la duración especificada antes de que expire el valor de IdleTimeout , el trabajo programado no se ejecuta hasta la próxima hora programada, si existe.

Escriba un objeto TimeSpan, como uno generado por el New-TimeSpan cmdlet, o escriba un valor en <formato hours>:minutes>:<<seconds> que se convierte automáticamente en un objeto TimeSpan.

Para habilitar este valor, use el parámetro StartIfIdle . De forma predeterminada, la propiedad StartIfNotIdle de los trabajos programados se establece $true en y Windows PowerShell omite los valores IdleDuration e IdleTimeout .

Type:TimeSpan
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IdleTimeout

Especifica cuánto tiempo espera el trabajo programado para que el equipo esté inactivo. Si este tiempo de espera expira antes de que el equipo permanezca inactivo durante el período de tiempo especificado por el parámetro IdleDuration , el trabajo no se ejecuta hasta la próxima hora programada, si existe. El valor predeterminado es una hora.

Escriba un objeto TimeSpan, como uno generado por el New-TimeSpan cmdlet, o escriba un valor en <formato hours>:minutes>:<<seconds> que se convierte automáticamente en un objeto TimeSpan.

Para habilitar este valor, use el parámetro StartIfIdle . De forma predeterminada, la propiedad StartIfNotIdle de los trabajos programados se establece $true en y Windows PowerShell omite los valores IdleDuration e IdleTimeout .

Type:TimeSpan
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MultipleInstancePolicy

Determina cómo responde el sistema a una solicitud para iniciar una instancia de un trabajo programado mientras se está ejecutando otra instancia del trabajo. El valor predeterminado es IgnoreNew. Los valores permitidos para este parámetro son los siguientes:

  • IgnoreNew : se omite la nueva instancia de trabajo.
  • Parallel - La nueva instancia de trabajo se inicia inmediatamente.
  • Queue - La nueva instancia de trabajo se inicia en cuanto se completa la instancia actual.
  • StopExisting - La instancia actual del trabajo se detiene y se inicia la nueva instancia.

Para ejecutar el trabajo, deben cumplirse todas las condiciones para la programación del trabajo. Por ejemplo, si no se cumplen las condiciones establecidas por los parámetros RequireNetwork, IdleDuration e IdleTimeout , la instancia de trabajo no se inicia, independientemente del valor de este parámetro.

Type:TaskMultipleInstancePolicy
Accepted values:None, IgnoreNew, Parallel, Queue, StopExisting
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RequireNetwork

Ejecuta el trabajo programado solo cuando las conexiones de red están disponibles.

Si se especifica este parámetro y la red no está disponible en la hora de inicio programada, el trabajo no se ejecuta hasta la siguiente hora de inicio programada, si existe.

El parámetro RequireNetwork establece el valor de la propiedad RunWithoutNetwork de los trabajos programados en $false.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RestartOnIdleResume

Reinicia un trabajo programado cuando el equipo esté inactivo. Este parámetro funciona con el parámetro StopIfGoingOffIdle , que suspende un trabajo programado en ejecución si el equipo se activa (deja el estado inactivo).

El parámetro RestartOnIdleResume establece el valor de la propiedad RestartOnIdleResume de trabajos programados en $true.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunElevated

Ejecuta el trabajo programado con los permisos de un miembro del grupo Administradores en el equipo en el que se ejecuta el trabajo.

Para permitir que un trabajo programado se ejecute con permisos de Administración istrator, use el parámetro Credential de Register-ScheduledJob para proporcionar credenciales explícitas para el trabajo.

El parámetro RunElevated establece el valor de la propiedad RunElevated de los trabajos programados en $true.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StartIfIdle

Inicia el trabajo programado si el equipo ha estado inactivo durante el tiempo especificado por el parámetro IdleDuration antes de que expire la hora especificada por el parámetro IdleTimeout .

De forma predeterminada, se omiten los parámetros IdleDuration e IdleTimeout y el trabajo se inicia en la hora de inicio programada incluso si el equipo está ocupado.

Si se especifica este parámetro y el equipo está ocupado (no inactivo) a la hora de inicio programada, el trabajo no se ejecuta hasta la siguiente hora de inicio programada, si existe.

El parámetro StartIfIdle establece el valor de la propiedad StartIfNotIdle de los trabajos programados en $false.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StartIfOnBattery

Inicia el trabajo programado, incluso aunque el equipo está funcionando con baterías a la hora de inicio programada. El valor predeterminado es $false.

El parámetro StartIfOnBattery establece el valor de la propiedad StartIfOnBatteries de los trabajos programados en $true.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StopIfGoingOffIdle

Suspende un trabajo programado en ejecución si el equipo se activa (no inactivo) mientras el trabajo se está ejecutando.

De forma predeterminada, un trabajo programado que esté suspendido cuando el equipo se active se reanuda cuando el equipo vuelva a estar inactivo. Para cambiar este comportamiento predeterminado, use el parámetro RestartOnIdleResume .

El parámetro StopIfGoingOffIdle establece el valor de la propiedad StopIfGoingOffIdle de los trabajos programados en $true.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WakeToRun

Reactiva el equipo desde un estado de suspensión o hibernación a la hora de inicio programada para poder ejecutarse el trabajo. De forma predeterminada, si el equipo está en un estado de suspensión o hibernación a la hora de inicio programada, el trabajo no se ejecuta.

El parámetro WakeToRun establece el valor de la propiedad WakeToRun de los trabajos programados en $true.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

None

No se pueden canalizar objetos a este cmdlet.

Salidas

ScheduledJobOptions

Este cmdlet devuelve un objeto ScheduledJobOptions que representa las opciones creadas.

Notas

  • Puede usar el objeto ScheduledJobOptions que New-ScheduledJobOption crea como valor del parámetro ScheduledJobOption del Register-ScheduledJob cmdlet . Sin embargo, el parámetro ScheduledJobOption también puede tomar un valor de tabla hash que especifica las propiedades del objeto ScheduledJobOptions y sus valores, como:

    @{ShowInTaskScheduler=$False; RunElevated=$True; IdleDuration="00:05"}