Im folgenden Abschnitt werden die Datenbank-Schemaklassen sowie die Erweiterungen und Verknüpfungen beschrieben, die zu dem in ZENworks 7 Desktop Management verwendeten CIM-Schema erstellt wurden. Diese Erweiterungen haben ZENworks oder ManageWise als Schemaname. ZENworks.Klassenname verweist auf die erweiterte Klasse im ZENworks-Schema und ManageWise.Klassenname verweist auf die erweiterte Klasse im ManageWise-Schema.
In den folgenden Abschnitten finden Sie weitere Informationen zum Datenbankschema von ZENworks 7 Desktop Management:
Im folgenden Szenario wird eine inventarisierte Arbeitsstation beschrieben, die über zwei parallele Anschlüsse mit einer angegebenen Interrupt-Nummer verfügt.
Im folgenden Diagramm stellt das CIM.UnitaryComputerSystem ein verwaltetes Inventarsystem dar.
In dieser Darstellung gehört die Klasse CIM.PointingDevice zu CIM.UnitaryComputerSystem, wobei die Verknüpfung CIM.SystemDevice mit SystemDevice.GroupComponent auf CIM.UnitaryComputerSystem und SystemDevice.PartComponent auf CIM.PointingDevice verweist. Die beiden Klassen haben eine 1:n-Beziehung zueinander. Dies bedeutet, dass ein Computersystem mehrere Zeigegeräte enthalten kann.
Die Klasse CIM.IRQ gehört zu CIM.PointingDevice und verwendet die Verknüpfung CIM.AllocatedResource. "Dependent" verweist auf CIM.ParallelPort und "Antecedent" auf CIM.IRQ.
Die Klasse ZENworks.ZENKeyboard gehört zu CIM.UnitaryComputerSystem, wobei die Verknüpfung CIM.SystemDevice mit SystemDevice.GroupComponent auf CIM.UnitaryComputerSystem und SystemDevice.PartComponent auf ZENworks.ZENKeyboard verweist. Diese beiden Klassen haben eine 1:1-Beziehung zueinander. Dies bedeutet, dass ein Computersystem nur eine Tastatur enthalten kann.
Die Klasse ZENworks.BIOS gehört zu CIM.UnitaryComputerSystem, wobei die Verknüpfung CIM.SystemBIOS mit SystemDevice.GroupComponent auf CIM.UnitaryComputerSystem und SystemBIOS.PartComponent auf ZENworks.BIOS verweist. Diese beiden Klassen haben eine 1:1-Beziehung zueinander. Dies bedeutet, dass ein Computersystem nur ein BIOS enthalten kann.
Die Klasse CIM.ZENworks.ParallelPort gehört zu CIM.UnitaryComputerSystem, wobei die Verknüpfung CIM.SystemDevice mit SystemDevice.GroupComponent auf CIM.UnitaryComputerSystem und SystemDevice.PartComponent auf CIM.ZENworks.ParallelPort verweist. Diese beiden Klassen haben eine 1:n-Beziehung zueinander. Dies bedeutet, dass ein Computersystem mehrere parallele Anschlüsse enthalten kann.
Die Klasse ZENworks.BUS gehört zu CIM.UnitaryComputerSystem, wobei die Verknüpfung CIM.SystemDevice mit SystemDevice.GroupComponent auf CIM.UnitaryComputerSystem und SystemDevice.PartComponent auf ZENworks.BUS verweist. Diese beiden Klassen haben eine 1:n-Beziehung zueinander. Dies bedeutet, dass ein Computersystem mehr als einen Bus enthalten kann.
Die Klasse ManageWise.User gehört zu CIM.UnitaryComputerSystem, wobei die Verknüpfungen CurrentLoginUser und LastLoginUser verwendet werden. In der CurrentLoginUser-Verknüpfung ist die spezifische Benutzerinstanz diejenige, die derzeit bei der inventarisierten Arbeitsstation angemeldet ist. In der LastLoginUser-Verknüpfung ist die spezifische Benutzerinstanz diejenige, die zuletzt bei der inventarisierten Arbeitsstation angemeldet wurde.
Die Klasse CIM.IRQ gehört zu CIM.ParallelPort und verwendet die Verknüpfung CIM.AllocatedResource. "Dependent" verweist auf CIM.ParallelPort und "Antecedent" auf CIM.IRQ.
Das Diagramm veranschaulicht Folgendes:
Die drei Instanzen von ZENworks.ParallelPort, die mit einer Instanz von CIM.UnitaryComputerSystem verknüpft sind, verwenden drei Instanzen von CIM.SystemDevice-Verknüpfungen. CIM.SystemDevice.GroupComponent verweist auf UnitaryComputerSystem, CIM.SystemDevice.PartComponent verweist auf ParallelPort.
Dies wird eine 1:n-Objektverweis-Beziehung genannt und in der Abbildung als 1..* veranschaulicht. Analog hierzu hat jede Instanz von ParallelPort eine entsprechende Instanz von CIM.IRQ, die die IRQ des Anschlusses bezeichnet. Hierbei handelt es sich um eine 1:1-Beziehung, die als 1..1 veranschaulicht wird.
Alle anderen Klassen werden ähnlich dargestellt. Weitere Informationen zu Diagrammen von anderen Klassen finden Sie in Diagramme von CIM und das Erweiterungsschema in ZENworks 7 Desktop Management.
Folgende Legenden gelten für das Lesen der Diagramme:
Eine Erläuterung zum CIM-Schema finden Sie in der Spezifikation für das CIM 2.2-Schema auf der DMTF-Website.
Folgende Diagramme benennen das CIM und das Erweiterungsschema der Inventardatenbank in ZENworks 7 Desktop Management.
Ein benutzerdefiniertes Inventarattribut verfügt in der Datenbank über folgende Bezeichnungen:
Tabelle 75-1 Bezeichnungen von benutzerdefinierten Inventarattributen
Die benutzerdefinierten Inventarinformationen werden in zwei Tabellen gespeichert: ZENworks.CustomName und Zenworks.CustomValue.
Die Tabelle "ZENworks.CustomName" enthält den Attributnamen, die ID, den Typ (nicht verwendet) und den Klassennamen. Die Attribut-ID wird automatisch erhöht, wenn ein neues benutzerdefiniertes Attribut gespeichert wird.
Es folgt ein Beispiel für die Tabelle "ZENworks.CustomName":
Die Tabelle "Zenworks.CustomValue" enthält die Objekt-Instanz-ID, den Attributwert und den Verweis auf den verknüpften benutzerdefinierten Attributnamen. In der Tabelle "CustomValue" kann ein benutzerdefiniertes Attribut mehrere Werte für verschiedene Instanzen eines Inventarobjekts, jedoch nicht für die gleiche Instanz des Inventarobjekts haben.
Es folgt ein Beispiel für die Tabelle "Zenworks.CustomValue":
ID |
Instance |
CID |
Wert |
---|---|---|---|
28147497671065605 |
1 |
1 |
200.39 |
28147497671065606 |
1 |
1 |
345 |
69147497671045662 |
1 |
2 |
BAY-2 |
Im vorhergehenden Beispiel hat die Tabelle "CustomName" zwei benutzerdefinierte Attribute: "Cost" und "ProductUnit". In der Tabelle "CustomValue" gibt es drei Zeilen: Zwei davon beschreiben die Kosten der Grafikkarte und die dritte ist der Wert des Attributs "ProductUnit", der dem Computersystem direkt zugeordnet ist.
Die folgenden Software-Diagramme zeigen die Inventardatenbank in ZENworks 7 Desktop Management an. Im folgenden Diagramm stellt das CIM.UnitaryComputerSystem ein verwaltetes Inventarsystem dar.
Weitere Informationen zu den Tabellen finden Sie in Abschnitt N.0, Inventarattribute von ZENworks 7 Desktop Management.
In der obigen Darstellung gehört die Klasse MW_DBA.Software zu CIM.UnitaryComputerSystem, wobei die Verknüpfung MW_DBA.InstalledSoftware mit MW_DBA.InstalledSoftware.ComputerSystem auf CIM.UnitaryComputerSystem und MW_DBA.InstalledSoftware.ProductID auf MW_DBA.Software verweist. Die beiden Klassen haben eine 1:n-Beziehung zueinander. Dies bedeutet, dass ein Computersystem mehrere Software-Informationen enthalten kann.
Die Verknüpfung MW_DBA.InstalledSoftware enthält Fremdschlüsselverweise auf folgende Tabellen: "ProductEdition", "SupportPack", "Directory" und "Installation Repository".
MW_DBA.InstalledVirusScanner erbt die Software-Informationen von MW_DBA.InstalledSoftware zusammen mit virusspezifischen Informationen wie Definitionsdatum und -version.
In der obigen Darstellung gehört die Klasse MW_DBA.Patch zu MW_DBA.InstalledSoftware, wobei die Verknüpfung MW_DBA.InstalledSoftwarePatch mit MW_DBA.InstalledSoftwarePatch.pinstanceID auf MW_DBA.InstalledSoftware und MW_DBA.InstalledSoftwarePatch.PatchID auf MW_DBA.Patch verweist. Die beiden Klassen haben eine 1:n-Beziehung zueinander. Eine Software kann also keine oder auch mehrere Patchinformationen enthalten.
In der obigen Darstellung gehört die Klasse MW_DBA.File zu MW_DBA.InstalledSoftware, wobei die Verknüpfung MW_DBA.InstalledFile mit MW_DBA.InstalledFile.pinstanceID auf MW_DBA.InstalledSoftware und MW_DBA.InstalledFile.fileID auf MW_DBA.File verweist. Die beiden Klassen haben eine 1:n-Beziehung zueinander. Eine Software kann also keine oder auch mehrere Dateiinformationen enthalten.
In dieser Darstellung gehört die Klasse MW_DBA.Directory zu MW_DBA.InstalledSoftware, wobei die Verknüpfung MW_DBA.InstalledFile mit MW_DBA.InstalledFile.pinstanceID auf MW_DBA.InstalledSoftware und MW_DBA.InstalledFile.DirectoryID auf MW_DBA.Directory verweist.
In den obigen Darstellungen übernimmt MW_DBA.MSoffice die Software-Informationen von MW_DBA.SOftware. Diese Unterklasse erhält die MS Office-Informationen direkt. Dies ist auch auf folgende Klassen anwendbar:
In der obigen Darstellung enthält die Tabelle MW_DBA.DiskUsage in der Spalte "computerID" Fremdschlüsselverweise auf CIM.UnitaryComputerSystem.ID. Die Tabelle MW_DBA.DiskUsage gibt die insgesamte Speicherplatzauslastung und den Dateierweiterungsnamen an.
Es folgen Beispielabfragen für das Abrufen der Inventarinformationen aus der ZENworks 7 Desktop Management-Inventardatenbank.
In den Diagrammen in Diagramme von CIM und das Erweiterungsschema in ZENworks 7 Desktop Management finden Sie Informationen zu den verknüpften Schemaklassen und Attributen.
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$;
In der obigen Abfrage ist der Baumname ein Teil des Computersystemnamens.
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 )
)
);
Ersetzen Sie den Wert "?" für "ucs.id$" in der Abfrage durch die ID der angegebenen inventarisierten Arbeitsstation.
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$;
HINWEIS:Die Syntax der Abfragen 12 und 13 ist fast gleich, mit Ausnahme der Tabelle, die sich auf die Komponente bezieht. Ein ähnliches Verfahren kann beispielsweise für folgende Komponenten verwendet werden: Windows Media Player, Outlook Express, Microsoft Word und Microsoft Excel. Eine vollständige Liste dieser Tabellen steht im Schema zur Verfügung.
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;