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 cmdlet New-ScheduledJobOption crea un objeto que contiene opciones avanzadas para un trabajo programado.

Puede usar el objeto ScheduledJobOptions que New-ScheduledJobOption devuelve para establecer las opciones de trabajo para un trabajo programado nuevo o existente. Como alternativa, puede establecer opciones de trabajo mediante el cmdlet Get-ScheduledJobOption 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. Debido a que todas las propiedades, excepto la propiedad JobDefinition, se pueden editar, puede usar el objeto resultante como plantilla y crear objetos de la 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 las colecciones de cmdlets de programación de trabajos del 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: Create un objeto de opción de trabajo programado con valores predeterminados

PS C:\> New-ScheduledJobOption
StartIfOnBatteries     : False
StopIfGoingOnBatteries : True
WakeToRun              : False
StartIfNotIdle         : True
StopIfGoingOffIdle     : False
RestartOnIdleResume    : False
IdleDuration           : 00:10:00
IdleTimeout            : 01:00:00
ShowInTaskScheduler    : True
RunElevated            : False
RunWithoutNetwork      : True
DoNotAllowDemandStart  : False
MultipleInstancePolicy : Ignore
NewJobDefinition       :

Este comando crea un objeto de opción de trabajo programado que tiene todos los valores predeterminados.

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

PS C:\> 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

The first command creates a **ScheduledJobOptions** object with the *RunElevated* parameter. It saves the object in the $RunAsAdmin variable.
PS C:\> $RunAsAdmin = New-ScheduledJobOption -RunElevated

The second command uses the Register-ScheduledJob cmdlet to create a new scheduled job. The value of the *ScheduledJobOption* parameter is the option object in the value of the $RunAsAdmin variable.
PS C:\> Register-ScheduledJob -Name Backup -FilePath D:\Scripts\Backup.ps1 -Trigger $Mondays -ScheduledJobOption $RunAsAdmin

The third command uses the Get-ScheduledJobOption cmdlet to get the job options of the Backup scheduled job.The cmdlet output shows that the RunElevated property is set to $True and the JobDefinition property of the job option object is now populated with the scheduled job object for the Backup scheduled job.
PS C:\> 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

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

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

PS C:\> $Options = New-ScheduledJobOption -WakeToRun
PS C:\> $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

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

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

Para obtener las propiedades de $Options como objetos , el segundo comando usa la propiedad PSObject de todos los objetos Windows PowerShell y su propiedad Properties. A continuación, el comando canaliza los objetos de propiedad al cmdlet Sort-Object, que ordena las propiedades en orden alfabético por nombre y, a continuación, al cmdlet Format-Table, 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 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:False
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 cmdlet Start-Job 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:False
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 la vista Mostrar 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:False
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 el tiempo especificado antes de que expire el valor de IdleTimeout, el trabajo programado no se ejecuta hasta la siguiente hora programada, si existe.

Escriba un objeto TimeSpan, como uno generado por el cmdlet New-TimeSpan, 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 en $True y Windows PowerShell omite los valores IdleDuration y IdleTimeout.

Type:TimeSpan
Position:Named
Default value:10 minutes (00:10:00)
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 cmdlet New-TimeSpan, 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 en $True y Windows PowerShell omite los valores IdleDuration y IdleTimeout.

Type:TimeSpan
Position:Named
Default value:1 hour (1:00:00)
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 del trabajo se inicia inmediatamente.
  • Cola. la nueva instancia de trabajo se inicia tan pronto como finaliza 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:IgnoreNew
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:False
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:False
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 administrador, 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:False
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, los parámetros IdleDuration e IdleTimeout se omiten los parámetros y el trabajo se inicia a la hora de inicio programada, incluso aunque 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:False
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:False
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:False
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:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

None

No se puede canalizar la entrada a este cmdlet.

Salidas

ScheduledJobOptions

Notas

  • Puede usar el objeto ScheduledJobOptions que Crea New-ScheduledJobOption como valor del parámetro ScheduledJobOption del cmdlet Register-ScheduledJob. 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"}