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 New-ScheduledJobOption cmdlet crea un oggetto che contiene opzioni avanzate per un processo pianificato.

È possibile utilizzare l'oggetto ScheduledJobOptions che New-ScheduledJobOption restituisce per impostare le opzioni di processo per un processo pianificato nuovo o esistente. In alternativa, è possibile impostare le opzioni di processo usando il Get-ScheduledJobOption cmdlet 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é tutte le proprietà ad eccezione della proprietà JobDefinition possono essere modificate, è 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 raccolta 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 visualizzare about_Scheduled_Jobs.

Questo cmdlet è stato introdotto in Windows PowerShell 3.0.

Esempio

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

In questo esempio viene creato un oggetto opzione processo pianificato con i valori predefiniti.

New-ScheduledJobOption

Esempio 2: Creare un oggetto opzione processo pianificato con valori personalizzati

In questo esempio viene creato un oggetto opzione processo pianificato con valori personalizzati

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

In questo esempio viene illustrato come utilizzare l'oggetto ScheduledJobOptions che New-ScheduledJobOption restituisce per impostare le opzioni per un nuovo processo pianificato.

$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

Il primo comando crea un oggetto ScheduledJobOptions con il parametro RunElevated . Salva l'oggetto nella $runAsAdmin variabile .

Il secondo comando usa il Register-ScheduledJob cmdlet per creare un nuovo processo pianificato. Il valore del parametro ScheduledJobOption è l'oggetto opzione nel valore della $runAsAdmin variabile.

Il terzo comando usa il Get-ScheduledJobOption cmdlet per ottenere le opzioni di processo del processo pianificato di Backup. L'output del cmdlet mostra che la proprietà RunElevated è impostata su $true e la proprietà JobDefinition dell'oggetto opzione processo viene ora popolata con l'oggetto processo pianificato per il processo pianificato.

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

In questo esempio viene illustrato come ordinare le proprietà di un oggetto ScheduledJobOptions in ordine alfabetico per semplificare la lettura.

$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

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

Per ottenere le proprietà di $Options come oggetti, il secondo comando usa la proprietà PSObject di tutti gli oggetti di Windows PowerShell e la relativa proprietà Properties. Il comando invia quindi tramite pipe gli oggetti proprietà al Sort-Object cmdlet , che ordina le proprietà in ordine alfabetico in base al nome e quindi al Format-Table cmdlet , 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 per 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 dei processi pianificati su $true.

Type:SwitchParameter
Position:Named
Default value:None
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 Start-Job cmdlet per avviare il processo.

Il parametro DoNotAllowDemandStart imposta il valore della proprietà DoNotAllowDemandStart dei processi pianificati su $true.

Type:SwitchParameter
Position:Named
Default value:None
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:None
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 è inattiva per la durata specificata prima della scadenza del valore di IdleTimeout , il processo pianificato non viene eseguito fino all'ora pianificata successiva, se presente.

Immettere un oggetto TimeSpan , ad esempio quello generato dal New-TimeSpan cmdlet, 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:None
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 questo timeout scade prima che il computer rimanga inattiva per il periodo di tempo specificato dal parametro IdleDuration , il processo non viene eseguito fino all'ora pianificata successiva, se presente. Il valore predefinito è 1 ora.

Immettere un oggetto TimeSpan , ad esempio quello generato dal New-TimeSpan cmdlet, 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:None
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.
  • Parallel - La nuova istanza del processo viene avviata immediatamente.
  • Queue - La nuova istanza del processo viene avviata non appena viene completata l'istanza corrente.
  • StopExisting - L'istanza corrente del processo viene arrestata 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 vengono 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:None
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:None
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 sospende un processo pianificato in esecuzione se il computer diventa attivo (lascia lo stato di inattività).

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

Type:SwitchParameter
Position:Named
Default value:None
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 consentire l'esecuzione di un processo pianificato con autorizzazioni Amministrazione istrator, 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:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StartIfIdle

Avvia il processo pianificato se il computer è inattiva per l'ora specificata dal parametro IdleDuration prima della scadenza del tempo specificato 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:None
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:None
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:None
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:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

ScheduledJobOptions

Questo cmdlet restituisce un oggetto ScheduledJobOptions che rappresenta le opzioni create.

Note

  • È possibile utilizzare l'oggetto ScheduledJobOptions che New-ScheduledJobOption crea come valore del parametro ScheduledJobOption del Register-ScheduledJob cmdlet. 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"}