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
Cos’è WMI ?
WMI = Windows Management
Instrumentation
Implementazione Microsoft di WBEM
WMI è un’estensione di CIM
per default
per default
per default
per default
Obiettivi WMI
Gestione dell’Enterprise
Controllo e configurazione di sistemi e
applicazioni
Implementazione consistente
Unico punto di accesso
Modello dati e Schema CIM
V2.0
WMI
Memoria
V2.3
File System

Impostazioni
System
V2.0
Computer
V2.4
Apps
Core
Schema
Device
V2.0
V2.0
Processi
V2.3
Configurazione di Boot
V2.2
Sistema Operativo
V2.1
Event Log
Account Utenti
.NET Client Applications
Architettura di WMI
Management
Applications
1
Database
application
Web
Browser
ODBC
ActiveX
Controls
C/C++
application
Windows Forms Web Forms
Scripts
System.Management
.NET Framework
WMI COM API
COM/DCOM
Management
Instrumentation
CIM
Repository
CIM Object Manager
(CIMOM)
2
.NET Framework
COM/DCOM
Providers
Managed
Objects
3
SNMP
Provider
Win32
Provider
Registry
Provider
WDM
Provider
SNMP
Objects
Win32
Objects
Registry
Objects
WDM
Driver
System.Management
.Instrumentation
Instrumented Applications
Windows Forms Web Forms
Modello ad Oggetti
Classi
 Tipi di oggetti gestiti
 Sotto classi
Proprietà
 Chiave
 Referenze
Qualificatori
Istanze
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
WMI Provider
Windows NT 4.0: ± 15 WMI providers
Windows 2000: ±29 WMI providers
Windows Server 2003: ± 84 WMI Providers
Various Windows components
DFS
Power Management
Terminal Server
Cluster
Server Session
NT Event Logs
IIS
Windows Clock
Operating System
AD replication
Ping
Disk Quota
SNMP
Trust monitoring
Registry
VSS
IP Routing
RSOP
Event Consumers
MSI
Windows Applications
Exchange
Office
Security
SQL
SMS
Management and monitoring (events)
Network Load Balancing
High Performance Data Access
MOM
Spazio dei nomi
\\Server1\Root\Cimv2:Win32_LogicalDisk.DeviceId='C:'
Relazione tra WMI e AD
Top
ds_Top
abstract
Person
non-abstract/structural
ds_Person
organizationalPerson
ds_organizationalPerson
user
ads_user
inetOrgPerson
ads_inetOrgPerson
ds_user
ds_inetOrgPerson
WMI Buone Pratiche
1.
2.
3.
4.
5.
6.
7.
Capire le tecniche di Scripting!!
Capire il modello CIM
Quando ci si connette ad un repository CIM remoto:
1. Nessuna credenziale nel codice
2. Usare il contesto di sicurezza corrente o chiedere
credenziali
Usare WMI CIM Studio per scoprire quali sono i provider
e funzionalità utili
Evitare le tecniche asincrone:
1. Se si decide di usarle: implementare il meccanismo di
lockdown di Windows Server 2003
Appoggiarsi alle capacità di WQL quando possibile
Implementare la gestione degli errori
Connettersi a WMI con un Locator
(SWbemLocator)
CreateObject( )
LOCATOR
SECURITY
(SWbemServices)
ConnectServer( )
SERVICE
SECURITY
(SWbemObject)
Enumerate
Retrieve
OBJECT
Properties_
Qualifiers_
SECURITY
Methods_
Connettersi a WMI con un Locator
(SWbemLocator)
CreateObject( )
LOCATOR
SECURITY
(SWbemServices)
Set objLocator = CreateObject("wbemscripting.SwbemLocator")
SECURITY
SERVICE
Set objSvc
= objLocator.ConnectServer()
ConnectServer(
)
Set objDisk_C = objSvc.Get("Win32_LogicalDisk.DeviceID=’C:’")
freeSpace = objdisk_C.freeSpace
(SWbemObject)
Wscript.echo "The Free Space on C: is " & freeSpace
Enumerate
Retrieve
OBJECT
Properties_
Qualifiers_
SECURITY
Methods_
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:’
")
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:
GetObject(“WinMgmts:{impersonationLevel=impersonate}[locale=ms_409]!
 Impostazioni di Win32_LogicalDisk”)
sicurezza:
//Instructor/root/cimv2:
 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:’
")
Locator vs. Moniker
SERVICES
Locator
ConnectServer
Credentials
SERVICES
WinMgmts:
OBJECT
System
Locator vs. Moniker
SERVICES
Locator
ConnectServer
Credentials
SERVICES
Set objLocator = CreateObject("wbemscripting.SwbemLocator")
WinMgmts:
Set objSvc = objLocator.ConnectServer()
Set objDisk_C
= objSvc.Get("Win32_LogicalDisk.DeviceID=’C:’")
OBJECT
freeSpace = objdisk_C.freeSpace
Wscript.echo "The Free Space on C: is " & freeSpace
System
Locator vs. Moniker
Set objDisk_C = _
GetObject("WinMgmts:Win32_LogicalDisk.DeviceID=’C:’")
Locator
freeSpace = SERVICES
objdisk_C.freeSpace
Credentials
ConnectServer
Wscript.echo "The Free Space on C: is " & freeSpace
SERVICES
WinMgmts:
OBJECT
System
Locator vs. Moniker
SERVICES
Locator
ConnectServer
Credentials
SERVICES
Set objLocator = CreateObject("wbemscripting.SwbemLocator")
WinMgmts:
Set objSvc = _
objLocator.ConnectServer("Server1",,"sysAdmin","password",,,)
OBJECT
Set objDisk_C = objSvc.Get("Win32_LogicalDisk.DeviceID=’C:’")
freeSpace = objdisk_C.freeSpace
Wscript.echo "The Free Space on C: is " & freeSpace
System
Uso dell’oggetto SWbemServices
Applicazioni di gestione
Per esempio, Script
System
System
System
System
System
System
System
 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
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
Uso di proprietà e metodi
 Scenario Installazione di software
Set objSvc = GetObject("winmgmts:\\Server1")
1. Verica della quantità di RAM
Set obj = objSvc.Get("Win32_computerSystem.name=.Server1.")
If obj.TotalPhysicalMemory
> 267952128 Then

Win32_computerSystem
WScript.Echo “Devono esserci almeno 256 MB di RAM”
WSCript.Quit
Else
Set objProduct = objSvc.Get("Win32_Product")
VLocationPath = "C:\source\scriptApp.msi"
 Win32_Product
retVal = objProduct.Install(VLocationPath)
End If
2. Installazione di un pacchetto Windows
Installer
Uso di proprietà e metodi
 Scenario: gestione dei client DHCP
 Metodo EnableStatic
 Metodo EnableDHCP
 Metodi Get e InstancesOf
Uso di proprietà e metodi
 Scenario: gestione dei client DHCP
Set
 Metodo EnableStatic
objSvc= Metodo
GetObject("WinMgmts:")
EnableDHCP
 Metodi Get e InstancesOf
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)
Uso di proprietà e metodi
 Scenario: gestione dei client DHCP
 Metodo EnableStatic
 Metodo EnableDHCP
Set objSvc = GetObject("WinMgmts:")
 Metodi Get e InstancesOf
Set obj = objSvc.Get _
("Win32_NetworkAdapterConfiguration.index=0")
RetVal = obj.EnableDHCP()
Modifica dei valori delle proprietà
Uso del metodo Put_
Win32_LogicalDisk.DriveID=‘C’
In memoria
Properties Description
FileSystem
Size
FreeSpace
VolumeName
Methods
Reset
SetPowerState
Get
Put_
Modifica dei valori delle proprietà
Uso del metodo Put_
Win32_LogicalDisk.DriveID=‘C’
Properties Description
Set objSvc = GetObject("WinMgmts:")
FileSystem
Set obj = objSvc.Get("Win32_LogicalDisk.DeviceId=’C:’")
Size
obj.VolumeName="System"
FreeSpace
obj.Put_
VolumeName
In memoria
Methods
Reset
SetPowerState
Get
Put_
Microsoft TechNet
Esempi di WMI :
TechNet Script Center:
http://www.microsoft.com/technet/scriptcenter
Servono maggiori informazioni sui tool di
Windows Server 2003?
hh.exe
%SystemRoot%\System32\NTCmds.chm
(DS*.*, Event*.* BootCfg.*, Prn*.*, …)
Microsoft MSDN
Microsoft WMI MSDN Library (SDK)
http://msdn.microsoft.com/library/enus/wmisdk/wmi/wmi_start_page.asp
Management Community Forum
http://www.microsoft.com/windows.netserver/community/cent
ers/management/default.asp
Email: [email protected]
Publicazioni 1
WSH / ADSI / CDO / WMI Compaq Active Answers
White Papers on Windows 2000 & Exchange 2000
http://www.LissWare.net (in basso nella pagina)
Secure Script Execution with WSH 5.6
http://www.winscriptingsolutions.com/Articles/Index.cfm?ArticleID=25644
Security Changes in Windows Server 2003 WMI
http://www.winscriptingsolutions.com/Articles/Index.cfm?ArticleID=40512
Using WMI to Manage AD Replication in Windows
Server 2003
http://www.winscriptingsolutions.com/Articles/Index.cfm?ArticleID=40881
Using WMI to Monitor Trust Status in Windows
Server 2003
http://www.winscriptingsolutions.com/Articles/Index.cfm?ArticleID=41196
Pubblicazioni 2
Altri articoli:
http://www.winnetmag.com
http://www.winscriptingsolutions.com
http://www.exchangeadmin.com
http://www.lissware.net
Libri su WMI per 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
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/
© 2003-2004 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Scarica

Scripting WMI per la gestione dei sistemi