Set-ScheduledJob
Modifica i processi pianificati.
Sintassi
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>]
Descrizione
Il Set-ScheduledJob
cmdlet modifica le proprietà dei processi pianificati, ad esempio i comandi eseguiti dai processi o le credenziali necessarie per eseguire il processo. Consente inoltre di cancellare la cronologia di esecuzione del processo pianificato.
Per usare questo cmdlet, iniziare usando il Get-ScheduledJob
cmdlet per ottenere il processo pianificato. Inviare quindi tramite pipe il processo pianificato a Set-ScheduledJob
o salvare il processo in una variabile e usare il parametro InputObject per identificare il processo. Usare i parametri rimanenti di Set-ScheduledJob
per modificare le proprietà del processo o cancellare la cronologia di esecuzione.
Sebbene sia possibile usare Set-ScheduledJob
per modificare i trigger e le opzioni di un processo pianificato, i Add-JobTrigger
cmdlet , Set-JobTrigger
e Set-ScheduledJobOption
offrono modi molto più semplici per eseguire tali attività. Per creare un nuovo processo pianificato, usare il Register-ScheduledJob
cmdlet .
Il parametro Trigger di Set-ScheduledJob
aggiunge uno o più trigger di processo che avviano il processo.
Il parametro Trigger è facoltativo, quindi è possibile aggiungere trigger quando si crea il processo pianificato, aggiungere trigger di processo in un secondo momento, aggiungere il parametro RunNow per avviare immediatamente il processo, usare il cmdlet per avviare il Start-Job
processo immediatamente in qualsiasi momento o salvare il processo pianificato non elaborato come modello per altri processi.
Set-ScheduledJob
è 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: Modificare lo script eseguito da un processo
Questo esempio illustra come modificare lo script che viene eseguito in un processo pianificato.
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
Il primo comando usa il Get-ScheduledJob
cmdlet per ottenere il processo pianificato inventario. L'output mostra che il processo esegue lo script Get-Inventory.ps1.
Il secondo comando usa il Get-ScheduledJob
cmdlet per ottenere il processo pianificato inventario. Un operatore pipeline (|
) invia il processo pianificato al Set-ScheduledJob
cmdlet . Il Set-ScheduledJob
cmdlet usa il parametro Script per specificare un nuovo script, Get-FullInventory.ps1
. Il comando usa il parametro PassThru per restituire il processo pianificato dopo la modifica.
Questo comando non è necessario. È incluso solo per mostrare l'effetto della modifica dello script.
Esempio 2: Eliminare la cronologia di esecuzione di un processo pianificato
In questo esempio viene eliminata la cronologia di esecuzione corrente e i risultati dei processi salvati per un processo pianificato.
Get-ScheduledJob BackupArchive | Set-ScheduledJob -ClearExecutionHistory
Il comando usa il Get-ScheduledJob
cmdlet per ottenere il processo pianificato BackupArchive. Un operatore pipeline (|
) invia il processo al Set-ScheduledJob
cmdlet per modificarlo. Il Set-ScheduledJob
cmdlet usa il parametro ClearExecutionHistory per eliminare la cronologia di esecuzione e i risultati salvati.
Per altre informazioni sulla cronologia di esecuzione e sui risultati dei processi salvati dei processi pianificati, vedere about_Scheduled_Jobs.
Esempio 3: Modificare i processi pianificati in un computer remoto
Questo comando modifica lo script di inizializzazione in tutti i processi pianificati nei computer remoti.
Invoke-Command -Computer "Server01, Server02" -ScriptBlock {Get-ScheduledJob |
Set-ScheduledJob -InitializationScript \\SrvA\Scripts\SetForRun.ps1}
Il comando usa il Invoke-Command
cmdlet per eseguire un comando nei computer Server01 e Server02.
Il comando remoto inizia con un Get-ScheduledJob
comando che ottiene tutti i processi pianificati nel computer. I processi pianificati vengono inviati tramite pipe al Set-ScheduledJob
cmdlet , che modifica lo script di inizializzazione in SetForRun.ps1
.
Parametri
-ArgumentList
Specifica i valori per i parametri dello script specificati dal parametro FilePath o per il comando specificato dal parametro ScriptBlock .
Tipo: | Object[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Authentication
Specifica il meccanismo usato per autenticare le credenziali dell'utente. I valori validi per questo parametro sono:
Default
Basic
Credssp
Digest
Kerberos
Negotiate
NegotiateWithImplicitCredential
Il valore predefinito è Default
. Per altre informazioni sui valori di questo parametro, vedere AuthenticationMechanism Enumeration in PowerShell SDK.
Attenzione
L'autenticazione credSSP (Credential Security Support Provider), in cui le credenziali dell'utente vengono passate a un computer remoto da autenticare, è progettato per i comandi che richiedono l'autenticazione su più di una risorsa, ad esempio l'accesso a una condivisione di rete remota. Questo meccanismo aumenta il rischio per la sicurezza dell'operazione remota. Se infatti il computer remoto viene compromesso, le credenziali che gli vengono passate possono essere usate per controllare la sessione di rete.
Tipo: | AuthenticationMechanism |
Valori accettati: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-ClearExecutionHistory
Elimina la cronologia di esecuzione corrente e i risultati salvati del processo pianificato.
La cronologia di esecuzione del processo e i risultati del processo vengono salvati con il processo pianificato nella $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs
directory nel computer in cui viene creato il processo. Per visualizzare la cronologia di esecuzione, usare il Get-Job
cmdlet . Per ottenere i risultati del processo, usare il Receive-Job
cmdlet .
Questo parametro non influenza gli eventi che l'Utilità di pianificazione scrive nei log eventi di Windows e non impedisce di salvare i risultati del processo in Windows PowerShell. Per gestire il numero di risultati del processo salvati, usare il parametro MaxResultCount .
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Credential
Specifica un account utente che dispone dell'autorizzazione per eseguire il processo pianificato. Il valore predefinito è l'utente corrente.
Digitare un nome utente, ad esempio User01 o Domain01\User01, oppure immettere un oggetto PSCredential , ad esempio uno del Get-Credential
cmdlet. Se si digita solo un nome utente, viene richiesta una password.
Tipo: | PSCredential |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-FilePath
Specifica uno script eseguito dal processo pianificato. Immettere il percorso di un file con estensione ps1 nel computer locale. Per specificare i valori predefiniti per i parametri dello script, usare il parametro ArgumentList . Ogni processo pianificato deve avere un valore ScriptBlock o FilePath .
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-InitializationScript
Specifica il percorso completo di uno script di Windows PowerShell (.ps1
). Lo script di inizializzazione viene eseguito nella sessione creata per il processo in background prima dei comandi specificati dal parametro ScriptBlock o dallo script specificato dal parametro FilePath . È possibile usare lo script di inizializzazione per configurare la sessione, ad esempio aggiungere file, funzioni e alias, creare directory o controllare prerequisiti.
Per specificare uno script che esegue i comandi del processo primario, usare il parametro FilePath .
Se lo script di inizializzazione genera un errore, incluso un errore non irreversibile, l'istanza corrente del processo pianificato non viene eseguita e il relativo stato è Non riuscito.
Tipo: | ScriptBlock |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-InputObject
Specifica il processo pianificato da modificare. Immettere una variabile contenente oggetti ScheduledJobDefinition o digitare un comando o un'espressione che ottiene oggetti ScheduledJobDefinition , ad esempio un Get-ScheduledJob
comando. È anche possibile inviare tramite pipe un oggetto ScheduledJobDefinition a Set-ScheduledJob
.
Se si specificano più processi pianificati, Set-ScheduledJob
apporta le stesse modifiche a tutti i processi.
Tipo: | ScheduledJobDefinition |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-MaxResultCount
Specifica quante voci di risultato del processo vengono mantenute per il processo pianificato. Il valore predefinito è 32.
Windows PowerShell salva la cronologia di esecuzione e i risultati di ogni istanza con trigger del processo pianificato su disco. Il valore di questo parametro determina il numero di risultati dell'istanza del processo salvato per il processo pianificato. Quando il numero di risultati dell'istanza del processo supera questo valore, Windows PowerShell elimina i risultati del processo meno recente per liberare spazio per i risultati dell'istanza del processo più recente.
La cronologia di esecuzione del processo e i risultati del processo vengono salvati in $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs\<JobName>\Output\<Timestamp>
directory nel computer in cui viene creato il processo. Per visualizzare la cronologia di esecuzione, usare il Get-Job
cmdlet . Per ottenere i risultati del processo, usare il Receive-Job
cmdlet .
Il parametro MaxResultCount imposta il valore della proprietà ExecutionHistoryLength del processo pianificato.
Per eliminare la cronologia di esecuzione corrente e i risultati del processo, usare il parametro ClearExecutionHistory .
Tipo: | Int32 |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Name
Specifica un nuovo nome per il processo pianificato e le istanze del processo pianificato. Il nome deve essere univoco nel computer locale.
Per identificare il processo pianificato da modificare, usare il parametro InputObject o inviare tramite pipe un processo pianificato da Get-ScheduledJob
a Set-ScheduledJob
.
Questo parametro non modifica i nomi delle istanze del processo su disco, ma solo le istanze di processo che vengono avviate dopo il completamento del comando.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-PassThru
Restituisce un oggetto che rappresenta l'elemento in uso. Per impostazione predefinita, il cmdlet non genera alcun output.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-RunAs32
Esegue il processo pianificato in un processo a 32 bit.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-RunEvery
Consente di specificare la frequenza con cui eseguire il processo. Ad esempio, usare questa opzione per eseguire un processo ogni 15 minuti.
Tipo: | TimeSpan |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-RunNow
Avvia immediatamente un processo, non appena viene eseguito il Set-ScheduledJob
cmdlet. Questo parametro evita di dover attivare Utilità di pianificazione per eseguire uno script di Windows PowerShell subito dopo la registrazione e non richiede agli utenti di creare un trigger che specifichi una data e un'ora di inizio.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-ScheduledJobOption
Imposta le opzioni per il processo pianificato. Immettere un oggetto ScheduledJobOptions , ad esempio quello creato usando il New-ScheduledJobOption
cmdlet o un valore di tabella hash.
È possibile impostare le opzioni per un processo pianificato quando si registra il processo pianificato oppure si usano i Set-ScheduledJobOption
cmdlet o Set-ScheduledJob
per impostare o modificare le opzioni.
Molte opzioni e i relativi valori predefiniti determinano se e quando viene eseguito un processo pianificato. Assicurarsi di esaminare queste opzioni prima di pianificare un processo. Per una descrizione delle opzioni di processo pianificate, inclusi i valori predefiniti, vedere New-ScheduledJobOption
.
Per inviare una tabella hash, usare le chiavi seguenti. Nella seguente tabella hash, le chiavi vengono visualizzate con i relativi valori predefiniti.
@{# 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 |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-ScriptBlock
Specifica i comandi eseguiti dal processo pianificato. Racchiudere i comandi tra parentesi graffe ({}
) per creare un blocco di script. Per specificare i valori predefiniti per i parametri di comando, usare il parametro ArgumentList .
Ogni Register-ScheduledJob
comando deve usare i parametri ScriptBlock o FilePath .
Tipo: | ScriptBlock |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Trigger
Specifica i trigger per il processo pianificato. Immettere uno o più oggetti ScheduledJobTrigger , ad esempio gli oggetti restituiti dal New-JobTrigger
cmdlet o una tabella hash di chiavi e valori del trigger di processo.
Un trigger di processo avvia automaticamente un processo pianificato in base a una pianificazione singola o ricorrente o quando si verifica un evento.
I trigger di processo sono facoltativi. È possibile aggiungere un trigger quando si crea il processo pianificato, usare i Add-JobTrigger
cmdlet o Set-ScheduledJob
per aggiungere trigger in un secondo momento oppure usare il Start-Job
cmdlet per avviare immediatamente il processo pianificato. È anche possibile creare e mantenere un processo pianificato senza alcun trigger di processo.
Per inviare una tabella hash, usare le chiavi seguenti.
@{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am"
(o qualsiasi stringa temporale valida); DaysOfWeek="Monday", "Wednesday"
(o qualsiasi combinazione di nomi dei giorni); Interval=2
(o qualsiasi intervallo di frequenza valido); RandomDelay="30minutes"
(o qualsiasi stringa intervallo di tempo valida); User="Domain1\User01"
(o qualsiasi utente valido; usato solo con il valore della frequenza AtLogon)
}
Tipo: | ScheduledJobTrigger[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe un processo pianificato a questo cmdlet.
Output
None
Per impostazione predefinita, questo cmdlet non restituisce alcun output.
Quando si usa il parametro PassThru , questo cmdlet restituisce il processo pianificato modificato.
Collegamenti correlati
- 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