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 7 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 aident à comprendre le schéma de base de données de ZENworks 7 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 schéma 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.
Le schéma illustre les éléments suivants :
Trois instances de ZENworks.ParallelPort sont associées à une instance de CIM.UnitaryComputerSystem par le biais de trois instances des associations CIM.SystemDevice. CIM.SystemDevice.GroupComponent faisant référence à UnitaryComputerSystem et CIM.SystemDevice.PartComponent faisant référence à ParallelPort.
Il s'agit d'une relation de référence d'objet 1 à n et elle est présentée dans l'illustration sous la forme 1..*. De même, chaque instance de ParallelPort possède une instance de CIM.IRQ correspondante qui désigne l'IRQ du port. Il s'agit d'une relation un à un présentée sous la forme 1..1.
Toutes les autres classes sont représentées de manière identique. Pour les schémas de schéma des autres classes, reportez-vous à Schémas des schémas CIM et d'extension dans ZENworks 7 Desktop Management.
Voici les légendes nécessaires à la lecture des schémas de schéma :
Pour comprendre le schéma CIM, reportez-vous à la spécification du schéma CIM 2.2 sur le site Web DMTF.
Les schémas des schémas CIM et d'extension suivants modélisent la base de données d'inventaire dans ZENworks 7 Desktop Management.
Un attribut d'inventaire personnalisé possède les qualificateurs suivants dans la base de données :
Tableau 75-1 Qualificateurs des attributs personnalisés d'inventaire
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 :
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.
Les schémas des schémas des logiciels suivants modélisent la base de données d'inventaire dans ZENworks 7 Desktop Management. Dans le schéma suivant, CIM.UnitaryComputerSystem représente un système d'inventaire géré.
Pour plus d'informations sur les tables, reportez-vous à l'Section N.0, Attributs d'inventaire ZENworks 7 Desktop Management.
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.
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.
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.
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 :
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.
Les exemples de requêtes suivants permettent de rechercher des informations dans la base de données d'inventaire de ZENworks 7 Desktop Management.
Reportez-vous au schéma de Schémas des schémas CIM et d'extension dans ZENworks 7 Desktop Management pour rechercher des informations sur les classes et les attributs de schéma associés.
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.
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$;
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$ and im.productid=m.productid)
AND m.Vendor LIKE ’Microsoft%’;
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 )
)
AND
procr.Family=family.Enum
AND
(
( procr.UpgradeMethod IS NOT NULL AND procr.UpgradeMethod=upg.Enum ) OR
( procr.UpgradeMethod IS NULL AND upg.Enum=1000 )
)
);
SELECT
id$
FROM
CIM.UnitaryComputerSystem
WHERE
Name=’SJOHN164_99_139_79.Novell_AUS’;
SELECT
count(u.id$)
FROM
CIM.UnitaryComputerSystem u,
CIM.InstalledSoftwareElement s,
ZENworks.InventoryScanner m
WHERE
m.id$=s.Software AND u.id$=s.System;
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 )
)
AND
procr.Family=family.Enum
AND
(
( 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é.
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$);
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$);
SELECT * FROM ZENworks.CustomInformation;
SELECT
*
FROM
ZENworks.CustomInformation
WHERE
extractClass(id) IN
(SELECT id FROM MW_DBA.t$Class WHERE ClassName=’CIM. UnitaryComputerSystem’)
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$;
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 méthode semblable peut être utilisée pour les composants tels que Windows Media Player, Outlook Express, Microsoft Word et Microsoft Excel. L'ensemble de ces tables est accessible dans le schéma.
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$;
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;
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;
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;