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