Dela via


Set-ScheduledJob

Ändrar schemalagda jobb.

Syntax

ScriptBlock (Standard)

Set-ScheduledJob
    [-InputObject] <ScheduledJobDefinition>
    [-Name <String>]
    [-ScriptBlock <ScriptBlock>]
    [-Trigger <ScheduledJobTrigger[]>]
    [-InitializationScript <ScriptBlock>]
    [-RunAs32]
    [-Credential <PSCredential>]
    [-Authentication <AuthenticationMechanism>]
    [-ScheduledJobOption <ScheduledJobOptions>]
    [-MaxResultCount <Int32>]
    [-PassThru]
    [-ArgumentList <Object[]>]
    [-RunNow]
    [-RunEvery <TimeSpan>]
    [<CommonParameters>]

FilePath

Set-ScheduledJob
    [-InputObject] <ScheduledJobDefinition>
    [-Name <String>]
    [-FilePath <String>]
    [-Trigger <ScheduledJobTrigger[]>]
    [-InitializationScript <ScriptBlock>]
    [-RunAs32]
    [-Credential <PSCredential>]
    [-Authentication <AuthenticationMechanism>]
    [-ScheduledJobOption <ScheduledJobOptions>]
    [-MaxResultCount <Int32>]
    [-PassThru]
    [-ArgumentList <Object[]>]
    [-RunNow]
    [-RunEvery <TimeSpan>]
    [<CommonParameters>]

Execution

Set-ScheduledJob
    [-InputObject] <ScheduledJobDefinition>
    [-ClearExecutionHistory]
    [-PassThru]
    [<CommonParameters>]

Description

Cmdleten Set-ScheduledJob ändrar egenskaperna för schemalagda jobb, till exempel kommandona 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 för Set-ScheduledJob- 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, ger cmdletarna Add-JobTrigger, Set-JobTrigger och 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.

Parametern Trigger för Set-ScheduledJob lägger till en eller flera jobbutlösare som startar jobbet. Parametern Trigger ä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 parametern RunNow 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 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 Avsnittet om i modulen PSScheduledJob. Importera modulen PSScheduledJob och skriv sedan: Get-Help about_Scheduled* eller se about_Scheduled_Jobs.

Den här cmdleten introducerades i Windows PowerShell 3.0.

Exempel

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

PS C:\> Get-ScheduledJob -Name "Inventory"
Id         Name            Triggers        Command                                  Enabled
--         ----            --------        -------                                  -------
1          Inventory       {1}             C:\Scripts\Get-Inventory.ps1             True

The second command uses the Get-ScheduledJob cmdlet to get the Inventory scheduled job. A pipeline operator (|) sends the scheduled job to the **Set-ScheduledJob** cmdlet. The **Set-ScheduledJob** cmdlet uses the *Script* parameter to specify a new script, Get-FullInventory.ps1. The command uses the *Passthru* parameter to return the scheduled job after the change.
PS C:\> 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 här exemplet visar hur du ändrar skriptet som körs i ett schemalagt jobb.

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

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

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

PS C:\> Get-ScheduledJob BackupArchive | Set-ScheduledJob -ClearExecutionHistory

Det här kommandot tar bort den aktuella körningshistoriken och sparade jobbresultat för det schemalagda jobbet BackupArchive.

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

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

Det här kommandot ändrar initieringsskriptet i alla schemalagda jobb på Server01- och Server02-datorerna.

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

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, som ändrar initieringsskriptet till SetForRun.ps1.

Parametrar

-ArgumentList

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

Parameteregenskaper

Typ:

Object[]

Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

ScriptBlock
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
FilePath
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Authentication

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

  • Förinställning
  • Grundläggande
  • Credssp
  • Sammanfattning
  • Kerberos
  • Förhandla
  • FörhandlaMedImplicitBehörighet

Standardvärdet är Standard. Mer information om värdena för den här parametern finns i AuthenticationMechanism Enumeration i MSDN-biblioteket.

Varning! CredSSP-autentisering (CredSSP), där användarens autentiseringsuppgifter skickas till en fjärrdator som ska autentiseras, är utformad för kommandon som kräver autentisering på mer ä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.

Parameteregenskaper

Typ:AuthenticationMechanism
Standardvärde:Default
Godkända värden:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

ScriptBlock
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
FilePath
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-ClearExecutionHistory

Tar bort den aktuella körningshistoriken och det sparade resultatet av det schemalagda jobbet.

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

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.

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

Execution
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Credential

Anger ett användarkonto som har behörighet att köra det schemalagda jobbet. Standardvärdet ä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 Get-Credential cmdlet. Om du bara anger ett användarnamn uppmanas du att ange ett lösenord.

Parameteregenskaper

Typ:PSCredential
Standardvärde:Current user
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

ScriptBlock
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
FilePath
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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.

Parameteregenskaper

Typ:String
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

FilePath
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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 innan kommandona som anges av parametern ScriptBlock eller skriptet som anges av parametern FilePath. 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 förutsättningar.

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 Misslyckad.

Parameteregenskaper

Typ:ScriptBlock
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

ScriptBlock
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
FilePath
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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 gör Set-ScheduledJob samma ändringar i alla jobb.

Parameteregenskaper

Typ:ScheduledJobDefinition
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:0
Obligatorisk:True
Värde från pipeline:True
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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å datorn där jobbet skapas. Om du vill se körningshistoriken använder du cmdleten Get-Job. Använd cmdleten Receive-Job för att hämta jobbresultatet.

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

Om du vill ta bort den aktuella körningshistoriken och jobbresultaten använder du parametern ClearExecutionHistory.

Parameteregenskaper

Typ:Int32
Standardvärde:32
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

ScriptBlock
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
FilePath
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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. Det påverkar endast jobbinstanser som startas när det här kommandot har slutförts.

Parameteregenskaper

Typ:String
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

ScriptBlock
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
FilePath
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-PassThru

Returnerar ett objekt som representerar det objekt som du arbetar med. Som standard genererar den här cmdleten inga utdata.

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-RunAs32

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

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

ScriptBlock
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
FilePath
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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.

Parameteregenskaper

Typ:TimeSpan
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

ScriptBlock
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
FilePath
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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.

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

ScriptBlock
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
FilePath
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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 hashtabellvärde.

Du kan ange alternativ för ett schemalagt jobb när du registrerar det schemalagda jobbet eller använder Set-ScheduledJobOption eller Set-ScheduledJob cmdlets 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 de schemalagda jobbalternativen, 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}

Parameteregenskaper

Typ:ScheduledJobOptions
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

ScriptBlock
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
FilePath
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-ScriptBlock

Anger de kommandon som det schemalagda jobbet körs på. Omslut kommandona i 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.

Parameteregenskaper

Typ:ScriptBlock
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

ScriptBlock
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Trigger

Anger utlösarna för det schemalagda jobbet. Ange ett eller flera ScheduledJobTrigger objekt, till exempel de objekt som New-JobTrigger cmdlet returnerar eller en hashtabell 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 cmdleten Add-JobTrigger 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 någon giltig tidssträng); DaysOfWeek="Monday", "Wednesday" (eller någon kombination av dagnamn); Interval=2 (eller något giltigt frekvensintervall); RandomDelay="30minutes" (eller någon giltig tidsintervallsträng); User="Domain1\User01" (eller en giltig användare som endast används med AtLogon-frekvensvärdet)

}

Parameteregenskaper

Typ:

ScheduledJobTrigger[]

Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

ScriptBlock
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
FilePath
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

CommonParameters

Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.

Indata

ScheduledJobDefinition

Du kan skicka schemalagda jobb till Set-ScheduledJob.

Utdata

None or Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Om du använder parametern Passthru returnerar Set-ScheduledJob det schemalagda jobb som ändrades. Annars genererar den här cmdleten inga utdata.