Condividi tramite


New-ScheduledJobOption

Crea un oggetto che contiene le opzioni avanzate per un processo pianificato.

Sintassi

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

Descrizione

Il cmdlet New-ScheduledJobOption crea un oggetto che contiene le opzioni avanzate per un processo pianificato.

È possibile usare l'oggetto ScheduledJobOptions che New-ScheduledJobOption restituisce per impostare le opzioni del processo per un processo pianificato nuovo o esistente. In alternativa, è possibile impostare le opzioni di processo usando il cmdlet Get-ScheduledJobOption per ottenere le opzioni di processo di un processo pianificato esistente o usando un valore di tabella hash per rappresentare le opzioni del processo.

Senza parametri, New-ScheduledJobOption genera un oggetto contenente i valori predefiniti per tutte le opzioni. Poiché è possibile modificare tutte le proprietà, tranne la proprietà JobDefinition, è possibile usare l'oggetto risultante come modello e creare oggetti opzione standard per l'organizzazione.

Durante la creazione di processi pianificati e l'impostazione delle opzioni del processo pianificato, esaminare i valori predefiniti di tutte le opzioni del processo pianificato. I processi pianificati vengono eseguiti solo quando tutte le condizioni impostate per la relativa esecuzione sono stati soddisfatti.

New-ScheduledJobOption è una delle raccolte di cmdlet di pianificazione dei processi nel modulo PSScheduledJob incluso in Windows PowerShell.

Per altre informazioni sui lavori pianificati, vedere gli argomenti Informazioni nel modulo PSScheduledJob. Importare il modulo PSScheduledJob e quindi digitare: Get-Help about_Scheduled* o vedere about_Scheduled_Jobs.

Questo cmdlet è stato introdotto in Windows PowerShell 3.0.

Esempio

Esempio 1: Create un oggetto opzione processo pianificato con valori predefiniti

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       :

Questo comando crea un oggetto opzione processo pianificato con tutti i valori predefiniti.

Esempio 2: Create un oggetto opzione di processo pianificato con valori personalizzati

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       :

Il comando seguente crea un oggetto processo pianificato che richiede la rete ed esegue il processo pianificato anche se il computer non è connesso alla rete elettrica.

L'output mostra che il parametro RequireNetwork ha modificato il valore della proprietà RunWithoutNetwork in $False e il parametro StartIfOnBattery ha modificato il valore della proprietà StartIfOnBatteries in $True.

Esempio 3: Impostare le opzioni per un nuovo processo pianificato

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

Questo esempio illustra come usare l'oggetto ScheduledJobOptions restituito da New-ScheduledJobOption per impostare le opzioni per un nuovo processo pianificato.

Esempio 4: Ordinare le proprietà di un oggetto opzione di processo pianificato

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

Questo esempio illustra come ordinare le proprietà di un oggetto ScheduledJobOptions in ordine alfabetico per facilitare la lettura.

Il primo comando usa il cmdlet New-ScheduledJobOption per creare un oggetto ScheduledJobOptions. Il comando usa il parametro WakeToRun e salva l'oggetto risultante nella variabile $Options.

Per ottenere le proprietà di $Options come oggetti, il secondo comando usa la proprietà PSObject di tutti gli oggetti Windows PowerShell e la relativa proprietàProperties. Il comando invia quindi gli oggetti proprietà al cmdlet Sort-Object, che ordina le proprietà in ordine alfabetico in base al nome e quindi al cmdlet Format-Table, che visualizza i nomi e i valori delle proprietà in una tabella.

Questo formato semplifica notevolmente la ricerca della proprietà WakeToRun dell'oggetto ScheduledJobOptions in $Options e verificare che il relativo valore sia stato modificato da $False a $True.

Parametri

-ContinueIfGoingOnBattery

Non arrestare il processo pianificato se il computer passa all'alimentazione con batterie (si scollega dalla rete elettrica) mentre il processo è in esecuzione. Per impostazione predefinita, i processi pianificati vengono arrestati quando il computer si scollega dalla rete elettrica.

Il parametro ContinueIfGoingOnBattery imposta il valore della proprietà StopIfGoingOnBatteries per $True.

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

-DoNotAllowDemandStart

Avviare il processo solo quando è attivato. Gli utenti non possono avviare il processo manualmente, ad esempio usando la funzionalità Esegui in Utilità di pianificazione.

Questo parametro interessa solo Utilità di pianificazione. Non impedisce agli utenti di usare il cmdlet Start-Job per avviare il processo.

Il parametro DoNotAllowDemandStart imposta il valore della proprietà DoNotAllowDemandStart dei processi pianificati per $True.

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

-HideInTaskScheduler

Non visualizzare il processo in Utilità di pianificazione. Questo valore interessa solo il computer in cui viene eseguito il processo. Per impostazione predefinita, le attività pianificate vengono visualizzate in Utilità di pianificazione.

Anche se un'attività è nascosta, gli utenti possono visualizzare l'attività selezionando l'opzione Mostra visualizzazione attività nascoste in Utilità di pianificazione.

Il parametro HideInTaskScheduler imposta il valore della proprietà ShowInTaskScheduler dei processi pianificati su $False.

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

-IdleDuration

Specifica per quanto tempo il computer deve rimanere inattivo prima che il processo venga avviato. Il valore predefinito è 10 minuti. Se il computer non resta inattivo per la durata specificata prima dello scadere del valore IdleTimeout, il processo pianificato non viene eseguito fino alla successiva ora pianificata, se presente.

Immettere un oggetto TimeSpan, ad esempio uno generato dal cmdlet New-TimeSpan oppure immettere un valore in <formato hours>:minutes>:<<seconds> convertito automaticamente in un oggetto TimeSpan.

Per abilitare questo valore, usare il parametro StartIfIdle. Per impostazione predefinita, la proprietà StartIfNotIdle dei processi pianificati è impostata su $True e Windows PowerShell ignora i valori IdleDuration e IdleTimeout.

Type:TimeSpan
Position:Named
Default value:10 minutes (00:10:00)
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IdleTimeout

Specifica il tempo di attesa del processo pianificato affinché il computer diventi inattivo. Se il tempo di attesa scade prima che il computer resti inattivo per il periodo di tempo specificato dal parametro IdleDuration, il processo non viene eseguito fino al successivo orario pianificato, se presente. Il valore predefinito è 1 ora.

Immettere un oggetto TimeSpan, ad esempio uno generato dal cmdlet New-TimeSpan oppure immettere un valore in <formato hours>:minutes>:<<seconds> convertito automaticamente in un oggetto TimeSpan.

Per abilitare questo valore, usare il parametro StartIfIdle. Per impostazione predefinita, la proprietà StartIfNotIdle dei processi pianificati è impostata su $True e Windows PowerShell ignora i valori IdleDuration e IdleTimeout.

Type:TimeSpan
Position:Named
Default value:1 hour (1:00:00)
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MultipleInstancePolicy

Determina il modo con cui il sistema risponde a una richiesta di avvio di un'istanza di un processo pianificato mentre è in esecuzione un'altra istanza del processo. Il valore predefinito è IgnoreNew. I valori validi per questo parametro sono:

  • IgnoreNew. La nuova istanza del processo viene ignorata.
  • Parallelo. La nuova istanza del processo viene avviata immediatamente.
  • Coda. La nuova istanza del processo viene avviata subito dopo il completamento dell'istanza corrente.
  • StopExisting. L'istanza corrente del processo viene interrotta e viene avviata la nuova istanza.

Per eseguire il processo devono essere soddisfatte tutte le condizioni per la pianificazione del processo. Ad esempio, se le condizioni impostate dai parametri RequireNetwork, IdleDuration e IdleTimeout non sono soddisfatte, l'istanza del processo non viene avviata, indipendentemente dal valore di questo parametro.

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

Esegue il processo pianificato solo quando sono disponibili connessioni di rete.

Se si specifica questo parametro e la rete non è disponibile all'ora di inizio pianificata, il processo non viene eseguito fino alla successiva ora di inizio pianificata, se presente.

Il parametro RequireNetwork imposta il valore della proprietà RunWithoutNetwork dei processi pianificati su $False.

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

-RestartOnIdleResume

Riavvia un processo pianificato quando il computer diventa inattivo. Questo parametro funziona con il parametro StopIfGoingOffIdle che consente di sospendere un processo pianificato in esecuzione se il computer diventa attivo (esce dallo stato inattivo).

Il parametro RestartOnIdleResume imposta il valore della proprietà RestartOnIdleResume dei processi pianificati su $True.

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

-RunElevated

Esegue il processo pianificato con le autorizzazioni di un membro del gruppo Administrators nel computer in cui viene eseguito il processo.

Per abilitare un processo pianificato da eseguire con le autorizzazioni di amministratore, usare il parametro Credential di Register-ScheduledJob per fornire credenziali esplicite per il processo.

Il parametro RunElevated imposta il valore della proprietà RunElevated dei processi pianificati su $True.

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

-StartIfIdle

Avvia il processo pianificato se il computer è rimasto inattivo per il tempo specificato dal parametro IdleDuration prima dello scadere dell'ora specificata dal parametro IdleTimeout.

Per impostazione predefinita, i parametri IdleDuration e IdleTimeout vengono ignorati e il processo viene avviato all'ora di inizio pianificata anche se il computer è occupato.

Se si specifica questo parametro e il computer è occupato (non inattivo) all'ora di inizio pianificata, il processo non viene eseguito fino alla successiva ora di inizio pianificata, se presente.

Il parametro StartIfIdle imposta il valore della proprietà StartIfNotIdle dei processi pianificati su $False.

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

-StartIfOnBattery

Avvia il processo pianificato anche se il computer è alimentato a batterie all'ora di inizio pianificata. Il valore predefinito è $False.

Il parametro StartIfOnBattery imposta il valore della proprietà StartIfOnBatteries dei processi pianificati su $True.

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

-StopIfGoingOffIdle

Sospende un processo pianificato in esecuzione se il computer diventa attivo (non inattivo) mentre il processo è in esecuzione.

Per impostazione predefinita, un processo pianificato sospeso quando il computer diventa attivo viene ripreso quando il computer torna inattivo. Per modificare questo comportamento predefinito usare il parametro RestartOnIdleResume.

Il parametro StopIfGoingOffIdle imposta il valore della proprietà StopIfGoingOffIdle dei processi pianificati su $True.

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

-WakeToRun

Riattiva il computer dallo stato di ibernazione o sospensione all'ora di inizio pianificata in modo che possa eseguire il processo. Per impostazione predefinita, se il computer è in stato di ibernazione o sospensione all'ora di inizio pianificata, il processo non viene eseguito.

Il parametro WakeToRun imposta il valore della proprietà WakeToRun dei processi pianificati su $True.

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

Input

None

Non è possibile inviare input tramite pipe a questo cmdlet.

Output

ScheduledJobOptions

Note

  • È possibile usare l'oggetto ScheduledJobOptions creato da New-ScheduledJobOption come valore del parametro ScheduledJobOption del cmdlet Register-ScheduledJob. Tuttavia, il parametro ScheduledJobOption può anche accettare un valore di tabella hash che specifica le proprietà dell'oggetto ScheduledJobOptions e i relativi valori, ad esempio:

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