> 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/password-manager/it/knowledge-base/application-knowledge-base/devolutions-password-manager-pre-configuration.md).

# Pre-configurazione di Devolutions Password Manager

{% tabs %}
{% tab title="Windows" %}

#### Che cos'è la preconfigurazione?

La preconfigurazione consente agli amministratori IT di distribuire l'app Windows di Devolutions Password Manager con impostazioni e spazi di lavoro preconfigurati (Devolutions Server e Devolutions Cloud) sugli endpoint Windows. Ciò elimina la necessità per gli utenti finali di configurare manualmente l'applicazione dopo l'installazione.

#### Vantaggi principali

* Distribuzione zero-touch: gli utenti iniziano con applicazioni completamente configurate
* Coerenza: garantisce che tutti gli utenti abbiano gli stessi spazi di lavoro e le stesse impostazioni
* Risparmio di tempo: elimina i passaggi di configurazione manuale
* Flessibilità: più metodi di distribuzione adatti a diverse infrastrutture IT
* Scalabilità: distribuzione efficiente su centinaia o migliaia di endpoint

#### Come funziona

1. Un amministratore IT configura spazi di lavoro e impostazioni tramite parametri MSI o file di configurazione.
2. Lo strumento di distribuzione invia l'installazione ai dispositivi gestiti (Intune, SCCM, PDQ Deploy, ecc.).
3. Gli utenti avviano l'app per la prima volta.
4. L'app legge la configurazione e crea automaticamente gli spazi di lavoro.
5. Gli utenti effettuano l'accesso per completare la connessione.

#### Note importanti

* Autenticazione richiesta: gli spazi di lavoro preconfigurati vengono creati in stato "in sospeso". Gli utenti devono comunque effettuare l'accesso per completare la connessione.
* Solo al primo avvio: la configurazione viene applicata una sola volta al primo avvio. Le modifiche successive richiedono la reinstallazione dell'app o la configurazione manuale.
* Credenziali NON memorizzate: la preconfigurazione NON include le credenziali utente. Gli utenti devono effettuare l'accesso con le proprie credenziali.

### Metodi di distribuzione

#### Metodo 1: parametri del programma di installazione MSI

Passi i parametri di configurazione direttamente al programma di installazione Windows durante la distribuzione. È possibile combinare i parametri degli spazi di lavoro con le impostazioni dell'applicazione.

Caso d'uso: distribuzioni rapide, configurazioni semplici, test

* Esempio di base (solo spazi di lavoro):

```bash
msiexec /i Devolutions.PasswordManager.msi /qn DVLS_SERVER_URL="https://server.com" HUB_NAME="mycompany"
```

* Con impostazioni (spazi di lavoro + impostazioni dell'applicazione):

```bash
msiexec /i Devolutions.PasswordManager.msi /qn ^
  DVLS_SERVER_URL="https://server.com" ^
  HUB_NAME="mycompany" ^
  ORGANIZATION_ID="guid-here" ^
  LANGUAGE="fr" ^
  LOCKING_OPTION="windowsCredentials"
```

Limitazioni: tramite i parametri MSI è possibile configurare un solo Devolutions Server. Per più server, utilizzi il Metodo 2.

#### Metodo 2: distribuzione tramite file di configurazione (consigliato per le aziende)

Distribuisca un file `.cfg` creato in precedenza sui sistemi di destinazione.

* Caso d'uso: Intune, SCCM, configurazioni complesse, più spazi di lavoro

**Opzione A: distribuzione a livello di sistema (DEPLOY\_CONFIG) - CONSIGLIATA**

```bash
msiexec /i Devolutions.PasswordManager.msi /qn DEPLOY_CONFIG="C:\path\to\Config.cfg"
```

* Destinazione: `%ProgramData%\net.devolutions\Devolutions Password Manager\DefaultConfig.cfg`
* Come funziona:

1. L'MSI scrive la configurazione in ProgramData durante l'installazione
2. Quando un utente avvia Devolutions Password Manager, l'app rileva la configurazione a livello di sistema
3. La configurazione viene copiata automaticamente nel profilo Roaming dell'utente
4. L'utente ha l'applicazione configurata

**Perché DEPLOY\_CONFIG per le aziende:**

1. Affidabile: funziona indipendentemente dal contesto utente (nessun problema con l'"utente predefinito")
2. Coerente: tutti gli utenti sul computer ottengono la stessa configurazione
3. Adatto all'automazione: perfetto per Intune, SCCM, installazioni silenziose
4. Supporto multiutente: si applica a tutti gli utenti esistenti e futuri

* Ideale per: Intune, SCCM, installazioni silenziose, computer multiutente, workstation condivise

**Opzione B: distribuzione per utente (USER\_CONFIG)**

```bash
msiexec /i Devolutions.PasswordManager.msi /qn USER_CONFIG="C:\path\to\Config.cfg"
```

* Destinazione: `%LOCALAPPDATA%\net.devolutions\Devolutions Password Manager\Config.cfg`
* Come funziona:

1. L'MSI scrive la configurazione nella Local AppData dell'utente che esegue l'installazione
2. L'utente avvia Devolutions Password Manager
3. La configurazione viene copiata nel profilo Roaming dell'utente
4. Solo quell'utente ha l'applicazione configurata

* Limitazioni:

1. Configura solo l'utente che ha eseguito il programma di installazione
2. Può non riuscire nelle distribuzioni automatizzate (problemi di contesto utente)
3. Non adatta a computer multiutente

* Ideale per: installazioni interattive da parte degli utenti finali, dispositivi a utente singolo

#### Metodo 3: creatore di configurazione basato sull'interfaccia utente

Utilizzi l'applicazione desktop per creare file di configurazione e comandi MSI.

* Caso d'uso: amministratori IT che preparano pacchetti di distribuzione
* Accesso: ***Strumenti*** – ***Installazione personalizzata*** (nell'applicazione desktop)

Consulti la sezione Creatore di file di configurazione per i dettagli.

### Struttura del file di configurazione

I file di configurazione utilizzano l'estensione `.cfg` e contengono dati in formato JSON.

#### Formato del file

```json
{
  "hubs": [
    {
      "url": "https://mycompany.devolutions.app",
      "organizationId": "00000000-0000-0000-0000-000000000000",
      "type": "Business",
      "version": ""
    }
  ],
  "dvls": [
    {
      "name": "Production DVLS",
      "serverUrl": "https://devolutions-server.company.com",
      "serverVersion": ""
    },
    {
      "name": "Development DVLS",
      "serverUrl": "https://devolutions-server-dev.company.com",
      "serverVersion": ""
    }
  ],
  "configs": {
    "language": "en-US",
    "reduceToTrayOnClose": true,
    "clearClipboardSensitiveData": true,
    "clipboardTimer": 30,
    "useFavicon": true,
    "useEntriesSyncOnDatasourceAccess": false,
    "useHubEmbeddedBrowser": true,
    "shareUsageData": false,
    "lockingOption": "windowsCredentials",
    "useBackgroundLock": true,
    "useLockWhenInactive": true,
    "lockInactivityDelay": 300
  }
}
```

#### Componenti dello schema

**Array Devolutions Cloud (facoltativo)**

Array di istanze Devolutions Cloud da configurare.

| Campo              | Tipo    | Obbligatorio | Descrizione                                                                      |
| ------------------ | ------- | ------------ | -------------------------------------------------------------------------------- |
| **url**            | stringa | Sì           | URL di Devolutions Cloud (ad es., `https://mycompany.devolutions.app`)           |
| **organizationId** | stringa | Sì           | GUID dell'organizzazione                                                         |
| **type**           | stringa | No           | Sempre "Business" (compilato automaticamente)                                    |
| **version**        | stringa | No           | Versione di Devolutions Cloud (compilata automaticamente alla prima connessione) |

**Array Devolutions Server (facoltativo)**

Array di istanze Devolutions Server da configurare.

| Campo             | Tipo    | Obbligatorio | Descrizione                                                                  |
| ----------------- | ------- | ------------ | ---------------------------------------------------------------------------- |
| **name**          | stringa | Sì           | Nome visualizzato del server                                                 |
| **serverUrl**     | stringa | Sì           | URL di Devolutions Server (ad es., `https://devolutions-server.company.com`) |
| **serverVersion** | stringa | No           | Versione del server (compilata automaticamente alla prima connessione)       |

**Oggetto Configs (facoltativo)**

Impostazioni dell'applicazione da preconfigurare.

Consulti il [riferimento delle impostazioni di configurazione](#configuration-settings-reference) per l'elenco completo.

### Percorsi dei file di configurazione

I file di configurazione vengono caricati in ordine di priorità in base al percorso.

#### Configurazione a livello di utente

* Roaming AppData: `%APPDATA%\net.devolutions\Devolutions Password Manager\Config.cfg`
* Predefinito: `C:\Users\[Username]\AppData\Roaming\net.devolutions\Devolutions Password Manager\Config.cfg`
* Si sincronizza tra i computer aggiunti al dominio
* Priorità più alta (specifica per l'utente)
* Local AppData: `%LOCALAPPDATA%\net.devolutions\Devolutions Password Manager\Config.cfg`
* Predefinito: `C:\Users\[Username]\AppData\Local\net.devolutions\Devolutions Password Manager\Config.cfg`
* Specifico del computer, non sincronizzato
* Utilizzato durante l'installazione MSI, quindi copiato in Roaming

#### Configurazione a livello di sistema

* ProgramData: `%ProgramData%\net.devolutions\Devolutions Password Manager\DefaultConfig.cfg`
* Predefinito: `C:\ProgramData\net.devolutions\Devolutions Password Manager\DefaultConfig.cfg`
* Si applica a tutti gli utenti del sistema
* Richiede il file indicatore `config.ready` nella stessa directory
* Copiato nella posizione Roaming dell'utente al primo avvio (se la configurazione utente non esiste)

#### File indicatore

* File: `config.ready`
* Posizione: stessa directory di `DefaultConfig.cfg`
* Scopo: segnala che la configurazione a livello di sistema è pronta per la distribuzione
* Contenuto: file vuoto, viene verificata solo la presenza

#### Ordine di priorità

Le origini di configurazione vengono verificate nel seguente ordine (vince la prima trovata):

1. File di configurazione utente – Utente – configurazione specifica
2. File di configurazione di sistema – Sistema – impostazione predefinita globale (copiata nella posizione dell'utente)

### Parametri del programma di installazione MSI

Il programma di installazione MSI di Windows accetta i seguenti parametri per la preconfigurazione.

#### Parametri dello spazio di lavoro

**Configurazione di Devolutions Server**

| Parametro             | Tipo    | Descrizione               | Esempio                                  |
| --------------------- | ------- | ------------------------- | ---------------------------------------- |
| **DVLS\_SERVER\_URL** | Stringa | URL di Devolutions Server | `https://devolutions-server.company.com` |

* Nota: è possibile configurare un solo (Devolutions Server tramite i parametri MSI. Per più server, utilizzi un file di configurazione.)

**Configurazione di Devolutions Cloud**

| Parametro            | Tipo    | Descrizione                                                                | Esempio                                |
| -------------------- | ------- | -------------------------------------------------------------------------- | -------------------------------------- |
| **HUB\_NAME**        | Stringa | Nome del sottodominio di Devolutions Cloud (obbligatorio)                  | `mycompany`                            |
| **ORGANIZATION\_ID** | Stringa | GUID dell'organizzazione (facoltativo - lasciare vuoto se non applicabile) | `00000000-0000-0000-0000-000000000000` |

* Nota: l'URL completo di Devolutions Cloud viene costruito come `https://{HUB_NAME}.devolutions.app`
* Nota: `ORGANIZATION_ID` è facoltativo. Alcune istanze di Devolutions Cloud non richiedono un ID organizzazione. Se non applicabile, può omettere questo parametro o passare una stringa vuota.

#### Parametri di distribuzione del file di configurazione

| Parametro          | Tipo    | Descrizione                                           | Posizione di destinazione                                                      |
| ------------------ | ------- | ----------------------------------------------------- | ------------------------------------------------------------------------------ |
| **DEPLOY\_CONFIG** | Stringa | Configurazione a livello di sistema (consigliata)     | `%ProgramData%\net.devolutions\Devolutions Password Manager\DefaultConfig.cfg` |
| **USER\_CONFIG**   | Stringa | Configurazione per utente (installazioni interattive) | `%LOCALAPPDATA%\net.devolutions\Devolutions Password Manager\Config.cfg`       |

#### Parametri delle impostazioni dell'applicazione

**Impostazioni generali**

| Parametro            | Tipo    | Valori                       | Predefinito | Descrizione                     |
| -------------------- | ------- | ---------------------------- | ----------- | ------------------------------- |
| **TARGET\_LOCATION** | Stringa | `roaming`, `local`, `system` | `roaming`   | Dove salvare la configurazione. |
| **LANGUAGE**         | Stringa | Codice lingua                | `en-US`     | Lingua dell'applicazione.       |

**Impostazioni dell'interfaccia utente**

| Parametro                       | Tipo    | Valori          | Predefinito | Descrizione                                                             |
| ------------------------------- | ------- | --------------- | ----------- | ----------------------------------------------------------------------- |
| **REDUCE\_TO\_TRAY\_ON\_CLOSE** | Stringa | `true`, `false` | `false`     | Riduci a icona nella barra delle applicazioni invece di chiudere.       |
| **USE\_FAVICON**                | Stringa | `true`, `false` | `false`     | Scarica e visualizza le favicon dei siti web.                           |
| **USE\_HUB\_EMBEDDED\_BROWSER** | Stringa | `true`, `false` | `true`      | Utilizza il browser integrato per l'autenticazione a Devolutions Cloud. |

**Impostazioni di sicurezza**

| Parametro                             | Tipo    | Valori                                        | Predefinito | Descrizione                                                        |
| ------------------------------------- | ------- | --------------------------------------------- | ----------- | ------------------------------------------------------------------ |
| **CLEAR\_CLIPBOARD\_SENSITIVE\_DATA** | Stringa | `true`, `false`                               | `false`     | Cancella automaticamente gli appunti dopo la copia delle password. |
| **CLIPBOARD\_TIMER**                  | Numero  | Secondi (1-999)                               | `30`        | Secondi prima della cancellazione degli appunti.                   |
| **LOCKING\_OPTION**                   | Stringa | `password`, `biometric`, `windowsCredentials` | (nessuno)   | Metodo per bloccare l'applicazione.                                |
| **USE\_BACKGROUND\_LOCK**             | Stringa | `true`, `false`                               | `false`     | Blocca quando è ridotta a icona nella barra delle applicazioni.    |
| **USE\_LOCK\_WHEN\_INACTIVE**         | Stringa | `true`, `false`                               | `false`     | Blocca dopo un periodo di inattività.                              |
| **LOCK\_INACTIVITY\_DELAY**           | Numero  | Secondi (30-3600)                             | `30`        | Secondi prima del blocco automatico.                               |

**Impostazioni di sincronizzazione**

| Parametro                                      | Tipo    | Valori          | Predefinito | Descrizione                                                                     |
| ---------------------------------------------- | ------- | --------------- | ----------- | ------------------------------------------------------------------------------- |
| **USE\_ENTRIES\_SYNC\_ON\_DATASOURCE\_ACCESS** | Stringa | `true`, `false` | `false`     | Sincronizza automaticamente le voci all'accesso a Devolutions Password Manager. |

**Impostazioni della privacy**

| Parametro              | Tipo    | Valori          | Predefinito | Descrizione                                |
| ---------------------- | ------- | --------------- | ----------- | ------------------------------------------ |
| **SHARE\_USAGE\_DATA** | Stringa | `true`, `false` | `true`      | Condivide statistiche di utilizzo anonime. |

### Creatore di file di configurazione

L'applicazione desktop include uno strumento visivo per la creazione di file di configurazione.

#### Accesso allo strumento

1. Avvii Devolutions Password Manager.
2. Vada a: ***Strumenti*** – ***Installazione personalizzata***.

#### Funzionalità

**Scheda Esporta (Crea configurazione)**

1. Selezione dello spazio di lavoro.

* Visualizzi tutte le istanze configurate (Devolutions Server e Devolutions Cloud)
* Selezioni quali spazi di lavoro includere tramite le caselle di controllo
* Sono supportati più spazi di lavoro

2. Configurazione delle impostazioni

* Attivi/disattivi le singole impostazioni dell'applicazione raggruppate per categoria:
* Generale (Lingua, comportamento della barra delle applicazioni)
* Sicurezza (Appunti, blocco)
* Sincronizzazione
* Privacy (Statistiche di utilizzo)

3. Anteprima in tempo reale

* Anteprima JSON in tempo reale della configurazione
* Copi il JSON negli appunti
* L'anteprima si aggiorna al variare delle selezioni

4. Opzioni di esportazione

* Genera file .cfg: salvi la configurazione in un file `.cfg`
* Copia comando MSI: genera il comando MSI completo con tutti i parametri

**Scheda Importa (Carica configurazione)**

1. Selezione del file

* Cerchi i file `.cfg`
* Convalida e analisi del file

2. Anteprima prima dell'importazione

* Visualizzi spazi di lavoro e impostazioni prima di applicarli
* Rilevamento dei duplicati (avvisa se lo spazio di lavoro esiste già)

3. Azioni di importazione

* Applica la configurazione all'applicazione corrente
* Crea nuovi spazi di lavoro se non esistono
* Aggiorna immediatamente le impostazioni

### Riferimento delle impostazioni di configurazione

Riferimento completo di tutte le impostazioni configurabili.

#### Mappatura delle chiavi delle impostazioni

| Chiave di esportazione (Config/MSI)  | Chiave interna              | Tipo     | Predefinito | Descrizione                                                           |
| ------------------------------------ | --------------------------- | -------- | ----------- | --------------------------------------------------------------------- |
| **language**                         | languageCode                | Stringa  | `en-US`     | Lingua dell'interfaccia utente dell'applicazione                      |
| **reduceToTrayOnClose**              | minimizeOnClose             | Booleano | `false`     | Riduci a icona nella barra delle applicazioni invece di uscire        |
| **clearClipboardSensitiveData**      | removeSensitiveFromKeyboard | Booleano | `false`     | Timer di cancellazione automatica degli appunti                       |
| **clipboardTimer**                   | clipboardTimer              | Intero   | `30`        | Secondi prima della cancellazione degli appunti (1-999)               |
| **useFavicon**                       | useRichIcons                | Booleano | `false`     | Scarica le favicon dei siti web per le voci                           |
| **useEntriesSyncOnDatasourceAccess** | useEntriesSyncSpaceAccess   | Booleano | `false`     | Sincronizza automaticamente le voci all'accesso allo spazio di lavoro |
| **useHubEmbeddedBrowser**            | hubEmbeddedBrowser          | Booleano | `true`      | Usa il browser integrato per l'autenticazione a Devolutions Cloud     |
| **shareUsageData**                   | shareAnonymousData          | Booleano | `true`      | Condivide statistiche di utilizzo anonime                             |
| **lockingOption**                    | lockingOption               | Stringa  | `(none)`    | Metodo di blocco: `password`, `biometric`, `windowsCredentials`       |
| **useBackgroundLock**                | useBackgroundLock           | Booleano | `false`     | Blocca quando ridotto a icona nell'area di notifica                   |
| **useLockWhenInactive**              | useLockWhenInactive         | Booleano | `false`     | Blocca dopo un periodo di inattività                                  |
| **lockInactivityDelay**              | lockInactivityDelay         | Intero   | `30`        | Secondi prima del blocco automatico (30-3600)                         |

#### Lingue supportate

| Codice   | Lingua                |
| -------- | --------------------- |
| `en-US`  | Inglese (Stati Uniti) |
| `fr`     | Francese              |
| `de`     | Tedesco               |
| `es`     | Spagnolo              |
| `cs`     | Ceco                  |
| `hu`     | Ungherese             |
| `it`     | Italiano              |
| `nl`     | Olandese              |
| `pl`     | Polacco               |
| `ru`     | Russo                 |
| `sv`     | Svedese               |
| `tr`     | Turco                 |
| `uk`     | Ucraino               |
| `zh-CHS` | Cinese (semplificato) |
| `zh-TW`  | Cinese (tradizionale) |

#### Opzioni di blocco

| Valore                 | Descrizione               | Requisiti                                    |
| ---------------------- | ------------------------- | -------------------------------------------- |
| **password**           | Password principale       | L'utente imposta la password al primo blocco |
| **biometric**          | Impronta digitale/Face ID | Richiede hardware biometrico                 |
| **windowsCredentials** | Windows Hello             | Windows 10/11 con Windows Hello              |

* Nota: se Windows Hello non è disponibile, viene utilizzata la password.

### Esempi di distribuzione

#### Esempio 1: singolo Devolutions Server con impostazioni di sicurezza

```bash
msiexec /i Devolutions.PasswordManager.msi /qn ^
  DVLS_SERVER_URL="https://devolutions-server.company.com" ^
  LOCKING_OPTION="windowsCredentials" ^
  USE_LOCK_WHEN_INACTIVE="true" ^
  LOCK_INACTIVITY_DELAY="300" ^
  CLEAR_CLIPBOARD_SENSITIVE_DATA="true" ^
  CLIPBOARD_TIMER="60"
```

#### Esempio 2: Devolutions Cloud con lingua francese

```bash
# With Organization ID
msiexec /i Devolutions.PasswordManager.msi /qn ^
  HUB_NAME="mycompany" ^
  ORGANIZATION_ID="12345678-1234-1234-1234-123456789abc" ^
  LANGUAGE="fr" ^
  REDUCE_TO_TRAY_ON_CLOSE="true"

# Without Organization ID (for Devolutions Cloud instances that don't require it)
msiexec /i Devolutions.PasswordManager.msi /qn ^
  HUB_NAME="mycompany" ^
  LANGUAGE="fr" ^
  REDUCE_TO_TRAY_ON_CLOSE="true"
```

#### Esempio 3: distribuzione Microsoft Intune

**Passaggio 1: preparare i file**

Creare una cartella di lavoro (ad esempio, `C:\IntuneApps\Devolutions Password Manager\`) e inserire questi file:

* `Devolutions.PasswordManager.msi`
* `config.cfg` (creato tramite ***Strumenti*** – ***Installazione personalizzata*** o manualmente)
* `Install-Devolutions.PasswordManager.ps1` (script PowerShell riportato di seguito)

**Passaggio 2: script di installazione PowerShell**

Creare `Install-Devolutions.PasswordManager.ps1`:

```powershell
# Install-Devolutions.PasswordManager.ps1
# Source files in the Intune package
$ConfigSource = "$PSScriptRoot\config.cfg"
$ConfigTarget = "C:\Program Files\config.cfg"
$MsiPath = "$PSScriptRoot\Devolutions.PasswordManager.msi"

# Copy config.cfg to Program Files
try {
    Copy-Item -Path $ConfigSource -Destination $ConfigTarget -Force
} catch {
    Write-Host "Error copying config file: $($_.Exception.Message)"
    exit 1
}

# Install MSI silently with DEPLOY_CONFIG parameter
$Arguments = "/i `"$MsiPath`" /qn /norestart DEPLOY_CONFIG=`"C:\Program Files\config.cfg`""
$Process = Start-Process "msiexec.exe" -ArgumentList $Arguments -Wait -PassThru

# Return exit code to Intune
exit $Process.ExitCode
```

**Passaggio 3: creare il pacchetto .intunewin**

Utilizzare il Microsoft Win32 Content Prep Tool (`IntuneWinAppUtil.exe`):

```bash
IntuneWinAppUtil.exe -c C:\IntuneApps\Devolutions Password Manager -s Install-Devolutions.PasswordManager.ps1 -o C:\IntuneApps\Output
```

**Passaggio 4: configurare l'applicazione Intune**

Nel portale Microsoft Intune:

1. Passare a: **Apps** – **Windows** – **Add** – **Windows app (Win32)**
2. File del pacchetto app: caricare `Devolutions Password Manager.intunewin`
3. Informazioni sull'app: inserire nome, descrizione, editore
4. Configurazione del programma:

* Comando di installazione: `powershell.exe -ExecutionPolicy Bypass -File .\Install-Devolutions.PasswordManager.ps1`
* Comando di disinstallazione: `msiexec.exe /x {PRODUCT-CODE-GUID} /qn /norestart`
* Comportamento di installazione: Sistema

5. Requisiti: Windows 10 1607+ (64 bit)
6. Regole di rilevamento: codice prodotto MSI (rilevato automaticamente)
7. Assegnazioni: assegnare ai gruppi di destinazione

**Flusso di installazione sull'endpoint**

Quando l'app viene distribuita a un dispositivo, avviene automaticamente quanto segue:

1. Intune scarica ed esegue `Install-Devolutions.PasswordManager.ps1`
2. Lo script copia `config.cfg` in `C:\Program Files\config.cfg`
3. Lo script installa l'MSI con `DEPLOY_CONFIG="C:\Program Files\config.cfg"`
4. L'MSI legge il file di configurazione e lo scrive in `%ProgramData%\net.devolutions\Devolutions Password Manager\DefaultConfig.cfg`
5. Quando un utente avvia Devolutions Password Manager, l'app rileva la configurazione a livello di sistema e la applica

Il risultato: il file di configurazione viene distribuito con l'applicazione, collocato automaticamente nella posizione corretta e l'installazione è completamente silenziosa e compatibile con Intune.

#### Esempio 4: distribuzione SCCM

* Comando di installazione:

```bash
msiexec /i Devolutions.PasswordManager.msi /qn /norestart DEPLOY_CONFIG="%~dp0Config.cfg"
```

* Comando di disinstallazione:

```bash
msiexec /x {PRODUCT-CODE} /qn /norestart
```

* Metodo di rilevamento: chiave di registro `HKLM\SOFTWARE\Devolutions\Devolutions Password Manager\Version`

#### Esempio 5: più Devolutions Server tramite file di configurazione

Creare `config.cfg`:

```json
{
  "dvls": [
    {
      "name": "Production Devolutions Server",
      "serverUrl": "https://devolutions-server-prod.company.com"
    },
    {
      "name": "Development Devolutions Server",
      "serverUrl": "https://devolutions-server-dev.company.com"
    },
    {
      "name": "Test Devolutions Server",
      "serverUrl": "https://devolutions-server-test.company.com"
    }
  ],
  "configs": {
    "language": "en-US",
    "shareUsageData": false
  }
}
```

Distribuire tramite:

```bash
msiexec /i Devolutions.PasswordManager.msi /qn DEPLOY_CONFIG="\\fileserver\IT\Workspace\config.cfg"
```

### Risoluzione dei problemi

#### Configurazione non applicata

File di configurazione presente ma impostazioni non applicate.

1. Controllare la posizione del file: verificare il percorso corretto (`%ProgramData%\net.devolutions\Devolutions Password Manager\DefaultConfig.cfg`)
2. Controllare la validità JSON: convalidare la sintassi JSON (nessuna virgola finale, virgolette corrette)
3. Controllare le autorizzazioni: l'utente deve avere accesso in lettura al file di configurazione
4. Verificare il file indicatore: controllare se il file `config.ready` esiste nella stessa directory
5. Controllare i log: esaminare i log dell'applicazione per individuare errori di analisi

#### File indicatore mancante

* Problema: configurazione a livello di sistema ignorata.
* Soluzione: creare il file `config.ready`:

```bash
type nul > "%ProgramData%\net.devolutions\Devolutions Password Manager\config.ready"
```

#### USER\_CONFIG viene distribuito nel profilo utente "default"

* Problema: USER\_CONFIG non riesce nelle installazioni silenziose/automatizzate, la configurazione finisce in `C:\Users\Default\AppData\Local`.
* Causa: USER\_CONFIG richiede un contesto di sessione utente attiva, non disponibile durante l'installazione MSI automatizzata.
* Soluzione: utilizzare **DEPLOY\_CONFIG** per le distribuzioni aziendali:

```bash
# CORRECT for Intune/SCCM
msiexec /i Devolutions.PasswordManager.msi /qn /norestart DEPLOY_CONFIG="%~dp0Config.cfg"

# WRONG for automated deployment
msiexec /i Devolutions.PasswordManager.msi /qn /norestart USER_CONFIG="%~dp0Config.cfg"
```

#### L'installazione silenziosa MSI non applica la configurazione

I parametri MSI non creano la configurazione.

1. Controllare la sintassi dei parametri: assicurarsi che le virgolette siano corrette (usare `"value"`, non `'value'`)
2. Registrare l'installazione MSI: aggiungere `/l*v install.log` per visualizzare errori dettagliati
3. Verificare l'esecuzione di PowerShell: controllare se i criteri di esecuzione bloccano gli script
4. Diritti amministrativi: si assicuri che il programma di installazione venga eseguito con privilegi elevati

* Esempio con logging:

```bash
msiexec /i Devolutions.PasswordManager.msi /qn /l*v C:\Temp\install.log DVLS_SERVER_URL="https://server.com"
```

#### Le impostazioni non vengono mantenute

Le impostazioni tornano ai valori predefiniti dopo il riavvio.

1. Configurazione utente vs configurazione di sistema: la configurazione di sistema viene applicata solo se non esiste la configurazione utente. Una volta che l'utente modifica le impostazioni, queste vengono salvate nella configurazione utente e sovrascrivono i valori predefiniti di sistema.
2. Override dei criteri di gruppo: verifichi se un GPO sta imponendo le impostazioni
3. Autorizzazioni sui file: verifichi le autorizzazioni di scrittura sulla posizione della configurazione utente

#### Lo spazio di lavoro esiste già

Problema: l'importazione non riesce con il messaggio "workspace already exists".

Spiegazione: il parser di configurazione rileva i duplicati in base all'URL normalizzato (senza distinzione tra maiuscole e minuscole, barra finale rimossa).

1. Rimuova manualmente lo spazio di lavoro esistente prima dell'importazione
2. Modifichi il file di configurazione per rimuovere le voci duplicate
3. Utilizzi lo strumento Custom Installation per unire le configurazioni

#### L'opzione di blocco non funziona

Windows Hello non si attiva.

1. Configurazione di Windows Hello: si assicuri che Windows Hello sia configurato nelle Impostazioni di Windows
2. Fallback: il sistema ricorre automaticamente alla password se l'hardware non è disponibile
3. Controlli i log: esamini i log dell'applicazione per individuare errori di inizializzazione biometrica

### Best practice

#### 1. Testare prima la configurazione

Prima di eseguire il deployment per tutti gli utenti:

1. Crei un gruppo di utenti/dispositivi di prova
2. Applichi la configurazione al gruppo di prova
3. Verifichi che gli spazi di lavoro e le impostazioni funzionino come previsto
4. Effettui il rollout in produzione

#### 2.Utilizzare DEPLOY\_CONFIG in ambito aziendale

* Utilizzi sempre DEPLOY\_CONFIG per:
* Deployment con Intune
* Deployment con SCCM
* Installazioni silenziose/automatiche
* Macchine multiutente
* Postazioni di lavoro condivise
* Utilizzi USER\_CONFIG solo per:
* Installazioni interattive da parte degli utenti finali
* Dispositivi a utente singolo
* Scenari di test

#### 3. Documentare la configurazione

Mantenga una documentazione della sua configurazione che includa:

* Quali spazi di lavoro sono preconfigurati
* Quali impostazioni sono imposte
* Esperienza utente prevista
* Contatto di supporto per i problemi

#### 4. Comunicazione agli utenti

Informi gli utenti:

* Gli spazi di lavoro saranno preconfigurati
* Devono comunque accedere con le proprie credenziali
* La configurazione avviene al primo avvio dell'app
* Contattare l'IT se gli spazi di lavoro non compaiono

#### 5. Considerazioni sulla sicurezza

**Impostazioni di sicurezza consigliate**:

```json
{
  "lockingOption": "windowsCredentials",
  "useBackgroundLock": true,
  "useLockWhenInactive": true,
  "lockInactivityDelay": 300,
  "clearClipboardSensitiveData": true,
  "clipboardTimer": 60,
  "shareUsageData": false
}
```

**Perché**:

* Impone l'autenticazione tramite Windows Hello
* Blocca l'app immediatamente quando passa in background
* Si blocca automaticamente dopo 5 minuti di inattività
* Cancella gli appunti dopo 60 secondi
* Disattiva la raccolta dei dati di utilizzo (facoltativo)

#### 6. Requisiti del formato URL

Tutti gli URL devono:

* Includere il protocollo (`https://`)
* Essere URL validi e accessibili
* Non terminare con una barra finale (l'app la normalizzerà)

**Esempi:**

* `https://devolutions-server.company.com`
* `https://password-manager.devolutions.app`
* `devolutions-server.company.com` (manca https\://)
* `http://devolutions-server.company.com` (HTTP non consigliato)

#### 7. Considerazioni su dominio e standalone

* Aggiunto al dominio: utilizzi Roaming AppData (`TARGET_LOCATION="roaming"`) per la sincronizzazione del profilo
* Standalone: utilizzi Local AppData (`TARGET_LOCATION="local"`) o System (`TARGET_LOCATION="system"`)

### Riferimento rapido

#### Modello di configurazione minima

```json
{
  "dvls": [
    {
      "name": "Devolutions Server",
      "serverUrl": "https://devolutions-server.example.com"
    }
  ]
}
```

#### Comando di deployment aziendale consigliato

```bash
msiexec /i Devolutions.PasswordManager.msi /qn /norestart DEPLOY_CONFIG="\\server\share\Config.cfg"
```

{% endtab %}

{% tab title="macOS" %}

#### Che cos'è la preconfigurazione

La preconfigurazione consente agli amministratori IT di distribuire Devolutions Password Manager con impostazioni e spazi di lavoro preconfigurati (istanze di Devolutions Server e Devolutions Cloud) sugli endpoint macOS gestiti. In questo modo non è più necessario che gli utenti finali configurino manualmente l'applicazione dopo l'installazione.

#### Vantaggi principali

* Deployment zero-touch: gli utenti iniziano con applicazioni completamente configurate
* Coerenza: garantisce che tutti gli utenti abbiano gli stessi spazi di lavoro e le stesse impostazioni
* Risparmio di tempo: elimina i passaggi di configurazione manuale
* Gestione centralizzata: configuri dalla console MDM
* Applicazione dei criteri: può impedire agli utenti di modificare le impostazioni
* Standard aziendale: approccio consigliato per le flotte macOS gestite

#### Come funziona

1. L'amministratore IT configura gli spazi di lavoro e le impostazioni tramite MDM o file di configurazione
2. L'MDM invia la configurazione ai dispositivi gestiti
3. L'utente avvia l'app per la prima volta
4. L'app legge la configurazione e crea automaticamente gli spazi di lavoro
5. L'utente si autentica per completare la connessione (inserisce le credenziali)

#### Note importanti

* Autenticazione richiesta: gli spazi di lavoro preconfigurati vengono creati in stato "in sospeso". Gli utenti devono comunque autenticarsi (accedere) per completare la connessione.
* Solo al primo avvio: la configurazione viene applicata una sola volta al primo avvio. Le modifiche successive richiedono la reinstallazione dell'app o la configurazione manuale.
* Credenziali NON memorizzate: la preconfigurazione NON include le credenziali degli utenti. Gli utenti devono accedere con le proprie credenziali.

### Metodi di deployment

#### Metodo 1: MDM/preferenze gestite (consigliato)

Distribuisca la configurazione tramite soluzioni Mobile Device Management (MDM) per ambienti macOS gestiti.

* Caso d'uso: Jamf Pro, Microsoft Intune for Mac, altre soluzioni MDM
* Priorità: massima (sovrascrive tutte le configurazioni basate su file)
* Dominio delle preferenze: `net.devolutions.authenticator`

**Vantaggi:**

* Gestione centralizzata: configuri dalla console MDM
* Applicazione dei criteri: può impedire agli utenti di modificare le impostazioni
* Priorità massima: sovrascrive i file di configurazione locali
* Standard aziendale: approccio consigliato per le flotte macOS gestite

Consulti la sezione [MDM/Preferenze gestite](#method-1-mdm-managed-preferences-recommended) per istruzioni dettagliate.

#### Metodo 2: deployment tramite file di configurazione

Distribuisca un file `.cfg` creato in precedenza sui sistemi di destinazione.

* Caso d'uso: deployment tramite script, ambienti senza MDM, test
* Posizione a livello di sistema: `/Library/Application Support/Devolutions/Devolutions Password Manager/DefaultConfig.cfg`
* Posizione per utente: `~/Library/Application Support/Devolutions Password Manager/Config.cfg`

Consulti la sezione [Struttura del file di configurazione](#configuration-file-structure-1) per i dettagli.

#### Metodo 3: configurazione manuale (comando defaults)

Per la configurazione manuale o tramite script:

```bash
# Set language
defaults write net.devolutions.authenticator language -string "en-US"

# Enable tray minimize
defaults write net.devolutions.authenticator reduceToTrayOnClose -bool true

# Set locking option
defaults write net.devolutions.authenticator lockingOption -string "biometric"
```

**Caso d'uso**: configurazione manuale, test, script shell

### MDM/Preferenze gestite

#### Deployment con Jamf Pro

**Opzione A: utilizzo dello schema JSON (consigliato)**

1. Scarichi o copi il JSON Schema di Jamf Pro per Devolutions Password Manager:

<details>

<summary><strong>Faccia clic per espandere: Devolutions Password Manager Jamf Pro JSON Schema</strong></summary>

```json
{
  "title": "Devolutions Password Manager Configuration (net.devolutions.authenticator)",
  "description": "Configuration settings for Devolutions Password Manager deployed via Jamf Pro. These settings are deployed as managed preferences to managed devices.",
  "__version": "1.0",
  "__preferencedomain": "net.devolutions.authenticator",
  "options": {
    "remove_empty_properties": true
  },
  "properties": {
    "dvls": {
      "title": "DVLS Configuration",
      "description": "Devolutions Server connection settings",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "title": "Server Name",
            "description": "Display name for the Devolutions Server",
            "type": "string",
            "default": "Devolutions Server"
          },
          "serverUrl": {
            "title": "Server URL",
            "description": "Full URL to the Devolutions Server (e.g., https://server.company.com)",
            "type": "string",
            "pattern": "^https?://.*"
          },
          "serverVersion": {
            "title": "Server Version",
            "description": "Devolutions Server version (optional)",
            "type": "string",
            "default": ""
          }
        },
        "required": ["serverUrl"]
      },
      "default": []
    },
    "hubs": {
      "title": "Devolutions Cloud Configuration",
      "description": "Devolutions Cloud connection settings",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "title": "Devolutions Cloud URL",
            "description": "Full Devolutions Cloud URL (e.g., https://yourcompany.devolutions.app)",
            "type": "string",
            "pattern": "^https://.*\\.devolutions\\.app$"
          },
          "organizationId": {
            "title": "Organization ID",
            "description": "Organization identifier for Devolutions Cloud",
            "type": "string"
          },
          "type": {
            "title": "Devolutions Cloud Type",
            "description": "Devolutions Cloud connection type (optional)",
            "type": "string"
          },
          "version": {
            "title": "Devolutions Cloud Version",
            "description": "Devolutions Cloud version compatibility",
            "type": "string",
            "default": "2020"
          }
        },
        "required": ["url"]
      },
      "default": []
    },
    "configs": {
      "title": "Application Settings",
      "description": "User preferences and application behavior settings",
      "type": "object",
      "properties": {
        "language": {
          "title": "Language",
          "description": "Default language for Devolutions Password Manager interface",
          "type": "string",
          "enum": [
            "en-US", "fr", "de", "es", "cs", "hu", "it", "nl", "pl", "ru", "sv", "tr", "uk", "zh-CHS", "zh-TW"
          ],
          "default": "en-US",
          "options": {
            "enum_titles": [
              "English", "Français", "Deutsch", "Español", "Čeština", "Magyar", "Italiano",
              "Nederlands", "Polski", "Русский", "Svenska", "Türkçe", "Українська", "简体中文", "繁體中文"
            ]
          }
        },
        "reduceToTrayOnClose": {
          "title": "Minimize to Tray on Close",
          "description": "When enabled, closing the window minimizes to system tray instead of quitting",
          "type": "boolean",
          "default": false
        },
        "clearClipboardSensitiveData": {
          "title": "Clear Clipboard Sensitive Data",
          "description": "Automatically clear sensitive data from clipboard after a specified timeout",
          "type": "boolean",
          "default": false
        },
        "clipboardTimer": {
          "title": "Clipboard Timeout (seconds)",
          "description": "Duration in seconds before clearing clipboard when sensitive data clearing is enabled",
          "type": "integer",
          "enum": [30, 60, 120, 180, 240, 300, 0],
          "default": 30,
          "options": {
            "enum_titles": ["30 seconds", "1 minute", "2 minutes", "3 minutes", "4 minutes", "5 minutes", "Never"]
          }
        },
        "useFavicon": {
          "title": "Use Favicons",
          "description": "Download and display website favicons for entries",
          "type": "boolean",
          "default": false
        },
        "useEntriesSyncOnDatasourceAccess": {
          "title": "Sync Entries on Workspace Access",
          "description": "Automatically synchronize entries when accessing a workspace",
          "type": "boolean",
          "default": false
        },
        "useHubEmbeddedBrowser": {
          "title": "Use Devolutions Cloud Embedded Browser",
          "description": "Open Devolutions Cloud connections in embedded browser (disable if using credential providers)",
          "type": "boolean",
          "default": true
        },
        "lockingOption": {
          "title": "Locking Method",
          "description": "Authentication method used when locking/unlocking Devolutions Password Manager. Leave empty for no locking method.",
          "type": "string",
          "enum": ["", "password", "biometric"],
          "default": "",
          "options": {
            "enum_titles": ["None", "Password/PIN", "Biometric (Touch ID)"]
          }
        },
        "useBackgroundLock": {
          "title": "Lock When Backgrounded",
          "description": "Automatically lock the application when minimized or sent to system tray",
          "type": "boolean",
          "default": false
        },
        "useLockWhenInactive": {
          "title": "Auto-Lock When Inactive",
          "description": "Automatically lock the application after a period of inactivity",
          "type": "boolean",
          "default": false
        },
        "lockInactivityDelay": {
          "title": "Inactivity Lock Delay (seconds)",
          "description": "Time in seconds before locking due to inactivity (requires Auto-Lock to be enabled)",
          "type": "integer",
          "enum": [30, 60, 120, 180, 240, 300],
          "default": 30,
          "options": {
            "enum_titles": ["30 seconds", "1 minute", "2 minutes", "3 minutes", "4 minutes", "5 minutes"]
          }
        }
      }
    },
    "preventStartup": {
      "title": "Prevent Startup",
      "description": "When true, prevents Devolutions Password Manager from starting automatically after configuration deployment",
      "type": "boolean",
      "default": true
    }
  }
}
```

</details>

2. In Jamf Pro, vada a: **Computers – Configuration Profiles – Application & Custom Settings**
3. Faccia clic su **Configure** e carichi il file dello schema JSON
4. Configuri le impostazioni desiderate utilizzando l'interfaccia GUI fornita da Jamf
5. Definisca l'ambito del profilo per i computer di destinazione
6. Distribuisca il profilo di configurazione

**Opzione B: profilo di configurazione manuale**

Se non utilizza Jamf Pro, può creare un profilo di configurazione macOS standard:

**Profilo di esempio** (com.devolutions.workspace.mobileconfig):

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>PayloadType</key>
            <string>net.devolutions.authenticator</string>
            <key>PayloadVersion</key>
            <integer>1</integer>
            <key>PayloadIdentifier</key>
            <string>net.devolutions.authenticator.config</string>
            <key>PayloadUUID</key>
            <string>GENERATE-UUID-HERE</string>
            <key>PayloadDisplayName</key>
            <string>Devolutions Password Manager Configuration</string>
            <key>language</key>
            <string>en-US</string>
            <key>reduceToTrayOnClose</key>
            <true/>
            <key>lockingOption</key>
            <string>biometric</string>
            <key>dvls</key>
            <array>
                <dict>
                    <key>name</key>
                    <string>Corporate DVLS</string>
                    <key>serverUrl</key>
                    <string>https://devolutions-server.company.com</string>
                </dict>
            </array>
        </dict>
    </array>
</dict>
</plist>
```

Distribuisca tramite:

* Jamf Pro: Profili di configurazione – Carica profilo
* Microsoft Intune: Configurazione dispositivi – Profilo personalizzato
* Altri MDM: caricamento di un profilo di configurazione personalizzato

#### Microsoft Intune per Mac

1. Vada a: **Dispositivi** – **Profili di configurazione** – **Crea profilo**.
2. Piattaforma: **macOS**.
3. Tipo di profilo: **Personalizzato**.
4. Carichi il profilo di configurazione (file `.mobileconfig`).
5. Assegni ai gruppi di destinazione.
6. Distribuisca.

#### Verifica della configurazione MDM

Su un Mac gestito:

```bash
# Check if preferences are set
defaults read net.devolutions.authenticator

# Check for specific setting
defaults read net.devolutions.authenticator language
```

### Struttura del file di configurazione

I file di configurazione utilizzano l'estensione `.cfg` e contengono dati in formato JSON.

#### Formato del file

```json
{
  "hubs": [
    {
      "url": "https://mycompany.devolutions.app",
      "organizationId": "00000000-0000-0000-0000-000000000000",
      "type": "Business",
      "version": ""
    }
  ],
  "dvls": [
    {
      "name": "Production DVLS",
      "serverUrl": "https://devolutions-server.company.com",
      "serverVersion": ""
    },
    {
      "name": "Development DVLS",
      "serverUrl": "https://devolutions-server-dev.company.com",
      "serverVersion": ""
    }
  ],
  "configs": {
    "language": "en-US",
    "reduceToTrayOnClose": true,
    "clearClipboardSensitiveData": true,
    "clipboardTimer": 30,
    "useFavicon": true,
    "useEntriesSyncOnDatasourceAccess": false,
    "useHubEmbeddedBrowser": true,
    "shareUsageData": false,
    "lockingOption": "biometric",
    "useBackgroundLock": true,
    "useLockWhenInactive": true,
    "lockInactivityDelay": 300
  }
}
```

#### Componenti dello schema

**Array Devolutions Cloud (facoltativo)**

Array di istanze Devolutions Cloud da configurare.

| Campo              | Tipo    | Obbligatorio | Descrizione                                                                      |
| ------------------ | ------- | ------------ | -------------------------------------------------------------------------------- |
| **url**            | stringa | Sì           | URL di Devolutions Cloud (es. `https://mycompany.devolutions.app`)               |
| **organizationId** | stringa | Sì           | GUID dell'organizzazione                                                         |
| **type**           | stringa | No           | Sempre "Business" (compilato automaticamente)                                    |
| **version**        | stringa | No           | Versione di Devolutions Cloud (compilata automaticamente alla prima connessione) |

**Array Devolutions Server (facoltativo)**

Array di istanze Devolutions Server da configurare.

| Campo             | Tipo    | Obbligatorio | Descrizione                                                               |
| ----------------- | ------- | ------------ | ------------------------------------------------------------------------- |
| **name**          | stringa | Sì           | Nome visualizzato del server                                              |
| **serverUrl**     | stringa | Sì           | (URL di Devolutions Server (es. `https://devolutions-server.company.com`) |
| **serverVersion** | stringa | No           | Versione del server (compilata automaticamente alla prima connessione)    |

**Oggetto `configs` (facoltativo)**

Impostazioni dell'applicazione da preconfigurare.

Consulti [Riferimento delle impostazioni di configurazione](#configuration-settings-reference-1) per l'elenco completo.

### Percorsi dei file di configurazione

#### Configurazione a livello utente

* Percorso: `~/Library/Application Support/Devolutions Password Manager/Config.cfg`
* Priorità: massima per le configurazioni specifiche dell'utente

#### Configurazione a livello di sistema

* Percorso: `/Library/Application Support/Devolutions/Devolutions Password Manager/DefaultConfig.cfg`
* Priorità: applicata se la configurazione utente non esiste

#### Preferenze gestite (MDM/Jamf)

* Priorità: massima (sovrascrive tutte le configurazioni basate su file)
* Dominio delle preferenze: `net.devolutions.authenticator`
* Chiavi: le stesse dell'oggetto `configs` in formato JSON
* Configurazione: tramite profilo MDM o comando `defaults`

#### Ordine di priorità

Le origini di configurazione vengono verificate nel seguente ordine (vince la prima trovata):

1. Preferenze gestite macOS – criteri MDM/Jamf (priorità massima)
2. File di configurazione utente – configurazione specifica dell'utente
3. File di configurazione di sistema – impostazione predefinita a livello di sistema (copiata nella posizione utente)

### Riferimento delle impostazioni di configurazione

Riferimento completo di tutte le impostazioni configurabili.

#### Mappatura delle chiavi delle impostazioni

| Chiave di esportazione (Config/MDM)  | Tipo     | Predefinito | Descrizione                                                            |
| ------------------------------------ | -------- | ----------- | ---------------------------------------------------------------------- |
| **language**                         | Stringa  | `en-US`     | Lingua dell'interfaccia utente dell'applicazione                       |
| **reduceToTrayOnClose**              | Booleano | `false`     | Riduci a icona nella barra delle applicazioni invece di uscire         |
| **clearClipboardSensitiveData**      | Booleano | `false`     | Timer di cancellazione automatica degli appunti                        |
| **clipboardTimer**                   | Intero   | `30`        | Secondi prima della cancellazione degli appunti (1-999)                |
| **useFavicon**                       | Booleano | `false`     | Scarica le favicon dei siti web per le voci                            |
| **useEntriesSyncOnDatasourceAccess** | Booleano | `false`     | Sincronizza automaticamente le voci all'accesso allo spazio di lavoro  |
| **useHubEmbeddedBrowser**            | Booleano | `true`      | Utilizza il browser integrato per l'autenticazione a Devolutions Cloud |
| **shareUsageData**                   | Booleano | `true`      | Condividi statistiche di utilizzo anonime                              |
| **lockingOption**                    | Stringa  | (nessuno)   | Metodo di blocco: `password`, `biometric`                              |
| **useBackgroundLock**                | Booleano | `false`     | Blocca quando ridotto a icona nella barra delle applicazioni           |
| **useLockWhenInactive**              | Booleano | `false`     | Blocca dopo un periodo di inattività                                   |
| **lockInactivityDelay**              | Intero   | `30`        | Secondi prima del blocco automatico (30-3600)                          |

#### Lingue supportate

| Codice   | Lingua                |
| -------- | --------------------- |
| `en-US`  | Inglese (Stati Uniti) |
| `fr`     | Francese              |
| `de`     | Tedesco               |
| `es`     | Spagnolo              |
| `cs`     | Ceco                  |
| `hu`     | Ungherese             |
| `it`     | Italiano              |
| `nl`     | Olandese              |
| `pl`     | Polacco               |
| `ru`     | Russo                 |
| `sv`     | Svedese               |
| `tr`     | Turco                 |
| `uk`     | Ucraino               |
| `zh-CHS` | Cinese (semplificato) |
| `zh-TW`  | Cinese (tradizionale) |

#### Opzioni di blocco

| Valore        | Descrizione         | Requisiti                                    |
| ------------- | ------------------- | -------------------------------------------- |
| **password**  | Password principale | L'utente imposta la password al primo blocco |
| **biometric** | Touch ID            | Richiede hardware Touch ID                   |

### Esempi di distribuzione

#### Esempio 1: Jamf Pro con Devolutions Server e impostazioni di sicurezza

Utilizzo dello schema JSON di Jamf:

1. Carichi lo schema JSON in Jamf Pro
2. Configuri tramite GUI:
   * Configurazione di Devolutions Server: Aggiunga il server con URL `https://devolutions-server.company.com`
   * Metodo di blocco: Biometrico (Touch ID)
   * Blocca quando in background: Abilitato
   * Blocco automatico in caso di inattività: Abilitato
   * Ritardo di blocco per inattività: 5 minuti (300 secondi)
3. Definisca l'ambito sui computer di destinazione
4. Distribuisca

#### Esempio 2: Profilo di configurazione manuale per Devolutions Cloud

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>PayloadType</key>
            <string>net.devolutions.authenticator</string>
            <key>PayloadVersion</key>
            <integer>1</integer>
            <key>PayloadIdentifier</key>
            <string>net.devolutions.authenticator.config</string>
            <key>PayloadUUID</key>
            <string>REPLACE-WITH-UNIQUE-UUID</string>
            <key>PayloadDisplayName</key>
            <string>Devolutions Password Manager Cloud Configuration</string>
            <key>hubs</key>
            <array>
                <dict>
                    <key>url</key>
                    <string>https://mycompany.devolutions.app</string>
                    <key>organizationId</key>
                    <string>12345678-1234-1234-1234-123456789abc</string>
                    <key>type</key>
                    <string>Business</string>
                    <key>version</key>
                    <string>2020</string>
                </dict>
            </array>
            <key>configs</key>
            <dict>
                <key>language</key>
                <string>en-US</string>
                <key>lockingOption</key>
                <string>biometric</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
```

#### Esempio 3: comando defaults per i test

```bash
#!/bin/bash

# Configure Devolutions Server (complex structure requires plist file)
defaults write net.devolutions.authenticator dvls -array-add \
  '{name = "Production DVLS"; serverUrl = "https://devolutions-server.company.com"; }'

# Configure application settings
defaults write net.devolutions.authenticator language -string "en-US"
defaults write net.devolutions.authenticator lockingOption -string "biometric"
defaults write net.devolutions.authenticator useBackgroundLock -bool true
defaults write net.devolutions.authenticator useLockWhenInactive -bool true
defaults write net.devolutions.authenticator lockInactivityDelay -int 300
defaults write net.devolutions.authenticator clearClipboardSensitiveData -bool true
defaults write net.devolutions.authenticator clipboardTimer -int 60
```

#### Esempio 4: Distribuzione del file di configurazione tramite script

```bash
#!/bin/bash

# Create system-wide configuration directory
sudo mkdir -p "/Library/Application Support/Devolutions/Devolutions Password Manager"

# Deploy configuration file
sudo cp "/path/to/config.cfg" "/Library/Application Support/Devolutions/Devolutions Password Manager/DefaultConfig.cfg"

# Set proper permissions
sudo chmod 644 "/Library/Application Support/Devolutions/Devolutions Password Manager/DefaultConfig.cfg"
```

#### Esempio 5: Più Devolutions Server tramite file di configurazione

Crei `config.cfg`:

```json
{
  "dvls": [
    {
      "name": "Production DVLS",
      "serverUrl": "https://devolutions-server-prod.company.com"
    },
    {
      "name": "Development DVLS",
      "serverUrl": "https://devolutions-server-dev.company.com"
    },
    {
      "name": "Test DVLS",
      "serverUrl": "https://devolutions-server-test.company.com"
    }
  ],
  "configs": {
    "language": "en-US",
    "shareUsageData": false
  }
}
```

Distribuisca tramite script o collochi manualmente nella posizione a livello di sistema.

### Risoluzione dei problemi

#### Configurazione MDM non applicata

Profilo di configurazione installato ma le impostazioni non vengono applicate.

1. **Verifichi il dominio delle preferenze**: Si assicuri di utilizzare `net.devolutions.authenticator`
2. **Verifichi lo stato del profilo**: Preferenze di Sistema – Profili – Verifichi che il profilo sia installato.
3. **Forzi l'aggiornamento del profilo**: `sudo profiles renew -type enrollment`.
4. **Verifichi la presenza di conflitti**: Rimuova eventuali file di configurazione utente esistenti.
5. **Esamini i log**: Controlli Console.app per individuare errori relativi a Devolutions Password Manager.

#### File di configurazione non caricato

File di configurazione presente ma non applicato.

1. Verifichi la posizione del file: verifichi il percorso corretto (`/Library/Application Support/Devolutions/Devolutions Password Manager/DefaultConfig.cfg`).
2. Verifichi la validità del JSON: convalidi la sintassi JSON (nessuna virgola finale, virgolette corrette).
3. Verifichi le autorizzazioni: si assicuri che il file sia leggibile da tutti gli utenti (`chmod 644`).
4. Verifichi la proprietà: deve essere di proprietà di root o admin.
5. Elimini la configurazione utente: rimuova `~/Library/Application Support/Devolutions Password Manager/Config.cfg` per consentire l'applicazione della configurazione di sistema.

#### Opzione di blocco non funzionante

Touch ID non si attiva.

1. Verifica hardware: verifichi che il Mac disponga dell'hardware Touch ID
2. Configurazione di Touch ID: si assicuri che Touch ID sia configurato in Preferenze di Sistema – Touch ID
3. Fallback: il sistema ricorre automaticamente alla password se l'hardware non è disponibile
4. Controlli i log: esamini i log dell'applicazione per individuare errori di inizializzazione biometrica

#### Confusione sul dominio delle preferenze

Non si è certi di quale dominio delle preferenze utilizzare.

Soluzione: utilizzi sempre `net.devolutions.authenticator` per tutte le configurazioni di Devolutions Password Manager (sia mobile che desktop).

#### Le impostazioni non vengono mantenute

Le impostazioni tornano ai valori predefiniti dopo il riavvio.

1. Configurazione MDM vs configurazione utente: le impostazioni MDM hanno la priorità più alta e sovrascrivono le modifiche dell'utente
2. Configurazione utente vs configurazione di sistema: la configurazione di sistema si applica solo se non esiste la configurazione utente
3. Autorizzazioni dei file: verifichi le autorizzazioni di scrittura sulla posizione della configurazione utente

#### Lo spazio di lavoro esiste già

L'importazione non riesce con il messaggio "workspace already exists".

Spiegazione: il parser di configurazione rileva i duplicati in base all'URL normalizzato (senza distinzione tra maiuscole e minuscole, barra finale rimossa).

1. Rimuova manualmente lo spazio di lavoro esistente prima di applicare la configurazione.
2. Modifichi la configurazione per rimuovere le voci duplicate.
3. Elimini il file di configurazione utente per forzare la reimportazione della configurazione di sistema.

### Best practice

#### 1. Testi prima la configurazione

Prima di distribuire a tutti gli utenti:

1. Crei un gruppo di computer di test in Jamf/Intune.
2. Applichi la configurazione al gruppo di test.
3. Verifichi che gli spazi di lavoro e le impostazioni funzionino come previsto.
4. Esegua il rollout in produzione.

#### 2. Utilizzare MDM per le flotte gestite

Utilizzi sempre le preferenze MDM/gestite per:

* Mac gestiti da Jamf Pro
* Mac gestiti da Intune
* Qualsiasi ambiente gestito tramite MDM

Vantaggi:

* Gestione centralizzata
* Applicazione dei criteri
* Priorità massima (sovrascrive le configurazioni locali)
* Approccio standard aziendale

#### 3. Documentare la configurazione

Mantenga una documentazione della sua configurazione MDM che includa:

* Quali spazi di lavoro sono preconfigurati
* Quali impostazioni vengono applicate
* Esperienza utente prevista
* Contatto di supporto per i problemi

#### 4. Comunicazione agli utenti

Informi gli utenti:

* Gli spazi di lavoro saranno preconfigurati
* Devono comunque accedere con le proprie credenziali
* La configurazione avviene al primo avvio dell'app
* Contattare l'IT se gli spazi di lavoro non compaiono

#### 5. Considerazioni sulla sicurezza

Impostazioni di sicurezza consigliate:

```json
{
  "lockingOption": "biometric",
  "useBackgroundLock": true,
  "useLockWhenInactive": true,
  "lockInactivityDelay": 300,
  "clearClipboardSensitiveData": true,
  "clipboardTimer": 60,
  "shareUsageData": false
}
```

Perché:

* Impone l'autenticazione tramite Touch ID
* Blocca immediatamente l'app quando viene messa in background
* Si blocca automaticamente dopo 5 minuti di inattività
* Cancella gli appunti dopo 60 secondi
* Disabilita la raccolta dei dati di utilizzo (facoltativo)

#### 6. Requisiti del formato URL

Tutti gli URL devono:

* Includere il protocollo (`https://`)
* Essere URL validi e accessibili
* Non terminare con una barra finale (l'app la normalizzerà)

Esempi:

* `https://devolutions-server.company.com`
* `https://password-manager.devolutions.app`
* `devolutions-server.company.com` (manca https\://)
* `http://devolutions-server.company.com` (HTTP non consigliato)

#### 7. Sfruttare lo schema JSON di Jamf

Per le distribuzioni Jamf Pro, utilizzi sempre lo schema JSON:

* Fornisce un'interfaccia grafica intuitiva
* Convalida la configurazione prima della distribuzione
* Previene gli errori di sintassi
* Mostra tutte le opzioni disponibili con le descrizioni

### Riferimento rapido

#### File di configurazione minimo

```json
{
  "dvls": [
    {
      "name": "Devolutions Server",
      "serverUrl": "https://devolutions-server.example.com"
    }
  ]
}
```

#### Dominio delle preferenze

```
net.devolutions.authenticator
```

#### Percorso della configurazione a livello di sistema

```
/Library/Application Support/Devolutions/Devolutions Password Manager/DefaultConfig.cfg
```

#### Verificare le impostazioni MDM

```bash
defaults read net.devolutions.authenticator
```

{% endtab %}

{% tab title="iOS" %}

#### Che cos'è la preconfigurazione MDM

La preconfigurazione MDM (Mobile Device Management) consente agli amministratori IT di effettuare automaticamente il provisioning degli spazi di lavoro di Devolutions Password Manager (Devolutions Server e Devolutions Cloud) e delle impostazioni dell'applicazione sui dispositivi iOS gestiti ***prima*** che gli utenti avviino l'app per la prima volta.

#### Vantaggi

* Distribuzione zero–touch: gli utenti ricevono spazi di lavoro preconfigurati.
* Configurazione coerente: garantisce che tutti gli utenti abbiano le stesse impostazioni.
* Riduzione del carico di supporto: non è necessario guidare manualmente gli utenti nella configurazione.
* Applicazione dei criteri di sicurezza: preconfiguri il blocco biometrico, i timer degli appunti, ecc.

#### Come funziona

1. L'amministratore IT configura gli spazi di lavoro e le impostazioni nella console MDM (Jamf o Apple MDM).
2. L'MDM invia la configurazione ai dispositivi gestiti.
3. L'utente avvia l'app per la prima volta.
4. L'app legge la configurazione MDM e crea automaticamente gli spazi di lavoro.
5. L'utente si autentica per completare la connessione (inserisce le credenziali).

#### Note importanti

* Autenticazione richiesta: gli spazi di lavoro preconfigurati vengono creati in stato "in sospeso". Gli utenti devono comunque autenticarsi (accedere) per completare la connessione.
* Solo al primo avvio: la configurazione viene applicata una sola volta al primo avvio. Le modifiche successive richiedono la reinstallazione dell'app o la configurazione manuale.
* Credenziali NON memorizzate: la preconfigurazione MDM NON include le credenziali degli utenti. Gli utenti devono accedere con le proprie credenziali.

### Prerequisiti

* Server Jamf Pro o soluzione Apple MDM
* Devolutions Password Manager distribuito tramite MDM (App Store o in–house)
* iOS 13.0 o versione successiva sui dispositivi gestiti
* Dispositivi registrati in MDM

### Distribuzione con Jamf Pro

#### Passaggio 1: creare la configurazione dell'app gestita

1. Acceda a ***Jamf Pro***.
2. Vada a ***Mobile Device Apps*** – Trovi l'app "Devolutions Password Manager".
3. Faccia clic sull'app – Vada alla scheda ***App Configuration***.
4. Faccia clic su ***Add*** per creare una nuova configurazione.

#### Passaggio 2: configurare le impostazioni

Nella schermata App configuration:

**Metodo di configurazione**

* Selezioni: ***Upload specfile*** nel Jamf AppConfig Generator per un modulo GUI (consigliato), OPPURE
* Selezioni: ***Enter configuration directly*** come plist/dizionario in Jamf Pro

**Opzione A: utilizzo dello specfile AppConfig (consigliato)**

Jamf Pro utilizza lo standard [AppConfig community](https://www.appconfig.org/) per la configurazione delle app gestite iOS. Lo specfile fornisce un modulo GUI nel Jamf AppConfig Generator in cui gli amministratori possono configurare le impostazioni senza scrivere la configurazione raw.

1. Scarichi lo [specfile AppConfig di Devolutions Password Manager](https://cdnweb.devolutions.net/docs/workspace_mobile_appconfig_specfile.xml).
2. Apra il [Jamf AppConfig Generator](https://generator.appconfig.jamfresearch.com/generator).
3. Carichi lo specfile e configuri le impostazioni utilizzando il modulo GUI.
4. Scarichi il plist di configurazione generato dal generatore.
5. In Jamf Pro, vada a ***Mobile Device Apps*** – ***Devolutions Password Manager*** – ***App Configuration***.
6. Incolli il plist generato nel campo App Configuration, definisca l'ambito sui dispositivi di destinazione ed esegua la distribuzione.

**Opzione B: configurazione diretta (alternativa)**

Se non utilizza lo specfile, può inserire la configurazione direttamente come dizionario plist in Jamf Pro. Utilizzi il formato a chiavi piatte riportato di seguito — l'app trasforma automaticamente le chiavi piatte (ad es. `dvls_serverUrl`, `hub_url`) nella struttura nidificata interna:

```xml
<dict>
  <!–– Devolutions Server ––>
  <key>dvls_serverUrl</key>
  <string>https://devolutions-server.company.com</string>

  <!–– Devolutions Cloud ––>
  <key>hub_url</key>
  <string>https://password-manager.devolutions.app</string>
  <key>hub_organizationId</key>
  <string>your–org–id</string>

  <!–– Application Settings ––>
  <key>language</key>
  <string>en–US</string>
  <key>lockingOption</key>
  <string>biometric</string>
  <key>shareUsageData</key>
  <false/>
  <key>useBackgroundLock</key>
  <true/>
  <key>backgroundLockDelay</key>
  <integer>0</integer>
  <key>useLockWhenInactive</key>
  <true/>
  <key>lockInactivityDelay</key>
  <integer>300</integer>
  <key>useFavicon</key>
  <true/>
  <key>autoSearch</key>
  <false/>
  <key>useHubEmbeddedBrowser</key>
  <true/>
</dict>
```

Nota: il formato a chiavi piatte (`dvls_serverUrl`, `hub_url`) viene utilizzato per la configurazione delle app gestite Jamf. L'app rileva automaticamente questo formato e lo trasforma nella struttura nidificata interna. Un nome visualizzato viene generato automaticamente dall'URL DVLS.

#### Passaggio 3: assegnare ai dispositivi

1. Imposti ***Distribution Method*** sull'ambito appropriato (utenti, dispositivi o gruppi).
2. Faccia clic su ***Save***.
3. Invii la configurazione ai dispositivi di destinazione.

#### Passaggio 4: verificare la distribuzione

Su un dispositivo iOS gestito:

1. Installi/avvii Devolutions Password Manager.
2. L'app dovrebbe mostrare automaticamente gli spazi di lavoro preconfigurati.
3. L'utente tocca lo spazio di lavoro – inserisce le credenziali – si connette.

### Schema di configurazione

#### Configurazione di Devolutions Server

```typescript
{
  "name": string,           // Display name (required)
  "serverUrl": string,      // Full URL with https:// (required)
  "serverVersion": string   // Version like "2024.1" (optional)
}
```

#### Configurazione di Devolutions Cloud

```typescript
{
  "url": string,            // Full URL with https:// (required)
  "organizationId": string, // Org ID (optional)
  "type": "business",       // Always "business" (required)
  "version": "2020"         // Always "2020" (required)
}
```

#### Impostazioni dell'applicazione

| Impostazione                   | Tipo     | Valori validi                   | Descrizione                                                       |
| ------------------------------ | -------- | ------------------------------- | ----------------------------------------------------------------- |
| language                       | String   | "en-US", "fr", "de", "es", ecc. | Lingua di visualizzazione dell'app                                |
| **lockingOption**              | String   | "", "biometric"                 | Metodo di blocco dell'app                                         |
| **shareUsageData**             | Booleano | true, false                     | Condividi analisi di utilizzo anonime                             |
| **useBackgroundLock**          | Booleano | true, false                     | Blocca quando l'app passa in background                           |
| **backgroundLockDelay**        | Intero   | 0, 60, 300, 900, 1800, 3600     | Ritardo prima del blocco quando in background (secondi)           |
| **useLockWhenInactive**        | Booleano | true, false                     | Abilita il blocco automatico dopo l'inattività                    |
| **lockInactivityDelay**        | Intero   | 30, 60, 120, 180, 240, 300      | Timeout di inattività (secondi)                                   |
| **useFavicon**                 | Booleano | true, false                     | Usa le favicon dei siti web                                       |
| **autoSearch**                 | Booleano | true, false                     | Abilita la ricerca automatica nelle casseforti                    |
| **useHubEmbeddedBrowser**      | Booleano | true, false                     | Usa il browser integrato per l'autenticazione a Devolutions Cloud |
| **highlightSpecialCharacters** | Booleano | true, false                     | Evidenzia i caratteri speciali nelle password                     |

### Esempi di configurazione

#### Esempio 1: solo un singolo Devolutions Server

***Configurazione Jamf*** (utilizzando la GUI dello schema):

* Devolutions Server: aggiungere un server
  * Nome: "Corporate DVLS"
  * URL del server: "<https://devolutions-server.acme.com>"
  * Versione del server: "2024.1"
* Istanze Devolutions Cloud: lasciare vuoto
* Impostazioni dell'applicazione: lasciare i valori predefiniti

***JSON diretto*** (se non si utilizza lo schema):

```json
{
  "dvls": [
    {
      "name": "Corporate DVLS",
      "serverUrl": "https://devolutions-server.acme.com",
      "serverVersion": "2024.1"
    }
  ]
}
```

#### Esempio 2: Devolutions Cloud con impostazioni di sicurezza

***Configurazione Jamf*** (utilizzando la GUI dello schema):

* ***Istanze*** Devolutions Cloud: aggiungere un'istanza Devolutions Cloud
  * URL Devolutions Cloud: "<https://password-manager.devolutions.app>"
  * ID organizzazione: (lasciare vuoto o inserire l'ID della propria organizzazione)
* ***Impostazioni dell'applicazione***:
  * Metodo di blocco: "Biometrico (Touch ID/Face ID)"
  * Blocca quando in background: abilitato
  * Ritardo blocco in background: "Immediatamente"
  * Blocco automatico quando inattivo: abilitato
  * Ritardo blocco per inattività: "3 minuti"

***JSON diretto*** (se non si utilizza lo schema):

```json
{
  "hubs": [
    {
      "url": "https://password-manager.devolutions.app",
      "organizationId": "",
      "type": "business",
      "version": "2020"
    }
  ],
  "configs": {
    "lockingOption": "biometric",
    "useBackgroundLock": true,
    "backgroundLockDelay": 0,
    "useLockWhenInactive": true,
    "lockInactivityDelay": 180
  }
}
```

#### Esempio 3: più spazi di lavoro

***Configurazione Jamf*** (utilizzando la GUI dello schema):

* Devolutions Server: aggiungerne più di uno
  * Server 1: nome "Production DVLS", URL "[https://devolutions-server–prod.company.com](https://xn--devolutions-serverprod-h15m.company.com)"
  * Server 2: nome "Test DVLS", URL "[https://devolutions-server–test.company.com](https://xn--devolutions-servertest-h15m.company.com)"
* ***Istanze Devolutions Cloud***: aggiungerne una
  * URL Devolutions Cloud: "<https://password-manager.devolutions.app>"
  * ID organizzazione: "org–abc123"
* ***Impostazioni dell'applicazione***:
  * Lingua: "English"
  * Condividi dati di utilizzo: disabilitato

***JSON diretto*** (se non si utilizza lo schema):

```json
{
  "dvls": [
    {
      "name": "Production devolutions-server",
      "serverUrl": "https://devolutions-server–prod.company.com",
      "serverVersion": "2024.1"
    },
    {
      "name": "Test devolutions-server",
      "serverUrl": "https://devolutions-server–test.company.com",
      "serverVersion": "2024.1"
    }
  ],
  "hubs": [
    {
      "url": "https://password-manager.devolutions.app",
      "organizationId": "org–abc123",
      "type": "business",
      "version": "2020"
    }
  ],
  "configs": {
    "language": "en–US",
    "shareUsageData": false
  }
}
```

### Risoluzione dei problemi

#### Configurazione non applicata

***Problema:*** gli utenti segnalano che non compare alcuno spazio di lavoro preconfigurato.

***Soluzioni:***

1. ***Verificare l'iscrizione MDM:***
   * iOS: Impostazioni – Generali – VPN e gestione dispositivi – Verificare il profilo
2. ***Controllare la sintassi della configurazione:***
   * Convalidare la sintassi JSON (usare jsonlint.com)
   * Assicurarsi che tutti i campi obbligatori siano presenti
3. ***Verificare che l'app sia gestita tramite MDM:***
   * L'app deve essere distribuita tramite MDM (non installata manualmente dall'App Store)
4. ***Riapplicare la configurazione:***
   * Eliminare l'app – Reinstallare tramite MDM – La configurazione viene applicata al primo avvio

#### Gli utenti non possono eliminare gli spazi di lavoro in sospeso

Gli utenti restano con spazi di lavoro in sospeso che non possono rimuovere.

* ***Novità nella versione 2025.3.2:*** gli utenti ora possono eliminare gli spazi di lavoro in sospeso
  * Dal menu a scomparsa: tenere premuto lo spazio di lavoro – Selezionare "Remove"
  * Dalla schermata degli elementi in sospeso: toccare il pulsante "Remove"

#### Impostazioni errate applicate

Le impostazioni non corrispondono ai valori previsti.

1. ***Controllare i tipi di dati:***
   * Booleani: usare `true`/`false` (non le stringhe `"true"`/`"false"`)
   * Interi: usare numeri senza virgolette (ad esempio, `60` e non `"60"`)
   * Stringhe: usare sempre le virgolette (ad esempio, `"en–US"`)
2. ***Verificare i nomi delle impostazioni:***
   * Controllare l'ortografia (ad esempio, `lockInactivityDelay` e non `lockInactivityTimeout`)
   * Distingue maiuscole e minuscole (usare esattamente le maiuscole/minuscole mostrate nello schema)

#### Più istanze dello stesso spazio di lavoro

Compaiono spazi di lavoro duplicati. La configurazione è stata applicata più volte (app reinstallata o configurazione modificata).

* La preconfigurazione verifica gli spazi di lavoro esistenti in base all'URL
* Se esistono duplicati, gli utenti possono eliminare quelli in eccesso dal menu a scomparsa

#### Blocco biometrico non funzionante

Face ID/Touch ID non si attiva.

1. ***Verificare il supporto del dispositivo***: verificare che il dispositivo disponga dell'hardware Face ID o Touch ID
2. ***Controllare le impostazioni iOS***: assicurarsi che Face ID/Touch ID sia configurato in Impostazioni
3. ***Controllare le autorizzazioni***: l'app potrebbe richiedere l'autorizzazione biometrica dall'utente
4. ***Fallback***: il sistema passa automaticamente al codice di accesso se la biometria non è disponibile

### Best practice

#### 1. Testare prima la configurazione

Prima di distribuirla a tutti gli utenti:

1. Creare un gruppo di utenti/dispositivi di test in Jamf.
2. Applicare la configurazione al gruppo di test.
3. Verificare che gli spazi di lavoro e le impostazioni funzionino come previsto.
4. Distribuire in produzione.

#### 2. Utilizzare lo specfile AppConfig

Per le distribuzioni Jamf Pro:

* Utilizzare sempre lo specfile AppConfig (opzione A).
* Fornisce un modulo GUI intuitivo tramite il [Jamf AppConfig Generator](https://generator.appconfig.jamfresearch.com/generator).
* Convalida la configurazione prima della distribuzione.
* Previene errori di sintassi.
* Mostra tutte le opzioni disponibili con le relative descrizioni.

#### 3. Documentare la configurazione

Mantenga la documentazione della configurazione MDM includendo:

* Quali spazi di lavoro sono pre-configurati
* Quali impostazioni sono applicate
* Esperienza utente prevista
* Contatto di supporto per i problemi

#### 4. Comunicazione agli utenti

Informi gli utenti:

* Gli spazi di lavoro saranno pre-configurati
* Devono comunque accedere con le proprie credenziali
* La configurazione avviene al primo avvio dell'app
* Contattare l'IT se gli spazi di lavoro non compaiono

#### 5. Considerazioni sulla sicurezza

***Impostazioni di sicurezza consigliate:***

```json
{
  "lockingOption": "biometric",
  "useBackgroundLock": true,
  "backgroundLockDelay": 0,
  "useLockWhenInactive": true,
  "lockInactivityDelay": 300,
  "shareUsageData": false
}
```

***Perché:***

* Applica l'autenticazione Face ID/Touch ID
* Blocca l'app immediatamente quando viene messa in background
* Blocco automatico dopo 5 minuti di inattività
* Disattiva la raccolta dei dati di utilizzo (opzionale)

#### 6. Compatibilità delle versioni

* ***Versione minima:*** 2025.3.2 (per il supporto completo degli spazi di lavoro in sospeso)
* Devolutions Server &#x76;***ersioni:*** si consiglia Devolutions Server 2023.3+
* ***iOS:*** è richiesto 13.0+

#### 7. Requisiti di formato degli URL

Tutti gli URL devono:

* Includere il protocollo (`https://`)
* Essere URL validi e accessibili
* Non terminare con una barra finale (l'app la normalizzerà)

***Esempi:***

* `https://devolutions-server.company.com`
* `https://password-manager.devolutions.app`
* `devolutions-server.company.com` (manca https\://)
* `http://devolutions-server.company.com` (HTTP non consigliato)

#### 8. Gestire più ambienti

Per le organizzazioni con più ambienti (prod, dev, test):

* Crei profili di configurazione Jamf separati per ogni ambiente
* Assegni ogni profilo ai gruppi di dispositivi appropriati
* Gli utenti di ogni ambiente ottengono automaticamente gli spazi di lavoro corretti

### Riferimento rapido

#### Configurazione minima

```json
{
  "dvls": [
    {
      "name": "Devolutions Server",
      "serverUrl": "https://devolutions-server.example.com"
    }
  ]
}
```

#### Dominio delle preferenze

```
net.devolutions.workspace.mobile
```

#### Riepilogo dei passaggi di distribuzione

1. Scarichi il [file di specifica AppConfig](https://cdnweb.devolutions.net/docs/workspace_mobile_appconfig_specfile.xml).
2. Lo carichi nel [Jamf AppConfig Generator](https://generator.appconfig.jamfresearch.com/generator).
3. Configuri le impostazioni tramite il modulo dell'interfaccia grafica.
4. Scarichi il plist generato.
5. In Jamf Pro: Mobile Device Apps – Devolutions Password Manager – App Configuration.
6. Incolli il plist, lo assegni ai dispositivi di destinazione ed esegua la distribuzione.
   {% endtab %}
   {% endtabs %}


---

# 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/password-manager/it/knowledge-base/application-knowledge-base/devolutions-password-manager-pre-configuration.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.
