Introduzione a WMI e WMIC per la gestione di sistemi PierGiorgio Malusardi Evengelist – IT Professional Microsoft WMI Overview Obbiettivi di WMI Cos’è Windows Management Instrumentation? Operazioni di gestioni tipiche Architettura di WMI Obiettivi WMI Gestione dell’Enterprise Controllo e configurazione di sistemi e applicazioni Implementazione consistente Unico punto di accesso Cos’è WMI? Strumento per facilitare la gestione attraverso l’uso di uno schema estensibile Ricco insieme di eventi di gestione e di interrogazione Gestione da remoto Gestibile via script Architettura WMI Ogni applicazione che comprende automation Es. C/C++, VB, VBScript, Jscript, VBA, Perl Applicazioni Consumers Applicazioni COM CIM MOF Providers Windows Management Service CIM.REP %SystemRoot%\System32\WBEM\WinMgmt.exe Win32 API SQL Server Registry WDM NT event MSI Active Directory .NET Exchange SNMP PerfMon Gestione di Windows con WMI Applicazione di Gestione Es. script CIM Providers Oggetto gestito Oggetto gestito Oggetto gestito System System System System System System System Il Common Information Model Il modello ad oggetti Gli schema CIM Gli spazi dei nomi I Provider WMI Provider Standard WMI MOF Modello ad Oggetti Classi Propietà Tipi di oggetti gestiti Sotto classi Chiave Referenze Qualificatori Instanze Metodi Schema CIM Core schema CIM_ManagedSystemElement CIM_LogicalElement Common schema CIM_LogicalDevice CIM_MediaAccessDevice Extensible schema CIM_DiskDrive WIN32_DiskDrive CIM_CDRomDrive WIN32_CDRomDrive Spazio dei nomi \\Server1\Root\Cimv2:Win32_LogicalDisk.DeviceId='C:' Provider WMI Ruoli dei Provider Tipi di Provider Provider specifici per applicazioni Provider Built-in Quali provider sono installati? Provider Standard WMI Provider Win32 MOF DLL Namespace cimwin32.mof cimwin32.dll root\cimv2 SNMP snmpreg.mof snmpincl.dll root\snmp Performance counter Registry perf*.mof wbemperf.dll root\cimv2 *.mof regevent.mof stdprov.dll root\default WDM wmi.mof wmiprov.dll root\wmi Provider Standard WMI Provider Directory Services Event Log MOF DLL Namespace dsprov.mof dsprov.dll root\directory\ldap ntevt.mof ntevt.dll root\cimv2 View Windows Installer Sicurezza *.mof viewprov.dll root\* msi.mof msiprov.dll root\cimv2 secrcw32.mof secrcw32.dll root\cimv2 MOF Management Object Format Language Dichiara i namespace Dichiara le classes Dichiara le istanze Mofcomp.exe Auto Recovery WMI e i Prodotti Microsoft Microsoft SQL Server 2000/2005 Microsoft Exchange Server 2000/2003 Qualsiasi cosa si può fare con Enterprise Manager 2000: monitoring dei server 2003: gestione del sistema Microsoft System Management Server 2003 Operations Manager tool WMI in Windows XP/2003 Group Policy Filtering Nuovi Event Consumer WMI Text log, NT Event log, command-line Nuovi Provider WMI Applicazione di filtri WMI Disk Quota, DFS, Stampanti, Chkdsk, DNS, Repliche AD Funzioni Addizionali DateTime, SWbemServices.Put, Refresher object L’importanza di .NET Il Framework .NET fornisce tecniche di scripting semplificate Nuove interfaccie .NET system.management disk = New ManagementObject("Win32_LogicalDisk.DeviceId='C:'") disk.Get() Ancora compatibile con le esistenti interfaccie di script Tool IDE integrati Come accedere a WMI Sistemi di Management Scripting (oggetto di un prossimo Live Meeting) WMIC (oggetto di questo evento) WMIC Windows Management Instrumentation Console WMIC fornisce un’interfaccia command-line a WMI WMIC consente: Navigare lo schema WMI e interrogare lo schema e le istanze, normalmente usando degli alias. Lavorare con il computer locale, con computer remoti singoli o multipli con un singolo comando. Personalizzazione degli alias e dell’aoutput dei comandi. Creare ed eseguire script basati su WMIC. WMI Providers sono disponibili per gestire una grande varietà di componenti HW, sistemi operativi e applicazioni. WMIC può essere usato con tutti gli schema implementati da questi Provider WMI. WMIC può essere usato da ogni computer su cui è abilitato per gestire remotamente computer con WMI. WMIC non deve essere presente sui computer remoti. Usare WMIC Due modi d’uso: C:\> wmic process (scripting/batch) wmic:root\cli> process (interattivo) Esempi del modo interattivo: OS get name, locale, bootdevice OS where name=‘sun’ call shutdown /node:@MyOrg os get /all /format:htable WMIC Esempi PRODUCTS path win32_<namespace> path win32_processor get MaxClockSpeed process where (processID>300) list brief /node:"computer1","computer2“ Process Where Description="WinLogon.exe" Get VirtualSize /EVERY:5 SERVICE WHERE CAPTION='TELNET' CALL STARTSERVICE NICCONFIG WHERE index=1 CALL EnableStatic ("10.0.0.2"),("255.0.0.0") NICCONFIG WHERE index=1 CALL SetGateways ("10.0.0.8","10.0.0.9"),(1,2) WMIC: un esempio complesso NTEVENT WHERE "eventtype<3 AND logfile='Application'" GET Logfile, SourceName, Eventtype, Message, TimeGenerated /FORMAT:"htablesortby.xsl":"datatype=number":"sortby=E ventType" > c:\applicationlogs.htm Automatizzazione di WMIC WMIC /NODE:@"c:\MyServerList.txt" SERVICE WHERE caption= “telnet" CALL ChangeStartMode "Disabled" Server1 Server2 Server3 Server4 Server5 Server6 Server7 Server8 Server9 ………. MyServerList.txt