Click here to load reader

Scripting WMI per la gestione dei sistemi Windows Server 2003

  • View
    220

  • Download
    0

Embed Size (px)

Text of Scripting WMI per la gestione dei sistemi Windows Server 2003

  • Slide 1
  • Scripting WMI per la gestione dei sistemi Windows Server 2003
  • Slide 2
  • Agenda Revisione di WMI Cos WMI? Modello dati e Schema CIM Architettura Funzioni WMI Buone Pratiche Accesso agli oggetti di sistema con WMI Demo Risorse
  • Slide 3
  • Cos WMI ? per default WMI = Windows Management Instrumentation Implementazione Microsoft di WBEM WMI unestensione di CIM
  • Slide 4
  • Obiettivi WMI Gestione dellEnterprise Controllo e configurazione di sistemi e applicazioni Implementazione consistente Unico punto di accesso
  • Slide 5
  • Modello dati e Schema CIM Sistema Operativo WMI System Policy Device Network Support User Apps Physical Core Schema V2.0 V2.1 V2.2 V2.3 V2.4 Account Utenti Processi Event Log Impostazioni Computer Configurazione di Boot Memoria File System
  • Slide 6
  • Architettura di WMI Database application Database application Web Browser Web Browser C/C++ application C/C++ application ActiveX Controls ActiveX Controls ODBC WMI COM API Management Applications Scripts 1.NET Framework System.Management.NET Client Applications System.Management.Instrumentation System.Management.Instrumentation Windows FormsWeb Forms Instrumented Applications Windows FormsWeb Forms CIM Repository CIM Repository CIM Object Manager (CIMOM) CIM Object Manager (CIMOM) Management Instrumentation COM/DCOM 2 SNMP Provider SNMP Provider Win32 Provider Win32 Provider Registry Provider Registry Provider Win32 Objects Win32 Objects SNMP Objects SNMP Objects Registry Objects Registry Objects Providers Managed Objects WDM Provider WDM Provider WDM Driver WDM Driver COM/DCOM 3
  • Slide 7
  • Il Common Information Model Il modello ad oggetti Gli schema CIM Gli spazi dei nomi I Provider WMI Provider Standard WMI MOF
  • Slide 8
  • Modello ad Oggetti Classi Tipi di oggetti gestiti Sotto classi Propriet Chiave Referenze Qualificatori Istanze Metodi
  • Slide 9
  • Schema CIM CIM_ManagedSystemElement CIM_LogicalElement CIM_LogicalDevice CIM_MediaAccessDevice CIM_CDRomDriveCIM_DiskDrive WIN32_DiskDriveWIN32_CDRomDrive Core schema Common schema Extensible schema
  • Slide 10
  • Various Windows components Management and monitoring (events) Windows Applications ExchangeSQLOfficeMOMSMS Windows NT 4.0: 15 WMI providers Windows 2000: 29 WMI providers Windows Server 2003: 84 WMI Providers NT Event Logs Disk Quota Windows Clock Registry Power Management DFS AD replication Trust monitoring Server Session Ping IP Routing SNMP Network Load Balancing High Performance Data AccessSecurity Terminal Server Cluster IIS RSOP MSI Event Consumers Operating System VSS WMI Provider
  • Slide 11
  • Spazio dei nomi \\Server1\Root\Cimv2:Win32_LogicalDisk.DeviceId='C:'
  • Slide 12
  • Relazione tra WMI e AD Top Person organizationalPerson user inetOrgPerson ds_Top ds_Person ds_organizationalPerson ads_user ads_inetOrgPerson ds_inetOrgPerson ds_user abstract non-abstract/structural
  • Slide 13
  • WMI Buone Pratiche 1.Capire le tecniche di Scripting!! 2.Capire il modello CIM 3.Quando ci si connette ad un repository CIM remoto: 1.Nessuna credenziale nel codice 2.Usare il contesto di sicurezza corrente o chiedere credenziali 4.Usare WMI CIM Studio per scoprire quali sono i provider e funzionalit utili 5.Evitare le tecniche asincrone: 1.Se si decide di usarle: implementare il meccanismo di lockdown di Windows Server 2003 6.Appoggiarsi alle capacit di WQL quando possibile 7.Implementare la gestione degli errori
  • Slide 14
  • Uso delle API SWbem Il modello ad oggetti dello scripting SWbemObject, SWbemLocator, SWbemService Le Collection Propriet ( objVolume.DefragAnalysis ) e Metodi ( objVolume.Caption ) Array di Propriet objVolume.DefragAnalysis(blnRecommended, objReport) If blnRecommended = True Then Wscript.Echo "This volume should be defragged." Else Wscript.Echo _ "This volume does not need to be defragged." End IfFor Each objVolume in colVolumes Next If isArray(obj.IPAddress) Then For i = 0 to Ubound(obj.IPAddress,1) strResult = strResult & " IP: " & obj.Ipaddress(i) & vbcrlf Next Else strResult = strResult & obj.IPAddress & vbcrlf End If Wscript.Echo strResult
  • Slide 15
  • Properties_Methods_Qualifiers_ Connettersi a WMI con un Locator SERVICE OBJECT (SWbemLocator) (SWbemServices) LOCATOR CreateObject( ) ConnectServer( ) Enumerate Retrieve SECURITY (SWbemObject)
  • Slide 16
  • Properties_Methods_Qualifiers_ Connettersi a WMI con un Locator SERVICE OBJECT (SWbemLocator) (SWbemServices) LOCATOR CreateObject( ) ConnectServer( ) Enumerate Retrieve SECURITY (SWbemObject) Set objLocator = CreateObject("wbemscripting.SwbemLocator") Set objSvc = objLocator.ConnectServer() Set objDisk_C = objSvc.Get("Win32_LogicalDisk.DeviceID=C:") freeSpace = objdisk_C.freeSpace Wscript.echo "The Free Space on C: is " & freeSpace
  • Slide 17
  • Connetersi a WMI con un Moniker Un Moniker un concetto COM che nasconde la complessit di connessione agli oggetti COM WMI usa il prefisso WinMgmts : Un moniker WMI deve contenere: WinMgmts: Impostazioni di sicurezza: Opzionali Racchiuse tra parentesi grafe Set objSvc = GetObject("WinMgmts:{impersonationLevel=impersonate}") Impostazioni relative alla lingua: Opzionali Racchiuse tra parentesi quadre 2 Per definire un server/servizio/oggetto Set objLogicalDisk = GetObject("WinMgmts:Win32_LogicalDisk.DeviceId=C: ")
  • Slide 18
  • Connetersi a WMI con un Moniker Un Moniker un concetto COM che nasconde la complessit di connessione agli oggetti com WMI usa il prefisso WinMgmts : Un moniker WMI deve contenere: WinMgmts: Impostazioni di sicurezza: Opzionali Racchiuse tra parentesi grafe Set objSvc = GetObject("WinMgmts:{impersonationLevel=impersonate}") Impostazioni relative alla lingua: Opzionali Racchiuse tra parentesi quadre 2 Per definire un server/servizio/oggetto Set objLogicalDisk = GetObject("WinMgmts:Win32_LogicalDisk.DeviceId=C: ") GetObject(WinMgmts:{impersonationLevel=impersonate}[locale=ms_409]! //Instructor/root/cimv2: Win32_LogicalDisk)
  • Slide 19
  • System Locator vs. Moniker OBJECT SERVICES WinMgmts: Locator ConnectServer Credentials
  • Slide 20
  • System Locator vs. Moniker OBJECT SERVICES WinMgmts: Locator ConnectServer Credentials Set objLocator = CreateObject("wbemscripting.SwbemLocator") Set objSvc = objLocator.ConnectServer() Set objDisk_C = objSvc.Get("Win32_LogicalDisk.DeviceID=C:") freeSpace = objdisk_C.freeSpace Wscript.echo "The Free Space on C: is " & freeSpace
  • Slide 21
  • System Locator vs. Moniker OBJECT SERVICES WinMgmts: Locator ConnectServer Credentials Set objDisk_C = _ GetObject("WinMgmts:Win32_LogicalDisk.DeviceID=C:") freeSpace = objdisk_C.freeSpace Wscript.echo "The Free Space on C: is " & freeSpace
  • Slide 22
  • System Locator vs. Moniker OBJECT SERVICES WinMgmts: Locator ConnectServer Credentials Set objLocator = CreateObject("wbemscripting.SwbemLocator") Set objSvc = _ objLocator.ConnectServer("Server1",,"sysAdmin","password",,,) Set objDisk_C = objSvc.Get("Win32_LogicalDisk.DeviceID=C:") freeSpace = objdisk_C.freeSpace Wscript.echo "The Free Space on C: is " & freeSpace
  • Slide 23
  • Uso delloggetto SWbemServices Oggetto chiave per acedere alle funzionalit di WMI objSvc = GetObject(WinMgmts:) Propriet Istanze Set obj = objSvc.Get("Win32_process.handle=764") Classi Set obj = objSvc.Get("Win32_process") Result = obj.Create("calc.exe", null, null, processID) Metodi System Applicazioni di gestione Per esempio, Script
  • Slide 24
  • Uso di propriet e metodi Scenario installazione di software 1.Verifica della quantit di RAM Win32_computerSystem 2.Installazione di un pacchetto Windows Installer Win32_Product
  • Slide 25 267952128 Then WScript.Echo Devono esserci almeno 256 MB di RAM WSCript.Quit Else Set objProduct = objSvc.Get("Win32_Product") VLocationPath = "C:\source\scriptApp.msi" retVal = objProduct.Install(VLocationPath) End If">
  • Uso di propriet e metodi Scenario Installazione di software 1.Verica della quantit di RAM Win32_computerSystem 2.Installazione di un pacchetto Windows Installer Win32_Product Set objSvc = GetObject("winmgmts:\\Server1") Set obj = objSvc.Get("Win32_computerSystem.name=.Server1.") If obj.TotalPhysicalMemory > 267952128 Then WScript.Echo Devono esserci almeno 256 MB di RAM WSCript.Quit Else Set objProduct = objSvc.Get("Win32_Product") VLocationPath = "C:\source\scriptApp.msi" retVal = objProduct.Install(VLocationPath) End If
  • Slide 26
  • Uso di propriet e metodi Scenario: gestione dei client DHCP Metodo EnableStatic Metodo EnableDHCP Metodi Get e InstancesOf
  • Slide 27
  • Uso di propriet e metodi Scenario: gestione dei client DHCP Metodo EnableStatic Metodo EnableDHCP Metodi Get e InstancesOf Set objSvc = GetObject("WinMgmts:") Set obj = objSvc.Get("Win32_NetworkAdapterConfiguration.index=0") ipaddr = Array("192.168.30.25") subnet = Array("255.255.255.0") RetVal = obj.EnableStatic(ipaddr,subnet)
  • Slide 28
  • Uso di propriet e metodi Scenario: gestione dei client DHCP Metodo EnableStatic Metodo EnableDHCP Metodi Get e InstancesOf Set objSvc = GetObject("WinMgmts:") Set obj = objSvc.Get _ ("Win32_NetworkAdapterConfiguration.index=0") RetVal = obj.EnableD