> 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/login-page.md).

# Branding

Personalizzi il branding di PowerShell Universal con esempi per pagine di accesso, loghi, colori, fogli di stile, titoli del portale e messaggi di errore.

{% hint style="info" %}
La personalizzazione del branding richiede una [licenza](https://store.devolutions.net/package#psu).
{% endhint %}

Il branding controlla l'aspetto e il testo della pagina di accesso integrata, della console di amministrazione, del portale e di alcune pagine di errore di PowerShell Universal. Usi **Impostazioni > Branding** o il file `.universal\branding.ps1` nel repository di configurazione. Aggiorni il browser dopo il salvataggio; alcune immagini, alcuni stili e alcuni titoli vengono caricati all'apertura della pagina.

Il branding non è un tema Material UI per l'intera app. Per applicare uno stile ai componenti all'interno di un'app, usi i [temi dell'app](/powershell-universal/it/app/themes.md).

## Scegliere come configurare il branding

In **Impostazioni > Branding**, usi le schede **Testo**, **Colori**, **Immagini** e **Pagina di accesso**, quindi selezioni **Salva**. Le tabelle seguenti usano i nomi dei parametri di PowerShell in modo che possa associare ogni esempio all'impostazione corrispondente. L'aggiornamento del branding richiede l'autorizzazione `settings.branding/update`.

Per la configurazione come codice, mantenga una sola definizione di branding in `.universal\branding.ps1`. `New-PSUBranding` e `New-PSULoginPage` sono alias di `Set-PSUBranding`. In un file di configurazione, producono l'oggetto di branding che PSU carica. Al di fuori del caricamento della configurazione, il cmdlet applica l'oggetto al server connesso e lo restituisce.

{% hint style="warning" %}
Una chiamata al cmdlet di branding sostituisce la definizione di branding; non unisce solo i parametri forniti. Le stringhe omesse tornano ai valori predefiniti e i valori di tema e layout omessi diventano `System` e `Vertical`. Mantenga le impostazioni desiderate insieme in un'unica definizione. Gli esempi seguenti estendono la stessa hashtable `$branding` in modo che le modifiche successive non cancellino i valori precedenti.
{% endhint %}

Se esegue gli esempi in modo interattivo, si connetta prima al server previsto con `Connect-PSUServer`. Non esegua esempi successivi su una distribuzione esistente senza includere le impostazioni che desidera conservare.

## Ospitare immagini e file CSS

Le impostazioni di immagine e di foglio di stile accettano URL accessibili al browser, non percorsi del file system del server. Ad esempio, `C:\PSU\Branding\logo.png` è un file locale, mentre `/branding/logo.png` è l'URL che il browser può richiedere.

1. Crei una cartella dedicata, ad esempio `C:\PSU\Branding`, sul server PSU. Conceda l'accesso in lettura all'account del servizio PSU.
2. Inserisca i file di branding pubblici in tale cartella: `logo.png`, `logo-on-dark.png`, `favicon.ico` e, se necessario, `login.css`.
3. Pubblichi la cartella in `/branding`. Lasci disabilitate l'autenticazione e le restrizioni dei ruoli in modo che la pagina di accesso possa caricare questi asset prima che un utente acceda.

Ad esempio, inserisca questa definizione in `.universal\publishedFolders.ps1`:

```powershell
New-PSUPublishedFolder -Name 'BrandingAssets' -Path 'C:\PSU\Branding' -RequestPath '/branding'
```

Inserisca in questa cartella solo immagini e fogli di stile pubblici. Tutto ciò che essa serve è accessibile senza eseguire l'accesso; non pubblichi il repository di configurazione, gli script, le credenziali o altri file privati. Il percorso del file system può trovarsi all'esterno del repository di configurazione. Sugli altri sistemi operativi, usi un percorso locale appropriato.

Apra `/branding/logo.png` e `/branding/login.css` sul sito PSU in una finestra di navigazione privata per confermare l'accesso anonimo. Vedere [Cartelle pubblicate](/powershell-universal/it/piattaforma/published-folders.md) per ulteriori dettagli.

Gli esempi presuppongono che PSU sia ospitato nella radice del sito. Se viene eseguito in una directory virtuale o con un prefisso di percorso proxy, includa tale prefisso negli URL oppure usi URL HTTPS completi raggiungibili dai browser degli utenti. Non usi un URL `localhost` a meno che ogni browser non sia in esecuzione sul server stesso.

## Esempio: una pagina di accesso e una console con branding

Dopo aver pubblicato gli asset, inserisca quanto segue in `.universal\branding.ps1`:

```powershell
$branding = @{
    AdminConsoleTitle    = 'Contoso Automation'
    PortalTitle          = 'Contoso Self-Service'
    LoginPageTitle       = 'Contoso Automation'
    LoginPageText        = 'Sign in with your work account'
    LoginPageDescription = 'Automation and self-service for Contoso employees.'
    LoginPageImage       = '/branding/logo.png'
    LoginPageLogoSize    = '180px'
    AppBarLogo           = '/branding/logo.png'
    DarkAppBarLogo       = '/branding/logo-on-dark.png'
    Favicon              = '/branding/favicon.ico'
    Copyright            = 'Copyright 2026 Contoso'
    LoginPageTheme       = 'Light'
    LoginPageLayout      = 'Vertical'
}

Set-PSUBranding @branding
```

La pagina di accesso mostra il logo personalizzato, la descrizione e l'intestazione di accesso. `LoginPageTitle` fornisce anche il suffisso del titolo nella scheda del browser. Nel layout di accesso corrente, il titolo personalizzato visibile sotto il logo viene rappresentato quando viene fornito un `LoginPageImage` personalizzato. `AdminConsoleTitle` fornisce il suffisso del titolo del browser della console di amministrazione; una licenza per sviluppatori usa invece il titolo di sviluppo.

`AppBarLogo` fornisce il logo di navigazione integrato della console e del portale. `DarkAppBarLogo` è l'immagine alternativa quando il loro tema scuro è attivo, non una richiesta di scurire l'immagine originale. Imposti entrambi gli URL del logo. Scelga un'immagine chiara su sfondo scuro per il logo alternativo. Questa impostazione non seleziona un'immagine diversa della pagina di accesso: `LoginPageImage` è condivisa da entrambi i temi di accesso.

| Parametro              | Cosa fornire                                                                                                  |
| ---------------------- | ------------------------------------------------------------------------------------------------------------- |
| `LoginPageTitle`       | Titolo della pagina di accesso, ad esempio `Contoso Automation`. Alias: `Title`.                              |
| `LoginPageText`        | Intestazione all'interno della scheda di accesso, ad esempio `Sign in with your work account`.                |
| `LoginPageDescription` | Testo accanto al logo, ad esempio una breve descrizione del pubblico o del servizio.                          |
| `LoginPageImage`       | URL del logo di accesso, ad esempio `/branding/logo.png`. Alias: `Image`.                                     |
| `LoginPageLogoSize`    | Una larghezza CSS, come `180px`, `12rem` o `50%`. La larghezza predefinita del logo personalizzato è `128px`. |
| `AppBarLogo`           | URL del logo normale della console e del portale.                                                             |
| `DarkAppBarLogo`       | URL del logo di navigazione alternativo usato nel tema scuro.                                                 |
| `Favicon`              | URL dell'icona della scheda del browser, ad esempio `/branding/favicon.ico`.                                  |
| `AdminConsoleTitle`    | Suffisso del titolo del browser della console di amministrazione.                                             |
| `PortalTitle`          | Titolo usato dalle pagine di ricerca delle risorse e degli script del portale.                                |
| `Copyright`            | Testo di copyright nella pagina di accesso e ovunque venga visualizzato il piè di pagina integrato.           |

## Esempio: layout, tema e colori di accesso

Per posizionare il logo e la descrizione accanto alla scheda di accesso, cambi il profilo in `Horizontal`. `Vertical` impila il branding sopra la scheda. Il layout orizzontale può impilarsi sugli schermi stretti.

```powershell
$branding.LoginPageLayout = 'Horizontal'
$branding.LoginPageTheme = 'Light'
$branding.LoginPageBackgroundColor = '#E8F0F8'
$branding.LoginPageFontColor = '#172B4D'

Set-PSUBranding @branding
```

Queste righe presuppongono che `$branding` dell'esempio precedente sia ancora definito. Per un file di configurazione, aggiunga le assegnazioni prima dell'unica chiamata finale `Set-PSUBranding @branding`, invece di aggiungere una seconda definizione di branding.

| Parametro                  | Valori ed effetto                                                                                                                                                                                                   |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `LoginPageLayout`          | `Vertical` (predefinito) o `Horizontal`.                                                                                                                                                                            |
| `LoginPageTheme`           | `System` (predefinito), `Light` o `Dark`. Usi `System`, non `Auto`. La modalità System considera la preferenza di tema PSU salvata del browser e, in caso contrario, la preferenza di colore del sistema operativo. |
| `LoginPageBackgroundColor` | Colore CSS usato per lo sfondo del layout di accesso e per lo sfondo e il bordo del pulsante principale di accesso. Non rimuove un'immagine di sfondo integrata e non cambia il colore del testo del pulsante.      |
| `LoginPageFontColor`       | Colore CSS applicato alla tipografia della pagina di accesso. Non è un'impostazione distinta del colore dell'etichetta del pulsante o del testo di input.                                                           |

Usi combinazioni di primo piano e di sfondo leggibili e controlli il logo, la descrizione, i pulsanti e i messaggi di errore nei temi usati dagli utenti. `LoginPageTheme` controlla la pagina di accesso, non le preferenze di tema della console degli utenti.

## Esempio: colori di navigazione e delle schede

Estenda lo stesso profilo con questi valori:

```powershell
$branding.SecondaryColor = '#16324F'
$branding.SecondaryFontColor = '#FFFFFF'
$branding.PrimaryColor = '#FFFFFF'
$branding.PrimaryFontColor = '#172B4D'

Set-PSUBranding @branding
```

I colori secondari riguardano la navigazione integrata di amministrazione e del portale. La coppia di colori primari è usata dalle schede integrate, come la scheda di reimpostazione della password; non è la tavolozza primaria di Material UI per le app e non ricolora ogni controllo della console. Imposti `PrimaryColor` insieme a `PrimaryFontColor`, perché queste sostituzioni delle schede vengono applicate insieme.

| Parametro                        | Ambito                                                                                                                             |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `SecondaryColor`                 | Sfondo della navigazione e della barra laterale.                                                                                   |
| `SecondaryFontColor`             | Colore di primo piano ereditato della navigazione; gli stili dei componenti possono fornire colori più specifici.                  |
| `PrimaryColor`                   | Sfondo delle schede integrate che usano il colore di branding principale.                                                          |
| `PrimaryFontColor`               | Primo piano abbinato a `PrimaryColor` su quelle schede.                                                                            |
| `HeaderColor`, `HeaderFontColor` | Impostazioni di compatibilità per i layout di intestazione precedenti. Il layout corrente della console non applica questi valori. |

## Esempio: personalizzare il foglio di stile di accesso

Usi `LoginPageCssStylesheet` quando le impostazioni di accesso integrate non sono sufficienti. Ad esempio, per sostituire l'immagine di sfondo integrata con un colore a tinta unita e impostare un colore di pulsante indipendente, salvi quanto segue come `C:\PSU\Branding\login.css`:

```css
html body .ant-layout {
    background-image: none !important;
    background-color: #E8F0F8 !important;
}

html body .ant-btn-primary {
    background-color: #0066B0 !important;
    border-color: #0066B0 !important;
    color: #FFFFFF !important;
}
```

Faccia riferimento all'URL pubblicato nello stesso profilo di branding:

```powershell
$branding.LoginPageCssStylesheet = '/branding/login.css'
Set-PSUBranding @branding
```

Questo foglio di stile viene caricato nelle pagine di accesso e di errore di accesso. Non applica stili a livello globale alla console di amministrazione o alle app. L'esempio usa selettori più specifici e `!important` per sostituire gli stili di accesso integrati. I selettori CSS sono dettagli di implementazione: ricontrolli gli stili personalizzati dopo l'aggiornamento di PSU.

Usi solo fogli di stile attendibili serviti tramite HTTPS o dalla propria istanza di PSU. Se una modifica non compare, esamini la richiesta del foglio di stile negli strumenti di sviluppo del browser, quindi aggiorni senza la cache. Un URL con versione come `/branding/login.css?v=2` può essere utile quando si distribuisce un file aggiornato.

## Esempio: messaggi di errore e di disconnessione chiari

Aggiunga queste voci al profilo prima di applicarlo:

```powershell
$branding.PageNotFoundTitle = 'Page not found'
$branding.PageNotFoundDescription = 'Check the address or return to the home page.'
$branding.NotAuthorizedTitle = 'Access required'
$branding.NotAuthorizedDescription = 'Contact the service desk to request access.'
$branding.AppNotRunningDescription = 'This service is temporarily unavailable. Please try again later.'
$branding.LoggedOut = 'You are signed out'
$branding.LoggedOutDescription = 'Close your browser if you are using a shared computer.'

Set-PSUBranding @branding
```

| Parametro                                        | Dove viene usato                                                                                                                               |
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `PageNotFoundTitle`, `PageNotFoundDescription`   | Schermata integrata di pagina non trovata.                                                                                                     |
| `NotAuthorizedTitle`, `NotAuthorizedDescription` | Schermata integrata di non autorizzato.                                                                                                        |
| `AppNotRunningDescription`                       | Schermata del framework delle app mostrata quando un'app non è in esecuzione. È separata dalla schermata di avvio o di caricamento del server. |
| `LoggedOut`, `LoggedOutDescription`              | Titolo e descrizione nella schermata integrata `/loggedout`.                                                                                   |

Queste impostazioni cambiano la presentazione, non le regole di accesso. Non concedono autorizzazioni, non abilitano provider di autenticazione, non avviano un'app e non cambiano la gestione degli errori HTTP in un proxy inverso. Mantenga i messaggi privi di segreti e di informazioni diagnostiche interne.

## Parametri di compatibilità

Il riferimento del cmdlet include parametri conservati nel modello di branding che i layout di pagina integrati correnti non usano:

| Parametro                        | Comportamento di compatibilità                                                                                                                                                            |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `LoginPageLinks`                 | Accetta oggetti `LoginPageLink`, ma i modelli di accesso verticali e orizzontali correnti non li visualizzano.                                                                            |
| `CssStylesheet`                  | Accetta una matrice di URL di fogli di stile, ma la console di amministrazione corrente non li carica come fogli di stile globali. Usi `LoginPageCssStylesheet` per la pagina di accesso. |
| `CssStylesheetIntegrity`         | Valori di integrità complementari per `CssStylesheet`; questo non aggiunge un attributo di integrità a `LoginPageCssStylesheet`.                                                          |
| `HeaderColor`, `HeaderFontColor` | Conservato per compatibilità; il layout corrente della console, basato sulla navigazione, non visualizza l'intestazione con branding precedente.                                          |

Il rendering dipende dalla versione di PSU e dal layout della pagina. Il fatto che un parametro venga accettato e salvato non dimostra che un elemento visibile lo usi. Controlli la pagina pertinente invece di aggiungere altre impostazioni per compensare un parametro inutilizzato.

## Reimpostare e risolvere i problemi

Per reimpostare il branding, selezioni **Reimposta** in **Impostazioni > Branding** e confermi. Questo sostituisce la definizione salvata con i valori predefiniti. La chiamata interattiva equivalente al cmdlet è:

```powershell
Set-PSUBranding
```

Se la configurazione è gestita tramite Git o un altro processo di distribuzione, aggiorni anche tale origine in modo che non riapplichi il branding precedente. La reimpostazione del branding non elimina i file di immagine o di foglio di stile pubblicati.

| Sintomo                                                     | Cosa verificare                                                                                                                                                                                                           |
| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Il logo o il CSS non viene caricato prima dell'accesso      | Apra l'URL esatto in una finestra di navigazione privata. Verifichi il percorso della cartella pubblicata, l'accesso in lettura dell'account del servizio e che l'asset non sia protetto dall'autenticazione o dai ruoli. |
| Il browser richiede il sito o il percorso errato            | Le impostazioni delle immagini devono essere URL, non percorsi del file system. Includa qualsiasi prefisso del percorso di hosting. Una pagina di accesso HTTPS non deve dipendere da asset HTTP.                         |
| Le impostazioni precedenti scompaiono dopo un altro esempio | Includa tutte le impostazioni desiderate in un'unica hashtable o definizione di branding; le chiamate al cmdlet sostituiscono la definizione.                                                                             |
| Il colore di sfondo cambia, ma il motivo resta              | L'impostazione del colore non rimuove l'immagine di sfondo. Usi l'esempio di foglio di stile se desidera uno sfondo a tinta unita.                                                                                        |
| Il valore del tema viene rifiutato                          | Usi `System`, `Light` o `Dark`, non `Auto`.                                                                                                                                                                               |
| Un'impostazione valida non ha alcun effetto visibile        | Verifichi l'ambito dell'impostazione e le note di compatibilità, aggiorni il browser e controlli che sia stata caricata la configurazione prevista.                                                                       |
| La favicon o il foglio di stile sembra ancora invariato     | Controlli la risposta di rete e la cache del browser; usi un URL di asset con versione se necessario.                                                                                                                     |

## API

* [Set-PSUBranding](/powershell-universal/it/comandi-powershell/set-psubranding.md)
* [New-PSUBranding](/powershell-universal/it/comandi-powershell/new-psubranding.md) (alias)
* [New-PSUPublishedFolder](/powershell-universal/it/comandi-powershell/new-psupublishedfolder.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/it/config/login-page.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.
