Impostazioni dell'app
Le impostazioni dell'applicazione si trovano nel file appsettings.json all'interno della directory di installazione. Questo file definisce varie impostazioni che può applicare a PowerShell Universal. Sebbene sia possibile modificare direttamente questo file, si consiglia di utilizzare uno dei metodi seguenti per rendere persistenti le impostazioni, poiché il file appsettings.json nella directory di installazione verrà sovrascritto durante gli aggiornamenti.
AppSettings.json in ProgramData
Può creare un file appsettings.json nella cartella $Env:ProgramData\PowerShellUniversal. Può utilizzare un sottoinsieme delle impostazioni presenti nel file appsettings.json. Ad esempio, se volesse sovrascrivere le impostazioni JWT, potrebbe avere un file appsettings.json come questo.
{
"Jwt": {
"SigningKey": "PleaseUseYourOwnSigningKeyHere",
"Issuer": "IronmanSoftware",
"Audience": "PowerShellUniversal"
}
}Variabili di ambiente
Può anche impostare variabili di ambiente per le sue impostazioni. Le variabili di ambiente devono avere un trattino basso tra ogni sottoinsieme del file appsettings.json. Ad esempio, se desidera modificare la chiave di firma JWT tramite variabile di ambiente, imposterebbe la variabile $Env:Jwt__SigningKey. Se volesse impostare l'URL dell'API esterna, imposterebbe $Env:Api__Url.
Esempi
Utilizzo di una variabile di ambiente per il segreto OpenID Connect.
$Env:Authentication__OIDC__ClientSecret = "mySecret"Utilizzo di una variabile di ambiente per la chiave di firma JWT.
Riga di comando
Può specificare la posizione del file appsettings.json utilizzando l'argomento della riga di comando --appsettings per Universal.Server.exe .
Descrizioni delle impostazioni
Kestrel / Endpoint
Valore predefinito
La sezione degli endpoint Kestrel le consente di configurare il server web. Queste impostazioni non vengono utilizzate quando l'hosting avviene in IIS. In questa sezione può configurare opzioni come HTTPS e la porta su cui PowerShell Universal resterà in ascolto.
Kestrel è l'implementazione del server web per ASP.NET Core utilizzata da PowerShell Universal. Per maggiori informazioni sulle opzioni di configurazione di Kestrel, visiti questa pagina della documentazione Microsoft.
RedirectToHttps
Se impostato su true, il server web reindirizzerà le richieste HTTP a HTTPS
BasePath
Richiesto quando si configura PowerShell Universal come sito annidato all'interno di IIS. Deve contenere il percorso IIS annidato, ad esempio /psu
Hsts \ MaxAgeDays
Imposta l'età massima in giorni per HTTP Strict Transport Security.
CookiePolicy
Se impostato su SameSiteNone, il valore SameSite=None verrà impostato sui cookie in PSU. Questo è utile quando si ospita PSU in iframe.
Headers
Un oggetto in cui le chiavi sono le intestazioni da impostare su ogni richiesta e il valore è il valore dell'intestazione.
Azure Application Insights
Valore predefinito
ConnectionString
Imposta la stringa di connessione per Application Insights.
Registrazione
Valore predefinito
Imposta il percorso e il livello del log di sistema. Questo verrà sovrascritto dal livello di log in settings.ps1 dopo il suo caricamento. Questa impostazione è utile per il debug dei problemi durante l'avvio del sistema.
SystemLogPath
Percorso del file di log.
SystemLogLevel
Il livello del log di sistema. Può impostare valori come Debug, Information, Warning ed Error.
AllowedHosts
Valore predefinito
Gli host a cui è consentito connettersi al server web. Il valore predefinito è qualsiasi host.
CorsHosts
Valore predefinito
Configura gli host a cui è consentito effettuare richieste di condivisione delle risorse tra origini diverse (CORS) al server. Per consentire più host, separi ogni host con un punto e virgola.
Data
Valore predefinito
RepositoryPath
Percorso della posizione di archiviazione dei file di configurazione utilizzati da Universal.
ConnectionString
Percorso del database utilizzato da Universal.
GitRemote
Remote Git utilizzato per la sincronizzazione con Universal.
GitBranch
Branch Git di cui effettuare il checkout durante la sincronizzazione con Universal.
GitUserName
Nome utente Git utilizzato per la sincronizzazione con GitRemote. Quando si utilizza un PAT, può essere un valore qualsiasi.
GitPassword
La password utente Git o il token di accesso personale utilizzato per la sincronizzazione con GitRemote.
GitSyncTimeout
Il numero di secondi prima che un comando del client git esterno vada in timeout. Il valore predefinito è 60 secondi.
ConfigurationScript
Posizione di uno script di configurazione personalizzato da caricare. Da questo script può restituire oggetti come script, dashboard ed endpoint.
ExternalGitClient
Se impostato su true, verrà utilizzato il client Git del sistema operativo anziché il client della libreria integrata
Mode
Imposta la modalità git. Può essere manuale o automatica. Il valore predefinito è manuale.
SlowQueryLimit
Il numero di millisecondi di esecuzione di una query SQL prima che venga scritto un messaggio di log. Il valore predefinito è 200 ms. Disponibile solo per MS SQL.
Persistence
Configura la persistenza delle risorse nel database.
InvisibilityTimeoutMinutes
Il numero di minuti prima che un job vada in timeout in Hangfire. Il valore predefinito è 5. Si applica solo a PostgreSQL.
API
Valore predefinito
Url
Imposta l'URL esterno utilizzato internamente da Universal. Questo è necessario quando si esegue Universal all'interno di un proxy inverso come IIS. Quando si utilizzano cmdlet come Get-UAScript all'interno di un job in esecuzione, il server Universal deve determinare dove si trova il server web. Quando è in esecuzione all'interno di un proxy, non può determinarlo da solo. In questa configurazione dovrà impostare questo valore in modo che punti al nome e alla porta del sito web IIS.
HideManagementDoc
Se true, nasconde la documentazione OpenAPI dell'API di gestione di PowerShell Universal.
`Api.Url` viene utilizzato internamente da PowerShell Universal quando i cmdlet devono richiamare il server PSU da job, endpoint o altri contesti di esecuzione interni. Negli ambienti con proxy inverso o bilanciamento del carico, si assicuri che questo valore punti a un URL stabile e direttamente raggiungibile per l'host PSU. L'utilizzo di un alias DNS o di un altro endpoint indiretto può causare errori intermittenti dei cmdlet se tale alias viene risolto attraverso un proxy o un percorso di backend instabile. Se necessario, specifichi esplicitamente `-ComputerName` per la chiamata del cmdlet.
Autenticazione
Valore predefinito
Windows
Chiave
Descrizione
Enabled
Abilita o disabilita l'autenticazione di Windows.
OIDC
Impostazioni di autenticazione OpenID Connect.
Enabled
Indica se OIDC è abilitato.
CallbackPath
Il percorso a cui il provider OIDC effettuerà la richiamata.
ClientID
L'ID client OIDC configurato.
ClientSecret
Il segreto client OIDC configurato.
Resource
Risorse concesse con questo token OIDC.
Authority
L'autorità da richiamare durante l'autenticazione. Si tratta dell'URL del suo provider OIDC.
ResponseType
Il tipo di risposta restituito dal provider. Il valore più comune qui è code
SaveTokens
Indica se salvare il token in modo che sia disponibile per endpoint come le dashboard.
CorrelationCookieSameSite
UseTokenLifetime
Se impostato su true, la durata del cookie verrà impostata sulla durata del token. Questo sovrascrive il valore di timeout della sessione.
GetUserInfo
Restituisce informazioni aggiuntive sull'utente da utilizzare nei file roles.ps1. È possibile accedere alle informazioni aggiuntive tramite la variabile $UserInfo.
WSFed
Impostazioni di autenticazione WS-Federation.
Enabled
Indica se WS-Fed è abilitato.
MetadataAddress
L'indirizzo dei metadati da cui recuperare le informazioni sull'istanza WS-Fed.
Wrealm
Wreply
CallbackPath
Il percorso a cui il provider OIDC effettuerà la richiamata.
UseTokenLifetime
Se impostato su true, la durata del cookie verrà impostata sulla durata del token. Questo sovrascrive il valore di timeout della sessione.
CorrelationCookieSameSite
Soglia di timeout della sessione (minuti)
SessionTimeout
Numero di minuti prima che una sessione con accesso effettuato vada in timeout (valore predefinito 25)
JWT
Impostazioni di configurazione dei JSON Web Token
Valore predefinito
SigningKey
La chiave di firma per i token JWT.
Issuer
L'emittente che verrà incluso nel token.
Audience
Il destinatario che verrà incluso nel token.
Secrets
Opzioni per configurare le casseforti dei segreti predefinite.
Valore predefinito
SecretStore \ Password
La password per la cassaforte PSUSecretStore. Utilizza il modulo Microsoft SecretStore.
Database \ EncryptionKey
La chiave di crittografia AES 128 utilizzata per crittografare i segreti archiviati nel database.
Database \ Password
Una password utilizzata per generare una chiave di crittografia. EncryptionKey verrà ignorata se viene specificata una password.
Database \ KeySize
Il numero di byte della chiave. Deve essere un multiplo di 128 e il valore predefinito è 128.
SecretManagement \ OutOfProcess
Indica se le operazioni di gestione dei segreti devono essere eseguite fuori processo. Il valore predefinito è false.
Generazione di una chiave di crittografia
Le chiavi di crittografia sono a 128 bit e richiedono la lunghezza corretta. Sono codificate come stringa base64 e convertite in byte all'avvio.
È possibile utilizzare il codice seguente per generare una chiave segreta della lunghezza corretta.
UniversalAutomation
Impostazioni per le funzionalità specifiche dell'automazione.
Valore predefinito
Queues
Code personalizzate di cui questa istanza PSU fa parte.
JobHandshakeTimeout
Il numero di secondi di attesa prima di far fallire un processo dopo l'avvio del processo PowerShell che lo esegue, se il processo non comunica con il server.
JobDebugging
Indica se generare file nella directory temporanea all'avvio del processo. Utile per il debug se i processi vanno in timeout prima di avviarsi.
ContinueJobOnServerStop
Indica se continuare l'esecuzione di un processo dopo l'arresto del servizio. L'avanzamento del processo non verrà segnalato, ma lo script continuerà a essere eseguito.
HangfireWorkerCount
Il numero di thread worker Hangfire da avviare sul server. Questa impostazione è specifica del nodo. Il valore predefinito è 100. Corrisponde al numero totale di processi che possono essere eseguiti contemporaneamente su un determinato nodo.
HideAdminConsole
Impedisce al servizio di erogare la console di amministrazione. In questo modo la console di amministrazione non potrà essere utilizzata da alcun utente, inclusi gli amministratori.
NodeName
L'opzione del nome del nodo viene utilizzata per modificare il nome dell'istanza di PowerShell Universal. Per impostazione predefinita, corrisponde al nome del computer locale. Quando si utilizza PowerShell Universal in un container, ciò può risultare problematico perché il nome può cambiare ogni volta che il container viene riavviato.
Per impostare un nome di nodo statico, modificare questo parametro.
Risorse statiche
È possibile definire risorse statiche utilizzando le impostazioni dell'applicazione. Queste includono le variabili di ambiente e appsettings.json. Per definire una risorsa, utilizzare il nodo Resources all'interno di appsettings.json oppure il prefisso Resources con una variabile di ambiente.
Ad esempio, per definire un ruolo statico in appsettings.json, utilizzare quanto segue.
È possibile definire lo stesso ruolo utilizzando le variabili di ambiente.
Esempio: Docker Compose
È possibile utilizzare le variabili di ambiente in un file YML di Docker Compose per definire risorse che saranno disponibili in PowerShell Universal dopo l'avvio. L'esempio seguente crea tag e un ruolo, imposta un titolo di amministrazione personalizzato, aggiunge una licenza e imposta l'ambiente predefinito.
Impostazioni del runtime .NET
Anche il runtime .NET supporta impostazioni che si applicano a PowerShell Universal. Potrebbe essere necessario modificare queste impostazioni in base alle proprie esigenze.
Tutte le informazioni sono disponibili nelle impostazioni del runtime .NET su Microsoft Docs.
File temporanei eccessivi
Negli ambienti Linux, il runtime potrebbe creare molti file temporanei per abilitare le funzionalità di debug. Disabilitando le impostazioni di diagnostica del runtime si eviterà che ciò accada. Con questa opzione disabilitata non sarà possibile utilizzare gli strumenti di debug .NET.
Vedere anche
Ultimo aggiornamento
È stato utile?