Utiliser PowerShell de Windows

Nous allons utiliser PowerShell sur Windows. PowerShell est l’outil en ligne de commande de Windows. Nous allons regarder comment passer à la dernieere version de cett outil, puis comment obtenir les droits d’installation administrateur dans une session.

Cet outil donne des fonctionnalités proche de ce que nous retrouvons en linux.

Nous allons passer en revues quelques actions pour utiliser PowerShell sur Windows

Utiliser PowerShell : execution de script Elixir désactivé sur PowerShell

Nous souhaitons créer une application Phoenix simple que nous appelons hello. L’application la plus simple est sans base de données. Regardons la documentation avec la liste des options pour phx.new :

  • mix phx.new hello_desktop --no-ecto

Nous créons le projet dans le dossier :

  • C:\Surface\Phoenix\Projets
PS C:\Users\berou> cd C:\Surface\Phoenix\Projets
PS C:\Surface\Phoenix\Projets> pwd

Path
----
C:\Surface\Phoenix\Projets


PS C:\Surface\Phoenix\Projets> mix phx.new hello_desktop --no-ecto
mix : Impossible de charger le fichier C:\Program Files (x86)\Elixir\bin\mix.ps1, car l'exécution de scripts est
désactivée sur ce système. Pour plus d'informations, consultez about_Execution_Policies à l'adresse
https://go.microsoft.com/fwlink/?LinkID=135170.
Au caractère Ligne:1 : 1
+ mix phx.new hello_desktop --no-ecto
+ ~~~
    + CategoryInfo          : Erreur de sécurité : (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
PS C:\Surface\Phoenix\Projets>

PowerShell bloque l’installation du projet pour des questions de sécurité.

mix : Impossible de charger le fichier C:\Program Files (x86)\Elixir\bin\mix.ps1, car l'exécution de scripts est
désactivée sur ce système. Pour plus d'informations, consultez about_Execution_Policies à l'adresse
https://go.microsoft.com/fwlink/?LinkID=135170.
Au caractère Ligne:1 : 1

Nous allons passer à la dernière version de PowerShell

Utiliser PowerShell et mettre à jour PowerShell en ligne de commande

Nous mettons à jour PowerShell en ligne de commande.

  • winget install –id=Microsoft.PowerShell -e

PowerShell se met à jour vers la version 7

PS C:\Users\berou> winget install --id=Microsoft.PowerShell -e
La source 'msstore' nécessite que vous consultiez les contrats suivants avant de l'utiliser.
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
La source nécessite que la région géographique à 2 lettres de l'ordinateur actuel soit envoyée au service principal pour fonctionner correctement (par exemple, « ÉTATS-UNIS »).

Acceptez-vous toutes les conditions des contrats sources ?
[Y] Oui  [N] Non: Y
Trouvé PowerShell [Microsoft.PowerShell] Version 7.3.6.0
La licence d'utilisation de cette application vous est octroyée par son propriétaire.
Microsoft n'est pas responsable des paquets tiers et n'accorde pas de licences à ceux-ci.
Téléchargement en cours https://github.com/PowerShell/PowerShell/releases/download/v7.3.6/PowerShell-7.3.6-win-x64.msi
  ██████████████████████████████   100 MB /  100 MB
Le code de hachage de l'installation a été vérifié avec succès
Démarrage du package d'installation... Merci de patienter.
Installé correctement
PS C:\Users\berou>

Vérifier la version PowerShell installée

Nous ouvrons une nouvelle session PowerShell.

Pour obtenir la version de PowerShell nous utilisons la commande : host.

PS C:\Surface\Phoenix\Projets> host

Name             : ConsoleHost
Version          : 7.3.6
InstanceId       : d57e841d-50c2-4658-9b61-429c9a93e8ee
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : fr-FR
CurrentUICulture : fr-FR
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace


PS C:\Surface\Phoenix\Projets>

Nous avons bien la version 7.3.6 installée.

Utiliser PowerShell et donner les droits pour l’exécution d’un script non signé

Pour donner les droits d’exécuter un script non signé au cours de la session :

  • Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
  • option [a]

Nous voyons que l’exécution de la commande mix est maintenant possible :

PS C:\Surface\Phoenix\Projets> elixir -v
Erlang/OTP 26 [erts-14.0.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit:ns]

Elixir 1.14.5 (compiled with Erlang/OTP 25)


PS C:\Surface\Phoenix\Projets> mix phx.new hello_desktop --no-ecto
mix: File C:\Program Files (x86)\Elixir\bin\mix.ps1 cannot be loaded. The file C:\Program Files (x86)\Elixir\bin\mix.ps1 is not digitally signed. You cannot run this script on the current system. For more information about running scripts and setting execution policy, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.


PS C:\Surface\Phoenix\Projets> Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Do you want to run software from this untrusted publisher?
File C:\program files\powershell\7\Modules\Microsoft.PowerShell.Security\Security.types.ps1xml is published by CN=Microsoft
 Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US and is not trusted on your system. Only run scripts
from trusted publishers.
[V] Never run  [D] Do not run  [R] Run once  [A] Always run  [?] Help (default is "D"): a


PS C:\Surface\Phoenix\Projets> mix phx.new hello_desktop --no-ecto
The directory c:/Surface/Phoenix/Projets/hello_desktop already exists. Are you sure you want to continue? [Yn] Y
* creating hello_desktop/config/config.exs
* creating hello_desktop/config/dev.exs
* creating hello_desktop/config/prod.exs
* creating hello_desktop/config/runtime.exs
* creating hello_desktop/config/test.exs
...

Ceux intéréssé par la création d’une application Phoenix Desktop sur Windows peuvent se reporter à notre article : créer une application Desktop sur Windows avec Elixir.

Quelques commandes PowerShell

On retrouve les mêmes commandes qu’en linux :

Gestion des fichiers et des repertoires

répertoire courant : pwd

contenu du répertoire : ls

changer de répertoire : cd

créer un répertoire : md

Autre commande

afficher l’aide PowerShell : help

Conclusion

Nous avons installé PowerShell et avons utilisé l’option permettant d’exécuter les scripts avec des droits Administrateurs définis pour la session.

Si vous avez aimé l'article vous êtes libre de le partager :-)

Laisser un commentaire