35
Scripting WMI per la gestione dei sistemi Windows Server 2003

Scripting WMI per la gestione dei sistemi Windows Server 2003

Embed Size (px)

Citation preview

Page 1: Scripting WMI per la gestione dei sistemi Windows Server 2003

Scripting WMI per la gestione dei sistemi Windows Server 2003

Page 2: Scripting WMI per la gestione dei sistemi Windows Server 2003

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

Page 4: Scripting WMI per la gestione dei sistemi Windows Server 2003

Obiettivi WMI

Gestione dell’EnterpriseControllo e configurazione di sistemi e

applicazioniImplementazione consistenteUnico punto di accesso

Page 5: Scripting WMI per la gestione dei sistemi Windows Server 2003

Modello dati e Schema CIM

Sistema Operativo

WMI

System

Policy

Device

NetworkSupport

User

Apps

Physical

Core Schema

V2.0

V2.0

V2.0V2.0

V2.1

V2.2

V2.3

V2.3

V2.4

Account Utenti

Processi

Event Log

Impostazioni

Computer

Configurazione di Boot

MemoriaFile System

Page 6: Scripting WMI per la gestione dei sistemi Windows Server 2003

Architettura di WMI

Databaseapplication

Databaseapplication Web

Browser

WebBrowser C/C++

application

C/C++application

ActiveXControls

ActiveXControlsODBC

ODBC

WMI COM APIWMI COM API

ManagementApplications Scripts

Scripts

1.NET Framework

.NET Framework

System.ManagementSystem.Management

.NET Client Applications.NET Client Applications

System.Management.Instrumentation

System.Management.Instrumentation

Windows FormsWeb Forms

Instrumented ApplicationsInstrumented Applications

Windows FormsWeb Forms

CIMRepository

CIMRepository CIM Object Manager

(CIMOM)

CIM Object Manager(CIMOM)

ManagementInstrumentation

COM/DCOM

2

SNMPProvider

SNMPProvider Win32

Provider

Win32Provider Registry

Provider

RegistryProvider

Win32Objects

Win32ObjectsSNMP

Objects

SNMPObjects Registry

Objects

RegistryObjects

Providers

ManagedObjects

WDMProvider

WDMProvider

WDM Driver

WDM Driver

COM/DCOM

3

Page 7: Scripting WMI per la gestione dei sistemi Windows Server 2003

Modello ad Oggetti

ClassiTipi di oggetti gestitiSotto classi

ProprietàChiaveReferenze

QualificatoriIstanzeMetodi

Page 8: Scripting WMI per la gestione dei sistemi Windows Server 2003

Schema CIM

CIM_ManagedSystemElement

CIM_LogicalElement

CIM_LogicalDevice

CIM_MediaAccessDevice

CIM_CDRomDriveCIM_DiskDrive

WIN32_DiskDrive WIN32_CDRomDrive

Coreschema

Commonschema

Extensibleschema

Page 9: Scripting WMI per la gestione dei sistemi Windows Server 2003

Various Windows components

Management and monitoring (events)

Windows Applications

Exchange SQLOffice MOMSMS

Windows NT 4.0: ± 15 WMI providersWindows 2000: ±29 WMI providersWindows Server 2003: ± 84 WMI Providers

NT Event Logs

Disk Quota

Windows Clock

Registry

Power ManagementDFS

AD replication

Trust monitoring

Server Session

Ping

IP RoutingSNMP

Network Load Balancing

High Performance Data AccessSecurity

Terminal Server

Cluster

IIS

RSOPMSI Event Consumers

Operating System

VSS

WMI Provider

Page 10: Scripting WMI per la gestione dei sistemi Windows Server 2003

Spazio dei nomi

\\Server1\Root\Cimv2:Win32_LogicalDisk.DeviceId='C:'

Page 11: Scripting WMI per la gestione dei sistemi Windows Server 2003

Relazione tra WMI e ADTop

Person

organizationalPerson

user

inetOrgPerson

ds_Top

ds_Person

ds_organizationalPerson

ads_user

ads_inetOrgPerson

ds_inetOrgPersonds_user

abstract

non-abstract/structural

Page 12: Scripting WMI per la gestione dei sistemi Windows Server 2003

WMI Buone Pratiche1. 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

Page 13: Scripting WMI per la gestione dei sistemi Windows Server 2003

Properties_ Methods_Qualifiers_

Connettersi a WMI con un Locator

SERVICE

OBJECT

(SWbemLocator)

(SWbemServices)

LOCATORCreateObject( )

ConnectServer( )

Enumerate

Retrieve

SECURITY

SECURITY

SECURITY

(SWbemObject)

Page 14: Scripting WMI per la gestione dei sistemi Windows Server 2003

Properties_ Methods_Qualifiers_

Connettersi a WMI con un Locator

SERVICE

OBJECT

(SWbemLocator)

(SWbemServices)

LOCATORCreateObject( )

ConnectServer( )

Enumerate

Retrieve

SECURITY

SECURITY

SECURITY

(SWbemObject)

Set objLocator = CreateObject("wbemscripting.SwbemLocator")Set objSvc = objLocator.ConnectServer()Set objDisk_C = objSvc.Get("Win32_LogicalDisk.DeviceID=’C:’")freeSpace = objdisk_C.freeSpaceWscript.echo "The Free Space on C: is " & freeSpace

Page 15: Scripting WMI per la gestione dei sistemi Windows Server 2003

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:’")

Page 16: Scripting WMI per la gestione dei sistemi Windows Server 2003

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”)

Page 17: Scripting WMI per la gestione dei sistemi Windows Server 2003

System

Locator vs. Moniker

OBJECT

SERVICES

SERVICESWinMgmts:

LocatorConnectServer Credentials

Page 18: Scripting WMI per la gestione dei sistemi Windows Server 2003

System

Locator vs. Moniker

OBJECT

SERVICES

SERVICESWinMgmts:

LocatorConnectServer Credentials

Set objLocator = CreateObject("wbemscripting.SwbemLocator")Set objSvc = objLocator.ConnectServer()Set objDisk_C = objSvc.Get("Win32_LogicalDisk.DeviceID=’C:’")freeSpace = objdisk_C.freeSpaceWscript.echo "The Free Space on C: is " & freeSpace

Page 19: Scripting WMI per la gestione dei sistemi Windows Server 2003

System

Locator vs. Moniker

OBJECT

SERVICES

SERVICESWinMgmts:

LocatorConnectServer Credentials

Set objDisk_C = _GetObject("WinMgmts:Win32_LogicalDisk.DeviceID=’C:’")freeSpace = objdisk_C.freeSpaceWscript.echo "The Free Space on C: is " & freeSpace

Page 20: Scripting WMI per la gestione dei sistemi Windows Server 2003

System

Locator vs. Moniker

OBJECT

SERVICES

SERVICESWinMgmts:

LocatorConnectServer 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.freeSpaceWscript.echo "The Free Space on C: is " & freeSpace

Page 21: Scripting WMI per la gestione dei sistemi Windows Server 2003

Uso dell’oggetto SWbemServices

Oggetto chiave per acedere alle funzionalità di WMIobjSvc = GetObject(“WinMgmts:”)

Proprietà Istanze

Set obj = objSvc.Get("Win32_process.handle=764")

ClassiSet obj = objSvc.Get("Win32_process")Result = obj.Create("calc.exe", null, null, processID)

Metodi

SystemSystemSystemSystemSystemSystemSystem

Applicazioni di gestionePer esempio, Script

Page 22: Scripting WMI per la gestione dei sistemi Windows Server 2003

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

Page 23: Scripting WMI per la gestione dei sistemi Windows Server 2003

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

Page 24: Scripting WMI per la gestione dei sistemi Windows Server 2003

Uso di proprietà e metodi

Scenario: gestione dei client DHCP Metodo EnableStatic Metodo EnableDHCP

Metodi Get e InstancesOf

Page 25: Scripting WMI per la gestione dei sistemi Windows Server 2003

Uso di proprietà e metodi

Scenario: gestione dei client DHCP Metodo EnableStatic Metodo EnableDHCP

Metodi Get e InstancesOfSet 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)

Page 26: Scripting WMI per la gestione dei sistemi Windows Server 2003

Uso di proprietà e metodi

Scenario: gestione dei client DHCP Metodo EnableStatic Metodo EnableDHCP

Metodi Get e InstancesOfSet objSvc = GetObject("WinMgmts:")

Set obj = objSvc.Get _

("Win32_NetworkAdapterConfiguration.index=0")

RetVal = obj.EnableDHCP()

Page 27: Scripting WMI per la gestione dei sistemi Windows Server 2003

Modifica dei valori delle proprietà

Uso del metodo Put_Win32_LogicalDisk.DriveID=‘C’

Properties DescriptionFileSystem

SizeFreeSpace

VolumeNameMethods

ResetSetPowerState

Get

Put_

In memoria

Page 28: Scripting WMI per la gestione dei sistemi Windows Server 2003

Modifica dei valori delle proprietà

Uso del metodo Put_Win32_LogicalDisk.DriveID=‘C’

Properties DescriptionFileSystem

SizeFreeSpace

VolumeNameMethods

ResetSetPowerState

Get

Put_

In memoriaSet objSvc = GetObject("WinMgmts:")Set obj = objSvc.Get("Win32_LogicalDisk.DeviceId=’C:’")obj.VolumeName="System"obj.Put_

Page 29: Scripting WMI per la gestione dei sistemi Windows Server 2003

Microsoft TechNet

Esempi di WMI :TechNet Script Center:

http://www.microsoft.com/technet/scriptcenterServono maggiori informazioni sui tool di

Windows Server 2003?hh.exe %SystemRoot%\System32\

NTCmds.chm(DS*.*, Event*.* BootCfg.*, Prn*.*, …)

Page 30: Scripting WMI per la gestione dei sistemi Windows Server 2003

Microsoft MSDN

Microsoft WMI MSDN Library (SDK)http://msdn.microsoft.com/library/en-us/wmisdk/

wmi/wmi_start_page.asp

Management Community Forumhttp://www.microsoft.com/windows.netserver/community/

centers/management/default.asp

Email: [email protected]

Page 31: Scripting WMI per la gestione dei sistemi Windows Server 2003

Publicazioni 1WSH / ADSI / CDO / WMI Compaq Active Answers

White Papers on Windows 2000 & Exchange 2000http://www.LissWare.net (in basso nella pagina)

Secure Script Execution with WSH 5.6http://www.winscriptingsolutions.com/Articles/Index.cfm?ArticleID=25644

Security Changes in Windows Server 2003 WMIhttp://www.winscriptingsolutions.com/Articles/Index.cfm?ArticleID=40512

Using WMI to Manage AD Replication in Windows Server 2003http://www.winscriptingsolutions.com/Articles/Index.cfm?ArticleID=40881

Using WMI to Monitor Trust Status in Windows Server 2003http://www.winscriptingsolutions.com/Articles/Index.cfm?ArticleID=41196

Page 32: Scripting WMI per la gestione dei sistemi Windows Server 2003

Pubblicazioni 2

Altri articoli:http://www.winnetmag.com

http://www.winscriptingsolutions.com

http://www.exchangeadmin.com

http://www.lissware.net

Page 33: Scripting WMI per la gestione dei sistemi Windows Server 2003

Understanding WMI Scripting (Volume 1) ISBN 1555582664 – Digital Press

(Alain Lissoir – Hewlett Packard)

Maggiori info su http://www.LissWare.Net

Leveraging WMI Scripting (Volume 2) ISBN 1555582990 – Digital Press

(Alain Lissoir – Hewlett Packard)

Maggiori info su http://www.LissWare.Net

Libri su WMI per Windows Server 2003

Page 34: Scripting WMI per la gestione dei sistemi Windows Server 2003

Community Microsoft Community Resources

http://www.microsoft.com/communities/default.mspx Non-Microsoft Community Resources

http://www.microsoft.com/communities/related/default.mspx Newsgroups

http://www.microsoft.com/communities/newsgroups/default.mspx User Groups

http://www.microsoft.com/communities/usergroups/default.mspx Chat libera

http://www.microsoft.com/communities/chats/default.mspx Webcast

http://www.microsoft.com/usa/webcasts/default.asp Most Valuable Professional (MVP)

http://mvp.support.microsoft.com/

Page 35: Scripting WMI per la gestione dei sistemi Windows Server 2003

© 2003-2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.