logo rss

Deployer Kaspersky Endpoint Security Cloud avec PowerShell

Kaspersky logo

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.

  • Depuis un controlleur de domaine on pourra utiliser le partage NETLOGON qui se trouve dans c:\Windows\SYSVOL\sysvol\domain.fqdn\scripts de chaque DC :
Capture d'écran du chemin d'accès au dossier SYSVOL de Windows contenant les scripts de déploiement de Kaspersky via PowerShell.
  • On y copiera notre paquet d'installation et notre script deploy.bat :
Capture d'écran montrant le dossier NETLOGON contenant des fichiers de déploiement pour Kaspersky, y compris un script batch et un fichier exécutable.

Script Batch

  • Le fichier batch écrira deux clés de registre:
    • HKLM\Software\KasperskyLab\KESCloud\NetAgentVersion où je renseigne la version de mes installations (ici la 2).
    • HKLM\Software\KasperskyLab\KESCloud\AutoPackageInstalled, indique que l'installation a été faite et évite ainsi de re-déployer le package sur une machine.

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 :

  • $computers : modifier simplement la liste des noms d'ordinateurs à migrer
  • $domain : nom du domaine Active Directory
  • $user : le nom d'un administrateur Active Directory
  • $password : mot de passe de l'$user définit juste au dessus
  • $share : partage qui contient le batch deploy.bat
  • $psexec : chemin complet de l'exécutable psexec.exe

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 :

adresse mail de contact