CIM é um padrão aberto da DMTF (Distributed Management Task Force). CIM fornece uma definição comum de informações de gerenciamento para sistemas, redes, aplicações, serviços, permitindo extensões pelos fabricantes. WMI é a implentação do CIM feita pela Microsoft.
Diferenças importantes entre os 2 métodos:
- CIM utiliza WSMan (WinRM é a implementação da Microsoft), que é SOAP e não tem problemas com firewall, para conectar-se com máquinas remotas, ou seja, se isso não estiver configurado adequadamente, a conexão irá falhar e a informação não será obtida.
- WMI mantém compatibilidade com sistemas operacionais antigos (legados).
- CIM tem um menor tempo de resposta, ou seja, melhor desempenho.
- WMI usa DCOM (Distributed Component Object Model) para se comunicar com máquinas remotas, notoriamente com menor desempenho, além de síncrono e por não ser padronizados tende a não funcionar em outros sitema que não o Windows.
- WMI fornece melhor abstração de tarefas em comparação aos Cmdlets WsMan, seus resultados são objetos .NET
- O protocolo WSMan utilizado pelo CIM é mais seguro e escalável; é padronizado, logo tende a funcionar para sistemas não-Windows.
Maik Koster faz interessantes comparativos de desempenho e do porquê CIM é melhor, com medições incluindo gráficos, entre o uso de CIM e WMI, tanto local quanto em rede.
A classe Win32_OperatingSystem, por exemplo, nos permite obter uma série de informações do Sistema Operacional. Para saber o que pode ser obtido, podemos executar o seguinte comando:
PS C:\> Get-CimInstance -Class Win32_OperatingSystem -KeyOnly Status : Name : FreePhysicalMemory : FreeSpaceInPagingFiles : FreeVirtualMemory : Caption : Description : InstallDate : CreationClassName : CSCreationClassName : CSName : CurrentTimeZone : Distributed : LastBootUpTime : LocalDateTime : MaxNumberOfProcesses : MaxProcessMemorySize : NumberOfLicensedUsers : NumberOfProcesses : NumberOfUsers : OSType : OtherTypeDescription : SizeStoredInPagingFiles : TotalSwapSpaceSize : TotalVirtualMemorySize : TotalVisibleMemorySize : Version : BootDevice : BuildNumber : BuildType : CodeSet : CountryCode : CSDVersion : DataExecutionPrevention_32BitApplications : DataExecutionPrevention_Available : DataExecutionPrevention_Drivers : DataExecutionPrevention_SupportPolicy : Debug : EncryptionLevel : ForegroundApplicationBoost : LargeSystemCache : Locale : Manufacturer : MUILanguages : OperatingSystemSKU : Organization : OSArchitecture : OSLanguage : OSProductSuite : PAEEnabled : PlusProductID : PlusVersionNumber : PortableOperatingSystem : Primary : ProductType : RegisteredUser : SerialNumber : ServicePackMajorVersion : ServicePackMinorVersion : SuiteMask : SystemDevice : SystemDirectory : SystemDrive : WindowsDirectory : PSComputerName : CimClass : root/cimv2:Win32_OperatingSystem CimInstanceProperties : {Caption, Description, InstallDate, Name...} CimSystemProperties : Microsoft.Management.Infrastructure.CimSystemProperties
E então podemos selecionar as Propriedades que desejarmos, como por exemplo:
CLS Get-CimInstance Win32_OperatingSystem | Select-Object Caption, ` OSArchitecture, BuildNumber, TotalVisibleMemorySize | FL
Obtendo um resultado semelhante ao abaixo, variando obviamente de acordo com o computador em questão:
Caption : Microsoft Windows 10 Pro OSArchitecture : 64 bits BuildNumber : 15063 TotalVisibleMemorySize : 4025964
Nenhum comentário:
Postar um comentário