For the complete documentation index, see llms.txt. This page is also available as Markdown.

Hébergement

Diverses méthodes d'hébergement pour PowerShell Universal.

Vous pouvez héberger PowerShell Universal en tant que service Windows, dans IIS, en tant qu'application web Azure ou simplement en tant qu'application autonome. Si vous utilisez Windows, nous vous recommandons soit un service Windows, soit IIS.

Hébergement en tant que service Windows

Pour héberger en tant que service Windows, vous pouvez télécharger et installer le MSI de PowerShell Universal. Le MSI installera automatiquement le service PowerShell Universal et le démarrera. Les tâches s'exécutent sous le compte système par défaut, mais vous pouvez configurer le service pour qu'il s'exécute sous un autre compte après l'installation.

Une fois la configuration du MSI terminée, votre navigateur web par défaut s'ouvrira à l'adresse http://localhost:5000 pour vous connecter. Les identifiants de connexion par défaut sont Admin et n'importe quel mot de passe.

Configuration manuelle d'un service Windows

Vous n'avez pas besoin d'utiliser le MSI pour configurer Universal en tant que service Windows. Vous pouvez également le faire manuellement avec le script PowerShell suivant.

New-Service -Name "PowerShellUniversal" -BinaryPathName "Universal.Server.exe --service" -Description "PowerShell Universal server service." -DisplayName "PowerShell Universal" -StartupType Automatic
Start-Service PowerShellUniversal

Hébergement dans Azure

Consultez notre guide d'hébergement Azure.

Hébergement manuel

Vous pouvez également héberger le serveur Universal en tant qu'application autonome. Il suffit d'exécuter Universal.Server.exe depuis le répertoire binaire pour utiliser l'implémentation du serveur web Kestrel dans ASP.NET Core et démarrer le serveur web.

Configuration du serveur web

Cette section s'applique à Universal lorsqu'il est hébergé en dehors de IIS.

Définition du port et de l'adresse d'écoute

Vous pouvez définir le port du serveur Universal en modifiant le fichier appsettings.json. Nous vous recommandons de créer un fichier appsettings.json dans le dossier de configuration par défaut.

Windows

%ProgramData%\PowerShellUniversal

Linux

%HOME%/.PowerShellUniversal

Pour définir le port, modifiez la section des points de terminaison Kestrel du fichier appsettings.json. Par défaut, la configuration est définie pour écouter sur le port 5000 et sur toute adresse.

Configuration de HTTPS

Pour configurer HTTPS, vous pouvez ajuster le fichier appsettings.json afin d'utiliser un certificat et un port particuliers. La configuration ci-dessous utilise le fichier testCert.pfx avec le mot de passe testPassword et écoute sur le port 5463.

Certificats PFX

Magasin de certificats

Pour configurer un certificat dans un emplacement et un magasin particuliers, vous pouvez utiliser une configuration de ce type. Lorsque vous sélectionnez le certificat par nom de sujet, assurez-vous d'utiliser le nom commun sans le préfixe CN=.

L'emplacement peut être CurrentUser ou LocalMachine.

Magasin de certificats par empreinte numérique

Vous pouvez utiliser l'empreinte numérique plutôt que le sujet dans la version 3.4 et les versions ultérieures.

Certificats PEM et clé

Certains fournisseurs, comme Let's Encrypt et GoDaddy, émettent des certificats sous forme de fichiers texte PEM et clé. Vous pouvez utiliser ces types de certificats directement avec le serveur web Kestrel. Vous devrez spécifier la section HttpsFromPem dans les Endpoints pour Kestrel.

Autorisations

Sur Windows, l'utilisateur exécutant le service PowerShell Universal devra avoir accès au certificat afin de prendre correctement en charge HTTPS. Cela peut poser problème si le service utilise un compte de service géré de groupe. Vous pouvez utiliser le script PowerShell suivant pour accorder les autorisations appropriées.

Protocole

Par défaut, Universal écoute sur HTTP1 et HTTP2. Vous pouvez ajuster les protocoles sur lesquels le serveur écoute en définissant la propriété Protocols. Par exemple, vous pouvez spécifiquement activer la prise en charge de HTTP1 et HTTP2 avec le paramètre suivant.

Certaines versions de Windows Server (comme 2012R2) ne prennent pas en charge HTTP2. Pour désactiver la prise en charge de HTTP2, configurez l'écouteur pour qu'il écoute uniquement sur HTTP1.

Pour un ensemble complet d'options d'écoute, vous pouvez consulter la documentation ASP.NET Core.

En-têtes de sécurité

Les organisations peuvent exiger que PowerShell Universal fournisse certains en-têtes de sécurité dans les réponses HTTP provenant du serveur, notamment :

  • Strict-Transport-Security

  • Content-Security-Policy

  • X-Frame-Options

  • X-Content-Type-Options

  • X-XSS-Protection

  • Referrer-Policy

Vous pouvez utiliser la section Kestrel \ Headers pour définir ces valeurs.

Exemple : certificat auto-signé

Dans cet exemple, nous allons montrer comment créer un certificat auto-signé et l'utiliser avec PowerShell Universal.

Tout d'abord, créez un certificat auto-signé et stockez-le dans votre magasin de l'ordinateur local. Vous devrez exécuter PowerShell en tant qu'administrateur. Le magasin de l'ordinateur local est requis car PowerShell Universal peut s'exécuter en tant que service et non sous votre compte.

Ensuite, vous devrez configurer PowerShell Universal pour utiliser le certificat. Pour ce faire, modifiez ou créez le fichier appsettings.json dans %ProgramData%\PowerShellUniversal. Ce fichier devrait déjà exister si vous avez effectué l'installation avec le programme d'installation MSI. Le contenu du fichier doit inclure le nom DNS de votre certificat et l'emplacement.

Pour les certificats auto-signés, vous devrez inclure l'option AllowInvalid.

Une fois le fichier appsettings.json mis à jour, redémarrez le service PowerShell Universal. Vous devriez maintenant pouvoir accéder à votre site web PowerShell Universal à l'adresse https://localhost.

Mis à jour

Ce contenu vous a-t-il été utile ?