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"

Ou bien :

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

Ou alors :

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

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

Explication des paramètres

'"<args>"'

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"'

Ou bien :

'c:\plugins\mypluginvalue.ps1' '"10 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;