diff --git a/Scripting/Powershell/Bases.html b/Scripting/Powershell/Bases.html index 400878a..2bca029 100644 --- a/Scripting/Powershell/Bases.html +++ b/Scripting/Powershell/Bases.html @@ -2,7 +2,7 @@ title: PowerShell - Les bases description: Les bases pour bien débuter dans PowerShell published: true -date: 2021-06-10T17:53:44.075Z +date: 2021-06-12T06:36:04.258Z tags: editor: ckeditor dateCreated: 2021-05-24T16:22:45.768Z @@ -272,18 +272,19 @@ dateCreated: 2021-05-24T16:22:45.768Z

Mettons en pratique pour analyser ce qu'il se passe.

Dans cette exemple, nous utilisons une fonction que nous verrons plus tard. Dans le bloc de script symbolisé par {} la variable $portee est bien lu par la fonction. Hors, à la ligne 8 le Write-Host ne peut pas lire cette variable. La variable $portee se limite aux {} .

-

Pour palier à ce soucis, on va indiquer à PowerShell que $portee est une variable dites globale par $global:portee

+

Pour palier à ce soucis, on va indiquer à PowerShell que $portee est une variable dite globale par $global:portee

voici ce que cela donne:

 

La variable de pipeline

+

 

La variable de pipeline $_. est une variable un peu spécifique puisque celle-ci s'utilise derrière un pipeline. Pour illustrer son utilisation, nous allons récupérer tout les services avec Get-Service et filtrer avec Where-Object uniquement ceux qui sont stoppés. 

-

la variable $_. récupéré les méthodes et propriétés renvoyées par la commande Get-Service à travers le pipeline.

+

la variable $_. récupère les méthodes et propriétés renvoyées par la commande Get-Service à travers le pipeline.

remarque : nous avons utilisé -eq qui est un opérateur de comparaison qui signifie égal à.

Commande à distance

Avec PowerShell, vous aurez certainement remarquer que la majeur partie des commande comporte l'option -Computername. Cette option a pour avantage de transmettre une instruction à une autre machine. Hors, il apparait dans certains cas que cette option n'existe pas. C'est pour cela, qu'il est tout à fait possible d'utiliser des commandes pour gérer le comportement ou de donner des instructions à une machine distante. 

-

C'est ce que nous allons voir dans plusieurs façons différentes de procéder. Par l'utilisation de la commande Invoke-Commande, par l'ouverture d'une session à distance et ensuite nous verrons comment utiliser PowerShell Direct pour gérer vos machines virtuelles depuis un hôtes.

+

C'est ce que nous allons voir dans plusieurs façons différentes de procéder. Par l'utilisation de la commande Invoke-Commande, par l'ouverture d'une session à distance et ensuite nous verrons comment utiliser PowerShell Direct pour gérer vos machines virtuelles.

Exécuter une commande à distance

 

Pour exécuter une commande à distance, nous allons utiliser :

@@ -298,6 +299,7 @@ dateCreated: 2021-05-24T16:22:45.768Z

 

Enable-PsRemoting

 

+

Commande à distance hors domaine

Si vos machines ne sont pas dans un domaine ou de domaines différents vous devrez en plus ajouter les machines dans le fichier TrustedHosts par la commande :

 

Set-item WsMan:\Localhost\client\TrustedHosts -value "ip ou noms des machines" 
@@ -311,6 +313,8 @@ dateCreated: 2021-05-24T16:22:45.768Z

 

 

+

Commande à distance dans un domine

+

 

Session à distance

 

L'autre possibilité sous PowerShell est d'utiliser des sessions à distance. Vous allez, en quelques sortes, vous connecter dans le prompt d'une machine distante.