Delen via


Set-ScheduledJob

Wijzigingen geplande taken.

Syntaxis

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 Set-ScheduledJob cmdlet 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, gebruikt u de cmdlet om de Get-ScheduledJob geplande taak op te halen. Sluis vervolgens de geplande taak door naar Set-ScheduledJob of sla deze op in een variabele en gebruik de parameter InputObject om de taak te identificeren. Gebruik de resterende parameters om Set-ScheduledJob de taakeigenschappen te wijzigen of de uitvoeringsgeschiedenis te wissen.

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

Met de parameter Trigger wordt Set-ScheduledJob een of meer taaktriggers toegevoegd waarmee de taak wordt gestart. De parameter Trigger is optioneel, dus u kunt triggers toevoegen wanneer u de geplande taak maakt, taaktriggers later toevoegen, de parameter RunNow toevoegen om de taak onmiddellijk te starten, de cmdlet gebruiken om de Start-Job taak onmiddellijk te starten of de geplande taak zonder trigger op te slaan als sjabloon voor andere taken.

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

Zie de onderwerpen Over geplande taken in de PSScheduledJob-module voor meer informatie over geplande taken. Importeer de PSScheduledJob-module 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

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

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

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

De tweede opdracht gebruikt de Get-ScheduledJob cmdlet om de geplande inventaristaak op te halen. Een pijplijnoperator (|) verzendt de geplande taak naar de Set-ScheduledJob cmdlet. De Set-ScheduledJob cmdlet gebruikt de scriptparameter om een nieuw script op te geven. Get-FullInventory.ps1 De opdracht gebruikt de parameter PassThru om de geplande taak na de wijziging te retourneren.

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

In dit voorbeeld worden de huidige uitvoeringsgeschiedenis en opgeslagen taakresultaten voor een geplande taak verwijderd.

Get-ScheduledJob BackupArchive | Set-ScheduledJob -ClearExecutionHistory

De opdracht gebruikt de Get-ScheduledJob cmdlet om de geplande BackupArchive-taak op te halen. Een pijplijnoperator (|) verzendt de taak naar de Set-ScheduledJob cmdlet om deze te wijzigen. De Set-ScheduledJob cmdlet 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 wijzigen op een externe computer

Met deze opdracht wordt het initialisatiescript gewijzigd in alle geplande taken op externe computers.

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

De opdracht gebruikt de Invoke-Command cmdlet 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 Set-ScheduledJob cmdlet, waardoor het initialisatiescript wordt SetForRun.ps1gewijzigd in .

Parameters

-ArgumentList

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

Type:Object[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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:

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

De standaardwaarde is Default. Zie AuthenticationMechanism Enumeration in de PowerShell SDK voor meer informatie over de waarden van deze parameter.

Let op

CredSSP-verificatie (Credential Security Support Provider), waarbij de referenties van de gebruiker worden doorgegeven aan een externe computer die moet worden geverifieerd, is ontworpen voor opdrachten waarvoor verificatie is vereist voor meer dan één resource, zoals toegang tot een externe netwerkshare. Dit mechanisme verhoogt het beveiligingsrisico van de externe bewerking. Als de externe computer is aangetast, kunnen de referenties die aan de computer worden doorgegeven, worden gebruikt om de netwerksessie te beheren.

Type:AuthenticationMechanism
Geaccepteerde waarden:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-ClearExecutionHistory

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

De uitvoeringsgeschiedenis van de taak en de taakresultaten worden opgeslagen met de geplande taak in de $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs map op de computer waarop de taak wordt gemaakt. Gebruik de cmdlet om de Get-Job uitvoeringsgeschiedenis te bekijken. Gebruik de Receive-Job cmdlet 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. Gebruik de parameter MaxResultCount om het aantal opgeslagen taakresultaten te beheren.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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 uit de Get-Credential cmdlet. Als u alleen een gebruikersnaam invoert, wordt u gevraagd om een wachtwoord.

Type:PSCredential
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-FilePath

Hiermee geeft u een script op dat door de geplande taak wordt uitgevoerd. Voer het pad in naar een .ps1-bestand op de lokale computer. 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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 door 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 primaire taakopdrachten 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-InputObject

Hiermee geeft u de geplande taak die 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 doorsluisen naar Set-ScheduledJob.

Als u meerdere geplande taken opgeeft, Set-ScheduledJob worden dezelfde wijzigingen aangebracht in alle taken.

Type:ScheduledJobDefinition
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-MaxResultCount

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

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

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

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

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

Type:Int32
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Name

Hiermee geeft u een nieuwe naam op 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 zijn gestart nadat deze opdracht is voltooid.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-PassThru

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

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-RunAs32

Hiermee wordt de geplande taak uitgevoerd in een 32-bits proces.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-RunNow

Start onmiddellijk een taak, zodra de Set-ScheduledJob cmdlet wordt uitgevoerd. Deze parameter elimineert de noodzaak om Task Scheduler te activeren om direct na de registratie een Windows PowerShell-script uit te voeren en vereist niet dat gebruikers een trigger maken die een begindatum en -tijd aangeeft.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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 New-ScheduledJobOption cmdlet of een hash-tabelwaarde.

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

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

Gebruik de volgende sleutels om een hash-tabel te verzenden. In de volgende hashtabel 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-ScriptBlock

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

Elke Register-ScheduledJob opdracht moet de scriptblock - of FilePath-parameters gebruiken.

Type:ScriptBlock
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Trigger

Hiermee geeft u de triggers voor de geplande taak. Voer een of meer ScheduledJobTrigger-objecten in, zoals de objecten die door de New-JobTrigger cmdlet worden geretourneerd, of een hash-tabel met taaktriggersleutels en -waarden.

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

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

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

@{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am" (of een geldige tijdtekenreeks); DaysOfWeek="Monday", "Wednesday" (of een combinatie van dagnamen); Interval=2 (of een geldig frequentie-interval); 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

ScheduledJobDefinition

U kunt een geplande taak doorsluisen naar deze cmdlet.

Uitvoerwaarden

None

Deze cmdlet retourneert standaard geen uitvoer.

ScheduledJobDefinition

Wanneer u de parameter PassThru gebruikt, retourneert deze cmdlet de geplande taak die deze heeft gewijzigd.