> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell-universal/da/automatisering/schedules.md).

# Tidsplaner

Planlæg PowerShell Universal-scripts med enkle intervaller, CRON-udtryk, engangskørsler eller kontinuerlige jobs, herunder Run As-konti og betingelser.

Tildel tidsplaner til scripts for at definere frekvens og andre parametre for et script, f.eks. Run As-legitimationsoplysninger.

{% hint style="info" %}
Tidsplaner gemmes i konfigurationsfilen `schedules.ps1`.
{% endhint %}

## Planlægning af et job

For at planlægge et job skal De gå til **Run > Schedules** og klikke på knappen New Schedule. For at planlægge et script skal De gå til scriptets side og klikke på Schedule.

De kan definere tidsplaner ud fra enkle valg som Every Minute eller Every Hour, eller De kan selv definere CRON-udtryk for mere konfigurerbare tidsplaner. De kan også køre One Time-tidsplaner, der kører én gang på en senere dato.

De kan også definere, under hvilken bruger det planlagte job kører, samt hvilken PowerShell-version det bruger.

### Simple tidsplaner

Enkle tidsplaner er i virkeligheden blot hjælpere til forskellige standard-CRON-tidsplaner. Når De vælger en, definerer den en CRON-tidsplan for Deres script.

### CRON

CRON-tidsplaner bruger CRON-udtryk til at definere tidsplaner. PowerShell Universal benytter et bibliotek kaldet Cronos. For flere eksempler på gyldige udtryk, [klik her](https://github.com/HangfireIO/Cronos).

Nogle eksempler på grundlæggende CRON-udtryk vises nedenfor.

| Udtryk               | Beskrivelse                                                                       |
| -------------------- | --------------------------------------------------------------------------------- |
| `* * * * *`          | Hvert minut                                                                       |
| `0 0 1 * *`          | Ved midnat, på dag 1 i hver måned                                                 |
| `*/5 * * * *`        | Hvert 5. minut                                                                    |
| `30,45-15/2 1 * * *` | Hvert 2. minut fra 1:00 AM til 01:15 AM og fra 1:45 AM til 1:59 AM og kl. 1:30 AM |
| `0 0 * * MON-FRI`    | Kl. 00:00, mandag til fredag                                                      |

### One-Time

Engangstidsplaner vil køre én gang i fremtiden. De kan vælge tidspunkt og dag for, hvornår de skal køre.

### Kontinuerlig

Kontinuerlige tidsplaner kører igen og igen. De kan definere en forsinkelse mellem hver planlagt jobkørsel.

## Parametre

Tidsplaner understøtter angivelse af parametre for scripts. Hvis De for eksempel har et script, der accepterer en parameter, kan De vælge at overføre en værdi til parameteren i tidsplanen.

```powershell
param($UserName)

$UserName
```

I modalen til at definere tidsplanen kan De angive parameterværdien.

Når De redigerer tidsplaner fra PowerShell, kan De definere parametrene på cmdletten `New-PSUSchedule`. Denne cmdlet accepterer en hashtable, der repræsenterer scriptets parametre, så De kan sende værdierne ind til Deres tidsplan.

```powershell
New-PSUSchedule -Script "MyScript.ps1" -Cron '* * * * *' -Parameters @{ UserName = 'adam' }
```

## Miljøer

Når De opretter en tidsplan, kan De angive det [miljø](/powershell-universal/da/config/environments.md), som Deres job skal køre i. Som standard bruges standardmiljøet. De kan definere et miljø i brugergrænsefladen ved hjælp af rullelisten Environment. De kan definere et miljø ved hjælp af parameteren `-Environment` i `New-PSUSchedule`.

```powershell
New-PSUSchedule -Script "MyScript.ps1" -Cron '* * * * *' -Environment '7.1'
```

## Run As

De kan definere, hvilken bruger tidsplanen skal køres som, ved hjælp af vælgeren Run As i brugergrænsefladen. Vælgeren Run As indeholder en liste over PSCredential-[variabler](/powershell-universal/da/platform/variables.md), som De har defineret. De skal definere en PSCredential-variabel, før vælgeren Run As er synlig. Som standard kører planlagte jobs under legitimationsoplysningerne for den bruger, der kører PowerShell Universal.

De kan definere en Run As-bruger i et script ved hjælp af parameteren `-Credential`. Værdien skal være navnet på den variabel, der indeholder Deres legitimationsoplysning.

```powershell
New-PSUSchedule -Script "MyScript.ps1" -Cron '* * * * *' -Credential 'MyUser'
```

## Computer

De kan vælge den computer eller de computere, som tidsplanen skal køre på. Som standard kører tidsplaner på enhver tilgængelig computer. Hvis De vælger All Computers, kører tidsplanen på alle computere, der er tilsluttet PSU-klyngen. Hvis De vælger en bestemt computer, kører tidsplanen kun på den computer.

```powershell
New-PSUSchedule -Script "MyScript.ps1" -Cron '* * * * *' -Computer 'PSUNODE1'
```

## Betingelser

De kan definere betingelser, der afgør, om en tidsplan skal køres. Dette er nyttigt, hvis De bruger de samme scripts fra lageret til flere miljøer. I øjeblikket kan betingelser ikke defineres i admin console. Betingelser overføres til det aktuelle script og den aktuelle tidsplan som parametre. Scriptblokken for betingelsen kører i det integrerede miljø.

Betingelsen skal returnere true eller false. Nedenfor er et eksempel på en betingelse, hvor tidsplanen kun kører, hvis der findes en miljøvariabel med navnet `Slot`, som indeholder værdien `production`.

```powershell
New-PSUSchedule -Script "MyScript.ps1" -Cron '* * * * *' -Condition {
  $ENV:Slot -eq 'production'
}
```

## Pause af tidsplaner

De kan sætte en tidsplan på pause ved at angive egenskaben Paused. Når en tidsplan er sat på pause, kører den ikke. Dette er nyttigt til at stoppe en tidsplan i at køre uden at slette den.

## Timeout

De kan angive en timeout for planlagte jobs. Timeouten er antallet af minutter, før det planlagte job annulleres.

## Tilfældig forsinkelse

Egenskaben Random Delay får en tidsplan til at starte et vilkårligt sted mellem 0 og 60 sekunder fra det planlagte tidspunkt. Dette er nyttigt, når mange tidsplaner køres samtidig. Hvis De f.eks. havde 10 tidsplaner, der starter ved midnat, kan De angive en tilfældig forsinkelse for at begrænse ressourcekonkurrencen på PowerShell Universal-tjenesten.

## Tilgængelig i gren

I miljøer med flere grene kan det være nødvendigt at undgå at køre tidsplaner baseret på den gren, der er indlæst i PowerShell Universal. De kan bruge parameteren `-AvailableInBranch` på `New-PSUSchedule` for at undgå, at en tidsplan kører, når der køres i en bestemt gren. Denne værdi er også tilgængelig i admin console under indstillingerne for tidsplanen, når git er aktiveret.

## API

* [New-PSUSchedule](/powershell-universal/da/powershell-kommandoer/new-psuschedule.md)
* [Get-PSUSchedule](/powershell-universal/da/powershell-kommandoer/get-psuschedule.md)
* [Remove-PSUSchedule](/powershell-universal/da/powershell-kommandoer/remove-psuschedule.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/powershell-universal/da/automatisering/schedules.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
