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
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.
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
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.
Paramètrage :
'c:\plugins\alreadyOK.ps1'
Ou
'c:\plugins\alreadyOK.ps1' ""
Contenu du script :
Write-Output "Hello world" exit 0;
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;