Esquema de banco de dados de Inventário no ZENworks 6.5 Desktop Management

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:


Estudo de caso de implementação de esquema CIM no 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.


Diagrama de esquema do CIM.UnitaryComputerSystem com suas associações

O diagrama de esquema ilustra o seguinte:

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.


Legendas dos diagramas de esquema

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.


Diagramas de esquema do CIM e o esquema de extensão no ZENworks 6.5 Desktop Management

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.


Esquema para processador, sistemas operacionais e adaptador de vídeo
Esquema para scanner de Inventário e NetWare Client
Esquema para chassis e informações do sistema
Esquema para monitor
Esquema para dispositivos de entrada, porta, driver, informações sobre usuário e BIOS
Esquema para mídia de armazenamento
Esquema para rede, modem e adaptador de som
Esquema para bateria, placa, cache, placa-mãe e DMA
Esquema para auditoria de gerenciamento remoto


Esquema de inventário personalizado

Um atributo de inventário personalizado tem os seguintes qualificadores no banco de dados:

Qualificador Descrição

Nome

O nome do atributo personalizado

Valor

O valor atribuído ao atributo personalizado

Type (Tipo)

O tipo de dado do atributo personalizado. O ZENworks 6.5 Desktop Management trata todos os atributos personalizados apenas como tipo "String".

Nome de Classe

A Classe de Inventário (tabela) ao qual o atributo personalizado está associado.

Instance (Instância)

O número de valores atribuídos a determinado atributo personalizado. No ZENworks 6.5 Desktop Management, não é possível ter mais de um valor para um atributo personalizado.

ID

A identificação (id$) do objeto de Inventário ao qual o atributo personalizado está associado.

CID

O ID exclusivo do nome do atributo personalizado.


Esquema para inventário personalizado

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.


Esquema de inventário do software

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.


Esquema para software

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.


Esquema para patch de software

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.


Esquema para informações de arquivo e de diretório

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.


Esquema para subclasses de software
Esquema para subclasses de software
Esquema para subclasses de software

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:

mw_dba.zfdserver

mw_dba.zfdinventoryserver

mw_dba.zfdagent

mw_dba.zfsserver

mw_dba.zfdinventoryagent

mw_dba.zfsagent

mw_dba.zfsinventoryserver

mw_dba.mspowerpoint

mw_dba.msphotodraw

mw_dba.zfsinventoryagent

mw_dba.msoutlook

mw_dba.zfdwsmanager

mw_dba.zfsrmserver

mw_dba.msaccess

mw_dba.zfdwsimportserver

mw_dba.zfsrmagent

mw_dba.mspublisher

mw_dba.zfdinvdbserver

mw_dba.zfdrmserver

mw_dba.msfrontpage

mw_dba.zfsinvdbserver

mw_dba.zfdrmagent

mw_dba.msinfopath

mw_dba.zfdinvxmlproxyserver

mw_dba.zfsinvxmlproxyserver

mw_dba.zfdimagingagent

mw_dba.zfdimagingserver

mw_dba.zfdnalagent

mw_dba.zfdnalserver

mw_dba.zfdnaldb

mw_dba.middletier

mw_dba.zfsmmsserver

mw_dba.zfspds

mw_dba.zfspxeserver

mw_dba.zfsmmssrvmgmtagent

mw_dba.zfsmmstrafficanalysisagent

mw_dba.zfsmmsadctrendingagent

mw_dba.zfspdsdb

mw_dba.zfhserver

mw_dba.zfhaccesspoin

mw_dba.zfhdesktopsync

 


Esquema para utilização de disco

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.


Exemplo de consultas a banco de dados de Inventário

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.

  1. Recupere o nome e o ID de todas as estações de trabalho inventariadas a partir do banco de dados e também para a árvore do Novell eDirectoryTM em que essas estações de trabalho estão registradas. A consulta é como se segue:
    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.

  2. Recupere a etiqueta de patrimônio, o fabricante e o número do modelo de todas as estações de trabalho inventariadas, no banco de dados. A consulta é como se segue:
    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$;
  3. Recupere todos os aplicativos Microsoft, com suas versões e IDs, que estão instalados na estação de trabalho inventariada 'SJOHN164_99_139_79' registrada na árvore 'NOVELL_AUS' do eDirectory. A consulta é como se segue:
    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%';
  4. Recupere as informações de processador da estação de trabalho inventariada 'SJOHN164_99_139_79.NOVELL_AUS'. A consulta é como se segue:
    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 )
    	  )
    	);
  5. Recupere o ID do UnitaryComputerSystem utilizado para a estação de trabalho inventariada 'SJOHN164_99_139_79.NOVELL_AUS'. A consulta é como se segue:
    SELECT 
      id$ 
    FROM 
      CIM.UnitaryComputerSystem
    WHERE 
      Name='SJOHN164_99_139_79.Novell_AUS';
  6. Encontre o número de estações de trabalho inventariadas no banco de dados. A consulta é como se segue:
    SELECT 
      count(u.id$) 
    FROM 
      CIM.UnitaryComputerSystem u,
      CIM.InstalledSoftwareElement s,
      ZENworks.InventoryScanner m
    WHERE 
      m.id$=s.Software AND u.id$=s.System;
  7. Quando você conhece o ID do UnitaryComputerSystem de uma determinada estação de trabalho inventariada da consulta, como mostrado na consulta 5, a consulta 4 pode ser modificada da seguinte maneira:
    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.

  8. Liste o endereço IP, o endereço IPX e o endereço MAC de todas as estações de trabalho no banco de dados. A consulta é como se segue:
    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$);
  9. Recupere o nome e outras propriedades das unidades do disco rígido da estação de trabalho especificada. A consulta é como se segue:
    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$);
  10. Recupere todas as informações dos atributos personalizados armazenadas no banco de dados. A consulta é como se segue:
    SELECT * FROM ZENworks.CustomInformation;
  11. Recupere todas as informações dos atributos personalizados associados à classe CIM.UnitaryComputerSystem. A consulta é como se segue:
    SELECT
      * 
    FROM
      ZENworks.CustomInformation 
    WHERE 
      extractClass(id) IN  
      (SELECT id FROM MW_DBA.t$Class WHERE  
    ClassName='CIM. UnitaryComputerSystem')
  12. Recupere todas as instalações do Microsoft Office na empresa. A consulta é como se segue:
    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$;
  13. Recupere todas as instalações do Internet Explorer na empresa. A consulta é como se segue:
    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.

  14. Recupere todas as instalações de Antivírus na empresa. A consulta é como se segue:
    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$;
  15. Recupere todos os aplicativos e os detalhes dos arquivos associados ao aplicativo que estão instalados na estação de trabalho inventariada 'SJOHN164_99_139_79.NOVELL_AUS'. A consulta é como se segue:
    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;
  16. Recupere todos os arquivos presentes na estação de trabalho inventariada 'SJOHN164_99_139_79.NOVELL_AUS' que não estão associados a um software válido. A consulta é como se segue:
    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;
  17. Recupere os detalhes de utilização de disco dos arquivos com extensões conhecidas em cada máquina inventariada na empresa. A consulta é como se segue:
    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;