2010-10-22 16 views
2

Comment puis-je obtenir les types de paramètres d'une méthode pour une classe WMI en utilisant vbscriptComment puis-je obtenir les types des paramètres d'une méthode pour une classe WMI

en fait, je suis en utilisant ce script

strComputer = "." 
strNameSpace = "root\cimv2" 
Set objServices = GetObject("winmgmts:root\cimv2") 
Set objShare = objServices.Get("Win32_Share") 

Set objInParam = objShare.Methods_("Create"). _ 
    inParameters.Properties_ 

For Each Property In objInParam 
    WScript.Echo Property.Name 
    WScript.Echo Property.Type //here this code fails, how i can get the type name ? 
Next 

Répondre

2

Le objInParam vous sortirez est un SWbemPropertySet qui contient SWbemProperty et comme vous pouvez le voir dans la documentation, il n'y a pas de propriété Type de cette classe. Toutefois, il existe la propriété CIMType que vous pouvez utiliser à la place.

La seule difficulté avec ceci est que CIMType renvoie un Integer, mais vous pouvez trouver toutes les valeurs possibles dans la documentation de l'énumération WbemCimTypeEnum.

Donc, si vous voulez être heureux avec l'entier que vous auriez à changer votre code:

For Each Property In objInParam 
    WScript.Echo Property.Name 
    WScript.Echo Property.CIMType 
Next 

Ou si vous avez besoin d'un nom de chaîne que vous auriez à faire quelque chose comme:

For Each Property In objInParam 
    WScript.Echo Property.Name 
    WScript.Echo GetTypeName(Property.CIMType) 
Next 

Function GetTypeName(typeNumber) 
    ' fill in with a lookup table to the WbemCimTypeEnum ' 
End Function 
+0

+1 merci beaucoup. – Salvador