Deployer Kaspersky Endpoint Security Cloud avec PowerShell

J'ai eu à déployer Kaspersky Endpoint Security Cloud en remplacement d'un Kaspersky Enpoint Security standard. Pour réaliser cela j'ai utilisé l'outil Microsoft psexec, le script batch de Kaspersky et un script PowerShell.

Paratge de fichiers

Un partage réseau accessible sera utilisé (le répertoire SYSVOL peut faire l'affaire) afin que l'on partage l'installer KESC.exe ainsi que le fichier batch deploy.bat.

Script Batch

Le fichier batch écrira jusqu'à deux clé de registre dans le but de connaitre le nombre de fois que le programme d'installation a été exécuté. C'est également lui qui exécutera KESC.exe -s jusqu'à deux fois dans le but de : premièrement désinstaller Kasperky Network Agent puis d'installer Kaspersky Endpoint Security Cloud. (source : https://support.kaspersky.com/13693).

Instructions

Modifier les deux premières lignes du fichier pour l'adapter à son architecture.

deploy.bat

ECHO ON
set SHARE_PATH=\\SRV-DATA\share
set PACKAGE_NAME=KESC.exe
set __KESCLOUD_ROOT_KEY="HKLM\Software\KasperskyLab\KESCloud"
set __KESCLOUD_KEY_NAME="AutoPackageInstalled"
set __KESCLOUD_PACKAGE_FULL_PATH="%SHARE_PATH%\%PACKAGE_NAME%"
set __KESCLOUD_PACKAGE_ARGUMENTS=-s

:REM if HKLM\Software\KasperskyLab missing, create Key
REG QUERY HKLM\Software\KasperskyLab
IF %ERRORLEVEL% == 1 REG ADD HKLM\Software\KasperskyLab

:REM If HKLM\Software\KasperskyLab\KESCloud\NetAgent DWORD equal to 1 KESC switch else go to NETAGENT switch
REG QUERY HKLM\Software\KasperskyLab\KESCloud /v NetAgent | FIND "0x1"
IF %ERRORLEVEL% == 1 GOTO NETAGENT
GOTO KESC
:NETAGENT
REG ADD HKLM\Software\KasperskyLab\KESCloud /v NetAgent /t REG_DWORD /f /D 1
%__KESCLOUD_PACKAGE_FULL_PATH% %__KESCLOUD_PACKAGE_ARGUMENTS%
GOTO KESC

:KESC
REG QUERY %__KESCLOUD_ROOT_KEY% /v %__KESCLOUD_KEY_NAME% | FIND "0x1"
IF %ERRORLEVEL% == 1 GOTO INSTALL
GOTO END
:INSTALL
REG ADD %__KESCLOUD_ROOT_KEY% /v %__KESCLOUD_KEY_NAME% /t REG_DWORD /f /D 1
%__KESCLOUD_PACKAGE_FULL_PATH% %__KESCLOUD_PACKAGE_ARGUMENTS%
:END

PowerShell Script

Maintenant, le script PowerShell que j'ai utilisé. La aussi il faudra l'adapter en modifiant les variables suivantes :

###########################
# author : shebangthedolphins.net
# version : 1.1
# date : 2018.02
# role : déployer Kaspersky Endpoint Security Cloud
# other : exécuter avec les droits admin du domaine.
# updates :
#       - 1.0 (2018/02) : First version    
#       - 1.1 (2020/09) : Add variables and comments

#VARIABLES
$computers = New-Object System.Collections.ArrayList
[void] $computers.AddRange( ("COMPUTER15","COMPUTER85","COMPUTER86","COMPUTER98","COMPUTER16","COMPUTER19"))
$domain = "shebangthedolphins.net"
$user = "administrator"
$password = "Mypassword"
$share = "\\SRV-DATA\share\"
$psexec = "c:\Users\std\psexec.exe"

Foreach ($computer in $computers)
{
    Write-Host "Ordinateur cible : $computer"
    ping -n 1 "$computer" | findstr "TTL" #vérifie que l'ordinateur soit disponible
    if ($LASTEXITCODE -eq '0') #si oui alors procéder au déploiement
    {
	 & "$psexec" "/accepteula" "\\$computer" "-u" "$domain\$user" "-p" "$password" "$share\deploy.bat"
    }
    else
    {
	    write-host "$computer n'est pas joignable"
    }
} 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :