Outils

Outils de compte

Outils de recherche


Plugin Powershell remote

Les plugins GESA_PWSH_REMOTE et CHECK_PWSH_REMOTE permettent l'exécution de scripts/exécutables Windows à distances et remontée leur sortie écran (stdout) et la valeur retournée par ceux-ci. Ces scripts distants peuvent être signés pour plus de sécurité.

Ce plugin Esia fonctionne ainsi, il demande en paramètres :

  • Le nom ou le path du script à exécuter
  • Un string contenant toute une série de paramètre à passer à votre script powershell.

Il faut avoir paramètrer les paramètre d'authenfication dans esia et activer powershell sur la machine distance : Activation de powershell dans Esia

Avec CHECK_PWSH_REMOTE

Voici les paramètres par défaut :

-H $IP -A $AUTH_FILE_PASSWORD -T remote -p <path> -a "<args>"

Et un exemple de paramètrage :

-H $IP -A $AUTH_FILE_PASSWORD -T remote -p "c:\plugins\mypluginvalue.ps1" -a "--warning 10 --critical 70"

Ou bien :

-H $IP -A $AUTH_FILE_PASSWORD -T remote -p "c:\plugins\mypluginvalue.ps1"

Il faut que le mot de passe soit configuré via les paramètres avancés de configuration du device.

Avec GESA_PWSH_REMOTE

Voici les paramètres par défaut :

-u -S $GESASN -t 50 -c check_pwsh_remote -a main.pwsh $IP <path> "<args>"

Et un exemple de paramètrage :

-u -S $GESASN -t 50 -c check_pwsh_remote -a main.pwsh $IP "c:\plugins\mypluginvalue.ps1" "--warning 10 --critical 70"

Ou bien :

-u -S $GESASN -t 50 -c check_pwsh_remote -a main.pwsh $IP "c:\plugins\mypluginvalue.ps1"

Il faut que le mot de passe soit configuré sur la Unity

Explication des paramètres

  • $IP : L'adresse IP de la machine qui contient le script/exécutable à exécuter.
  • <path> : Le chemin vers cet exécutable
  • <args> : Les arguments à lui fournir.

Ecriture d'un script powershell pouvant être utilisé par le plugin

Voir ici pour des informations sur le fonctionnement des plugins Esia : Comment créer un plugin

Les plugins powershell utilisé par GESA_PWSH_REMOTE et CHECK_PWSH_REMOTE fonctionnent de la même façon.

Les exemples ci-dessous sont en powershell, mais vous pouver tout à fait utiliser d'autres languages.

Plugin qui retourne toujours OK :

Paramètrage :

'c:\plugins\alreadyOK.ps1'

Ou

'c:\plugins\alreadyOK.ps1' ""

Contenu du script :

Write-Output "Hello world"
exit 0;

Compare une valeur et retourne WARNING ou CRITICAL :

Paramètrage :

'c:\plugins\mypluginvalue.ps1' "--warning 10 --critical 70"

Contenu du script :

Param(
    [Parameter(Mandatory=$True)]
    [String] $warning,
    [Parameter(Mandatory=$True)]
    [String] $critical
)
 
$value = 50;
 
if( $value -gt $critical )
{
    Write-Output "CRITICAL : value is $value (> $critical)"
    exit 2;
}
 
if( $value -gt $warning )
{
    Write-Output "WARNING : value is $value (> $warning)"
    exit 1;
}
Write-Output "OK : value is $value (< $warning)"
exit 0;
protocols/powershell_remote_plugin.txt · Dernière modification : 2024/07/23 13:28 de j.george

Outils de la page