1
0
Bifurcation 0
miroir de https://github.com/PAPAMICA/Wiki-Tech.io.git synchronisé 2024-11-07 10:10:26 +01:00
Wiki-Tech.io/Scripting/Powershell.html

68 lignes
3,5 Kio
HTML
Brut Vue normale Historique

2021-05-08 16:42:09 +02:00
<!--
title: Powershell
description:
published: true
2021-05-09 12:50:15 +02:00
date: 2021-05-09T10:50:13.965Z
2021-05-08 16:42:09 +02:00
tags:
editor: ckeditor
dateCreated: 2021-05-08T14:42:07.092Z
-->
2021-05-09 12:20:19 +02:00
<h1>Powershell</h1>
<p>&nbsp;</p>
<h2>Définition</h2>
2021-05-09 12:50:15 +02:00
<p>PowerShell est un langage script fondé sur la programmation orientée objet. Le logiciel PowerShell &nbsp;est l'interpréteur de l’interface en ligne de commande de l'environnement de développement Windows PowerShell.</p>
<p>&nbsp;</p>
<h2>Les commandes ou applets de commande (cmdlet)</h2>
2021-05-09 12:20:19 +02:00
<p>elles sont composées d’une paire de la forme “verbe ”-“nom” destiné à en faciliter la mémorisation.</p>
2021-05-09 12:42:51 +02:00
<p>exemple :</p>
2021-05-09 12:20:19 +02:00
<pre><code class="language-plaintext">get-service</code></pre>
<p>get = verbe</p>
<p>service = nom</p>
2021-05-09 12:42:51 +02:00
<p>&nbsp;</p>
2021-05-09 12:20:19 +02:00
<h2>les variables</h2>
<p>Une variable Powershell est un emplacement de stockage provisoire en mémoire destiné à recueillir une valeur, un objet ou une collection d’objets.<br>Les variables sont généralement nommées, et leurs noms sont toujours précédés d’un symbole “$“<br>Les variables sont automatiquement “typées” lors de l’affectation de valeur (si elles ne sont pas déclarées au préalable.)</p>
2021-05-09 12:42:51 +02:00
<p>exemple :</p>
2021-05-09 12:20:19 +02:00
<pre><code class="language-plaintext">$variable = une valeur</code></pre>
2021-05-09 12:42:51 +02:00
<p>&nbsp;</p>
<h2>le pipeline</h2>
2021-05-09 12:47:10 +02:00
<p>Le pipeline, symbolisée par le caractère “<strong>|</strong>” ([<strong>AltGr</strong>] + [<strong>6</strong>]) permet d'exécuter plusieurs commandes à la suite.</p>
2021-05-09 12:42:51 +02:00
<p>exemple :&nbsp;</p>
<pre><code class="language-plaintext">get-process | Sort-Object CPU</code></pre>
2021-05-09 12:49:20 +02:00
<p>Dans ce cas précis, la commande sort-object tri les processus par utilisation de Cpu</p>
2021-05-09 12:49:04 +02:00
<p>&nbsp;</p>
2021-05-09 12:20:19 +02:00
<h2>Création d'un menu sous Powershell</h2>
2021-05-08 17:25:09 +02:00
<p>Voici un exemple de menu qu'il est possible de faire avec la méthode suivante :</p>
2021-05-08 17:24:34 +02:00
<figure class="image image_resized" style="width:56.82%;"><img src="/capture.png"></figure>
2021-05-08 16:44:35 +02:00
<p>&nbsp;</p>
2021-05-08 17:23:43 +02:00
<h2>Principe de fonctionnement</h2>
<p>Nous avons besoin de déclarer une variable qui va servir en quelque sorte de bouton “allumé” ou “éteins” : <code>$continue = $true</code></p>
<p>Avec cette variable j'utilise une boucle pour permettre de laisser en permanence l'affichage :&nbsp;</p>
2021-05-08 17:29:48 +02:00
<pre><code class="language-plaintext">while (true){
&lt;le menu avec des write-host&gt;
2021-05-08 17:23:43 +02:00
}</code></pre>
2021-05-08 17:24:34 +02:00
<p>Puis une seconde variable pour stocker mon choix avec <code>$choix = read-host “faire un choix”</code></p>
<p>Suivant l'état de ce choix le script sortira de la boucle <code>while</code> et cela provoquera soit une action du script soit une sortie du script avec switch ($choix).</p>
2021-05-08 17:23:43 +02:00
<p>Pour sortir du script si je fait le choix <i>x</i>’ le script passe la variable <code>$continue</code> à <code>false</code> ce qui aura pour effet d'arrêter la boucle while.</p>
2021-05-08 17:40:25 +02:00
<p>la commande <code>default </code>permet de renvoyer un message d'avertissement si je rentre un choix qui n'est pas dans le menu.</p>
2021-05-08 16:42:09 +02:00
<p>&nbsp;</p>
2021-05-08 17:26:10 +02:00
<h2>Exemple</h2>
2021-05-08 17:23:43 +02:00
<pre><code class="language-plaintext">$continue = $true
2021-05-08 17:29:48 +02:00
while (continue){
write-host “----------------------MON TITRE -----------------------”
write-host “1. mon action 1”
write-host "2. mon action2"
write-host "x. exit"
write-host"-------------------------------------------------------------------"
2021-05-08 17:38:33 +02:00
$choix = read-host “faire un choix :”
2021-05-08 17:29:48 +02:00
switch ($choix){
2021-05-08 17:35:33 +02:00
1{commande de mon action 1}
2{commande de mon action 2}
2021-05-08 17:29:48 +02:00
x’ {$continue= $false}
default {Write-Host "Choix invalide"-ForegroundColor Red}
}
}
</code></pre>
2021-05-08 17:18:22 +02:00
<p>&nbsp;</p>