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.

Partage 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.

Windows | chemin vers sysvol Windows | partage netlogon

Script Batch

Je me suis inspiré du script présent ici : https://support.kaspersky.com/13693.

Instructions

Modifier la ligne en rouge en fonction de son partage de fichiers.

deploy.bat

@echo off
REM ECHO ON

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

: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 NetAgentVersion | FIND "0x2"
IF %ERRORLEVEL% == 1 GOTO INSTALL
GOTO END

:INSTALL
ECHO Installing
REG ADD HKLM\Software\KasperskyLab\KESCloud /v NetAgentVersion /t REG_DWORD /f /D 2
\\std.local\netlogon\KAV\KESC.exe -s
REG ADD HKLM\Software\KasperskyLab\KESCloud /v AutoPackageInstalled /t REG_DWORD /f /D 1
:END
ECHO Finish
set /p=Hit Enter to continue...

Script PowerShell

Le script PowerShell que j'ai utilisé et exécuté depuis un AD, vérifie la présence de l'ordinateur (test avec un simple ping). Si une réponse parvient alors l'utilitaire psexec.exe sera utilisé pour exécuter le batch deploy.bat sur l'ordinateur cible.

Instructions

La aussi il faudra l'adapter en modifiant les variables suivantes :

Deploy.ps1

###########################
# author : shebangthedolphins.net
# version : 1.2
# date : 2020.12
# role : deploy Kaspersky Endpoint Security Cloud
# other : launch it with domain admin user rights.
# updates :
#       - 1.0 (2018/02) : First version    
#       - 1.1 (2020/09) : Add variables and comments
#       - 1.2 (2020/12) : Updates, variables corrections

#VARIABLES
$computers = @("COMPUTER15","COMPUTER85","COMPUTER86","COMPUTER98","COMPUTER16","COMPUTER19")
$domain = "std.local"
$user = "administrator"
$password = "Mypassword"
$share = "\\std.local\netlogon\KAV\"
$psexec = "c:\Users\std\psexec.exe"

Foreach ($computer in $computers)
{
    Write-Host "Work on $computer"
    ping -n 1 "$computer" | findstr "TTL" #check if computer is available
    if ($LASTEXITCODE -eq '0') #if yes, let's start deployment
    {
	 & "$psexec" "/accepteula" "\\$computer" "-u" "$domain\$user" "-p" "$password" "$share\deploy.bat"
	 #Start-Process -FilePath ($psexec) -ArgumentList ("/accepteula" + " \\" + $computer + " -u " + $domain + "\" + $user + " -p " + $password + " " + $share + "\" + "deploy.bat") # -Wait
    }
    else
    {
	    write-host "$computer cannot be reached"
    }
} 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :