Dela via


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 i Set-ScheduledJob för att ändra jobbegenskaperna eller rensa körningshistoriken.

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

Utlösarparameternför Set-ScheduledJob 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 direkt 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 avsnittet Om i modulen PSScheduledJob. Importera PSScheduledJob-modulen 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

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 bara 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örningshistoriken 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 för skriptet som anges av FilePath-parametern eller för kommandot som anges av parametern ScriptBlock .

Type:Object[]
Position:Named
Default value:None
Required:False
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:

  • Standardvärde
  • Basic
  • Credssp
  • Sammandrag
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

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.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:Default
Required:False
Accept pipeline input:False
Accept wildcard characters: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 .

Type:SwitchParameter
Position:Named
Default value:False
Required:False
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:Current user
Required:False
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
Required:False
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 Misslyckad.

Type:ScriptBlock
Position:Named
Default value:None
Required:False
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 gör Set-ScheduledJob samma ändringar i alla jobb.

Type:ScheduledJobDefinition
Position:0
Default value:None
Required:True
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-katalogerna> 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.

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:32
Required:False
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
Required:False
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:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAs32

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunNow

Startar ett jobb omedelbart när 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
Required:False
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 cmdletarna Set-ScheduledJobOption 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:ScheduledJobOptions
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 .

Type:ScriptBlock
Position:Named
Default value:None
Required:False
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 cmdletarna 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 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:ScheduledJobTrigger[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

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.