> 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/apps/building-dashboards.md).

# Apps

Opret og konfigurer PowerShell Universal-apps med New-UDApp, med tilpasning af headere, navigation, menuer, persistente runspaces og godkendelse med app-token.

## Opret en app

Det første trin er at oprette en app i PowerShell Universal. Det er beholderen for alle Deres sider og komponenter til Deres app-websted. Vi anbefaler at køre apps i eksterne miljøer, som PowerShell 7, for at sikre, at de er isolerede fra resten af serveren. For at oprette en app skal De åbne **Build > Apps** og derefter Create New App.

De skal angive et entydigt navn og en URL til appen, når De opretter den. Alle andre egenskaber er valgfrie. Når De har oprettet appen, kan De redigere appkoden. Prøv f.eks. at tilføje en komponent til Deres app.

```powershell
New-UDApp -Content {
   New-UDButton -Text 'Click Me' -OnClick {
       Show-UDToast "Ouch!"
   }
}
```

Når De har gemt Deres app, kan De klikke på globusikonet for at se resultatet. Et klik på knappen viser en toastmeddelelse i Deres browser.

## New-UDApp

Cmdletten på øverste niveau for dashboards er `New-UDApp`. De skal kalde den, når De returnerer en app. De kan bruge den med eller uden sider.

#### Indhold

Indholdet af appen er en række komponenter, der skal vises på siden. Det er en scriptblok, der returnerer alle komponenterne i den rækkefølge, de gengives på siden. De kan bruge Grid-komponenten til layout af elementer og til at vise ting som tekst med typografi.

```powershell
New-UDApp -Title 'My New Dashboard' -Content {
    New-UDTypography -Text 'Hello!'
}
```

## Tilpasning af sidehovedet

De kan tilpasse headeren i appen ved hjælp af flere parametre.

### Placering <a href="#position" id="position"></a>

Brug parameteren `-HeaderPosition` til at justere headerens funktionsmåde.

* absolute\fixed - Forbliver øverst på siden, selv når der rulles
* relative - Forbliver øverst på siden. Ikke synlig ved rulning.

```powershell
New-UDApp -HeaderPosition fixed -Content {
    New-UDElement -tag div -Attributes @{
        style = @{
            height = '150vh'
        }
    }
}
```

### Farver

De kan justere headerens farver ved at angive parametrene `-HeaderColor` og `-HeaderBackgroundColor`. Disse farver tilsidesætter temafarverne.

```powershell
New-UDApp -Content {
} -HeaderColor 'black' -HeaderBackgroundColor 'white'
```

### Indhold

De kan definere brugerdefineret indhold, der skal medtages i headeren, ved hjælp af parameteren `-HeaderContent`.

```powershell
New-UDApp -Content {

} -HeaderContent {
    New-UDButton -Icon (New-UDIcon -Icon Users) -Text 'User'
}
```

### Deaktiver temaskifteren

De kan fjerne temaskifteren med `-DisableThemeToggle`.

```powershell
New-UDApp -Content {} -DisableThemeToggle
```

### Logo

De kan ændre logobilledet ved at angive en URL til parameteren `-Logo`.

```powershell
New-UDApp -Content {} -Logo '/logo.png'
```

### Navigation

For at ændre navigationslayoutet skal De bruge parametrene `-Navigation` og `-NavigationLayout`.

```powershell
New-UDApp -Content {
} -Navigation (
    New-UDList -Children {
        New-UDListItem -Label "Home"
        New-UDListItem -Label "Getting Started" -Children {
            New-UDListItem -Label "Installation" -OnClick {}
            New-UDListItem -Label "Usage" -OnClick {}
            New-UDListItem -Label "FAQs" -OnClick {}
            New-UDListItem -Label "System Requirements" -OnClick {}
            New-UDListItem -Label "Purchasing" -OnClick {}
        }
    }
) -NavigationLayout permanent
```

## Komponenter

Komponenter er de enkelte widgets, som De kan placere i Deres app. Der findes komponenter til visning af data, modtagelse af brugerinput, tilføjelse af tekst og billeder og meget mere. Komponenter kan downloades som PowerShell-moduler og føjes til Deres app.

Komponenter oprettes ved hjælp af den almindelige verb-name-syntaks for enhver PowerShell-cmdlet.

```powershell
New-UDPage -Content {
    New-UDTextbox
}
```

Få mere at vide om [komponenter her](/powershell-universal/da/apps/components.md).

## Sider

De kan angive flere sider i en app. Hver side definerer en rute. Hvad angår v3, er alle sider dynamiske. PowerShell køres ved hver sideindlæsning for at gengive den nye side. Da UD er et enkeltsideprogram, behøver webbrowseren ikke at opdatere hele websiden, når der navigeres mellem de forskellige appsider.

```powershell
$Pages = @()
$Pages += New-UDPage -Name 'My Home Page' -Content {}
$Pages += New-UDPage -Name 'Diagnostics' -Content {}
New-UDApp -Pages $Pages -Title 'Dashboard'
```

Få mere at vide om [sider her](/powershell-universal/da/apps/components/pages.md).

## Modul

Apps har automatisk adgang til alle kommandoer, der er tilgængelige i PSModulePath, samt til moduler, som De indlæser direkte i selve appen. De kan dog også definere funktioner i selve appen. Disse funktioner medtages i et modul, der gemmes sammen med Deres appkode. Alle funktioner, der er defineret i denne fil, medtages automatisk i Deres app.

I PowerShell Universal-admin console skal De definere funktioner, variabler og aliaser under fanen Module. Alle funktioner, der defineres, skrives til en `PSM1`-fil i samme katalog som programkoden.

<figure><img src="https://218893503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAje1UFQFSPx2kH2ueeCf%2Fuploads%2Fgit-blob-4b8c66dd3dbf4cb048b41327f1a6ecbf2958cc88%2Fimage%20(134).png?alt=media" alt=""><figcaption><p>Module-fanen</p></figcaption></figure>

## Indbyggede variabler

Indbyggede variabler findes på [variabelsiden](/powershell-universal/da/platform/variables.md#apps).

## Fejlfinding

{% hint style="info" %}
De kan også bruge [Fejlfindingsværktøjer](/powershell-universal/da/udvikling/debugging-scripts.md#integrated-debugger) sammen med apps.
{% endhint %}

Når De bygger en app, støder De sandsynligvis på problemer med cmdlet-kald eller syntaks. Apps genindlæses automatisk, når De foretager ændringer i appfilerne. Hvis en app ikke starter, skal De gå til **Build > Apps** og klikke på knappen Info ud for Deres app.

Fanen Log viser al logføringen fra PowerShell-kørsel inde i Deres app. Dette bør gøre det nemt for Dem at se fejl og advarsler, der kommer fra Deres app.

De kan bruge `Write-Debug` til at føje yderligere logmeddelelser til Deres app. For at aktivere fejlfindingslogning skal De angive variablen `$DebugPreference` øverst i Deres app-script.

```powershell
$DebugPreference = 'Continue'
```

## Menu

De kan tilpasse appmenuen ved hjælp af parameteren `-Menu`.

```powershell
New-UDApp -Title 'App' -Content {

} -Menu {
    New-UDMenuItem -Text 'Profile' -OnClick {
        Show-UDModal -Content {
            New-UDTypography -Text 'Welcome to your profile!'
        }
    }
}
```

## Start og stop af apps

Ligesom jobs kan apps køre i separate PowerShell-processer. De kan starte og stoppe en appproces ved at klikke på knappen Start eller Stop fra siden Apps.

## Vedvarende runspaces

Vedvarende runspaces giver Dem mulighed for at bevare runspace-tilstanden i hændelseshandlerne i Deres app. Dette er vigtigt for brugere, der udfører en form for initialisering i deres slutpunkter, som de ikke ønsker at udføre ved efterfølgende kald.

Som standard nulstilles runspaces efter hver udførelse. Dette vil medføre variabler, moduler og funktioner, der er defineret under udførelsen af et slutpunkt.

For at aktivere vedvarende runspaces skal De konfigurere et [miljø ](/powershell-universal/da/config/environments.md)til Deres API. Angiv parameteren `-PersistentRunspace` for at aktivere denne funktion. Dette konfigureres i scriptet `environments.ps1`.

```
New-PSUEnvironment -Name 'Env' -Path 'powershell.exe' -PersistentRunspace
```

De skal sikre, at miljøet bruges af appen.

## Automatisk tildeling af app-tokens

De kan automatisk tildele app-tokens til brugere, der besøger apps. Dette er nyttigt, hvis De vil kalde Management API for PowerShell Universal inde fra en app. Deres app skal have godkendelse aktiveret, og De skal bruge switch-parameteren `-GrantAppToken` på `New-PSUDashboard`.

```
New-PSUApp -Name 'App' -BaseUrl '/' -Authenticated -GrantAppToken
```

Fra Deres app kan De nu kalde administrations-API'en uden at skulle bekymre Dem om administration af app-tokens. API'en kaldes i konteksten for den bruger, der besøger appen.

```powershell
New-UDApp -Title "Hello, World!" -Content {
    New-UDButton -Text 'Job' -OnClick {
        Invoke-UAScript -Name 'Test.ps1'
    }
}
```

## Deaktiver fejltoastmeddelelser

Som standard viser apps en toastmeddelelse, når der genereres en fejl i et slutpunktsscript. For at undgå denne funktionsmåde kan De bruge parameteren `-DisableErrorToast` på `New-UDApp`

```powershell
New-PSUApp -Name 'App' -BaseUrl '/' -Authenticated -DisableErrorToast
```

```powershell
New-UDApp -Title "Hello, World!" -Content {
    throw "Exception"
} 
```

## Deaktiver opstartslogning

Når en app startes, vises oplysninger om variablerne og modulerne i app-loggen. Hvis De ønsker at undertrykke disse oplysninger, kan De bruge parameteren `-DisableStartupLogging`.

```powershell
New-PSUApp -Name 'App' -BaseUrl '/' -DisableStartupLogging
```

## Kritiske apps

Kritiske apps, der angives ud fra parameteren `-Critical`, definerer apps, der får statusslutpunktet for belastningsfordeleren til at returnere svarkoden 500, hvis appen ikke kører. Statusslutpunktet for belastningsfordeleren er `/api/v1/status` .

```powershell
New-PSUApp -Name 'App' -BaseUrl '/' -DisableStartupLogging
```

#### Se også

* [Devolutions Academy – Oprettelse af Deres første program](https://academy.devolutions.net/student/page/3466027-creating-your-first-application?curriculum_activity_id=5771070\&path_id=3549598\&sid=ef268aed-28f2-437f-8576-03e7ab055007\&sid_i=0)
* [Devolutions Academy – Datatabeller på serversiden](https://academy.devolutions.net/student/page/3466033-server-side-data-tables?curriculum_activity_id=5612259\&path_id=3465905\&sid=aa0a98ab-11ef-4ae6-83f0-e28f268d8343\&sid_i=0)


---

# 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/apps/building-dashboards.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.
