Set-ScheduledJob

Ändrar schemalagda jobb.

Syntax

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>]

Description

Cmdleten Set-ScheduledJob ändrar egenskaperna för schemalagda jobb, till exempel de kommandon som jobben kör eller de autentiseringsuppgifter som krävs för att köra jobbet. Du kan också använda den för att rensa körningshistoriken för det schemalagda jobbet.

Om du vill använda den här cmdleten börjar du med att använda cmdleten Get-ScheduledJob för att hämta det schemalagda jobbet. Skicka sedan det schemalagda jobbet till Set-ScheduledJob eller spara jobbet i en variabel och använd parametern InputObject för att identifiera jobbet. Använd de återstående parametrarna Set-ScheduledJob för för att ändra jobbegenskaperna eller rensa körningshistoriken.

Även om du kan använda Set-ScheduledJob för att ändra utlösare och alternativ för ett schemalagt jobb, Add-JobTriggerger cmdletarna , Set-JobTriggeroch Set-ScheduledJobOption mycket enklare sätt att utföra dessa uppgifter. Om du vill skapa ett nytt schemalagt jobb använder du cmdleten Register-ScheduledJob .

UtlösarparameternSet-ScheduledJob för lägger till en eller flera jobbutlösare som startar jobbet. Parametern Utlösare är valfri, så du kan lägga till utlösare när du skapar det schemalagda jobbet, lägga till jobbutlösare senare, lägga till runnow-parametern för att starta jobbet omedelbart, använda cmdleten Start-Job för att starta jobbet omedelbart när som helst eller spara det origgade schemalagda jobbet som en mall för andra jobb.

Set-ScheduledJobär en av en samling cmdletar för jobbschemaläggning i modulen PSScheduledJob som ingår i Windows PowerShell.

Mer information om schemalagda jobb finns i Om ämnen i modulen PSScheduledJob. Importera modulen PSScheduledJob och skriv sedan: Get-Help about_Scheduled* eller se about_Scheduled_Jobs.

Denna cmdlet introducerades i Windows PowerShell 3.0.

Exempel

Exempel 1: Ändra skriptet som ett jobb kör

Det här exemplet visar hur du ändrar skriptet som körs i ett schemalagt jobb.

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

Det första kommandot använder cmdleten Get-ScheduledJob för att hämta det schemalagda inventeringsjobbet. Utdata visar att jobbet kör skriptet Get-Inventory.ps1.

Det andra kommandot använder cmdleten Get-ScheduledJob för att hämta det schemalagda inventeringsjobbet. En pipelineoperator (|) skickar det schemalagda jobbet till cmdleten Set-ScheduledJob . Cmdleten Set-ScheduledJob använder parametern Script för att ange ett nytt skript, Get-FullInventory.ps1. Kommandot använder parametern Passthru för att returnera det schemalagda jobbet efter ändringen.

Det här kommandot krävs inte. den ingår bara för att visa effekten av skriptändringen.

Exempel 2: Ta bort körningshistoriken för ett schemalagt jobb

Det här exemplet tar bort den aktuella körningshistoriken och sparade jobbresultat för ett schemalagt jobb.

Get-ScheduledJob BackupArchive | Set-ScheduledJob -ClearExecutionHistory

Kommandot använder cmdleten Get-ScheduledJob för att hämta det schemalagda jobbet BackupArchive. En pipelineoperator (|) skickar jobbet till cmdleten Set-ScheduledJob för att ändra det. Cmdleten Set-ScheduledJob använder parametern ClearExecutionHistory för att ta bort körningshistoriken och sparade resultat.

Mer information om körningshistorik och sparade jobbresultat för schemalagda jobb finns i about_Scheduled_Jobs.

Exempel 3: Ändra schemalagda jobb på en fjärrdator

Det här kommandot ändrar initieringsskriptet i alla schemalagda jobb på fjärrdatorer.

Invoke-Command -Computer "Server01, Server02" -ScriptBlock {Get-ScheduledJob |
    Set-ScheduledJob -InitializationScript \\SrvA\Scripts\SetForRun.ps1}

Kommandot använder cmdleten Invoke-Command för att köra ett kommando på datorerna Server01 och Server02.

Fjärrkommandot börjar med ett Get-ScheduledJob kommando som hämtar alla schemalagda jobb på datorn. De schemalagda jobben skickas till cmdleten Set-ScheduledJob , vilket ändrar initieringsskriptet till SetForRun.ps1.

Parametrar

-ArgumentList

Anger värden för parametrarna för skriptet som anges av FilePath-parametern eller för kommandot som anges av parametern ScriptBlock .

Type:Object[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Authentication

Anger den mekanism som används för att autentisera användarens autentiseringsuppgifter. De acceptabla värdena för den här parametern är:

  • Default
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

Standardvärdet är Default. Mer information om värdena för den här parametern finns i AuthenticationMechanism Enumeration i PowerShell SDK.

Varning

CredSSP-autentisering (Credential Security Support Provider), där användarens autentiseringsuppgifter skickas till en fjärrdator som ska autentiseras, är utformad för kommandon som kräver autentisering på fler än en resurs, till exempel åtkomst till en fjärrnätverksresurs. Den här mekanismen ökar säkerhetsrisken för fjärråtgärden. Om fjärrdatorn komprometteras kan de autentiseringsuppgifter som skickas till den användas för att styra nätverkssessionen.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-ClearExecutionHistory

Tar bort den aktuella körningshistoriken och de sparade resultaten för det schemalagda jobbet.

Jobbkörningshistoriken och jobbresultaten sparas med det schemalagda jobbet i $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs katalogen på den dator där jobbet skapas. Om du vill se körningshistoriken använder du cmdleten Get-Job . Använd cmdleten för att hämta jobbresultatet Receive-Job .

Den här parametern påverkar inte de händelser som Schemaläggaren skriver till Windows-händelseloggarna och hindrar inte Windows PowerShell från att spara jobbresultat. Om du vill hantera antalet jobbresultat som sparas använder du parametern MaxResultCount .

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

-Credential

Anger ett användarkonto som har behörighet att köra det schemalagda jobbet. Standard är den aktuella användaren.

Ange ett användarnamn, till exempel User01 eller Domain01\User01, eller ange ett PSCredential-objekt , till exempel ett från cmdleten Get-Credential . Om du bara anger ett användarnamn uppmanas du att ange ett lösenord.

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

-FilePath

Anger ett skript som det schemalagda jobbet körs på. Ange sökvägen till en .ps1 fil på den lokala datorn. Om du vill ange standardvärden för skriptparametrarna använder du parametern ArgumentList . Varje schemalagt jobb måste ha antingen ett ScriptBlock - eller FilePath-värde .

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

-InitializationScript

Anger den fullständigt kvalificerade sökvägen till ett Windows PowerShell skript (.ps1). Initieringsskriptet körs i sessionen som skapas för bakgrundsjobbet före de kommandon som anges av parametern ScriptBlock eller skriptet som anges av FilePath-parametern . Du kan använda initieringsskriptet för att konfigurera sessionen, till exempel lägga till filer, funktioner eller alias, skapa kataloger eller söka efter krav.

Om du vill ange ett skript som kör de primära jobbkommandona använder du parametern FilePath .

Om initieringsskriptet genererar ett fel, inklusive ett icke-avslutande fel, körs inte den aktuella instansen av det schemalagda jobbet och dess status är Misslyckades.

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

-InputObject

Anger det schemalagda jobb som ska ändras. Ange en variabel som innehåller ScheduledJobDefinition-objekt eller skriv ett kommando eller uttryck som hämtar ScheduledJobDefinition-objekt , till exempel ett Get-ScheduledJob kommando. Du kan också skicka ett ScheduledJobDefinition-objekt till Set-ScheduledJob.

Om du anger flera schemalagda jobb Set-ScheduledJob gör du samma ändringar i alla jobb.

Type:Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-MaxResultCount

Anger hur många jobbresultatposter som underhålls för det schemalagda jobbet. Standardvärdet är 32.

Windows PowerShell sparar körningshistoriken och resultaten för varje utlöst instans av det schemalagda jobbet på disken. Värdet för den här parametern avgör antalet jobbinstansresultat som sparas för det här schemalagda jobbet. När antalet jobbinstansresultat överskrider det här värdet tar Windows PowerShell bort resultatet från den äldsta jobbinstansen för att göra plats för resultatet av den senaste jobbinstansen.

Jobbkörningshistoriken och jobbresultaten sparas i$HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs\<JobName>\Output\<Timestamp> kataloger på den dator där jobbet skapas. Om du vill se körningshistoriken använder du cmdleten Get-Job . Använd cmdleten för att hämta jobbresultatet Receive-Job .

Parametern MaxResultCount anger värdet för egenskapen ExecutionHistoryLength för det schemalagda jobbet.

Om du vill ta bort aktuell körningshistorik och jobbresultat använder du parametern ClearExecutionHistory .

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

-Name

Anger ett nytt namn för det schemalagda jobbet och instanserna av det schemalagda jobbet. Namnet måste vara unikt på den lokala datorn.

Om du vill identifiera det schemalagda jobb som ska ändras använder du parametern InputObject eller skicka ett schemalagt jobb från Get-ScheduledJob till Set-ScheduledJob.

Den här parametern ändrar inte namnen på jobbinstanser på disken. Den påverkar endast jobbinstanser som startas när det här kommandot har slutförts.

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

-PassThru

Returnerar ett objekt som representerar det objekt som du arbetar med. Som standard genererar denna cmdlet inga utdata.

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

-RunAs32

Kör det schemalagda jobbet i en 32-bitarsprocess.

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

-RunEvery

Används för att ange hur ofta jobbet ska köras. Använd till exempel det här alternativet för att köra ett jobb var 15:e minut.

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

-RunNow

Startar ett jobb omedelbart så snart cmdleten Set-ScheduledJob körs. Den här parametern eliminerar behovet av att utlösa Schemaläggaren för att köra ett Windows PowerShell skript omedelbart efter registreringen och kräver inte att användarna skapar en utlösare som anger ett startdatum och en starttid.

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

-ScheduledJobOption

Anger alternativ för det schemalagda jobbet. Ange ett ScheduledJobOptions-objekt , till exempel ett objekt som du skapar med hjälp av cmdleten New-ScheduledJobOption eller ett hash-tabellvärde.

Du kan ange alternativ för ett schemalagt jobb när du registrerar det schemalagda jobbet eller använder Set-ScheduledJobOption cmdletarna eller Set-ScheduledJob för att ange eller ändra alternativ.

Många av alternativen och deras standardvärden avgör om och när ett schemalagt jobb körs. Se till att granska de här alternativen innan du schemalägger ett jobb. En beskrivning av alternativen för schemalagt jobb, inklusive standardvärdena, finns i New-ScheduledJobOption.

Om du vill skicka en hash-tabell använder du följande nycklar. I följande hash-tabell visas nycklarna med sina standardvärden.

@{# 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}

Type:Microsoft.PowerShell.ScheduledJob.ScheduledJobOptions
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-ScriptBlock

Anger de kommandon som det schemalagda jobbet körs på. Omslut kommandona inom klammerparenteser ({}) för att skapa ett skriptblock. Om du vill ange standardvärden för kommandoparametrar använder du parametern ArgumentList .

Varje Register-ScheduledJob kommando måste använda parametrarna ScriptBlock eller FilePath .

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

-Trigger

Anger utlösare för det schemalagda jobbet. Ange ett eller flera ScheduledJobTrigger-objekt , till exempel de objekt som cmdleten New-JobTrigger returnerar, eller en hash-tabell med jobbutlösarnycklar och värden.

En jobbutlösare startar ett schemalagt jobb automatiskt på en engångs- eller återkommande schemalagd eller när en händelse inträffar.

Jobbutlösare är valfria. Du kan lägga till en utlösare när du skapar det schemalagda jobbet, använda Add-JobTrigger cmdletarna eller Set-ScheduledJob för att lägga till utlösare senare eller använda cmdleten Start-Job för att starta det schemalagda jobbet omedelbart. Du kan också skapa och underhålla ett schemalagt jobb som inte har några jobbutlösare.

Om du vill skicka en hash-tabell använder du följande nycklar.

@{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am" (eller en giltig tidssträng); DaysOfWeek="Monday", "Wednesday" (eller någon kombination av dagnamn); Interval=2 (eller ett giltigt frekvensintervall); RandomDelay="30minutes" (eller en giltig tidsintervallsträng); User="Domain1\User01" (eller en giltig användare; används endast med AtLogon-frekvensvärdet)

}

Type:Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Indata

Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Du kan skicka schemalagda jobb till Set-ScheduledJob.

Utdata

None or Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Om du använder parametern Set-ScheduledJobPassthru returnerar det schemalagda jobb som ändrades. Annars genererar denna cmdlet inga utdata.