Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Installation Autonome de SQL Server sous Windows Server via un script PowerShell

Par Bryan DANJOU Publié le 24/10/2019 à 11:43:59 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Introduction

Afin de déployer de façon autonome une installation de SQL Server avec une nouvelle instance. Vous pouvez effectuer cette installation depuis un script en PowerShell. J'ai donc crée ce script permettant d'effectuer une installation de manière autonome.

Voici un tableau permettant avec les résultats des tests effectués entre les différentes versions de SQL Server et de Windows Server.

Table 1. Compatibilité

  Windows Server 2012 Windows Server 2012 R2 Windows Server 2016 Windows Server 2019
SQL Server 2016 Non Testé OK OK OK
SQL Server 2017 Non Testé OK OK OK
SQL Server 2019 Non Testé Non Testé OK OK


Pour le fonctionnement du script, il vous faut un ISO de SQL Server (Standard ou Entreprise) 2016, 2017 ou 2019.

Concernant la version de SQL Server Express, le script peut fonctionner, il suffit juste de modifier la partie concernant la génération du fichier de configuration pour l'installation de SQL Server.

Actuellement, le script est configuré pour effectuer l'installation de la fonctionnalité: « Database Engine Services ». Le nom de l'instance est celui par défaut: MSSQLSERVER.

Explication du script

Les explications du scripts concernent seulements quelques parties.

Les paramètres

#Passage en paramètre de la config de SQL Server
Param(
    [parameter(Mandatory=$true)][string]$PasswordSUSQL, #Mot de passe du compte SU
    [string]$ISOSQLServer="LIEN VERS VOTRE ISO SQL SERVER", #ISO correspondant à SQL Server
    [string]$SQLUSERDBDIR, #Chemin du dossier des données des BDD
    [string]$SQLUSERDBLOGDIR #Chemin du dossier des logs des BDD
)

Sur cette partie, il y a plusieurs paramètres qui sont définis:

  • [parameter(Mandatory=$true)][string]$PasswordSUSQL : Ce paramètre est obligatoire, cela permet de définir le mot de passe du compte SU. Dans cette configuration, le mode d'authentification à l'instance est en mode mixte. Une connexion avec un Compte d'utilisateur Windows local ou compte de domaine approuvé ou une connexion SQL Server: Login/Password. L'admin est le compte SU.

  • [string]$ISOSQLServer="LIEN VERS VOTRE ISO SQL SERVER" : Permet de saisir le chemin vers un ISO SQL Server (stocké sur un partage ou directement sur le serveur). Vous pouvez directement mettre le chemin dans le script, cela permet d'utiliser par défaut ce lien, si lors du lancement du script vous n'utilisez pas ce paramètre.

  • [string]$SQLUSERDBDIR : Permet de changer le chemin des données des BDD. En cas de non utlisation de ce paramètre, le chemin sera celui par défaut lors de l'installation de SQL Server.

  • [string]$SQLUSERDBLOGDIR : Permet de changer le chemin des logs des BDD. En cas de non utlisation de ce paramètre, le chemin sera celui par défaut lors de l'installation de SQL Server.

Les logs

#Fonction message en console d'affichage d'un message INFO
function Log-Message
{
    [CmdletBinding()]
    Param
    (
        [Parameter(Mandatory=$true, Position=0)]
        [string]$LogMessage
    )

    Write-Host ("[{0}] - {1}" -f (Get-Date), $LogMessage) 
}


#Fonction message en console d'affichage d'un : En cas d'erreur
function Log-Message-Error
{
    [CmdletBinding()]
    Param
    (
        [Parameter(Mandatory=$true, Position=0)]
        [string]$LogMessage
    )

    Write-Host ("[{0}] - {1}" -f (Get-Date), $LogMessage) -ForegroundColor Red
}

#Fonction message en console d'affichage d'un : En cas de succes
function Log-Message-Succes
{
    [CmdletBinding()]
    Param
    (
        [Parameter(Mandatory=$true, Position=0)]
        [string]$LogMessage
    )

    Write-Host ("[{0}] - {1}" -f (Get-Date), $LogMessage) -ForegroundColor Green
}

#Création du fichier de log dans le dossier C:\SQL
Log-Message "INFO: Création du fichier de log $LogFile en cours!"
Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss')"INFO: Création du fichier de log $LogFile en cours!" >> $LogFile
New-Item -Path 'C:\SQL' -ItemType Directory #Création du répertoire SQL
New-Item -Path 'C:\SQL\LOG_InstallSQLServer.log' -ItemType File #Création du fichier de log
$LogFile = "C:\SQL\LOG_InstallSQLServer.log" 
Log-Message-Succes "SUCCES: Création du fichier de log $LogFile"
Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss')"SUCCES: Création du fichier de log $LogFile" >> $LogFile

Cette partie, permet la création d'un fichier log ainsi que l'affichage des logs en direct sur le PowerShell. Chaque étape est inscrite dans le fichier de log, cela permet en cas d'une erreur de savoir d'où cela provient.

Le fichier de configuration

#Config du fichier de conf pour l'installation de SQL Server
$conffile= @"
[OPTIONS]
ACTION="Install"
ErrorReporting="False"
ENU="True"
QUIET="True"
QUIETSIMPLE="False"
UpdateEnabled="False"
FEATURES="SQLENGINE"
UpdateSource="MU"
HELP="False"
INDICATEPROGRESS="False"
X86="False"
INSTANCENAME="MSSQLSERVER"
SQLUSERDBDIR="$SQLUSERDBDIR"
SQLUSERDBLOGDIR="$SQLUSERDBLOGDIR"
INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"
INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server"
INSTANCEID="MSSQLSERVER"
RSINSTALLMODE="DefaultNativeMode"
INSTANCEDIR="C:\Program Files\Microsoft SQL Server"
AGTSVCACCOUNT="NT Service\SQLSERVERAGENT"
AGTSVCSTARTUPTYPE="Manual"
ISSVCSTARTUPTYPE="Disabled"
ISSVCACCOUNT="NT AUTHORITY\System"
COMMFABRICPORT="0"
COMMFABRICNETWORKLEVEL="0"
COMMFABRICENCRYPTION="0"
MATRIXCMBRICKCOMMPORT="0"
SQLSVCSTARTUPTYPE="Automatic"
FILESTREAMLEVEL="0"
ENABLERANU="False"
SQLCOLLATION="French_CI_AS"
SQLSVCACCOUNT="NT Service\MSSQLSERVER"
SQLSYSADMINACCOUNTS="$InfoHost\$username"
SECURITYMODE="SQL"
SAPWD="$PasswordSUSQL"
ADDCURRENTUSERASSQLADMIN="False"
TCPENABLED="1"
NPENABLED="0"
BROWSERSVCSTARTUPTYPE="Disabled"
RSSVCACCOUNT="NT AUTHORITY\System"
RSSVCSTARTUPTYPE="Automatic"
IAcceptSQLServerLicenseTerms="True"
"@

Cette partie correspond au fichier de configuration qui sera utiliser par SQL Server. Toutes ces information seront générés dans un fichier "ConfigurationFile.ini": Ce fichier est un fichier texte avec des paramètres (paire nom/valeur).

Vous pouvez le modifier en fonction de vos besoins, comme l'ajout d'autres fonctionnalités. Voici un lien vers le site de Microsoft permettant de voir tous les paramètres disponibles: https://docs.microsoft.com/fr-fr/sql/database-engine/install-windows/install-sql-server-from-the-command-prompt?view=sql-server-ver15.

Via l'installateur de SQL Server, vous pouvez générer votre fichier de configuration afin de l'utiliser pour votre script pour d'autres installations. Voici un lien vers le site de Microsoft afin de voir la procédure: https://docs.microsoft.com/fr-fr/sql/database-engine/install-windows/install-sql-server-using-a-configuration-file?view=sql-server-ver15.

Le script complet

#Passage en paramètre de la config de SQL Server
Param(
    [parameter(Mandatory=$true)][string]$PasswordSUSQL, #Mot de passe du compte SU
    [string]$ISOSQLServer="\\10.0.208.119\e\ISO\SQL_Server_Standard_2017.iso", #ISO correspondant à SQL Server
    [string]$SQLUSERDBDIR, #Chemin du dossier des données des BDD
    [string]$SQLUSERDBLOGDIR #Chemin du dossier des logs des BDD
)


#Fonction message en console d'affichage d'un message INFO
function Log-Message
{
    [CmdletBinding()]
    Param
    (
        [Parameter(Mandatory=$true, Position=0)]
        [string]$LogMessage
    )

    Write-Host ("[{0}] - {1}" -f (Get-Date), $LogMessage) 
}


#Fonction message en console d'affichage d'un : En cas d'erreur
function Log-Message-Error
{
    [CmdletBinding()]
    Param
    (
        [Parameter(Mandatory=$true, Position=0)]
        [string]$LogMessage
    )

    Write-Host ("[{0}] - {1}" -f (Get-Date), $LogMessage) -ForegroundColor Red
}

#Fonction message en console d'affichage d'un : En cas de succes
function Log-Message-Succes
{
    [CmdletBinding()]
    Param
    (
        [Parameter(Mandatory=$true, Position=0)]
        [string]$LogMessage
    )

    Write-Host ("[{0}] - {1}" -f (Get-Date), $LogMessage) -ForegroundColor Green
}

#Création du fichier de log dans le dossier C:\SQL
Log-Message "INFO: Création du fichier de log $LogFile en cours!"
Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss')"INFO: Création du fichier de log $LogFile en cours!" >> $LogFile
New-Item -Path 'C:\SQL' -ItemType Directory #Création du répertoire SQL
New-Item -Path 'C:\SQL\LOG_InstallSQLServer.log' -ItemType File #Création du fichier de log
$LogFile = "C:\SQL\LOG_InstallSQLServer.log" 
Log-Message-Succes "SUCCES: Création du fichier de log $LogFile"
Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss')"SUCCES: Création du fichier de log $LogFile" >> $LogFile



#Initialisaiton de la variable LASTEXITCODE (qui est utilisé en cas d'erreur d'une application externe)
$global:LASTEXITCODE = 0


#Récupération OS et Host
$InfoServer = Get-WmiObject Win32_OperatingSystem | Select-Object Caption, CSName
$InfoOS = $InfoServer.Caption
$InfoHost = $InfoServer.CSName
$WS2012S = "Microsoft Windows Server 2012 R2 Standard"
$WS2012DC = "Microsoft Windows Server 2012 R2 Datacenter"
Log-Message "INFO: Version de l'OS: $InfoOS"
Log-Message "INFO: Host: $InfoHost"
Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss')"INFO: Version de l'OS: $InfoOS et nom du Host: $InfoHost" >> $LogFile


#Récupération du compte admin par défaut
$usernamefull = Get-WmiObject -Class Win32_UserAccount -Filter "LocalAccount='True'" |where {$_.SID -Like "*-500"}
$username = $usernamefull.Name 
Log-Message "INFO: Compte Administrateur par défaut: $username"
Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "INFO: Compte Administrateur par défaut: $username" >> $LogFile


#Vérification de l'accès au répertoire pour la variable $SQLUSERDBDIR
if ($SQLUSERDBDIR -igt 0)
{
    if (Test-Path $SQLUSERDBDIR)
    {
        Log-Message-Succes "SUCCES: Le répertoire $SQLUSERDBDIR pour SQLUSERDBDIR est accessible!"
        Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "SUCCES: Le répertoire $SQLUSERDBDIR pour SQLUSERDBDIR est accessible!" >> $LogFile
    }
    else
    {
        Log-Message-Error "ERROR: Le répertoire $SQLUSERDBDIR pour SQLUSERDBDIR est inaccessible!"
        Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "INFO: Montage de l'ISO SQL Server: $ISOSQLServer" >> $LogFile
    }
    }
else
{
    Log-Message "INFO: Le répertoire des données des BDD est celui par défaut!"
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "INFO: Le répertoire des données des BDD est celui par défaut!" >> $LogFile
}


#Vérification de l'accès au répertoire pour la variable $SQLUSERDBLOGDIR
if ($SQLUSERDBLOGDIR -igt 0)
{
    if (Test-Path $SQLUSERDBLOGDIR)
    {
        Log-Message-Succes "SUCCES: Le répertoire $SQLUSERDBLOGDIR pour SQLUSERDBLOGDIR est accessible!"
        Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "SUCCES: Le répertoire $SQLUSERDBLOGDIR pour SQLUSERDBLOGDIR est accessible!" >> $LogFile
    }
    else
    {
        Log-Message-Error "ERROR: Le répertoire $SQLUSERDBLOGDIR pour SQLUSERDBLOGDIR est inaccessible!"
        Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "ERROR: Le répertoire $SQLUSERDBLOGDIR pour SQLUSERDBLOGDIR est inaccessible!" >> $LogFile
    }
}
else
{
        Log-Message "INFO: Le répertoire des logs des BDD est celui par défaut!"
        Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "INFO: Le répertoire des logs des BDD est celui par défaut!" >> $LogFile
}


#Montage ISO SQL Server
try
{
    Log-Message "INFO: Montage de l'ISO SQL Server: $ISOSQLServer"
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "INFO: Montage de l'ISO SQL Server: $ISOSQLServer" >> $LogFile
    $MountISO = Mount-DiskImage -ImagePath $ISOSQLServer -PassThru -ErrorAction Stop
    $LetterISOSQLServer = ($MountISO | Get-Volume).DriveLetter
    Log-Message-Succes "SUCCES: L'ISO $ISOSQLServer est bien monté!" 
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "SUCCES: L'ISO $ISOSQLServer est bien monté!" >> $LogFile 
}
catch
{
    Log-Message-Error "ERROR: Erreur: Impossible de monté de l'ISO"
    Log-Message-Error "ERROR: Type d'erreur: $($_.Exception.GetType().FullName)"
    Log-Message-Error "ERROR: Message d'errreur: $($_.Exception.Message)"
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "ERROR: Erreur: Impossible de monté de l'ISO" >> $LogFile
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "ERROR: Type d'erreur: $($_.Exception.GetType().FullName)" >> $LogFile
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "ERROR: Message d'errreur: $($_.Exception.Message)" >> $LogFile
    break
}


#Config du fichier de conf pour l'installation de SQL Server
$conffile= @"
[OPTIONS]
ACTION="Install"
ErrorReporting="False"
ENU="True"
QUIET="True"
QUIETSIMPLE="False"
UpdateEnabled="False"
FEATURES="SQLENGINE"
UpdateSource="MU"
HELP="False"
INDICATEPROGRESS="False"
X86="False"
INSTANCENAME="MSSQLSERVER"
SQLUSERDBDIR="$SQLUSERDBDIR"
SQLUSERDBLOGDIR="$SQLUSERDBLOGDIR"
INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"
INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server"
INSTANCEID="MSSQLSERVER"
RSINSTALLMODE="DefaultNativeMode"
INSTANCEDIR="C:\Program Files\Microsoft SQL Server"
AGTSVCACCOUNT="NT Service\SQLSERVERAGENT"
AGTSVCSTARTUPTYPE="Manual"
ISSVCSTARTUPTYPE="Disabled"
ISSVCACCOUNT="NT AUTHORITY\System"
COMMFABRICPORT="0"
COMMFABRICNETWORKLEVEL="0"
COMMFABRICENCRYPTION="0"
MATRIXCMBRICKCOMMPORT="0"
SQLSVCSTARTUPTYPE="Automatic"
FILESTREAMLEVEL="0"
ENABLERANU="False"
SQLCOLLATION="French_CI_AS"
SQLSVCACCOUNT="NT Service\MSSQLSERVER"
SQLSYSADMINACCOUNTS="$InfoHost\$username"
SECURITYMODE="SQL"
SAPWD="$PasswordSUSQL"
ADDCURRENTUSERASSQLADMIN="False"
TCPENABLED="1"
NPENABLED="0"
BROWSERSVCSTARTUPTYPE="Disabled"
RSSVCACCOUNT="NT AUTHORITY\System"
RSSVCSTARTUPTYPE="Automatic"
IAcceptSQLServerLicenseTerms="True"
"@


# Génération du fichier ConfigurationFile.ini
$ConfigurationFile = "C:\SQL\ConfigurationFile.ini"
If (Test-Path $ConfigurationFile){
   Log-Message "INFO: Vérification de l'existance du fichier $ConfigurationFile"
   Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "INFO: Vérification de l'existance du fichier $ConfigurationFile" >> $LogFile
   Remove-Item $ConfigurationFile
   Log-Message-Error "ERROR: Fichier déjà existant, suppression du fichier $ConfigurationFile"
   Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "ERROR: Fichier déjà existant, suppression du fichier $ConfigurationFile" >> $LogFile
}
New-Item -Path $ConfigurationFile -ItemType File -Value $Conffile
Log-Message-Succes "SUCCES: Creation du fichier de configuration $ConfigurationFile" 
Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "SUCCES: Creation du fichier de configuration $ConfigurationFile" >> $LogFile


#Ouverture des ports pour l'utilisation de SQL Server
try
{
    Log-Message "INFO: Ouverture des ports 1433 et 1434"
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "INFO: Ouverture des ports 1433 et 1434" >> $LogFile
    New-NetFirewallRule -DisplayName "SQLServer" -Direction Inbound –Protocol TCP –LocalPort 1433 -Action allow
    New-NetFirewallRule -DisplayName "SQLConnexionADMIN" -Direction Inbound –Protocol TCP –LocalPort 1434 -Action allow
    New-NetFirewallRule -DisplayName "SQLManagementDATABASE" -Direction Inbound –Protocol UDP –LocalPort 1434 -Action allow
    Log-Message-Succes "SUCCES: Ports 1433 et 1434 ouvert!" 
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "SUCCES: Ports 1433 et 1434 ouvert!" >> $LogFile
}
catch
{
    Log-Message-Error "ERROR: Erreur dans l'ouverture des ports!"
    Log-Message-Error "ERROR: Type d'erreur: $($_.Exception.GetType().FullName)"
    Log-Message-Error "ERROR: Message d'errreur: $($_.Exception.Message)"
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "ERROR: Erreur dans l'ouverture des ports!" >> $LogFile
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "ERROR: Type d'erreur: $($_.Exception.GetType().FullName)" >> $LogFile
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "ERROR: Message d'errreur: $($_.Exception.Message)" >> $LogFile
}



# Installation de SQL Server
Log-Message "INFO: Installation SQL Server."
Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "INFO: Installation SQL Server." >> $LogFile
$fileExe =  "${LetterISOSQLServer}:\setup.exe"
& $fileExe  /CONFIGURATIONFILE=$ConfigurationFile
# Vérification d'une erreur durant l'installation de SQL Server    
if ( $LASTEXITCODE -eq 0)
{
    Log-Message-Succes "SUCCES: SQL Server est Installé!"
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "SUCCES: SQL Server est Installé!" >> $LogFile
    Dismount-DiskImage -ImagePath $ISOSQLServer     #Démontage de l'iso
    Log-Message-Succes "SUCCES: Démontage de l'ISO $ISOSQLServer" 
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "SUCCES: Démontage de l'ISO $ISOSQLServer" >> $LogFile

}
else
{
   Log-Message-Error "ERROR: Erreur dans l'installation, voir fichier de log : C:\Program Files\Microsoft SQL Server\140\Setup Bootstrap\Log\Summary.txt"
   Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "ERROR: Erreur dans l'installation, , voir fichier de log : C:\Program Files\Microsoft SQL Server\140\Setup Bootstrap\Log\Summary.txt" >> $LogFile
   Dismount-DiskImage -ImagePath $ISOSQLServer     #Démontage de l'iso
   Log-Message-Succes "SUCCES: Démontage de l'ISO $ISOSQLServer" 
   Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "SUCCES: Démontage de l'ISO $ISOSQLServer" >> $LogFile
   break
}


#Test de connexion à l'instance SQL Server
$conn = New-Object System.Data.SqlClient.SqlConnection     
$conn.ConnectionString = "Server=$InfoHost;Integrated Security=True;"     
Try 
{
    $conn.Open()
    Log-Message-Succes "SUCCES: Connexion OK à SQL Server!"
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "SUCCES: Connexion OK à SQL Server!" >> $LogFile
}
Catch
{
    Log-Message-Error "ERROR: Impossible de se connecter à SQL Server"
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "ERROR: Impossible de se connecter à SQL Server" >> $LogFile
}   
  
$conn.Close()


#Reboot si Windows Server 2012 R2 Standard et Datacenter
if ($InfoOS.Caption -eq $WS2012DC){
    Log-Message-Succes "INFO: Reboot de l'ordinateur"
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "INFO: Reboot de l'ordinateur" >> $LogFile
    Restart-Computer
}
elseif ($InfoOS.Caption -eq $WS2012S){
    Log-Message "INFO: Reboot de l'ordinateur" 
    Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "INFO: Reboot de l'ordinateur" >> $LogFile
    Restart-Computer
}
else{
Log-Message "INFO: Pas de reboot requis!" 
Echo (Get-Date -format 'yyyy/MM/dd HH:mm:ss') "INFO: Pas de reboot requis!" >> $LogFile
}

Conclusion

Grâce à ce script, vous pouvez automatiser vos installations sur SQL Server. Le script est personnalisable en fonction de vos besoins. Comme vous pouvez le voir, le script est commenté afin de savoir à quoi correspondent toutes les étapes.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels