A seção a seguir descreve as classes de esquema de banco de dados e as extensões e associações feitas no esquema CIM para uso no ZENworks 6.5 Desktop Management. Essas extensões têm ZENworks ou ManageWise como nome de esquema. ZENworks.nome_da_classe refere-se à classe estendida no esquema ZENworks e ManageWise.nome_da_classe refere-se à classe estendida no esquema ManageWise.
As seções a seguir ajudarão a compreender o esquema de banco de dados do ZENworks 6.5 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 se associa ao CIM.UnitaryComputerSystem usando a associação CIM.SystemDevice com o SystemDevice.GroupComponent apontando para CIM.UnitaryComputerSystem e com o SystemDevice.PartComponent apontando para CIM.PointingDevice. O relacionamento entre as duas classes é de um para muitos. Isto 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 se associa ao CIM.UnitaryComputerSystem usando a associação CIM.SystemDevice com o SystemDevice.GroupComponent apontando para o CIM.UnitaryComputerSystem e com o SystemDevice.PartComponent apontando para o ZENworks.ZENKeyboard. O relacionamento entre as duas classes é de um para um. Isto significa que um sistema de computador pode ter apenas um teclado.
A classe ZENworks.BIOS se associa a CIM.UnitaryComputerSystem utilizando a associação CIM.SystemBIOS, com SystemDevice.GroupComponent apontando para CIM.UnitaryComputerSystem e SystemBIOS.PartComponent apontando para ZENworks.BIOS. O relacionamento entre as duas classes é de um para um. Isto significa que um sistema de computador pode ter apenas um BIOS.
A classe CIM.ZENworks.ParallelPort se associa ao CIM.UnitaryComputerSystem usando a associação CIM.SystemDevice com o SystemDevice.GroupComponent apontando para CIM.UnitaryComputerSystem e com o SystemDevice.PartComponent apontando para CIM.ZENworks.ParallelPort. O relacionamento entre as duas classes é de um para muitos. Isto significa que um sistema de computador pode ter mais de uma porta paralela.
A classe ZENworks.BUS se associa a CIM.UnitaryComputerSystem utilizando a associação CIM.SystemDevice, com SystemDevice.GroupComponent apontando para CIM.UnitaryComputerSystem e 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 se associa ao 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.
Isto é 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. Isto é um relacionamento de um para um e está representado como 1..1.
Todas as outras 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 6.5 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 6.5 Desktop Management.
Um atributo de inventário personalizado tem os seguintes qualificadores no banco de dados:
As informações personalizadas de inventário 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 é armazenado um novo atributo personalizado.
A seguir, um exemplo da tabela ZENworks.CustomName:
| ID | Nome | Nome da Classe |
|---|---|---|
1 |
Custo |
ZENworks.VideoAdapter |
2 |
UnidadeProduto |
CIM.UnitaryComputerSystem |
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 | Instance (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, Custo e UnidadeProduto. Há três linhas na tabela CustomValue; duas delas descrevem o custo do adaptador de vídeo e a terceira é o valor do atributo UnidadeProduto atribuído diretamente ao ComputerSystem.
Os diagramas que se seguem, de esquema do software, modelam o banco de dados de Inventário no ZENworks 6.5 Desktop Management. No diagrama a seguir, o CIM.UnitaryComputerSystem representa um sistema de inventário gerenciado.
Para obter mais informações sobre as tabelas, consulte o Atributos de Inventário do ZENworks 6.5 Desktop Management.
Na ilustração anterior, a classe MW_DBA.Software se associa 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. Isto 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 a vírus, como data e versão da definição.
Na ilustração anterior, a classe MW_DBA.Patch se associa a MW_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. Isto significa que um software pode ter zero ou mais informações de patch.
Na ilustração anterior, a classe MW_DBA.File se associa a MW_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. Isto significa que um software pode ter zero ou mais informações de arquivo.
Nesta ilustração, a classe MW_DBA.Directory se associa a MW_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 anteriores, MW_DBA.MSOffice herda as informações de software de MW_DBA.Software. A subclasse obtém diretamente as informações do MS Office. Isto também se aplica às seguintes classes:
Na ilustração anterior, 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 estão exemplos de consultas para recuperar informações de inventário do banco de dados de Inventário do ZENworks 6.5 Desktop Management.
Consulte os diagramas de esquema em Diagramas de esquema do CIM e o esquema de extensão no ZENworks 6.5 Desktop Management para encontrar informações sobre atributos e 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. Também pode ser utilizada uma abordagem semelhante para os seguintes componentes: Windows Media Player, Outlook Express, Microsoft Word, Microsoft Excel etc. 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;