MSG 334 Creating Exchange Administrative Scripting for the Non-Programmer Susan Hill Lead Programmer...
-
Upload
vanessa-martin -
Category
Documents
-
view
228 -
download
0
description
Transcript of MSG 334 Creating Exchange Administrative Scripting for the Non-Programmer Susan Hill Lead Programmer...
MSG 334Creating Exchange Administrative Scripting for the Non-Programmer Susan HillLead Programmer WriterMicrosoft Corporation
Agenda
Overview of WMIArchitectureKey Features
Code SamplesWMI in Exchange Server 2003
Windows Management Instrumentation (WMI)
Microsoft’s implementation of WBEM Uniform access to management information Most Exchange 2003 monitoring is done through WMI
Overview Of WMI
Based on Distributed Management Task Force Standards – CIM, WBEM Designed to reduce TCO of Windows Systems Extensible, object-oriented APIEnables system-wide and application-level observation and control
Consistent schema, queries, methods, events, and API
WMI Architecture
WMIWMI
ConsumersConsumers
RegistryRegistry PerformancePerformanceCountersCounters
Other WMI Other WMI ProvidersProvidersExchangeExchange DirectoryDirectory
Windows Windows Management Management
InstrumentationInstrumentationServiceService
How WMI Works in Exchange 2003 Server
Consumer calls a WMI serviceService authenticates the clientService passes call to the Exchange providerProvider queries the system for the information Provider returns information back to client
Key Features of WMI
API accessible from multiple programming languagesRemote administration Discoverability and navigation Query capability Event publication and subscription
Multiple Languages
C++Visual BasicJScriptVBScriptC#Perl …
Remote Administration
No different than local administrationAllows for enterprise management from a single computer
Discoverability and Navigation
Enumerate Classes Tells you what objects are available
Associations Define the relationships between classes Can be traversed
Query Capability
Data is stored in a relational database WQL – SQL-style language
Select * from ExchangeServerState where ServerState=3
Eventing
Clients subscribe for events No internal event mechanism needed Events can be “keyed” off of:
Instance Creation, Modification, Deletion
What’s New in WMI for Exchange 2003
20 new classesMessage TrackingQueue ManagementPublic Folder ManagementMailbox MAPI Table Management
Full list in the Exchange 2003 SDK on MSDN
Skeleton of a WMI program
Get the WMI locator objectGain the root interface
microsoftexchangev2Query the provider
Can use WSQL
Interpret your results
VBS – Public Folder Names
Set oLocator = CreateObject("WbemScripting.SWbemLocator")
Set oServices = oLocator.connectServer("localhost", "root\microsoftexchangev2")
Set oPFs = oServices.ExecQuery("select * from exchange_publicfolder”)
For each oPF in oPFsWScript.Echo(oPF.name)
Next
VBS – Create Public FolderSet oLocator = CreateObject("WbemScripting.SWbemLocator")Set oServices = oLocator.connectServer("localhost", "root\microsoftexchangev2")
'get the mapi folder treeset oTLHs = oServices.ExecQuery("select * from exchange_foldertree where
mapifoldertree = true")
for each oTLH in oTLHs'there is only one mapi TLHszRootFolderUrl = oTLH.RootFolderUrl
next
'create a public folder under the mapi folder treeSet oPF = oServices.Get("Exchange_PublicFolder").SpawnInstance_()oPF.Name = "WMI Public Folder"oPF.ParentFriendlyUrl = szRootFolderUrloPF.Put_
wscript.echo("done.")
VBS – Mailbox TableSet oLocator = CreateObject("WbemScripting.SWbemLocator")Set oServices = oLocator.connectServer("localhost", "root\
microsoftexchangev2")
set oLogins = oServices.ExecQuery("select * from Exchange_Logon")
for each oLogin in oLogins WScript.Echo(oLogin.LoggedOnUserAccount & " " & oLogin.ClientVersion)
Next
wscript.echo("done.")
VBS Programs Calling VBS Programs Calling WMIWMI
demodemo
JScript – Message Trackingvar oLocator = new ActiveXObject("WbemScripting.SWbemLocator");
var oServices = oLocator.connectServer("", "root\\microsoftexchangev2");
var szQuery = "select * from exchange_messagetrackingentry";
var e = new Enumerator(oServices.ExecQuery(szQuery));
var oMT = e.item();
var e = new Enumerator(oMT.Properties_);
for (; !e.atEnd(); e.moveNext())WScript.Echo (e.item().Name + " = " + e.item().Value);
JScript Program Calling JScript Program Calling WMIWMI
demodemo
C# Get Exchange DCpublic class WMICommon{
public WMICommon(){}~WMICommon(){}
public string GetDC(){ ManagementObjectSearcher searcher = new ManagementObjectSearcher(); string DCName = "";
ManagementScope scope = new ManagementScope("root\\microsoftexchangev2"); System.Management.ObjectQuery query = new System.Management.ObjectQuery("select *
from Exchange_DSAccessDC whereType = 0"); searcher.Scope = scope; searcher.Query = query;
foreach (ManagementObject configDC in searcher.Get()) { DCName = configDC["Name"].ToString(); }
searcher.Dispose();}
return DCName;
C# Program Calling WMIC# Program Calling WMI
demodemo
Additional Information
Good WMI Intro Article http://msdn.microsoft.com/library/techart/mngwmi.htm
Exchange Server 2003 WMIExchange Server 2003 SDK Documentationhttp://msdn.microsoft.com/exchange
Ask The ExpertsGet Your Questions Answered
11:00 Friday morning
Community Resources
Community Resourceshttp://www.microsoft.com/communities/default.mspx
Most Valuable Professional (MVP)http://www.mvp.support.microsoft.com/
NewsgroupsConverse online with Microsoft Newsgroups, including Worldwidehttp://www.microsoft.com/communities/newsgroups/default.mspx
User GroupsMeet and learn with your peershttp://www.microsoft.com/communities/usergroups/default.mspx
Suggested Reading And Resources
The tools you need to put technology to work!The tools you need to put technology to work!
TITLETITLE AvailableAvailable
Microsoft® Exchange Server 2003 Microsoft® Exchange Server 2003 Administrator's Companion:Administrator's Companion:0-7356-1979-40-7356-1979-4 9/24/039/24/03
Active Directory® for Microsoft® Active Directory® for Microsoft® Windows® Server 2003 Windows® Server 2003 Technical Reference:Technical Reference:0-7356-1577-20-7356-1577-2
TodayToday
Microsoft Press books are 20% off at the TechEd Bookstore
Also buy any TWO Microsoft Press books and get a FREE T-Shirt
evaluationsevaluations
© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.