Table des matières

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 :

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

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;