> 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/it/config/repository.md).

# Repository

I dati di configurazione di PowerShell Universal sono archiviati principalmente all'interno del repository. Per impostazione predefinita, la cartella del repository si trova in `%ProgramData%\UniversalAutomation\Repository`. È possibile modificare la posizione del repository modificando il file `appsettings.json`.

Il repository contiene script PowerShell e file XML prodotti durante l'utilizzo della console di amministrazione di PowerShell Universal. La cartella del repository viene inoltre monitorata per rilevare le modifiche, quindi qualsiasi modifica effettuata su disco farà sì che il sistema ricarichi il file e riconfiguri la piattaforma. Quando si utilizza l'integrazione Git, la cartella del repository è quella che viene sincronizzata con il remote git.

Tutti i cmdlet di configurazione fanno parte del modulo [Universal ](https://www.powershellgallery.com/packages/Universal).

## Cosa viene archiviato nel repository

I file archiviati nel repository sono memorizzati come testo normale per consentire un facile confronto delle differenze con gli strumenti di controllo del codice sorgente.

* Autenticazione
* Agenti e strumenti AI
* App
* Endpoint
* Ambienti
* Licenze
* Pagine di accesso
* Pagine
* Cartelle pubblicate
* Limiti di frequenza
* Ruoli
* Pianificazioni
* Script
* Impostazioni
* Tag
* Trigger
* Casseforti

## Cosa non viene archiviato nel repository

Queste entità sono archiviate all'interno del database di PowerShell Universal.

* Token app
* Identità
* Cronologia dei job

## Modifica del repository

È possibile modificare i file del repository direttamente nella console di amministrazione accedendo a Impostazioni \ File. L'editor consente di creare file e cartelle e di modificare qualsiasi file all'interno della directory del repository.

<figure><img src="/files/nzxag4kfAJemdG9mAhSQ" alt=""><figcaption></figcaption></figure>

È inoltre possibile modificare il repository direttamente su disco utilizzando editor come Visual Studio Code. Per impostazione predefinita, i file sono archiviati in `%ProgramData%\UniversalAutomation\Repository`. Sarà necessario abilitare il ricaricamento automatico oppure risolvere manualmente le modifiche. È possibile visualizzare i file modificati accedendo a Impostazioni \ File \ Configuration Tracker.

## Script di configurazione

### Authentication.ps1

{% hint style="info" %}
Archiviato in `.universal\authentication.ps1`
{% endhint %}

Questo script è responsabile della configurazione dell'[autenticazione tramite form](/powershell-universal/it/sicurezza/security.md#forms-authentication). Se l'autenticazione tramite form non viene utilizzata, questo file viene ignorato.

In questo file è possibile utilizzare il cmdlet [`Set-PSUAuthentication` ](/powershell-universal/it/comandi-powershell/set-psuauthenticationmethod.md).

### AiAgents.ps1

{% hint style="info" %}
Archiviato in `.universal\aiAgents.ps1`
{% endhint %}

Questo script è responsabile della configurazione degli agenti AI. Utilizzi il cmdlet `New-PSUAIAgents` in questo file.

### AiTools.ps1

{% hint style="info" %}
Archiviato in `.universal\aiTools.ps1`
{% endhint %}

Questo script è responsabile della configurazione degli strumenti AI. Utilizzi il cmdlet `New-PSUAITool` in questo file.

### Branding.ps1

{% hint style="info" %}
Archiviato in `.universal\branding.ps1`
{% endhint %}

Questo script è responsabile della configurazione delle impostazioni di branding.

In questo file è possibile utilizzare il cmdlet New-PSUBranding.

### Dashboards.ps1

{% hint style="info" %}
Archiviato in `.universal\dashboards.ps1`
{% endhint %}

Questo script è responsabile della registrazione dei file PS1 come app all'interno del sistema. Ogni comando contiene i metadati dell'app, tra cui nome, URL di base e ambiente.

In questo file è possibile utilizzare il cmdlet [`New-PSUApp` ](/powershell-universal/it/comandi-powershell/new-psudashboard.md).

### Endpoints.ps1

{% hint style="info" %}
Archiviato in `.universal\endpoints.ps1`
{% endhint %}

Questo script è responsabile della definizione di tutti gli [endpoint API](https://github.com/Devolutions/docs/tree/master/translations/it/powershell-universal/config/broken-reference/README.md) all'interno dell'istanza di PowerShell Universal.

In questo file è possibile utilizzare il cmdlet [`New-PSUEndpoint` ](/powershell-universal/it/comandi-powershell/new-psuendpoint.md).

### Environments.ps1

{% hint style="info" %}
Archiviato in `.universal\environments.ps1`
{% endhint %}

Questo script è responsabile della definizione di tutti gli ambienti all'interno di PowerShell Universal.

In questo file è possibile utilizzare il cmdlet [`New-PSUEnvironment` ](/powershell-universal/it/comandi-powershell/new-psuenvironment.md).

### healthChecks.ps1

{% hint style="info" %}
Archiviato in `.universal\healthChecks.ps1`
{% endhint %}

Questo script è responsabile della definizione dei controlli di integrità (Health Check) all'interno di PowerShell Universal.

In questo file è possibile utilizzare il cmdlet [`New-PSUHealthCheck` ](/powershell-universal/it/comandi-powershell/new-psuhealthcheck.md).

### Licenses.ps1

{% hint style="info" %}
Archiviato in `.universal\licenses.ps1`
{% endhint %}

Questo script è responsabile della definizione della licenza utilizzata in PowerShell Universal.

In questo file è possibile utilizzare il cmdlet [`Set-PSULicense` ](/powershell-universal/it/comandi-powershell/set-psulicense.md).

```
Set-PSULicense -Key "<License></License>"
```

### Initialize.ps1

{% hint style="info" %}
Archiviato in `.universal\initialize.ps1`
{% endhint %}

Questo script viene eseguito prima che venga effettuata qualsiasi configurazione all'interno di PowerShell Universal. Il server è in esecuzione ma nessuno dei servizi è stato avviato. Questo è utile per installare moduli o configurare casseforti dei segreti prima che venga avviato il rilevamento di tali risorse.

### Middleware.ps1

{% hint style="info" %}
Archiviato in `.universal\middleware.ps1`
{% endhint %}

Consente la personalizzazione delle richieste HTTP in PowerShell Universal.

### PublishedFolders.ps1

{% hint style="info" %}
Archiviato in `.universal\publishedFolders.ps1`
{% endhint %}

Questo script è responsabile della configurazione delle [cartelle pubblicate](/powershell-universal/it/piattaforma/published-folders.md).

In questo file è possibile utilizzare il cmdlet [`New-PSUPublishedFolder` ](/powershell-universal/it/comandi-powershell/new-psupublishedfolder.md).

### RateLimits.ps1

{% hint style="info" %}
Archiviato in `.universal\rateLimits.ps1`
{% endhint %}

Questo script è responsabile della configurazione dei [limiti di frequenza](/powershell-universal/it/api/rate-limiting.md).

In questo file è possibile utilizzare il cmdlet [`New-PSURateLimit` ](/powershell-universal/it/comandi-powershell/new-psuratelimit.md).

### Roles.ps1

{% hint style="info" %}
Archiviato in `.universal\roles.ps1`
{% endhint %}

Questo script è responsabile della configurazione dei [ruoli](/powershell-universal/it/app/role-based-access.md).

In questo file è possibile utilizzare il cmdlet [`New-PSURole` ](/powershell-universal/it/comandi-powershell/new-psurole.md).

### Schedules.ps1

{% hint style="info" %}
Archiviato in `.universal\schedules.ps1`
{% endhint %}

Questo script è responsabile della configurazione delle [pianificazioni](/powershell-universal/it/automazione/schedules.md).

In questo file è possibile utilizzare il cmdlet [`New-PSUSchedule` ](/powershell-universal/it/comandi-powershell/new-psuschedule.md).

### Scripts.ps1

{% hint style="info" %}
Archiviato in `.universal\scripts.ps1`
{% endhint %}

Questo script contiene i metadati per gli [script](/powershell-universal/it/automazione/scripts.md). Gli script effettivi possono essere archiviati in qualsiasi posizione. Il percorso incluso è relativo al repository. Sono consentiti anche i nomi di percorso completi.

In questo file è possibile utilizzare il cmdlet [`New-PSUScript` ](/powershell-universal/it/comandi-powershell/new-psuscript.md).

### Settings.ps1

{% hint style="info" %}
Archiviato in `.universal\settings.ps1`
{% endhint %}

Questo script è responsabile della configurazione delle [impostazioni](/powershell-universal/it/config/settings.md) di sistema.

In questo file è possibile utilizzare il cmdlet [`Set-PSUSetting` ](/powershell-universal/it/comandi-powershell/set-psusetting.md).

### Tags.ps1

{% hint style="info" %}
Archiviato in `.universal\tags.ps1`
{% endhint %}

Questo script è responsabile della configurazione dei tag.

In questo file è possibile utilizzare il cmdlet [`New-PSUTag` ](/powershell-universal/it/comandi-powershell/new-psutag.md).

### Triggers.ps1

{% hint style="info" %}
Archiviato in `.universal\triggers.ps1`
{% endhint %}

Questo script è responsabile della configurazione dei [trigger](/powershell-universal/it/automazione/triggers.md).

In questo file è possibile utilizzare il cmdlet [`New-PSUTrigger` ](/powershell-universal/it/comandi-powershell/new-psutrigger.md).

### Variables.ps1

{% hint style="info" %}
Archiviato in `.universal\variables.ps1`
{% endhint %}

Questo script è responsabile della configurazione delle [variabili](https://github.com/Devolutions/docs/tree/master/translations/it/powershell-universal/config/broken-reference/README.md).

In questo file è possibile utilizzare il cmdlet [`New-PSUVariable`](/powershell-universal/it/comandi-powershell/new-psuvariable.md).

### Vaults.ps1

{% hint style="info" %}
Archiviato in `.universal\vaults.ps1`
{% endhint %}

Questo script è responsabile della configurazione delle [casseforti](/powershell-universal/it/piattaforma/variables.md#vaults).

## Modelli

Utilizzando la cartella Templates all'interno del repository, è possibile creare una selezione di modelli di elementi per le funzionalità di uso comune in PowerShell Universal. Sono incluse app, pagine di app, script ed endpoint.

<figure><img src="/files/hdSRYm0agPwW2lKHffuV" alt=""><figcaption><p>Modello di script</p></figcaption></figure>

I file PS1 presenti nelle cartelle seguenti verranno forniti come modelli nella console di amministrazione.

* Templates \ App
* Templates \ AppPage
* Templates \ Endpoint
* Templates \ Script

## .psuignore

Il file `.psuignore` può essere utilizzato per escludere determinati file o pattern dal file system watcher in PowerShell Universal. Questo è utile quando si salvano file come i log nella directory del repository. Il formato del file deve essere una singola espressione regolare per riga. Se l'espressione regolare corrisponde a un percorso, il sistema di configurazione lo ignorerà.

```
logs.*
.git.*
```

## Codifica dei file

È possibile configurare la codifica dei file nella pagina Impostazioni \ Generale. Per impostazione predefinita, PowerShell Universal utilizzerà UTF-8 con un byte order mark (`utf-8-bom`) all'inizio del file. Se desidera disabilitare il byte order mark, può modificare la codifica in `utf-8`.

Le codifiche supportate sono tutte quelle restituite da [Encoding.GetEncodings](https://learn.microsoft.com/en-us/dotnet/api/system.text.encoding.getencodings?view=net-10.0#system-text-encoding-getencodings). Ad esempio:

* `utf-32`
* `utf-32-bom`
* `utf-8`
* `utf-8-bom`
* `windows-1250`

È possibile aggiungere `-bom` alla fine della codifica per aggiungere il byte order mark.

## Sezioni di configurazione di sola lettura

Le sezioni di sola lettura consentono di includere script nei file di configurazione che non verranno modificati dalle modifiche apportate nella console di amministrazione. Questo consente di eseguire logica aggiuntiva, generare risorse dinamicamente e creare classi da utilizzare negli schemi OpenAPI.

La regione `PSUHeader` viene posizionata all'inizio dello script. `PSUFooter` viene posizionata in fondo.

```powershell
#region PSUHeader 

1..100 | ForEach-Object {
    New-PSUEndpoint -Url "/endpoint/$_" -Endpoint {

    }
}

#endregion

New-PSUEndpoint -Url "/user" -Endpoint {

}

#region PSUFooter
#endregion
```

## Risorse del database

È possibile configurare facoltativamente le risorse affinché vengano archiviate nel database anziché nel repository di configurazione. Queste risorse non verranno più archiviate su disco e saranno archiviate direttamente nel database. Ciò le rende immediatamente disponibili per consentire i computer connessi nel cluster PSU.

{% hint style="warning" %}
Quando configurato, i file di configurazione delle risorse verranno ignorati.
{% endhint %}

Alcune risorse non sono supportate. Tra queste:

* App
* Endpoint con percorsi
* Script
* Moduli

Per configurare una risorsa per la persistenza nel database, è necessario impostare le [Impostazioni dell'app](/powershell-universal/it/config/settings.md) per ogni tipo di classe. Di seguito è riportato un esempio di archiviazione delle pianificazioni nel database.

```json
{
    "Data": {
        "Persistence" : {
            "Schedule": "Database",
            "ScheduleParameter": "Database"
        }
    }
}
```


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/powershell-universal/it/config/repository.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
