Schéma de la base de données d'inventaire dans ZENworks 6.5 Desktop Management

La section suivante décrit les classes du schéma de la base de données, ainsi que les extensions et associations créées avec le schéma CIM pour être utilisées dans ZENworks 6.5 Desktop Management. Les noms de schéma des extensions sont ZENworks ou ManageWise. ZENworks.nomclasse renvoie à la classe étendue dans le schéma ZENworks et ManageWise.nomclasse renvoie à la classe étendue dans le schéma ManageWise.

Les sections suivantes vous aideront à comprendre le schéma de base de données de ZENworks 6.5 Desktop Management :


Étude de cas de l'implémentation du schéma CIM dans ZENworks 6.5 Desktop Management

Le scénario suivant décrit un poste de travail inventorié disposant de deux ports parallèles avec un numéro d'interruption spécifié.

Dans le diagramme suivant, CIM.UnitaryComputerSystem représente un système d'inventaire géré.

Dans cette illustration, la classe CIM.PointingDevice est associée à CIM.UnitaryComputerSystem par le biais de l'association CIM.SystemDevice avec SystemDevice.GroupComponent pointant sur CIM.UnitaryComputerSystem et SystemDevice.PartComponent pointant sur CIM.PointingDevice. La relation entre les deux classes est un à plusieurs. Cela signifie qu'un ordinateur peut avoir plusieurs périphériques de pointage.

La classe CIM.IRQ est associée à CIM.PointingDevice par le biais de l'association CIM.AllocatedResource, Dependent pointant sur CIM.PointingDevice et Antecedent pointant sur CIM.IRQ.

La classe ZENworks.ZENKeyboard est associée à CIM.UnitaryComputerSystem par le biais de l'association CIM.SystemDevice avec SystemDevice.GroupComponent pointant sur CIM.UnitaryComputerSystem et SystemDevice.PartComponent sur ZENworks.ZENKeyboard. La relation entre les deux classes est un à un. Cela signifie qu'un ordinateur peut être muni d'un seul clavier.

La classe ZENworks.BIOS est associée à CIM.UnitaryComputerSystem par le biais de l'association CIM.SystemBIOS avec SystemDevice.GroupComponent pointant sur CIM.UnitaryComputerSystem et SystemBIOS.PartComponent pointant sur ZENworks.BIOS. La relation entre les deux classes est un à un. Cela signifie qu'un ordinateur peut avoir un seul BIOS.

La classe CIM.ZENworks.ParallelPort est associée à CIM.UnitaryComputerSystem par le biais de l'association CIM.SystemDevice avec SystemDevice.GroupComponent pointant sur CIM.UnitaryComputerSystem et SystemDevice.PartComponent pointant sur CIM.ZENworks.ParallelPort. La relation entre les deux classes est un à plusieurs. Cela signifie qu'un ordinateur peut disposer de plusieurs ports parallèles.

La classe ZENworks.BUS est associée à CIM.UnitaryComputerSystem par le biais de l'association CIM.SystemDevice avec SystemDevice.GroupComponent pointant sur CIM.UnitaryComputerSystem et SystemDevice.PartComponent pointant sur ZENworks.BUS. La relation entre les deux classes est un à plusieurs. Cela signifie qu'un système informatique peut avoir plusieurs bus.

La classe ManageWise.User est associée à CIM.UnitaryComputerSystem par le biais de CurrentLoginUser et LastLoginUser. Dans l'association CurrentLoginUser, l'instance spécifique de User (utilisateur) est celle qui est actuellement loguée au poste de travail inventorié. Dans l'association LastLoginUser, l'instance spécifique de User est la dernière connectée au poste de travail inventorié.

La classe CIM.IRQ est associée à CIM.ParallelPort par le biais de l'association CIM.AllocatedResource, Dependent pointant sur CIM.ParallelPort et Antecedent pointant sur CIM.IRQ.


Diagramme de schéma de CIM.UnitaryComputerSystem avec ses associations

Le diagramme illustre les éléments suivants :

Toutes les autres classes sont représentées de manière identique. Pour les diagrammes de schéma des autres classes, reportez-vous à Diagrammes des schémas CIM et d'extension dans ZENworks 6.5 Desktop Management.


Légendes des diagrammes de schéma

Voici les légendes nécessaires à la lecture des diagrammes de schéma :

Pour comprendre le schéma CIM, consultez la spécification du schéma CIM 2.2 sur le site Web DMTF.


Diagrammes des schémas CIM et d'extension dans ZENworks 6.5 Desktop Management

Les diagrammes des schémas CIM et d'extension suivants modélisent la base de données d'inventaire dans ZENworks 6.5 Desktop Management.


Schéma du processeur, des systèmes d'exploitation et de l'adaptateur vidéo
Schéma du scanner d'inventaire et du client NetWare
Schéma du châssis et des informations sur le système
Schéma du moniteur
Schéma des périphériques d'entrée, du port, du pilote, des informations sur l'utilisateur et du BIOS
Schéma du support de stockage
Schéma du réseau, du modem et de la carte son
Schéma de la batterie, de la carte, du cache, de la carte mère et du DMA
Schéma de l'audit de gestion à distance


Schéma d'inventaire personnalisé

Un attribut d'inventaire personnalisé possède les qualificateurs suivants dans la base de données :

Qualificateur Description

Nom

Nom de l'attribut personnalisé

Valeur

Valeur assignée à l'attribut personnalisé

Type

Type de données de l'attribut personnalisé. ZENworks 6.5 Desktop Management traite tous les attributs personnalisés comme étant uniquement de type "Chaîne".

NomClasse

Classe d'inventaire (table) à laquelle l'attribut personnalisé est associé.

Instance

Nombre de valeurs assignées à un attribut personnalisé donné. Dans ZENworks 6.5 Desktop Management, vous ne pouvez pas assigner plus d'une valeur à un attribut personnalisé.

ID

Id (id$) de l'objet d'inventaire auquel l'attribut personnalisé est associé.

CID

ID unique du nom de l'attribut personnalisé.


Schéma d'inventaire personnalisé

Les informations concernant l'inventaire personnalisé sont enregistrées dans deux tables : ZENworks.CustomName et Zenworks.CustomValue.

La table ZENworks.CustomName contient le nom, l'ID, le type (inutilisé) de l'attribut et le nom de la classe. L'ID de l'attribut est automatiquement incrémenté lorsqu'un nouvel attribut est enregistré.

Vous trouverez ci-dessous un exemple de table ZENworks.CustomName :

ID Nom Nom de la classe

1

Cost

ZENworks.VideoAdapter

2

ProductUnit

CIM.UnitaryComputerSystem

La table Zenworks.CustomValue contient l'ID de l'instance d'objet, la valeur de l'attribut et la référence au nom de l'attribut personnalisé associé. Dans la table CustomValue, un attribut personnalisé peut avoir plusieurs valeurs pour des instances différentes d'un objet d'inventaire, mais pas pour la même instance de l'objet d'inventaire.

Vous trouverez ci-dessous un exemple de table ZENworks.CustomValue :

ID Instance CID Valeur

28147497671065605

1

1

200.39

28147497671065606

1

1

345

69147497671045662

1

2

BAY-2

Dans l'exemple précédent, la table CustomName a deux attributs personnalisés : Cost et ProductUnit. La table CustomValue contient trois lignes ; deux d'entre elles décrivent le coût de la carte vidéo et la troisième est la valeur de l'attribut ProductUnit assignée directement à ComputerSystem.


Schéma d'inventaire des logiciels

Les diagrammes des schémas des logiciels suivants modélisent la base de données d'inventaire dans ZENworks 6.5 Desktop Management. Dans le diagramme suivant, CIM.UnitaryComputerSystem représente un système d'inventaire géré.

Pour plus d'informations sur les tables, reportez-vous à l'Attributs d'inventaire ZENworks 6.5 Desktop Management.


Schéma des logiciels

Dans l'illustration ci-dessus, la classe MW_DBA.Software est associée à CIM.UnitaryComputerSystem par le biais de l'association MW_DBA.InstalledSoftware avec MW_DBA.InstalledSoftware.ComputerSystem pointant sur CIM.UnitaryComputerSystem et MW_DBA.InstalledSoftware.ProductID pointant sur MW_DBA.Software. La relation entre les deux classes est un à plusieurs. Cela signifie qu'un ordinateur peut disposer de plusieurs informations logicielles.

L'association MW_DBA.InstalledSoftware a des références de clés étrangères aux tables suivantes : ProductEdition, SupportPack, Directory et Installation Repository.

MW_DBA.InstalledVirusScanner hérite des informations logicielles de MW_DBA.InstalledSoftware ainsi que d'informations spécifiques sur les virus, par exemple la date de définition et la version de définition.


Schéma du correctif logiciel

Dans l'illustration ci-dessus, la classe MW_DBA.Patch est associée à MW_DBA.InstalledSoftware par le biais de l'association MW_DBA.InstalledSoftwarePatch avec MW_DBA.InstalledSoftwarePatch.pinstanceID pointant sur MW_DBA.InstalledSoftware et MW_DBA.InstalledSoftwarePatch.PatchID pointant sur MW_DBA.Patch. La relation entre les deux classes est un à plusieurs. Cela signifie qu'un logiciel peut avoir zéro ou plus d'informations sur le correctif.


Schéma des informations de fichier et de répertoire

Dans l'illustration ci-dessus, la classe MW_DBA.File est associée à MW_DBA.InstalledSoftware par le biais de l'association MW_DBA.InstalledFile avec MW_DBA.InstalledFile.pinstanceID pointant sur MW_DBA.InstalledSoftware et MW_DBA.InstalledFile.fileID pointant sur MW_DBA.File. La relation entre les deux classes est un à plusieurs. Cela signifie qu'un logiciel peut avoir zéro ou plus d'informations sur le fichier.

Dans cette illustration, la classe MW_DBA.Directory est associée à MW_DBA.InstalledSoftware par le biais de l'association MW_DBA.InstalledFile avec MW_DBA.InstalledFile.pinstanceID pointant sur MW_DBA.InstalledSoftware et MW_DBA.InstalledFile.DirectoryID pointant sur MW_DBA.Directory.


Schéma des sous-classes logicielles
Schéma des sous-classes logicielles
Schéma des sous-classes logicielles

Dans les illustrations ci-dessus, MW_DBA.MSoffice hérite des informations logicielles de MW_DBA.SOftware. Cette sous-classe obtient directement les informations MS Office. Cela s'applique aussi aux classes suivantes :

mw_dba.zfdserver

mw_dba.zfdinventoryserver

mw_dba.zfdagent

mw_dba.zfsserver

mw_dba.zfdinventoryagent

mw_dba.zfsagent

mw_dba.zfsinventoryserver

mw_dba.mspowerpoint

mw_dba.msphotodraw

mw_dba.zfsinventoryagent

mw_dba.msoutlook

mw_dba.zfdwsmanager

mw_dba.zfsrmserver

mw_dba.msaccess

mw_dba.zfdwsimportserver

mw_dba.zfsrmagent

mw_dba.mspublisher

mw_dba.zfdinvdbserver

mw_dba.zfdrmserver

mw_dba.msfrontpage

mw_dba.zfsinvdbserver

mw_dba.zfdrmagent

mw_dba.msinfopath

mw_dba.zfdinvxmlproxyserver

mw_dba.zfsinvxmlproxyserver

mw_dba.zfdimagingagent

mw_dba.zfdimagingserver

mw_dba.zfdnalagent

mw_dba.zfdnalserver

mw_dba.zfdnaldb

mw_dba.middletier

mw_dba.zfsmmsserver

mw_dba.zfspds

mw_dba.zfspxeserver

mw_dba.zfsmmssrvmgmtagent

mw_dba.zfsmmstrafficanalysisagent

mw_dba.zfsmmsadctrendingagent

mw_dba.zfspdsdb

mw_dba.zfhserver

mw_dba.zfhaccesspoin

mw_dba.zfhdesktopsync

 


Schéma de l'utilisation du disque

Dans l'illustration ci-dessus, MW_DBA.DiskUsage a les références de clés étrangères de la colonne computerID au CIM.UnitaryComputerSystem.ID. Le tableau MW_DBA.DiskUsage contient l'utilisation totale du disque et le nom de l'extension du fichier.


Exemple de requêtes de base de données d'inventaire

Les exemples de requêtes suivants permettent de rechercher des informations dans la base de données d'inventaire de ZENworks 6.5 Desktop Management.

Reportez-vous au diagramme de schéma de la section Diagrammes des schémas CIM et d'extension dans ZENworks 6.5 Desktop Management pour rechercher des informations sur les classes et les attributs de schéma associés.

  1. Récupérer le nom et l'ID de tous les postes de travail inventoriés dans la base de données et les placer dans l'arborescence Novell eDirectoryTM dans laquelle ces postes de travail sont enregistrés, à l'aide de la requête suivante :
    SELECT
      u.id$, u.name, m.tree 
    FROM 
      ManageWise.NDSName m, 
      CIM.UnitaryComputerSystem u, 
      ManageWise.Designates s
    WHERE 
      s.Designation=m.id$ AND s.Host=u.id$;

    Dans cette requête, le nom de l'arborescence fait partie du nom du système informatique.

  2. Récupérer l'étiquette d'inventaire, le fabricant et le numéro de modèle de tous les postes de travail inventoriés dans la base de données, à l'aide de la requête suivante :
    SELECT 
      m.AssetTag,
      m.Manufacturer,
      m.ModelNumber,
      m.SerialNumber 
    FROM 
      CIM.UnitaryComputerSystem u,
      CIM.ComputerSystemPackage s,
      ZENworks.SystemInfo m
    WHERE 
      s.Antecedent=m.id$ AND s.Dependent=u.id$;
  3. Récupérer des informations sur toutes les applications Microsoft (notamment leur version et ID) installées sur le poste de travail inventorié 'SJOHN164_99_139_79' enregistré dans l'arborescence eDirectory 'NOVELL_AUS', à l'aide de la requête suivante :
    SELECT 
      m.Name,
      m.Version,
      im.ProductIdentifier
    FROM 
      CIM.UnitaryComputerSystem u,
      MW_DBA.InstalledSoftware im,
      MW_DBA.Software m
    WHERE 
      u.Name='SJOHN164_99_139_79.Novell_AUS' AND
      (im.computerid=u.id$ et im.productid=m.productid) 
      AND m.Vendor LIKE 'Microsoft%';
  4. Récupérer des informations sur le processeur du poste de travail inventorié 'SJOHN164_99_139_79.NOVELL_AUS', à l'aide de la requête suivante :
    SELECT 
      	procr.DeviceID,
      	role.EnumString,
      	family.EnumString,
      	procr.OtherFamilyDescription,
      	upg.EnumString,
      	procr.MaxClockSpeed,
      	procr.CurrentClockSpeed,
      	procr.Stepping
    FROM
    			  CIM.UnitaryComputerSystem ucs,
      	CIM.ComputerSystemProcessor csp,
    	  CIM.Processor procr,
      	CIM.Role_en_US role,
      	CIM.Family_en_US family,
      	CIM.UpgradeMethod_en_US upg
    WHERE
     ucs.name='SJOHN164_99_139_79.Novell_AUS' AND
      	csp.PartComponent=procr.id$ AND
    	(
    	  ( 
    	    ( procr.Role IS NOT NULL AND procr.Role=role.Enum ) OR
    	    ( procr.Role IS NULL AND role.Enum=1000 )
    	  )
    	  ET 
    		procr.Family=family.Enum
    	  ET
    	  ( 
    	    ( procr.UpgradeMethod IS NOT NULL AND procr.UpgradeMethod=upg.Enum ) OR
    	    ( procr.UpgradeMethod IS NULL AND upg.Enum=1000 )
    	  )
    	);
  5. Récupérer l'ID de UnitaryComputerSystem utilisé pour le poste de travail inventorié 'SJOHN164_99_139_79.NOVELL_AUS', à l'aide de la requête suivante :
    SELECT 
      id$ 
    FROM 
      CIM.UnitaryComputerSystem
    WHERE 
      Name='SJOHN164_99_139_79.Novell_AUS';
  6. Déterminer le nombre de postes de travail inventoriés dans la base de données, à l'aide de la requête suivante :
    SELECT 
      count(u.id$) 
    FROM 
      CIM.UnitaryComputerSystem u,
      CIM.InstalledSoftwareElement s,
      ZENworks.InventoryScanner m
    WHERE 
      m.id$=s.Software AND u.id$=s.System;
  7. Lorsque vous connaissez l'ID de UnitaryComputerSystem pour un poste de travail inventorié particulier après avoir effectué la requête n°5, il est possible de modifier la requête n°4 comme suit :
    SELECT 
    	procr.DeviceID,
    	role.EnumString,
    	family.EnumString,
    	procr.OtherFamilyDescription,
    	upg.EnumString,
    	procr.MaxClockSpeed,
    	procr.CurrentClockSpeed,
    	procr.Stepping
    FROM
    			CIM.UnitaryComputerSystem ucs,
    	CIM.ComputerSystemProcessor csp,
    	CIM.Processor procr,
    	CIM.Role_en_US role,
    	CIM.Family_en_US family,
    	CIM.UpgradeMethod_en_US upg
    WHERE
    ucs.id$ = ? AND
    	csp.PartComponent=procr.id$ AND
    	(
    	  ( 
    	    ( procr.Role IS NOT NULL AND procr.Role=role.Enum ) OR
    	    ( procr.Role IS NULL AND role.Enum=1000 )
    	  )
    	  ET 
    		procr.Family=family.Enum
    	  ET
    	  ( 
    	    ( procr.UpgradeMethod IS NOT NULL AND procr.UpgradeMethod=upg.Enum ) OR
    	    ( procr.UpgradeMethod IS NULL AND upg.Enum=1000 )
    	  )
    	);

    Remplacez la valeur ? de l'ucs.id$ qui figure dans la requête par l'ID du poste de travail inventorié spécifié.

  8. Lister les adresses IP, IPX et MAC de tous les postes de travail de la base de données, à l'aide de la requête suivante :
    SELECT 
      u.name, 
      ip.Address, 
      ipx.Address, 
      mac.MACAddress 
    FROM 
      CIM.UnitaryComputerSystem u, 
      CIM.HostedAccessPoint s1, 
      CIM.IPProtocolEndpoint ip, 
      CIM.HostedAccessPoint s2, 
      CIM.IPXProtocolEndpoint ipx, 
      CIM.HostedAccessPoint s3,
      CIM.LANEndpoint mac
    WHERE 
      (s1.Dependent=ip.id$ and s1.Antecedent=u.id$) AND 
      (s2.Dependent=ipx.id$ and s2.Antecedent=u.id$) AND 
      (s3.Dependent=mac.id$ and s3.Antecedent=u.id$);
  9. Récupérer le nom et les autres propriétés des unités présentes sur le disque dur du poste de travail spécifié, à l'aide de la requête suivante :
    SELECT 
      n.Name,
      m.DeviceID,
      n.FileSystemSize,
      n.AvailableSpace,
      n.FileSystemType,
      m.VolumeSerialNumber,
      m.caption as VolumeLabel
    FROM 
      CIM.HostedFileSystem s,
      CIM.LocalFileSystem n,
      CIM.ResidesOnExtent r,
      ZENworks.LogicalDiskDrive m
    WHERE
      (s.GroupComponent=? and s.PartComponent=n.id$) AND
      (r.Dependent=n.id$ and r.Antecedent=m.id$);
  10. Récupérer toutes les informations concernant l'attribut personnalisé dans la base de données, à l'aide de la requête suivante :
    SELECT * FROM ZENworks.CustomInformation;
  11. Récupérer toutes les informations concernant l'attribut personnalisé associé à la classe CIM.UnitaryComputerSystem, à l'aide de la requête suivante :
    SELECT
      * 
    FROM
      ZENworks.CustomInformation 
    WHERE 
      extractClass(id) IN  
      (SELECT id FROM MW_DBA.t$Class WHERE  
    ClassName='CIM. UnitaryComputerSystem')
  12. Récupérer des informations sur toutes les installations de Microsoft Office dans l'entreprise, à l'aide de la requête suivante :
    SELECT 
      		u.name,
      		m.FriendlyName,
      		im.InternalVersion,
      		im.ProductIdentifier
    FROM 
      		CIM.UnitaryComputerSystem u,
      		MW_DBA.InstalledSoftware im,
      		MW_DBA.Software m,
      		MW_DBA.MSOffice mso
    WHERE 
      		mso.id$=m.productid AND
      		m.productid=im.productid AND
      		im.computerid=u.id$;
  13. Récupérer des informations sur toutes les installations de Internet Explorer dans l'entreprise, à l'aide de la requête suivante :
    SELECT 
      	u.Name,
      m.Name,
      m.Version,
      im.InternalVersion,
      im.ProductIdentifier
    FROM 
      CIM.UnitaryComputerSystem u,
      MW_DBA.InstalledSoftware im,
      	MW_DBA.Software m,
      MW_DBA.InternetExplorer ie
    WHERE 
      ie.id$=m.productid AND
      m.productid=im.productid AND
      im.computerid=u.id$;

    REMARQUE :  Les requêtes 12 et 13 suivent presque la même syntaxe sauf pour la table liée au composant. Une approche similaire peut également être utilisée pour les composants suivants : Lecteur Windows Media, Outlook Express, Microsoft Word, Microsoft Excel, etc. L'ensemble de ces tables est accessible dans le schéma.

  14. Récupérer des informations sur toutes les installations d'antivirus dans l'entreprise, à l'aide de la requête suivante :
    SELECT 
      	u.Name,
      m.Name,
      m.Version,
      	im.InternalVersion,
      ivs.DefinitionVersion,
      ivs.DefinitionDate
    FROM 
      CIM.UnitaryComputerSystem u,
      MW_DBA.InstalledSoftware im,
      	MW_DBA.Software m,
      MW_DBA.InstalledVirusScanner ivs
    WHERE 
      ivs.pinstanceid=im.pinstanceid AND
      m.productid=im.productid AND
      im.computerid=u.id$;
  15. Récupérer des informations sur toutes les applications (et la liste détaillée des fichiers associés) qui sont installées sur le poste de travail inventorié 'SJOHN164_99_139_79.NOVELL_AUS', à l'aide de la requête suivante :
    SELECT
      	u.Name,
      m.Name,
      m.Version,
      	m.Category,
      	zfile.company,
      	zfile.productname,
      	zfile.productversion,
      	zfile.name,
      	dir.path,
      	zfile.fileversion,
      	zfile."size",
      	zfile.lastmodified,
      	zfile.internalname,
      	zfile.softwaredictionaryid
    FROM
      CIM.UnitaryComputerSystem u,
      MW_DBA.InstalledSoftware iso,
      	MW_DBA.Software m,
      	MW_DBA.InstalledFile ifile,
      	MW_DBA."file" zfile,
      	MW_DBA.Directory dir
    WHERE
      u.Name='SJOHN164_99_139_79.Novell_AUS' AND
      iso.computerid=u.id$ AND
      iso.productid=m.productid AND
      iso.pinstanceid=ifile.pinstanceid AND
      	ifile.directoryid=dir.id AND
      	ifile.fileid=zfile.id;
  16. Récupérer des informations sur tous les fichiers présents sur le poste de travail inventorié 'SJOHN164_99_139_79.NOVELL_AUS' qui n'ont pas encore été associés à un logiciel valide, à l'aide de la requête suivante :
    SELECT
      	u.Name,
      	zfile.name,
      	dir.path,
      	zfile.fileversion,
      	zfile."size",
    	  zfile.lastmodified,
      	zfile.internalname,
      	zfile.productversion,
      	zfile.company,
      	zfile.productname
    FROM
      CIM.UnitaryComputerSystem u,
      MW_DBA.InstalledFile ifile,
      	MW_DBA."file" zfile,
      	MW_DBA.Directory dir
    WHERE
      u.Name='SJOHN164_99_139_79.Novell_AUS' AND
      			u.id$=ifile.computerid AND
      	ifile.fileid=zfile.id AND
      	ifile.directoryid=dir.id AND
      	ifile.pinstanceid is null;
  17. Récupérer des informations sur l'utilisation du disque des fichiers qui portent des extensions connues sur chaque machine inventoriée de l'entreprise, à l'aide de la requête suivante :
    SELECT
      				u.Name,
      				du.Name,
      				du.TotalDiskUsage
    FROM
      				CIM.UnitaryComputerSystem u,
      				MW_DBA.DiskUsage du
    WHERE
      				u.id$=du. Computerid AND
      				du.Name is not null;