Paramètres de l'application
Décrit comment configurer les paramètres de l'application et leur définition.
Les paramètres de l'application se trouvent dans le fichier appsettings.json situé dans le répertoire d'installation. Ce fichier définit divers paramètres que vous pouvez appliquer à PowerShell Universal. Bien que vous puissiez modifier ce fichier directement, il est recommandé d'utiliser l'une des méthodes suivantes pour conserver les paramètres, car le fichier appsettings.json dans le répertoire d'installation sera écrasé lors des mises à niveau.
Lorsqu'il est installé depuis le MSI, le répertoire d'installation de PowerShell Universal est ${env:ProgramFiles(x86)}\Universal.
ProgramData AppSettings.json
Vous pouvez créer un fichier appsettings.json dans le dossier $Env:ProgramData\PowerShellUniversal. Vous pouvez utiliser un sous-ensemble des paramètres du fichier appsettings.json. Par exemple, si vous souhaitez remplacer les paramètres JWT, vous pouvez avoir un fichier appsettings.json comme celui-ci.
{
"Jwt": {
"SigningKey": "PleaseUseYourOwnSigningKeyHere",
"Issuer": "IronmanSoftware",
"Audience": "PowerShellUniversal"
}
}Variables d'environnement
Vous pouvez également définir des variables d'environnement pour vos paramètres. Les variables d'environnement doivent comporter un trait de soulignement entre chaque sous-ensemble du fichier appsettings.json. Par exemple, si vous souhaitez modifier la clé de signature JWT via une variable d'environnement, vous définiriez la variable $Env:Jwt__SigningKey. Si vous souhaitez définir l'URL de l'API externe, vous définiriez $Env:Api__Url.
Exemples
Utilisation d'une variable d'environnement pour le secret OpenID Connect.
$Env:Authentication__OIDC__ClientSecret = "mySecret"Utilisation d'une variable d'environnement pour la clé de signature JWT.
Ligne de commande
Vous pouvez spécifier l'emplacement du fichier appsettings.json en utilisant l'argument de ligne de commande --appsettings pour Universal.Server.exe.
Description des paramètres
Kestrel / Points de terminaison
Valeur par défaut
La section des points de terminaison Kestrel vous permet de configurer le serveur web. Ces paramètres ne sont pas utilisés lors de l'hébergement dans IIS. Dans cette section, vous pouvez configurer des options telles que HTTPS et le port sur lequel PowerShell Universal écoutera.
Kestrel est l'implémentation du serveur web pour ASP.NET Core qu'utilise PowerShell Universal. Pour plus d'informations sur les options de configuration de Kestrel, consultez cette page de documentation Microsoft.
RedirectToHttps
Lorsque la valeur est true, le serveur web redirigera les requêtes HTTP vers HTTPS.
BasePath
Obligatoire lors de la configuration de PowerShell Universal comme site imbriqué dans IIS. Doit contenir la route IIS imbriquée, par exemple /psu.
Hsts \ MaxAgeDays
Définit la durée maximale en jours pour HTTP Strict Transport Security.
CookiePolicy
Lorsque défini à SameSiteNone, la valeur SameSite=None sera appliquée aux cookies dans PSU. Ceci est utile pour héberger PSU dans des iframes.
Headers
Un objet dont les clés sont les en-têtes à définir sur chaque requête, avec comme valeur celle de l'en-tête.
Azure Application Insights
Valeur par défaut
ConnectionString
Définit la chaîne de connexion pour Application Insights.
Journalisation
Valeur par défaut
Définit le chemin et le niveau du journal système. Cette valeur sera remplacée par le niveau de journal dans settings.ps1 après son chargement. Ce paramètre est utile pour déboguer les problèmes lors du démarrage du système.
SystemLogPath
Chemin vers le fichier journal.
SystemLogLevel
Le niveau du journal système. Vous pouvez définir des valeurs telles que Debug, Information, Warning et Error.
AllowedHosts
Valeur par défaut
Les hôtes autorisés à se connecter au serveur web. Par défaut, tout hôte est autorisé.
CorsHosts
Valeur par défaut
Configure les hôtes autorisés à effectuer des requêtes de partage de ressources entre origines multiples (CORS) vers le serveur. Pour autoriser plusieurs hôtes, séparez chaque hôte par un point-virgule.
Data
Valeur par défaut
RepositoryPath
Chemin vers l'emplacement de stockage des fichiers de configuration utilisés par Universal.
ConnectionString
Chemin vers la base de données utilisée par Universal.
GitRemote
Le dépôt Git distant utilisé pour la synchronisation avec Universal.
GitBranch
La branche Git à extraire lors de la synchronisation avec Universal.
GitUserName
Le nom d'utilisateur Git utilisé pour la synchronisation avec le GitRemote. Lors de l'utilisation d'un PAT, cette valeur peut être quelconque.
GitPassword
Le mot de passe utilisateur Git ou le jeton d'accès personnel utilisé pour la synchronisation avec le GitRemote.
GitSyncTimeout
Le nombre de secondes avant l'expiration d'une commande du client Git externe. Par défaut : 60 secondes.
ConfigurationScript
Emplacement d'un script de configuration personnalisé à charger. Vous pouvez retourner des objets tels que des scripts, des tableaux de bord et des points de terminaison depuis ce script.
ExternalGitClient
Lorsque défini à true, le client Git du système d'exploitation sera utilisé à la place de la bibliothèque cliente intégrée.
Mode
Définit le mode Git. Il peut être soit manual soit automatic. Par défaut : manual.
SlowQueryLimit
Le nombre de millisecondes qu'une requête SQL doit prendre avant qu'un message de journal soit écrit. Par défaut : 200 ms. Disponible uniquement pour MS SQL.
Persistence
Configure la persistance des ressources en base de données.
InvisibilityTimeoutMinutes
Le nombre de minutes avant l'expiration d'une tâche dans Hangfire. Par défaut : 5. S'applique uniquement à PostgreSQL.
API
Valeur par défaut
Url
Définit l'URL externe utilisée en interne par Universal. Ceci est nécessaire lors de l'exécution d'Universal derrière un proxy inverse tel qu'IIS. Lors de l'utilisation de cmdlets comme Get-UAScript depuis une tâche en cours d'exécution, le serveur Universal doit déterminer l'emplacement du serveur web. Lors de l'exécution derrière un proxy, il ne peut pas le déterminer lui-même. Vous devrez configurer cette valeur pour qu'elle pointe vers le nom et le port du site web IIS dans cette configuration.
HideManagementDoc
Si la valeur est true, masque la documentation OpenAPI de l'API de gestion de PowerShell Universal.
`Api.Url` est utilisé en interne par PowerShell Universal lorsque des cmdlets doivent rappeler le serveur PSU depuis des tâches, des points de terminaison ou d'autres contextes d'exécution internes. Dans les environnements avec proxy inverse ou répartition de charge, assurez-vous que cette valeur pointe vers une URL stable et directement accessible pour l'hôte PSU. L'utilisation d'un alias DNS ou d'un autre point de terminaison indirect peut provoquer des échecs intermittents des cmdlets si cet alias est résolu via un proxy ou un chemin backend instable. Si nécessaire, spécifiez explicitement -ComputerName lors de l'appel du cmdlet.
Authentification
Valeur par défaut
Windows
Clé
Description
Enabled
Active ou désactive l'authentification Windows.
OIDC
Paramètres d'authentification OpenID Connect.
Enabled
Indique si OIDC est activé.
CallbackPath
Le chemin vers lequel le fournisseur OIDC effectuera le rappel.
ClientID
L'identifiant client OIDC configuré.
ClientSecret
Le secret client OIDC configuré.
Resource
Les ressources accordées avec ce jeton OIDC.
Authority
L'autorité à invoquer lors de l'authentification. Il s'agit de l'URL de votre fournisseur OIDC.
ResponseType
Le type de réponse retourné par le fournisseur. La valeur la plus courante ici est code.
SaveTokens
Indique s'il faut enregistrer le jeton pour qu'il soit accessible aux points de terminaison tels que les tableaux de bord.
CorrelationCookieSameSite
UseTokenLifetime
Si défini à true, la durée de vie du cookie sera définie sur la durée de vie du jeton. Ceci remplace la valeur du délai d'expiration de session.
GetUserInfo
Retourne des informations utilisateur supplémentaires à utiliser dans les fichiers roles.ps1. Vous pouvez accéder à ces informations supplémentaires via la variable $UserInfo.
WSFed
Paramètres d'authentification WS-Federation.
Enabled
Indique si WS-Fed est activé.
MetadataAddress
L'adresse des métadonnées permettant de récupérer les informations sur l'instance WS-Fed.
Wrealm
Wreply
CallbackPath
Le chemin vers lequel le fournisseur OIDC effectuera le rappel.
UseTokenLifetime
Si défini à true, la durée de vie du cookie sera définie sur la durée de vie du jeton. Ceci remplace la valeur du délai d'expiration de session.
CorrelationCookieSameSite
Seuil d'expiration de session (minutes)
SessionTimeout
Nombre de minutes avant l'expiration d'une session connectée (par défaut : 25).
JWT
Paramètres de configuration des jetons web JSON.
Valeur par défaut
SigningKey
La clé de signature pour les jetons JWT.
Issuer
L'émetteur qui sera inclus dans le jeton.
Audience
L'audience qui sera incluse dans le jeton.
Secrets
Options de configuration des coffres de secrets par défaut.
Valeur par défaut
SecretStore \ Password
Le mot de passe du coffre PSUSecretStore. Utilise le module Microsoft SecretStore.
Database \ EncryptionKey
La clé de chiffrement AES 128 utilisée pour chiffrer les secrets stockés dans la base de données.
Database \ Password
Un mot de passe utilisé pour générer une clé de chiffrement. EncryptionKey sera ignoré si le mot de passe est spécifié.
Database \ KeySize
Le nombre d'octets dans la clé. Doit être un multiple de 128 et vaut 128 par défaut.
Génération d'une clé de chiffrement
Les clés de chiffrement sont de 128 bits et nécessitent une longueur appropriée. Elles sont encodées sous forme de chaîne base64 et converties en octets au démarrage.
Vous pouvez utiliser le code suivant pour générer une clé secrète de la longueur appropriée.
UniversalAutomation
Paramètres pour les fonctionnalités spécifiques à l'automatisation.
Valeur par défaut
Queues
Les files d'attente personnalisées dont cette instance PSU fait partie.
JobHandshakeTimeout
Le nombre de secondes à attendre avant d'échouer une tâche après le démarrage du processus PowerShell, si ce dernier ne communique pas avec le serveur.
JobDebugging
Indique s'il faut générer des fichiers dans le répertoire temporaire lors du démarrage d'une tâche. Ceci est utile pour déboguer les tâches qui expirent avant de démarrer.
ContinueJobOnServerStop
Indique s'il faut continuer à exécuter une tâche après l'arrêt du service. La progression de la tâche ne pourra plus être rapportée, mais le script continuera à s'exécuter.
HangfireWorkerCount
Le nombre de threads de travail Hangfire à démarrer sur le serveur. Ce paramètre est spécifique au nœud. Par défaut : 100. Il s'agit du nombre total de tâches pouvant s'exécuter simultanément sur le nœud particulier.
HideAdminConsole
Empêche le service d'afficher la console d'administration. Cela empêchera l'utilisation de la console d'administration par tout utilisateur, y compris les administrateurs.
NodeName
L'option de nom de nœud est utilisée pour modifier le nom de l'instance PowerShell Universal. Par défaut, il s'agit du nom de l'ordinateur local. Lors de l'utilisation de PowerShell Universal dans un conteneur, cela peut devenir problématique car le nom peut changer à chaque redémarrage du conteneur.
Pour définir un nom de nœud statique, modifiez ce paramètre.
Ressources statiques
Vous pouvez définir des ressources statiques à l'aide des paramètres de l'application. Celles-ci incluent les variables d'environnement et appsettings.json. Pour définir une ressource, utilisez le nœud Resources dans appsettings.json ou le préfixe Resources avec une variable d'environnement.
Par exemple, pour définir un rôle statique dans appsettings.json, utilisez ce qui suit.
Vous pouvez définir le même rôle à l'aide de variables d'environnement.
Exemple : Docker Compose
Vous pouvez utiliser des variables d'environnement dans un fichier Docker Compose YML pour définir des ressources qui seront disponibles dans PowerShell Universal après son démarrage. L'exemple ci-dessous crée des étiquettes, un rôle, définit un titre d'administrateur personnalisé, ajoute une licence et définit l'environnement par défaut.
Paramètres du runtime .NET
Le runtime .NET prend également en charge des paramètres qui s'appliquent à PowerShell Universal. Vous pouvez souhaiter ajuster ces paramètres selon vos besoins.
Vous pouvez trouver toutes les informations sur les paramètres du runtime .NET dans la documentation Microsoft.
Fichiers temporaires excessifs
Dans les environnements Linux, le runtime peut créer de nombreux fichiers temporaires pour activer les fonctionnalités de débogage. La désactivation des paramètres de diagnostics du runtime empêchera cela. Vous ne pourrez pas utiliser les outils de débogage .NET si cette option est désactivée.
Mis à jour
Ce contenu vous a-t-il été utile ?