View
230
Download
0
Category
Preview:
Citation preview
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 ?
per default
per default
per default
per default
WMI = Windows Management Instrumentation
Implementazione Microsoft di WBEMWMI è un’estensione di CIM
Obiettivi WMI
Gestione dell’EnterpriseControllo e configurazione di sistemi e
applicazioniImplementazione consistenteUnico punto di accesso
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
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
Modello ad Oggetti
ClassiTipi di oggetti gestitiSotto classi
ProprietàChiaveReferenze
QualificatoriIstanzeMetodi
Schema CIM
CIM_ManagedSystemElement
CIM_LogicalElement
CIM_LogicalDevice
CIM_MediaAccessDevice
CIM_CDRomDriveCIM_DiskDrive
WIN32_DiskDrive WIN32_CDRomDrive
Coreschema
Commonschema
Extensibleschema
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
Spazio dei nomi
\\Server1\Root\Cimv2:Win32_LogicalDisk.DeviceId='C:'
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
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
Properties_ Methods_Qualifiers_
Connettersi a WMI con un Locator
SERVICE
OBJECT
(SWbemLocator)
(SWbemServices)
LOCATORCreateObject( )
ConnectServer( )
Enumerate
Retrieve
SECURITY
SECURITY
SECURITY
(SWbemObject)
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
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: 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”)
System
Locator vs. Moniker
OBJECT
SERVICES
SERVICESWinMgmts:
LocatorConnectServer Credentials
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
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
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
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
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
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
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 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)
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()
Modifica dei valori delle proprietà
Uso del metodo Put_Win32_LogicalDisk.DriveID=‘C’
Properties DescriptionFileSystem
SizeFreeSpace
VolumeNameMethods
ResetSetPowerState
Get
Put_
In memoria
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_
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*.*, …)
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: wmi@microsoft.com
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
Pubblicazioni 2
Altri articoli:http://www.winnetmag.com
http://www.winscriptingsolutions.com
http://www.exchangeadmin.com
http://www.lissware.net
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
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.
Recommended