Sommaire
Le registre de Windows
Les API Windows
Les fichiers de stratégie
Les fichiers INF
Les lignes de commandes
Les scripts Windows
VBS
WSH
ADSI (WinNT Provider)
WMI
WMI Scripting API
Input device
Mass storage
Motherboard
Networking
Printing
Telephony
Video
Desktop
File system
Memory
Operating System
Processes
Registry
Scheduler Jobs
Services
Shares
Users
Windows NT Event Log
Windows Installer
ScriptCenter
Les erreurs Windows
Les trucs et astuces
Télécharger

 

  Les scripts Windows

WMI Scripting API :

Dans un script WMI, on retrouve ces trois objets de base :

Objet Description
SWbemLocator Obtient un objet SWbemServices pour obtenir l'accès à WMI sur un hôte local ou distant.
SWbemServices Crée, met à jour, et recherche les instances ou les classes d'un namespace sur un hôte local ou distant.
SWbemObject Contient et manipule une classe d'objets simple ou instance WMI.

Ces objets offrent les méthodes suivantes :

Méthode Description
ConnectServer Se connecte au Namespace de l'ordinateur spécifié.
Get Recherche une classe ou une instance.
InstancesOf Retourne une collection d'instances d'une classe spécifée.
ExecQuery Exécute une requête pour retrouver une collection d'objets (classes ou instances).
Delete_ Supprime une instance ou une classe d'objets WMI.
Put_ Crée ou met à jour une instance ou une classe d'objets WMI.

Moniker :

Un moniker est un mécanisme standard COM permettant l'encapsulation de l'emplacement et de la liaison vers un autre objet COM. La représentation textuelle d'un moniker s'appelle un nom d'affichage.

Vous pouvez employer le WMI Scripting API pour créer les objets SWbemObject et SWbemServices d'une façon concise en utilisant un nom d'affichage moniker. Ceci est fourni comme alternative plus simple au mécanisme de créer d'abord un objet SWbemLocator puis se connecter explicitement à WMI en utilisant une méthode supplémentaire pour obtenir l'interface dont vous avez besoin.

Le nom d'affichage moniker est simplement une chaîne de caractères lisible qui agit en tant que nom pour un namespace WMI, ou une classe ou instance WMI. Le format de cette chaîne de caractères est très semblable à celui d'un chemin d'accès standard d'objet WMI.

Syntaxe d'un moniker :

GetObject("winmgmts:[securitySetting][localeSetting][!objectPath]")

Paramètre Syntaxe
securitySetting {[authenticationLevel=authenticationValue][, impersonationLevel=impersonationValue][, authority=authorityValue][, ([privilegeName],[!][privilegeName])]}
localeSetting locale=LocaleID
objectPath Chemin d'accès valide vers un objet WMI.

authenticationValue peut prendre les valeurs suivantes :

Valeur Signification
Default WMI utilise les paramètres d'authentification Windows.
None N'utilise aucune authentification.
Connect Authentifie les qualifications du client seulement quand le client établit un rapport avec le serveur.
Call Authentifie seulement au début de chaque appel quand le serveur reçoit la demande.
Pkt Authentifie que toutes les données reçues sont du client attendu.
PktIntegrity Authentifie et vérifie qu'aucune des données transférées entre le client et le serveur n'a été modifiée.
PktPrivacy Authentifie tous les niveaux précédents de personnification et crypte la valeur d'argument de chaque appel de procédure distant.

impersonationValue peut prendre les valeurs suivantes :

Valeur Signification
Anonymous Cache les qualifications du demandeur. Les appels à WMI peuvent échouer avec ce niveau de personnification.
Identify Permet à des objets de questionner les qualifications du demandeur. Les appels à WMI peuvent échouer avec ce niveau de personnification.
Impersonate Permet à des objets d'utiliser les qualifications du demandeur. C'est le niveau recommandé de personnification pour des appels de WMI Scripting API.
Delegate Permet à des objets de permettre à d'autres objets d'utiliser les qualifications du demandeur. Cette personnification, qui fonctionnera avec des appels de WMI Scripting API mais peut constituer un risque inutile de sécurité, est supportée seulement sous Windows 2000.

authorityValue est une chaîne de caractères valide d'autorité WMI (exemple : " kerberos:mydomain\server" ou "ntlmdomain:mydomain").

privilegeName peut prendre les valeurs suivantes (le préfixe "!" sur un privilège indique que le privilège doit être désactivé; l'omission de ce préfixe implique que le privilège est activé.) :

Valeur Signification
CreateToken Créer un objet jeton.
PrimaryToken Remplacer un jeton niveau de processus.
LockMemory Verrouiller des pages en mémoire.
MachineAccount Ajouter des stations de travail au domaine.
Tcb  
Security Gérer le journal d'audit et de sécurité.
TakeOwnership Prendre pocession des fichiers ou d'autres objets.
LoadDriver Charger et décharger des pilotes de périphériques.
SystemProfile Optimiser les performances système.
SystemTime Modifier l'heure système.
ProfileSingleProcess Optimiser un processus unique.
IncreaseBasePriority Augmenter la priorité de planification.
CreatePagefile Créer un fichier d'échange.
CreatePermanent Créer des objets partagés permanents.
Backup Sauvergarder des fichiers ou des répertoires.
Restore Restaurer des fichiers ou des répertoires.
Shutdown Arrêter le système.
Debug Déboguer des programmes.
Audit Générer des audits de sécurité.
SystemEnvironment  
ChangeNotify Outrepasser le contrôle de défilement.
RemoteShutdown Forcer l'arrêt à partir d'un système distant.
Udock Retirer l'ordinateur de la station d'accueil.
SyncAgent Synchroniser les données de l'annuaire Active Directory.
EnableDelegation Autoriser que l'on fasse confiance aux compte ordinateur et utilisateur pour la délégation.

LocaleID est une valeur de la forme "ms_xxxx" où xxxx est une valeur hexadécimale LCID (exemple : " ms_409 ").

Exemples d'utilisation d'un moniker :

WinMgmts:
WinMgmts://myServer
WinMgmts://myServer/root/cimv2
WinMgmts:root/cimv2
WinMgmts:{impersonationLevel=impersonate}!//myServer/root/cimv2:Win32_LogicalDisk
WinMgmts:{impersonationLevel=impersonate}!root/cimv2:Win32_LogicalDisk
WinMgmts:{impersonationLevel=impersonate}!Win32_LogicalDisk
WinMgmts::Win32_LogicalDisk='C:'
WinMgmts:{impersonationLevel=impersonate}!//myServer/root/cimv2:Win32_LogicalDisk="C:"
WinMgmts:{impersonationLevel=impersonate}!root/cimv2:Win32_LogicalDisk="C:"
WinMgmts:{impersonationLevel=impersonate}!Win32_LogicalDisk="C:"
WinMgmts:{impersonationLevel=impersonate, (Debug)}
WinMgmts:{impersonate,(Debug,!RemoteShutdown)}
WinMgmts:[locale=ms_409]!root/wmi:myclass