Delen via


Set-ScheduledJob

Wijzigingen in geplande taken.

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

De cmdlet Set-ScheduledJob wijzigt de eigenschappen van geplande taken, zoals de opdrachten die door de taken worden uitgevoerd of de referenties die nodig zijn om de taak uit te voeren. U kunt deze ook gebruiken om de uitvoeringsgeschiedenis van de geplande taak te wissen.

Als u deze cmdlet wilt gebruiken, begint u met de cmdlet Get-ScheduledJob om de geplande taak op te halen. Sluis vervolgens de geplande taak door naar Set-ScheduledJob of sla de taak op in een variabele en gebruik de parameter InputObject om de taak te identificeren. Gebruik de resterende parameters van Set-ScheduledJob om de taakeigenschappen te wijzigen of de uitvoeringsgeschiedenis te wissen.

Hoewel u Set-ScheduledJob kunt gebruiken om de triggers en opties van een geplande taak te wijzigen, bieden de cmdlets Add-JobTrigger, Set-JobTrigger en Set-ScheduledJobOption veel eenvoudigere manieren om deze taken uit te voeren. Gebruik de cmdlet Register-ScheduledJob om een nieuwe geplande taak te maken.

De triggerparameter van Set-ScheduledJob voegt een of meer taaktriggers toe waarmee de taak wordt gestart. De parameter Trigger is optioneel, dus u kunt triggers toevoegen wanneer u de geplande taak maakt, later taaktriggers toevoegen, de parameter RunNow toevoegen om de taak onmiddellijk te starten, de cmdlet Start-Job gebruiken om de taak onmiddellijk op elk gewenst moment te starten of de niet-geactiveerde geplande taak opslaan als sjabloon voor andere taken.

Set-ScheduledJob is een van een verzameling cmdlets voor taakplanning in de module PSScheduledJob die is opgenomen in Windows PowerShell.

Zie de onderwerpen Over in de module PSScheduledJob voor meer informatie over geplande taken. Importeer de module PSScheduledJob en typ: Get-Help about_Scheduled* of zie about_Scheduled_Jobs.

Deze cmdlet is geïntroduceerd in Windows PowerShell 3.0.

Voorbeelden

Voorbeeld 1: Het script wijzigen dat door een taak wordt uitgevoerd

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

In dit voorbeeld ziet u hoe u het script wijzigt dat wordt uitgevoerd in een geplande taak.

De eerste opdracht maakt gebruik van de cmdlet Get-ScheduledJob om de geplande inventaristaak op te halen. De uitvoer laat zien dat de taak het Get-Inventory.ps1 script uitvoert.

Deze opdracht is niet vereist; het is alleen opgenomen om het effect van de scriptwijziging weer te geven.

Voorbeeld 2: De uitvoeringsgeschiedenis van een geplande taak verwijderen

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

Met deze opdracht verwijdert u de huidige uitvoeringsgeschiedenis en de opgeslagen taakresultaten voor de geplande taak BackupArchive.

De opdracht maakt gebruik van de cmdlet Get-ScheduledJob om de geplande taak BackupArchive op te halen. Een pijplijnoperator (|) verzendt de taak naar de cmdlet Set-ScheduledJob om deze te wijzigen. De cmdlet Set-ScheduledJob gebruikt de parameter ClearExecutionHistory om de uitvoeringsgeschiedenis en opgeslagen resultaten te verwijderen.

Zie about_Scheduled_Jobs voor meer informatie over de uitvoeringsgeschiedenis en opgeslagen taakresultaten van geplande taken.

Voorbeeld 3: Geplande taken op een externe computer wijzigen

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

Met deze opdracht wijzigt u het initialisatiescript in alle geplande taken op de Server01- en Server02-computers.

De opdracht maakt gebruik van de cmdlet Invoke-Command om een opdracht uit te voeren op de Server01- en Server02-computers.

De externe opdracht begint met een Get-ScheduledJob opdracht waarmee alle geplande taken op de computer worden uitgevoerd. De geplande taken worden doorgesluisd naar de cmdlet Set-ScheduledJob , waarmee het initialisatiescript wordt gewijzigd in SetForRun.ps1.

Parameters

-ArgumentList

Hiermee geeft u waarden op voor de parameters van het script dat is opgegeven door de FilePath parameter of voor de opdracht die is opgegeven door de ScriptBlock parameter.

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

-Authentication

Hiermee geeft u het mechanisme op dat wordt gebruikt om de referenties van de gebruiker te verifiëren. De aanvaardbare waarden voor deze parameter zijn:

  • Standaard
  • Basic
  • Credssp
  • Samenvatting
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

De standaardwaarde is Standaard. Zie AuthenticationMechanism Enumeration in de MSDN-bibliotheek voor meer informatie over de waarden van deze parameter.

Waarschuwing: Verificatie van referentiebeveiligingsondersteuningsprovider (CredSSP), waarbij de referenties van de gebruiker worden doorgegeven aan een externe computer om te worden geverifieerd, is ontworpen voor opdrachten waarvoor verificatie op meer dan één resource is vereist, zoals toegang tot een externe netwerkshare. Dit mechanisme verhoogt het beveiligingsrisico van de externe bewerking. Als de externe computer is gecompromitteerd, kunnen de referenties die aan de externe computer worden doorgegeven, worden gebruikt om de netwerksessie te beheren.

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

Hiermee verwijdert u de huidige uitvoeringsgeschiedenis en de opgeslagen resultaten van de geplande taak.

De taakuitvoeringsgeschiedenis en taakresultaten worden samen met de geplande taak opgeslagen in de map $home\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs op de computer waarop de taak is gemaakt. Gebruik de cmdlet Get-Job om de uitvoeringsgeschiedenis te bekijken. Gebruik de cmdlet Receive-Job om de taakresultaten op te halen.

Deze parameter heeft geen invloed op de gebeurtenissen die Task Scheduler schrijft naar de Windows-gebeurtenislogboeken en zorgt ervoor dat Windows PowerShell geen taakresultaten opslaat. Als u het aantal taakresultaten wilt beheren dat wordt opgeslagen, gebruikt u de parameter MaxResultCount .

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

-Credential

Hiermee geeft u een gebruikersaccount op dat gemachtigd is om de geplande taak uit te voeren. Standaard is dit de huidige gebruiker.

Typ een gebruikersnaam, zoals User01 of Domain01\User01, of voer een PSCredential-object in, zoals een object van de cmdlet Get-Credential. Als u alleen een gebruikersnaam invoert, wordt u gevraagd om een wachtwoord.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FilePath

Hiermee geeft u een script op dat door de geplande taak wordt uitgevoerd. Voer het pad naar een .ps1-bestand op de lokale computer in. Als u standaardwaarden voor de scriptparameters wilt opgeven, gebruikt u de parameter ArgumentList . Elke geplande taak moet een ScriptBlock - of FilePath-waarde hebben.

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

-InitializationScript

Hiermee geeft u het volledig gekwalificeerde pad naar een Windows PowerShell script (.ps1). Het initialisatiescript wordt uitgevoerd in de sessie die is gemaakt voor de achtergrondtaak vóór de opdrachten die zijn opgegeven met de parameter ScriptBlock of het script dat is opgegeven door de FilePath-parameter . U kunt het initialisatiescript gebruiken om de sessie te configureren, zoals het toevoegen van bestanden, functies of aliassen, het maken van mappen of het controleren op vereisten.

Als u een script wilt opgeven waarmee de opdrachten van de primaire taak worden uitgevoerd, gebruikt u de parameter FilePath .

Als het initialisatiescript een fout genereert, inclusief een niet-afsluitfout, wordt het huidige exemplaar van de geplande taak niet uitgevoerd en is de status mislukt.

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

-InputObject

Hiermee geeft u de geplande taak moet worden gewijzigd. Voer een variabele in die ScheduledJobDefinition-objecten bevat of typ een opdracht of expressie waarmee ScheduledJobDefinition-objecten worden opgehaald, zoals een Get-ScheduledJob opdracht. U kunt ook een ScheduledJobDefinition-object doorspeken naar Set-ScheduledJob.

Als u meerdere geplande taken opgeeft, brengt Set-ScheduledJob dezelfde wijzigingen aan in alle taken.

Type:ScheduledJobDefinition
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-MaxResultCount

Hiermee geeft u op hoeveel taakresultaatvermeldingen worden onderhouden voor de geplande taak. De standaardwaarde is 32.

Windows PowerShell slaat de uitvoeringsgeschiedenis en resultaten van elk geactiveerd exemplaar van de geplande taak op schijf op. De waarde van deze parameter bepaalt het aantal resultaten van het taakexemplaar dat wordt opgeslagen voor deze geplande taak. Wanneer het aantal resultaten van het taakexemplaar deze waarde overschrijdt, verwijdert Windows PowerShell de resultaten van het oudste taakexemplaar om ruimte te maken voor de resultaten van het nieuwste taakexemplaar.

De taakuitvoeringsgeschiedenis en taakresultaten worden opgeslagen in de mappen $home\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs\<JobName>\Output\<Timestamp> op de computer waarop de taak is gemaakt. Gebruik de cmdlet Get-Job om de uitvoeringsgeschiedenis te bekijken. Gebruik de cmdlet Receive-Job om de taakresultaten op te halen.

De parameter MaxResultCount stelt de waarde in van de eigenschap ExecutionHistoryLength van de geplande taak.

Als u de huidige uitvoeringsgeschiedenis en taakresultaten wilt verwijderen, gebruikt u de parameter ClearExecutionHistory .

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

-Name

Hiermee geeft u een nieuwe naam voor de geplande taak en exemplaren van de geplande taak. De naam moet uniek zijn op de lokale computer.

Als u de geplande taak wilt identificeren die moet worden gewijzigd, gebruikt u de parameter InputObject of sluist u een geplande taak van Get-ScheduledJob naar Set-ScheduledJob.

Met deze parameter worden de namen van taakexemplaren op schijf niet gewijzigd. Dit is alleen van invloed op taakexemplaren die worden gestart nadat deze opdracht is voltooid.

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

-PassThru

Retourneert een object dat het item vertegenwoordigt waarmee u werkt. Deze cmdlet genereert standaard geen uitvoer.

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

-RunAs32

De geplande taak wordt uitgevoerd in een 32-bits proces.

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

-RunEvery

Wordt gebruikt om op te geven hoe vaak de taak moet worden uitgevoerd. Gebruik deze optie bijvoorbeeld om elke 15 minuten een taak uit te voeren.

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

-RunNow

Een taak wordt onmiddellijk gestart zodra de cmdlet Set-ScheduledJob wordt uitgevoerd. Met deze parameter hoeft Task Scheduler niet direct na de registratie een Windows PowerShell script uit te voeren en hoeven gebruikers geen trigger te maken die een begindatum en -tijd opgeeft.

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

-ScheduledJobOption

Hiermee stelt u opties voor de geplande taak in. Voer een ScheduledJobOptions-object in, zoals een object dat u maakt met behulp van de cmdlet New-ScheduledJobOption of een hashtabelwaarde.

U kunt opties instellen voor een geplande taak wanneer u de geplande taak registreert of de cmdlets Set-ScheduledJobOption of Set-ScheduledJob gebruikt om opties in te stellen of te wijzigen.

Veel van de opties en de bijbehorende standaardwaarden bepalen of en wanneer een geplande taak wordt uitgevoerd. Zorg ervoor dat u deze opties bekijkt voordat u een taak plant. Zie New-ScheduledJobOption voor een beschrijving van de opties voor geplande taken, inclusief de standaardwaarden.

Gebruik de volgende sleutels om een hash-tabel te verzenden. In de volgende hash-tabel worden de sleutels weergegeven met hun standaardwaarden.

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

Hiermee geeft u de opdrachten op die de geplande taak wordt uitgevoerd. Plaats de opdrachten tussen accolades ( { } ) om een scriptblok te maken. Als u standaardwaarden voor opdrachtparameters wilt opgeven, gebruikt u de parameter ArgumentList .

Voor elke Register-ScheduledJob opdracht moet de parameters ScriptBlock of FilePath worden gebruikt.

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

-Trigger

Hiermee geeft u de triggers voor de geplande taak. Voer een of meer ScheduledJobTrigger-objecten in, zoals de objecten die de cmdlet New-JobTrigger retourneert, of een hashtabel met taaktriggersleutels en -waarden.

Een taaktrigger start een geplande taak automatisch op een eenmalige of terugkerende geplande of wanneer een gebeurtenis plaatsvindt.

Taaktriggers zijn optioneel. U kunt een trigger toevoegen wanneer u de geplande taak maakt, de cmdlets Add-JobTrigger of Set-ScheduledJob gebruiken om later triggers toe te voegen of de cmdlet Start-Job gebruiken om de geplande taak onmiddellijk te starten. U kunt ook een geplande taak zonder taaktriggers maken en onderhouden.

Gebruik de volgende sleutels om een hash-tabel te verzenden.

@{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am" (of een geldige tijdreeks); DaysOfWeek="Monday", "Wednesday" (of een combinatie van dagnamen); Interval=2 (of een geldig frequentieinterval); RandomDelay="30minutes" (of een geldige tijdspannetekenreeks); User="Domain1\User01" (of een geldige gebruiker; alleen gebruikt met de AtLogon-frequentiewaarde)

}

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

Invoerwaarden

ScheduledJobDefinition

U kunt geplande taken doorspezen naar Set-ScheduledJob.

Uitvoerwaarden

None or Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Als u de parameter Passthru gebruikt, retourneert Set-ScheduledJob de geplande taak die is gewijzigd. Anders genereert deze cmdlet geen uitvoer.