A seção a seguir descreve as classes de esquema de banco de dados e as extensões e as associações feitas no esquema CIM para uso no ZENworks 7 Desktop Management. Essas extensões têm ZENworks ou ManageWise como nome de esquema. ZENworks.nomedeclasse refere-se à classe estendida no esquema ZENworks e ManageWise.nomedeclasse refere-se à classe estendida no esquema ManageWise.
As seções a seguir ajudarão a compreender o esquema de banco de dados do ZENworks 7 Desktop Management:
O cenário a seguir descreve uma estação de trabalho inventariada que tem duas portas paralelas com um número de interrupção especificado.
No diagrama de esquema a seguir, CIM.UnitaryComputerSystem representa um sistema gerenciado de inventário.
Na ilustração, a classe CIM.PointingDevice associa-se a CIM.UnitaryComputerSystem usando a associação CIM.SystemDevice, com SystemDevice.GroupComponent apontando para CIM.UnitaryComputerSystem e com SystemDevice.PartComponent apontando para CIM.PointingDevice. O relacionamento entre as duas classes é de um para muitos. Isso significa que um sistema de computador pode ter mais de um dispositivo apontador.
A classe CIM.IRQ se associa ao CIM.PointingDevice usando a associação CIM.AllocatedResource. Dependent aponta para CIM.PointingDevice e Antecedent aponta para CIM.IRQ.
A classe ZENworks.ZENKeyboard associa-se a CIM.UnitaryComputerSystem usando a associação CIM.SystemDevice, com SystemDevice.GroupComponent apontando para CIM.UnitaryComputerSystem e com SystemDevice.PartComponent apontando para ZENworks.ZENKeyboard. O relacionamento entre as duas classes é de um para um. Isso significa que um sistema de computador só pode ter um teclado.
A classe ZENworks.BIOS associa-se a CIM.UnitaryComputerSystem usando a associação CIM.SystemBIOS, com SystemDevice.GroupComponent apontando para CIM.UnitaryComputerSystem e com SystemBIOS.PartComponent apontando para ZENworks.BIOS. O relacionamento entre as duas classes é de um para um. Isso significa que um sistema de computador só pode ter um BIOS.
A classe CIM.ZENworks.ParallelPort associa-se a CIM.UnitaryComputerSystem usando a associação CIM.SystemDevice com o SystemDevice.GroupComponent apontando para CIM.UnitaryComputerSystem e com SystemDevice.PartComponent apontando para CIM.ZENworks.ParallelPort. O relacionamento entre as duas classes é de um para muitos. Isso significa que um sistema de computador pode ter mais de uma porta paralela.
A classe ZENworks.BUS associa-se a CIM.UnitaryComputerSystem usando a associação CIM.SystemDevice, com SystemDevice.GroupComponent apontando para CIM.UnitaryComputerSystem e com SystemDevice.PartComponent apontando para ZENworks.BUS. O relacionamento entre as duas classes é de um para muitos. Isso significa que um sistema de computador pode ter mais de um barramento.
A classe ManageWise.User associa-se a CIM.UnitaryComputerSystem usando CurrentLoginUser e LastLoginUser. Na associação CurrentLoginUser, a instância específica de User é o usuário que está conectado no momento na estação de trabalho inventariada. Na associação LastLoginUser, a instância específica de User é o último usuário que efetuou login na estação de trabalho inventariada.
A classe CIM.IRQ se associa ao CIM.ParallelPort usando a associação CIM.AllocatedResource. Dependent aponta para CIM.ParallelPort e Antecedent aponta para CIM.IRQ.
O diagrama de esquema ilustra o seguinte:
Há três instâncias de ZENworks.ParallelPort associadas a uma instância de CIM.UnitaryComputerSystem utilizando três instâncias de associações CIM.SystemDevice. CIM.SystemDevice.GroupComponent faz referência a UnitaryComputerSystem, e CIM.SystemDevice.PartComponent faz referência a ParallelPort.
Isso é chamado de relacionamento de referência de 1 para n objetos e está representado na ilustração como 1..*. De modo similar, cada instância de ParallelPort tem uma instância correspondente de CIM.IRQ designando o IRQ da porta. Esse é um relacionamento de um para um e está representado como 1..1.
Todas as demais classes seguem uma representação semelhante. Para obter diagramas de esquema de outras classes, consulte Diagramas de esquema do CIM e o esquema de extensão no ZENworks 7 Desktop Management.
As legendas para a leitura dos diagramas de esquema são as seguintes:
Para obter uma explicação sobre o esquema CIM, consulte a especificação de esquema CIM 2.2 no site da DMTF na Web.
Os diagramas de esquema do CIM e o esquema de extensão a seguir modelam o banco de dados de Inventário no ZENworks 7 Desktop Management.
Um atributo de inventário personalizado tem os seguintes qualificadores no banco de dados:
Tabela 75-1 Qualificadores de atributos de inventário personalizados
As informações do inventário personalizado são armazenadas em duas tabelas: ZENworks.CustomName e Zenworks.CustomValue.
A tabela ZENworks.CustomName contém o nome do atributo, o ID, o tipo (não utilizado) e o nome da classe. O ID do atributo é incrementado automaticamente quando um novo atributo personalizado é armazenado.
A seguir, um exemplo da tabela ZENworks.CustomName:
A tabela Zenworks.CustomValue contém o ID da instância do objeto, o valor do atributo e a referência ao nome do atributo personalizado que está associado. Na tabela CustomValue, um atributo personalizado pode ter vários valores para diferentes instâncias de um objeto de inventário, mas não para a mesma instância do objeto de inventário.
A seguir, um exemplo da tabela Zenworks.CustomValue:
ID |
Instância |
CID |
Valor |
---|---|---|---|
28147497671065605 |
1 |
1 |
200.39 |
28147497671065606 |
1 |
1 |
345 |
69147497671045662 |
1 |
2 |
BAY-2 |
No exemplo anterior, a tabela CustomName tem dois atributos personalizados, Cost e ProductUnit. Há três linhas na tabela CustomValue; duas delas descrevem o custo do adaptador de vídeo, e a terceira é o valor do atributo ProductUnit atribuído diretamente a ComputerSystem.
Os diagramas de esquema do software a seguir fornecem um modelo do banco de dados de Inventário no ZENworks 7 Desktop Management. No diagrama a seguir, CIM.UnitaryComputerSystem representa um sistema de inventário gerenciado.
Para obter mais informações sobre as tabelas, consulte o Seção N.0, Atributos de Inventário do ZENworks 7 Desktop Management.
Na ilustração acima, a classe MW_DBA.Software associa-se a CIM.UnitaryComputerSystem usando a associação MW_DBA.InstalledSoftware, com MW_DBA.InstalledSoftware.ComputerSystem apontando para CIM.UnitaryComputerSystem e MW_DBA.InstalledSoftware.ProductID apontando para MW_DBA.Software. O relacionamento entre as duas classes é de um para muitos. Isso significa que um sistema de computador pode ter mais de uma informação de software.
A associação MW_DBA.InstalledSoftware tem referências FK (Foreign Key) para as seguintes tabelas: ProductEdition, SupportPack, Directory e InstallationRepository.
MW_DBA.InstalledVirusScanner herda as informações de software de MW_DBA.InstalledSoftware, juntamente com informações específicas de vírus, como data e versão da Definição.
Na ilustração acima, a classe MW_DBA.Patch associa-se a DBA.InstalledSoftware usando a associação MW_DBA.InstalledSoftwarePatch, com MW_DBA.InstalledSoftwarePatch.pinstanceID apontando para MW_DBA.InstalledSoftware e MW_DBA.InstalledSoftwarePatch.PatchID apontando para MW_DBA.Patch. O relacionamento entre as duas classes é de um para muitos. Isso significa que um software pode ter zero ou mais informações sobre o patch.
Na ilustração acima, a classe MW_DBA.File associa-se a DBA.InstalledSoftware usando a associação MW_DBA.InstalledFile, com MW_DBA.InstalledFile.pinstanceID apontando para MW_DBA.InstalledSoftware e MW_DBA.InstalledFile.fileID apontando para MW_DBA.File. O relacionamento entre as duas classes é de um para muitos. Isso significa que um software pode ter zero ou mais informações sobre o arquivo.
Na ilustração acima, a classe MW_DBA.Directory associa-se a DBA.InstalledSoftware usando a associação MW_DBA.InstalledFile, com MW_DBA.InstalledFile.pinstanceID apontando para MW_DBA.InstalledSoftware e MW_DBA.InstalledFile.DirectoryID apontando para MW_DBA.Directory.
Nas ilustrações acima, MW_DBA.MSoffice herda as informações de software de MW_DBA.SOftware. A subclasse obtém diretamente as informações do MS Office. Isso também se aplica às seguintes classes:
Na ilustração acima, MW_DBA.DiskUsage tem referências Foreign Key da coluna computerID para CIM.UnitaryComputerSystem.ID. A tabela MW_DBA.DiskUsage contém a utilização total do disco e o nome da extensão do arquivo.
A seguir são fornecidos exemplos de consulta para a recuperação das informações de inventário do banco de dados de Inventário do ZENworks 7 Desktop Management.
Consulte os diagramas de esquema apresentados em Diagramas de esquema do CIM e o esquema de extensão no ZENworks 7 Desktop Management para obter informações sobre os atributos e as classes de esquema associados.
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$;
Na consulta acima, o nome da árvore é parte do nome de sistema do computador.
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 )
)
);
Substitua o ID da estação de trabalho inventariada especificada, colocando no lugar de ? o valor de ucs.id$ na consulta.
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$;
NOTA:As consultas 12 e 13 têm quase a mesma sintaxe, exceto pela tabela relativa ao componente. Uma abordagem semelhante pode ser aplicada a componentes, como Windows Media Player, Outlook Express, Microsoft Word e Microsoft Excel. O conjunto completo dessas tabelas está disponível no Esquema.
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;