![]
En 2024, Microsoft a annoncé son intention de supprimer progressivement la prise en charge de VBScript, un langage de script Windows autrefois populaire. Les scripts VBScript restent populaires pour l’automatisation et la gestion de systèmes car ils sont simples, faciles à utiliser et possèdent une structure de code transparente basée sur Visual Basic. D’autres avantages incluent le runtime et l’interpréteur Windows intégrés de Windows Script Host, ainsi que l’accès à une vaste bibliothèque de scripts prêts à l’emploi du support Microsoft et de contributeurs tiers.
Cependant, en raison de son architecture existante, de ses nombreuses vulnérabilités et de son potentiel d’utilisation malveillante, Microsoft ne recommande plus l’utilisation de VBScript. Avec la sortie de
Windows 11 24H2
et
Windows Serveur 2025
, VBScript est devenu obsolète et est devenu une fonctionnalité système facultative (Feature on Demand, FoD). Windows 11 25H2 a actuellement VBScript activé par défaut. Cependant, selon la feuille de route MSFT, VBScript sera désactivé par défaut dans les futures versions de Windows en 2027. Après cela, cette fonctionnalité sera complètement supprimée de l’image Windows.
![]
Les utilisateurs Windows peuvent activer ou désactiver VBScript à l’aide de l’application Paramètres. Accédez à Paramètres-> Système-> Fonctionnalités facultatives-> Afficher les fonctionnalités facultatives. La fonctionnalité facultative VBSCRIPT est activée par défaut dans Windows. Si nécessaire, vous pouvez le désactiver à partir d’ici.
![]
Vous pouvez également vérifier si le moteur de script VBScript est installé sur Windows à l’aide de PowerShell.
Get-WindowsCapability-Online-Name vbs*
![]
Pour supprimer la fonctionnalité VBScript, exécutez la commande suivante :
Remove-WindowsCapability-Online-Name "VBScript~~~~0.0.1.0"
Ou utilisez DISM :
DISM/En ligne/remove-Capability/CapabilityName:VBScript
Pour installer la fonctionnalité VBscript, exécutez :
DISM/En ligne/Add-Capability/CapabilityName:VBScript
Les utilisateurs Windows peuvent activer ou désactiver VBScript à l’aide de l’application Paramètres. Allez dans -> -> ->. La fonctionnalité facultative est activée par défaut dans Windows. Si nécessaire, vous pouvez le désactiver à partir d’ici. Vous pouvez également vérifier si le moteur de script VBScript est installé sur Windows à l’aide de PowerShell. Pour supprimer la fonctionnalité VBScript, exécutez la commande suivante : Ou utilisez DISM : Pour installer la fonctionnalité VBscript, exécutez :
Ou :
Add-WindowsCapability-Online-Name "VBScript~~~~0.0.1.0"
Si l’interpréteur VBScript est manquant, les fichiers portant l’extension .vbs perdront leurs mappages d’exécution associés, ce qui entraînera une erreur lors de la tentative d’exécution d’un script VBS à partir de la ligne de commande.
Program 'slmgr.vbs' failed to run: No application is associated with the specified file for this operation.

Une erreur apparaîtra si vous essayez d’exécuter un VBScript via WScript.exe (mode graphique) ou Cscript.exe (mode console) :
wscript.exe c:\windows\system32\slmgr.vbs
Windows Script HostThere is no script engine for file extension ".vbs"

Les scripts VBS sont encore largement utilisés dans les environnements d’entreprise pour automatiser diverses tâches (en particulier dans les GPO de domaine, les scripts de déploiement automatisés, les scripts SCCM et les tâches du Planificateur de tâches). Microsoft recommande de migrer tout le code utilisé vers des langages de script plus modernes, tels que PowerShell, JavaScript et Python, avant de désactiver complètement VBScript sous Windows.
Avant que VBScript ne soit globalement désactivé dans Windows, les administrateurs doivent auditer de manière proactive leurs environnements pour identifier toutes les tâches ou processus qui reposent encore sur des scripts VBS. Utilisez l’outil SYSMON pour auditer les événements liés à l’utilisation du code VBS sur les ordinateurs de l’entreprise.
Téléchargez le
<Sysmon schemaversion="4.50"><EventFiltering><!-- Tracking the loading of vbscript.dll --><ImageLoad onmatch="include"><ImageLoaded condition="contains">vbscript.dll</ImageLoaded></ImageLoad></EventFiltering></Sysmon>
Avant que VBScript ne soit globalement désactivé dans Windows, les administrateurs doivent auditer de manière proactive leurs environnements pour identifier toutes les tâches ou processus qui reposent encore sur des scripts VBS. Utilisez l’outil pour auditer les événements liés à l’utilisation du code VBS sur les ordinateurs de l’entreprise. Téléchargez le fichier sysmon64.exe sur un ordinateur de référence. Ensuite, créez un fichier XML pour enregistrer l’utilisation de la bibliothèque vbscript.dll :
Enregistrez cette configuration dans un fichier XML, puis installez le service Sysmon et le pilote de périphérique qui surveilleront les événements d’utilisation de VBS.
Sysmon64.exe-i sysmon\_settings.xml

Ou exécutez la commande « Sysmon64.exe-c sysmon_settings.xml » pour mettre à jour la configuration Sysmon actuelle.
Désormais, un événement avec l’ID d’événement 7 (Image chargée : règle : ImageLoad) sera ajouté à l’Observateur d’événements à chaque fois que le moteur de script VBScript est utilisé. L’analyse des événements dans l’Observateur d’événements-> Journaux d’applications et de services-> Microsoft-> Windows-> Sysmon-> Opérationnel vous permet d’identifier l’utilisation de VBScript sur un ordinateur.
Les journaux Sysmon peuvent être utilisés pour identifier les fichiers VBScript spécifiques qui ont été exécutés, l’utilisateur qui les a initiés et le moment où ils ont été exécutés.

Le script PowerShell suivant interroge l’Observateur d’événements pour les événements qui enregistrent des informations sur les fichiers portant l’extension *.VBS : ID d’événement 1 : Processus de création (règle : ProcessCreate )
` Get-WinEvent-FilterHashtable @{LogName=‘Microsoft-Windows-Sysmon/Operational’; Id=1} | PourEach-Object {
$xml=xml$_.ToXml()
$processPath=$xml.Event.EventData.Data | Où-Objet {$_.Name-eq ‘Image’} | Select-Object-ExpandProperty ‘#text’$commandLine=$xml.Event.EventData.Data | Où-Objet {$_.Name-eq ‘CommandLine’} | Select-Object-ExpandProperty ‘#text’if ($commandLine-like ‘.vbs') {
PSCustomObject@{
TimeCreated=$_.TimeCreated
ProcessPath=$processPath
Ligne de Commande=$Ligne de Commande
}
}
} `
Dans mon cas, j’ai trouvé plusieurs événements d’exécution de VBScript sur l’ordinateur.

Ainsi, en utilisant Sysmon, vous pouvez auditer les événements d’utilisation de VBScript sur les ordinateurs de l’entreprise (il n’est pas nécessaire d’activer l’audit VBS pour tous les systèmes simultanément. Au lieu de cela, il doit être limité aux groupes de tests d’appareils typiques.). Après avoir identifié les scripts VBS dans votre environnement, évaluez leur pertinence fonctionnelle et évaluez si leur logique peut être portée sur PowerShell.
-
.vbs(VBScript) -
.vba(Visual Basic pour Application) -
.wsf(fichier de script Windows) -
.wsh(fichier de paramètres WSH)
Voici les extensions de fichiers typiques contenant du code VBScript :
Un nombre important de scripts basés sur VBScript sont encore largement utilisés dans les environnements Windows. Par exemple. Ceux-ci incluent le
Un nombre important de scripts basés sur VBScript sont encore largement utilisés dans les environnements Windows. Par exemple. Il s’agit notamment de la commande de gestion de l’activation Windows (Slmgr.vbs), du script d’activation de Microsoft Office ( Ospp.vbs ), des scripts de suppression d’Office (Offscrub), de l’outil d’affichage des informations système ( Bginfo ), etc. Étant donné que Microsoft n’a pas fourni de remplacements pour tous les outils existants, il est peu probable que VBScript soit complètement obsolète dans un avenir proche. Cependant, les administrateurs d’entreprise doivent commencer à se préparer à cette étape à l’avance.
*️⃣ Lien source :
, sysmon64.exe , le script PowerShell interroge l’Observateur d’événements, , , , , commande de gestion de l’activation Windows, Ospp.vbs, scripts de suppression d’Office, Bginfo,