Analyses de script et de règles

 

S'applique à: System Center 2012 R2 Operations Manager, System Center 2012 - Operations Manager, System Center 2012 SP1 - Operations Manager

Les scripts d'analyse sont utilisés lorsqu'il est impossible de collecter les données requises par d'autres moyens standard comme un compteur d'événements ou de performances. Le script de collecte des données à partir des informations sur l'agent et crée un jeu de propriétés à l'aide de MOM. Objet ScriptAPI qui est installé avec le Operations Manager l'agent.

Scripts d'analyse peuvent être écrites dans n'importe quel langage de script qui peut accéder à MOM. Objet ScriptAPI qui est installé sur tous les Operations Manager agents. Vous pouvez utiliser la console opérateur pour créer des scripts en VBScript ou JScript. Pour utiliser un Windows PowerShell script, vous devez utiliser un autre outil de création de tels que le Console de création de System Center Operations Manager 2007 R2 ou Auteur MP.

Sacs de propriétés

Les scripts d'analyse d'envoi des données de sortie comme une propriété de jeu afin qu'il peut être évaluée dans une expression pour une analyse ou mappé sur les données de performances ou un événement pour une règle de collecte. Un jeu de propriétés est un ensemble de valeurs ayant chacune un nom. Bien qu'il soit recommandé d'utiliser un nom descriptif de la valeur particulière, vous pouvez affecter n'importe quel nom. Un jeu de propriétés n'existe que pendant la durée de vie du flux de travail. La prochaine fois que le workflow s'exécute, le script s'exécute et crée un nouveau jeu de propriétés avec les nouvelles valeurs.

Un sac de propriétés peut avoir des valeurs numériques, bien que l'ensemble des données ne peut pas dépasser 4 Mo. La plupart des scripts ne nécessite que quelques valeurs avec une taille totale présent sous cette limite. Il est inutile de toutes les valeurs à utiliser par le workflow.

Scripts créent des conteneurs de propriétés à l'aide de la méthode CreatePropertyBag MOM. Objet ScriptAPI. Le flux de travail utilise les valeurs d'un jeu de propriétés avec une variable $Data qui utilise la syntaxe suivante :

$Data/Property[@Name="PropertyName"]

Par exemple, un script permettant de créer des données de performances peut créer un jeu de propriétés avec des valeurs dans le tableau suivant. Ce tableau indique le nom de la valeur créée par le script et la variable $Data correspondante qui serait utilisée pour mapper les données de sac de propriété pour les données de performances.

Nom de valeur de propriété sac

Exemple de valeur

Variable

ObjectName

MyObject

$Data/Property[@Name='ObjectName']$

CounterName

MyCounter

$Data/Property[@Name='CounterName']$

Nom de l'instance

MyInstance

$Data/Property[@Name='InstanceName']$

Valeur

10

$Data/Property[@Name='Value']$

Structure du script

Le code suivant illustre un exemple de script pour illustrer la structure de base d'un script d'analyse d'analyse. Cet exemple de script a les caractéristiques suivantes.

  • Accepte des arguments pour le nom de l'ordinateur qui exécute le script et un chemin d'accès de l'emplacement de l'application.

  • Crée un jeu de propriétés avec les valeurs nommées ComputerName InstanceName et PerfValue.

sComputerName = WScript.Arguments(0) 
sApplicationPath = WScript.Arguments(1)

Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()

oBag.AddValue "ComputerName", sComputerName
oBag.AddValue "InstanceName", "MyInstance"
oBag.AddValue "Value", 1.0

oAPI.Return(oBag)

Détails de chaque section du script sont décrites ici.

sComputerName = WScript.Arguments(0) 
sApplicationPath = WScript.Arguments(1)

Les deux premières lignes du script acceptent des arguments. Ces valeurs susceptibles d'être dans le paramètre d'Arguments de la règle ou l'analyse de l'exécution du script. Le script peut utiliser n'importe quel nombre d'arguments qui sont requis pour la logique du script.

Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()

Les deux lignes de créer un jeu de propriétés. Ces lignes également reste la même dans la plupart des scripts d'analyse. L'objectif principal du reste du script sera pour ajouter des valeurs pour le jeu de propriétés à l'aide des données collectées à partir de l'ordinateur agent.

oBag.AddValue "ComputerName", sComputerName
oBag.AddValue "InstanceName", "MyInstance"
oBag.AddValue "Value", 1.0

Une fois le jeu de propriétés est créé, n'importe quel nombre de valeurs peut être ajouté. Pour ce faire le AddValue méthode sur l'objet de sac de propriété en utilisant le nom de l'élément suivi sa valeur. Cet exemple utilise des valeurs explicites. Dans le script d'analyse réelle, code supplémentaire susceptibles de qui serait collecter des informations à partir de l'ordinateur agent à inclure dans ces valeurs.

oAPI.Return(oBag)

Une fois que toutes les valeurs sont ajoutées au jeu de propriétés, il est retourné dans le flux de travail. Cette ligne est requise, et sans lui, le jeu de propriétés est ignoré lorsque le script se termine. Cette méthode est utilisée uniquement lorsque le script crée uniquement un jeu de propriétés unique. Pour plus d'informations sur les scripts qui retournent plusieurs jeux de propriétés et les conditions lorsque cette stratégie est utilisée, reportez-vous à la Cookdown section de la Guide de création de System Center Operations Manager 2007 R2.

Arguments de script

La plupart des scripts utilisent des arguments qui sont des valeurs qui sont envoyés vers le script à partir de la ligne de commande lorsque le script est exécuté. À l'aide d'arguments permet à un seul script à utiliser pour plusieurs scénarios sans modifier le script lui-même.

Dans un script d'analyse, les arguments sont critiques, car il peut y avoir des informations requises par le script qui sera différent sur chaque agent où le script s'exécute. N'importe quelle propriété de l'objet cible pour l'analyse ou la règle peut être utilisée pour la valeur d'un argument de script. Cette valeur est résolue individuellement sur chaque agent au moment de l'exécution du script.

Arguments sont accessibles dans la console opérateur à partir de la paramètres bouton. Arguments individuels doivent être séparées par des espaces dans l'ordre qu'ils sont accessibles dans le script. Cela est identique à la ligne de commande qui serait fournie si le script était exécuté sur une ligne de commande.

Chaque argument peut être une valeur explicite ou une variable $Target pour utiliser la valeur d'une propriété sur l'objet cible. Toutes les variables $Target sont résolues lors de l'exécution du script afin que le script est fourni avec les valeurs résolues sur la ligne de commande. Vous pouvez taper dans la variable $Target si vous connaissez la syntaxe correcte. Il est cependant plus facile pour sélectionner la propriété à partir de cible bouton qui répertorie toutes les propriétés de l'objet cible et de ses parents.

Important

Toutes les variables $Target susceptibles de résoudre vers une valeur qui inclut un espace doivent être placées entre guillemets. Si une valeur comprend des espaces et n'a pas de guillemets, puis il se produira par le script comme deux arguments distincts. Les guillemets permet de garantir que la valeur est considérée comme un argument unique. Si vous sélectionnez la propriété à partir de cible menu, elle n'inclut pas les guillemets pour vous. Vous devez taper ces informations dans après la sélection de la propriété.

Par exemple, l'exemple de script précédent attend deux arguments pour le nom d'ordinateur et le chemin d'accès de l'application. En supposant que cela faisait partie d'une analyse ou une règle ciblée sur une classe hébergée par le ordinateur Windows classe, l'ordinateur nom peut être récupéré de la propriété nom principal. Si le chemin d'accès de l'application avait une propriété sur la classe cible, puis les arguments peuvent ressembler à l'exemple suivant. Remarquez les guillemets autour de la propriété ApplicationPath, car cela pourrait résoudre vers une valeur qui contient un espace.

$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$ "$Target/Property[Type="MyApp.MyClass"]/ApplicationPath$"

En supposant que vous avez attribué le script pour un nom de MyScript.vbs, le nom de l'ordinateur a été MyServer01, et le chemin d'accès de l'application a été C:\Program Files\Contoso\My Application, la ligne de commande qui doit être exécutée pour ce script serait :

MyScript.vbs MyServer01 "C:\Program Files\Contoso\My Application"

Analyse de script et les rubriques de règles

  • Règles de collecte de script

    Création d'une règle qui utilise un script pour collecter des données d'événement ou de performances.

  • Analyse de script

    Création d'une analyse qui évalue les résultats d'un script pour définir son état d'intégrité.

  • Analyses de commande Shell UNIX/Linux

    Création d'une analyse qui évalue la sortie de l'exécution d'une commande UNIX/Linux, le script ou la séquence d'une ligne de plusieurs commandes (à l'aide d'opérateurs pipeline).