次の節では、データベーススキーマクラスおよびZENwork 7 Desktop Managementで使用するためのCIMスキーマの拡張と関連付けについて説明します。これらの拡張では、そのスキーマ名としてZENworksまたはManageWiseを使用します。ZENworks.classnameはZENworksスキーマの拡張クラスを示し、ManageWise.classnameはManageWiseスキーマの拡張クラスを示します。
次の節は、ZENworks 7デスクトップ管理データベーススキーマの理解に役立ちます。
次の構成は、特定の割り込み番号を持つ2つのパラレルポートを備えたインベントリ対象ワークステーションを示しています。
次のスキーマ図で、CIM.UnitaryComputerSystemは管理対象のインベントリシステムを表します。
この図では、クラスCIM.PointingDeviceは、CIM.UnitaryComputerSystemを参照するSystemDevice.GroupComponentとCIM.PointingDeviceを参照するSystemDevice.PartComponentの関連付けCIM.SystemDeviceによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対多です。つまり、コンピュータシステムには複数のポインティングデバイスを接続できます。
クラスCIM.IRQは、関連付けCIM.AllocatedResourceによってCIM.PointingDeviceに関連付けられています。DependentはCIM.PointingDeviceを参照し、AntecedentはCIM.IRQを参照します。
クラスZENworks.ZENKeyboardは、CIM.UnitaryComputerSystemを参照するSystemDevice.GroupComponentとZENworks.ZENKeyboardを参照するSystemDevice.PartComponentの関連付けCIM.SystemDeviceによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対1です。つまり、コンピュータシステムにはキーボードを1台だけ接続できます。
クラスZENworks.BIOSは、CIM.UnitaryComputerSystemを参照するSystemDevice.GroupComponentとZENworks.BIOSを参照するSystemBIOS.PartComponentの関連付けCIM.SystemBIOSによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対1です。つまり、コンピュータシステムはBIOSを1つだけ持つことができます。
クラスCIM.ZENworks.ParallelPortは、CIM.UnitaryComputerSystemを参照するSystemDevice.GroupComponentとCIM.ZENworks.ParallelPortを参照するSystemDevice.PartComponentの関連付けCIM.SystemDeviceによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対多です。つまり、コンピュータシステムは複数のパラレルポートを持つことができます。
クラスZENworks.BUSは、CIM.UnitaryComputerSystemを参照するSystemDevice.GroupComponentとZENworks.BUSを参照するSystemDevice.PartComponentの関連付けCIM.SystemDeviceによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対多です。つまり、コンピュータシステムはバスを複数持つことができます。
クラスManageWise.Userは、CurrentLoginUserとLastLoginUserによってCIM.UnitaryComputerSystemに関連付けられています。CurrentLoginUserでは、Userの特定のインスタンスは、インベントリ対象ワークステーションに現在ログインしているユーザを表します。LastLoginUserでは、Userの特定のインスタンスは、インベントリ対象ワークステーションに最後にログインしたユーザを表します。
クラスCIM.IRQは、関連付けCIM.AllocatedResourceによってCIM.ParallelPortに関連付けられています。DependentはCIM.ParallelPortを参照し、AntecedentはCIM.IRQを参照します。
スキーマ図は次の内容を示しています。
CIM.SystemDeviceの関連付けのインスタンスを3つ使用するCIM.UnitaryComputerSystemの1つのインスタンスには、ZENworks.ParallelPortのインスタンスが3つ関連付けられています。CIM.SystemDevice.GroupComponentはUnitaryComputerSystemを参照し、CIM.SystemDevice.PartComponentはParallelPortを参照します。
これは、1対nオブジェクト参照関係と呼ばれ、図では「1..*」として示されています。同様に、ParallelPortのすべてのインスタンスには、ポートのIRQを指定するCIM.IRQに対応するインスタンスがあります。これは1対1の関係で、図では1..1として示されています。
その他のクラスもすべて同様の表記に従います。その他のクラスのスキーマ図については、ZENworks 7 Desktop ManagementのCIMと拡張スキーマのスキーマ図を参照してください。
スキーマ図を読むための凡例は次のとおりです。
CIMスキーマについての詳細は、DMTFのWebサイトにあるCIM 2.2スキーマの仕様を参照してください。
次のCIMと拡張スキーマのスキーマ図は、ZENworks 7 Desktop Managementのインベントリデータベースをモデリングしたものです。
データベース内でカスタムインベントリ属性には次のクォリファイアがあります。
表 75-1 カスタムインベントリ属性のクォリファイア
カスタムインベントリ情報は、ZENworks.CustomNameとZenworks.CustomValueの2つのテーブルに保存されます。
ZENworks.CustomNameテーブルには、属性名、ID、タイプ(使用しません)、およびクラス名が含まれています。新しいカスタム属性が保存されると、属性IDは自動的に増加します。
次のテーブルは、ZENworks.CustomNameテーブルの例です。
Zenworks.CustomValueテーブルには、オブジェクトインスタンスID、属性値、および関連付けられているカスタム属性名の参照が含まれています。CustomValueテーブルでは、カスタム属性にはインベントリオブジェクトの異なるインスタンスに複数の値を設定できますが、インベントリオブジェクトの同じインスタンスに複数の値を設定することはできません。
次のテーブルは、Zenworks.CustomValueテーブルの例です。
ID |
Instance |
CID |
値 |
---|---|---|---|
28147497671065605 |
1 |
1 |
200.39 |
28147497671065606 |
1 |
1 |
345 |
69147497671045662 |
1 |
2 |
BAY-2 |
前例では、CustomNameテーブルにはCostとProductUnitの2つのカスタム属性があります。CustomValueテーブルには3つの行があります。そのうち2つは、ビデオアダプタのコストを示し、3つめの行はComputerSystemに直接割り当てられたProductUnit属性の値を示しています。
この節のソフトウェアスキーマ図は、ZENworks 7 Desktop Managementのインベントリデータベ-スを示しています。次のスキーマ図は、CIM.UnitaryComputerSystemは管理対象のインベントリシステムを表しています。
テーブルの詳細については、セクション N.0, ZENworks 7 Desktop Managementインベントリ属性を参照してください。
この図では、クラスMW_DBA.Softwareは、CIM.UnitaryComputerSystemを参照するMW_DBA.InstalledSoftware.ComputerSystemとMW_DBA.Softwareを参照するMW_DBA.InstalledSoftware.ProductIDの関連付けMW_DBA.InstalledSoftwareによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対多です。つまり、コンピュータシステムは複数のソフトウェア情報を持つことができます。
関連付けMW_DBA.InstalledSoftwareには、テーブルProductEdition、SupportPack、Directory、およびInstallation Repositoryに対する外部キーリファレンスがあります。
MW_DBA.InstalledVirusScannerは、ウィルス定義の日付やバージョンなどのウィルス固有の情報と共にソフトウェア情報をMW_DBA.InstalledSoftwareから継承します。
この図では、クラスMW_DBA.Patchは、MW_DBA.InstalledSoftwareを参照するMW_DBA.InstalledSoftwarePatch.pinstanceIDとMW_DBA.Patchを参照するMW_DBA.InstalledSoftwarePatch.PatchIDの関連付けMW_DBA.InstalledSoftwarePatchによって、MW_DBA.InstalledSoftwareに関連付けられています。この2つのクラスの関係は1対多です。つまり、ソフトウェアはパッチ情報を持たないか、1つ以上のパッチ情報を持つことができます。
この図では、クラスMW_DBA.Fileは、MW_DBA.InstalledSoftwareを参照するMW_DBA.InstalledFile.pinstanceIDとMW_DBA.Fileを参照するMW_DBA.InstalledFile.fileIDの関連付けMW_DBA.InstalledFileによって、MW_DBA.InstalledSoftwareに関連付けられています。この2つのクラスの関係は1対多です。つまり、ソフトウェアはパッチ情報を持たないか、1つ以上のパッチ情報を持つことができます。
この図では、クラスMW_DBA.Directoryは、MW_DBA.InstalledSoftwareを参照するMW_DBA.InstalledFile.pinstanceIDとMW_DBA.Directoryを参照するMW_DBA.InstalledFile.DirectoryIDの関連付けMW_DBA.InstalledFileによって、MW_DBA.InstalledSoftwareに関連付けられています。
この図では、MW_DBA.MSofficeはMW_DBA.SOftwareからソフトウェア情報を継承します。このサブクラスは、MS office情報を直接取得します。これは次の各クラスにも当てはまります。
この図では、MW_DBA.DiskUsageにはCIM.UnitaryComputerSystem.IDに対するcomputerID列外部キー参照が含まれます。MW_DBA.DiskUsageテーブルには、ディスク使用の合計とファイル拡張子名が含まれます。
次の照会例は、ZENworks 7 Desktop Managementインベントリデータベースからインベントリ情報を取得するためのものです。
関連付けられているスキーマクラスと属性の詳細については、ZENworks 7 Desktop ManagementのCIMと拡張スキーマのスキーマ図のスキーマ図を参照してください。
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$;
この照会では、ツリー名はコンピュータシステム名の一部です。
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 )
)
);
指定されたインベントリ対象ワークステーションのIDを、照会の「ucs.id$」の値「?」と置き換えます。
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$;
メモ:照会12および13では、コンポーネントに関連するテーブル以外は、ほとんど同じ構文に従います。同様なアプローチを、Windows Media Player、Outlook Express、Microsoft Word、Microsoft Excelなどのコンポーネントに対しても使用できます。これらのテーブルはすべてスキーマで利用できます。
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;