License Agreement

[This is preliminary documentation and subject to change.]

This is a legal agreement ("Agreement") between you (either an individual or an entity), the end user, and Microsoft Corporation. By installing, copying, or otherwise using the Product (as defined below), you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not install, copy, or use the Product, and promptly return the disks and any accompanying items (including written materials and binders or other containers, if any) to Microsoft Corporation.

MICROSOFT LICENSE AGREEMENT

for a Pre-Release Copy of

Microsoft SMS Provider
Documentation

© 1997 Microsoft Corporation. All rights reserved.

  1. GRANT OF LICENSE.

    (a) Microsoft grants you ("Recipient") a limited, nonexclusive, nontransferrable, royalty-free license to make and use an unlimited number of copies of the software accompanying this agreement ("Product") to be installed on an unlimited number of CPUs residing on Recipient's premises, solely for Recipient's internal testing and development. The total number of individual users with access to the Product shall be unlimited. All other rights are reserved to Microsoft. Recipient shall not rent, lease, sell, sublicense, assign, or otherwise transfer the Product or any accompanying printed materials ("Documentation"). Recipient may not reverse engineer, decompile the Product, except to the extent that the foregoing restriction is expressly prohibited by local law. Microsoft and its suppliers shall retain title and all ownership rights to the product, and this Agreement shall not be construed in any manner as transferring any rights of ownership or license to the Product or to the features or information therein, except as specifically stated herein.

    (b) Recipient agrees to provide reasonable feedback to Microsoft, including but not limited to usability, bug reports, and test results, with respect to the Product testing and development use. Recipient will use reasonable efforts to review and comment on all documentation supplied. All bug reports, test results, and other feedback made by Recipient shall be the property of Microsoft and may be used by Microsoft for any purpose it sees fit. Due to the nature of the development work, Microsoft is not certain as to when errors or discrepancies in the Products may be corrected.

    (c) Recipient may disclose the Product only to its employees who have a need to know and have access to the Product in order to assist in Recipient's testing and development use of the Product, provided that (1) such employee's use of the Product takes place solely at Recipient's site and (2) Recipient has executed appropriate written agreements with such employees sufficient to enable it to comply with the terms of this Agreement. Upon Microsoft's request, Recipient shall provide to Microsoft a list of all employees granted access to the Product hereunder.

  2. TERM OF AGREEMENT. The term of this Agreement shall commence on the date you accept this Agreement and shall continue unless terminated by Microsoft in writing at any time, with or without cause. This Agreement will terminate without notice upon the commercial release of the Product. Upon the termination of this Agreement, Recipient shall promptly return to Microsoft, or certify destruction of, all full or partial copies of such product and related materials provided by Microsoft.
  3. COST OF TESTING. There is no charge to Recipient for testing and development use of the Product. Microsoft shall bear all transportation expenses relating to the shipment of the Product to Recipient's place of business. If the Product is returned by Recipient, Recipient will pay the return transportation expense.
  4. PRODUCT MAINTENANCE. Microsoft is not obligated to provide maintenance or updates to Recipient for Product licensed under this Agreement. In no event shall Microsoft be obligated to provide Recipient, free of charge, a copy of the commercial release version of the Product in connection with Recipient's participation in the testing and development program.
  5. DISCLAIMER OF WARRANTY. Product is deemed accepted by Recipient. The Product constitutes prerelease code and may be changed substantially before the first commercial release. The PRODUCT is provided "AS IS" WITHOUT WARRANTY OF ANY KIND. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT FURTHER DISCLAIMS ALL WARRANTIES, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE OR PERFORMANCE OF THE PRODUCT AND DOCUMENTATION REMAINS WITH RECIPIENT.

    TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL MICROSOFT OR ITS SUPPLIERS BE LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, DIRECT, INDIRECT, SPECIAL, PUNITIVE, OR OTHER DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE PRODUCT OR DOCUMENTATION, EVEN IF MICROSOFT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. BECAUSE SOME STATES/JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO RECIPIENT.

  6. GOVERNING LAW; ATTORNEYS FEES. This Agreement shall be governed by the laws of the State of Washington and Recipient further consents to jurisdiction by the state and federal courts sitting in the State of Washington. If either Microsoft or Recipient employs attorneys to enforce any rights arising out of or relating to this Agreement, the prevailing party shall be entitled to recover reasonable attorneys' fees.
  7. U.S. GOVERNMENT RESTRICTED RIGHTS. The Product and Documentation are provided with RESTRICTED RIGHTS. Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of The Rights in Technical Data and Computer Software clause of DFARS 252.227-7013 or subparagraphs (c)(i) and (2) of the Commercial Computer Software -- Restricted Rights at 48 CFR 52.227-19, as applicable. Manufacturer is Microsoft Corporation, One Microsoft Way, Redmond, WA 98052-6399.
  8. EXPORT RESTRICTIONS. Recipient acknowledges that the Product and Documentation acquired hereunder are subject to the export control laws and regulations of the U.S.A., and any amendments thereof. Recipient confirms that with respect to these Product and Documentation, it will not export or re-export them, directly or indirectly, either to (i) any countries that are subject to U.S.A export restrictions (currently including, but not necessarily limited to, Cuba, Iran, Iraq, Libya, North Korea, Syria, and Sudan); (ii) any end user who Recipient knows or has reason to know will utilize them in the design, development or production of nuclear, chemical or biological weapons; or (iii) any end user who has been prohibited from participating in the U.S.A. export transactions by any federal agency of the U.S.A. government. Recipient further acknowledges that the Product may include technical data subject to export and re-export restrictions imposed by U.S.A. law.

Should you have any questions concerning this Agreement, or if you desire to contact Microsoft for any reason, please write: Microsoft Corporation, Attn: Stephen Todd, Program Manager, Systems Management Server Group, One Microsoft Way, Redmond, WA 98052-6399.


SMS 2.0 SDK Release Notes

[This is preliminary documentation and subject to change.]

This is Systems Management Server Software Development Kit (SMS SDK). The SMS SDK details the functionality found in the beta 1 release of SMS 2.0. The SMS 2.0 beta was released on February 3, 1998.

Note The SMS 1.2 SDK is completely different from the SMS 2.0 SDK beta release. Much of the functionality has changed. The components of the SDKs should not be used interchangeably.

Feedback

You are encouraged to provide feedback on the SMS 2.0 SDK beta release through email. Please mail your comments to this address.

opalsdk@microsoft.com


The SMS SDK

[This is preliminary documentation and subject to change.]

Systems Management Server allows you to perform a variety of configuration management tasks ranging from identifying the resources on your network and gathering hardware and software inventory to monitoring the integrity of the network itself. Microsoft® Systems Management Server (SMS) 2.0 is an integrated software package designed to solve these configuration management problems.

Using this SDK in conjunction with SMS, you can automate hardware and software inventory and software distribution. The SDK provides an programming interface to other SMS functionality as well.

Integration with other BackOffice applications and the Microsoft Management Console (MMC) enables you to create and use custom solutions as you extend SMS functionality.

The SMS 2.0 SDK is intended to give users of SMS, Independent Software Vendors (ISVs), and partners early exposure to this new technology.


Components

[This is preliminary documentation and subject to change.]

The SMS 2.0 SDK beta release requires you to have installed SMS 2.0. In addition, the SMS 2.0 SDK will install the WBEM SDK and some sample programs that demonstrate how to use this SDK.

SMS 2.0 components

The SMS 2.0 installation installs all of the components needed to use the SMS SDK including these: the Site Server database, an SQL database that resides with CIMOM on a server known as the primary server; all the WBEM components; the SMS Provider and; the Administration User Interface.

WBEM SDK

The WBEM SDK consists of two parts:

  • The SDK system components, including Common Information Model Object Manager (CIMOM), supporting CIMOM providers, a Managed Object File (MOF) compiler, client application and provider development tools, and sample source code and applications.
  • Supporting documentation for the components and tools described above.


Requirements

SMS SDK Requirements

[This is preliminary documentation and subject to change.]

The requirements for using the SMS SDK include installing SMS 2.0 and a programming tool such as Microsoft® Visual C++® or Microsoft® Visual Basic®.

The WBEM SDK provides some useful tools such as the WBEMTest that you can use to view and manipulate SMS objects.

Note WBEMTest is an undocumented utility provided for test purposes only.


Installing the Sample data

[This is preliminary documentation and subject to change.]

The sample data must be installed on a clean site, that is, one that has been freshly installed. Installing this on a site where packages, queries, groups, and other objects have already been created almost certainly causes the loading of sample data to fail.

Û To install the sample data:
  1. Copy the contents of the \SDK\Sample\Data directory to a temporary directory on your hard drive.
  2. Use notepad to open Copysamp.bat. Inspect the paths listed at the top of the file and make any adjustments.
  3. Save the batch file and run it.
  23. While the batch file runs fairly quickly, it can take the various systems up to 10-15 minutes to complete.
  24. Go to Start/Settings/Control Panel/Services. Stop and re-start the WBEM CIM Object Manager.


Using the Sample Data

[This is preliminary documentation and subject to change.]

Here are a few simple tests you can run to view the sample data. An attempt is made both to show how to use various tools, and where to find some of the more interesting 2.0 data.

  1. From the WBEM directory, run Wbemtest.exe.
  2. Click the Connect button.

    For the Namespace, enter 'root\sms\sms'.

  3. Click Login. This will display the 'Main Screen.' (The term Main Screen does not reflect anything on the screen that says 'Main Screen.' The term is used as a reference in later instructions).
  4. Click Enum Instances. Type 'SMS_Site', click OK.

    This shows you all the sites that are currently defined (there should be only one: ABC). You can double click on this to see details about the site.

  5. Click Close/OK until you return to the 'Main Screen.'
  6. Click on the Enum Classes button.
  7. Click the Recursive Radio button.
  8. Click OK.

    This shows you all the classes defined in the root\sms\sms namespace. Class names that begin with double underscore are created by WBEM, that is, they do not contain SMS data in them.

  9. Scroll down until you find SMS_Package. Double click it.
  10. This shows you the definition of the class. It lists all the properties, the data types of those properties, and the default value of these properties, which are used if someone creates an instance of this class and does not specify a value for this property.
  11. Double click on the PackageID property. This shows you the qualifiers for this property. From here we see that PackageID is a key field, and has a qualifier named CIMTYPE with a value of 'string.'
  12. Click Cancel.
  13. Click Instances. This is the list of packages currently defined in the SMS database. You can get this same list by using the Enum Instances button from the 'Main Screen.'
  14. Click Close/OK until you return to the 'Main Screen.'
  15. Click on the Query button.
  16. Enter 'Select * from SMS_SCI_Component where SiteCode= "ABC" and FileType=2'.
  17. Click Apply.

    This shows you all the 'Components' defined in the Site Control file.

Getting started writing programs against the provider.

[This is preliminary documentation and subject to change.]

Before writing any code to the provider, you will need to generate the headers and .c files in the format understood by your compiler. Copy the \sdk\sample directory tree (including subdirectories) to your hard drive.

From the sample\idl directory, type the following:

MIDL wbemsvc.idl

This generates the appropriate .h and .c files, depending on the compiler you use.

If you intend to compile/run these samples, make sure you build utillib first. All of these directories build with just NMAKE.

Start with sample\crpkg. This is a simple program that shows how to connect to WBEM, and create a package.

A slightly more involved example is to be found in craddr. This shows how to create and query site control file addresses.

The code for wbemdump is also available to you.


WBEM Architecture

[This is preliminary documentation and subject to change.]

The WBEM architecture defines the structures and conventions necessary to access information about the objects being managed, centralizes the information for cross-client analysis, and supports access to managed objects for both analysis and manipulation.

The major components of the architecture are:

  • Common Information Model (CIM)—An extensible data model used to define and manipulate the state of the system.
  • CIM Object Manager (CIMOM)—An object manager that provides an interface between management applications and the objects being managed.
  • Providers—Providers such as the SMS Provider encapsulate information and map the data into an information model. Instance providers enumerate the instances of a particular class of entries. Property providers enumerate the properties for a particular class.

The WBEM architecture allows components of a management environment to be supplied by multiple organizations such as businesses, schools, government agencies, or private web entrepreneurs. Object instrumentation at the client location can be provided by many different organizations. No single management platform provides complete management capabilities spanning the whole range of functions, from system mapping through inventory tracking, and from planning to software distribution and capacity planning.

A variety of development tools and strategies for integrating WBEM with your existing enterprise are defined. The following figure illustrates the basic WBEM architecture.

The architecture uses a rich data model capable of expressing the structure and the semantics of the information required to handle the management environment.

The Schema data model is object-oriented. It supports classes, objects, properties, and methods. The model uses the fundamental concepts of inheritance and association to normalize the managed environment. Using association to join groupings of data, normalization permits uniform access to data that appears in different applications. The data model is specifically designed to accommodate the evolving requirements of the CIM schema as different organizations see their needs change.

The schema data is defined one of two ways:

  • The introduction of schema fragments on an as-needed basis.
  • The deployment of large-scale schemas, such as the Win32® schema, as a part of system installation.

WBEM achieves schema definition and object creation through the use of namespaces that limit the scope of identifiers to a manageable space. WBEM does not assume the existence of any central identifier-dispensing organization, using instead a namespace-naming convention that guarantees uniqueness of namespace names.

WBEM is defined to cross the spectrum of management capabilities, ranging from simple workstation management to full-scale enterprise management. The architecture is scaleable and distributed, the information model is capable of describing any existing managed environment, and the system has been designed to be compatible with all the major existing management protocols. These protocols include Simple Network Management Protocol (SNMP), the HyperMedia Management Protocol (HMMP), Desktop Management Interface (DMI), and Common Management Information Protocol (CMIP).


Important WBEM concepts in SMS 2.0

[This is preliminary documentation and subject to change.]

Writing applications to the SMS Provider, like any provider in the WBEM architecture such as PerfMon and SNMP, requires you to use the same programming paradigm you use to write to these other providers.

Central to the SMS provider are these important WBEM concepts:

Namespace
A tree-formatted, ordered listing of nodes. The display of the namespace is similar to that of a folder and directory structure on a disk.
Object Path
A string indicating the location of an object within the namespace, class, and instance hierarchy of a particular installed CIM.
Managed Object Format
(MOF) A language, which describes managed objects, that supports a textual description of the CIM. The MOF file provides information to the system administrator and is machine-parsable for HMMP server implementations.
Class
A collection of objects, all of which support a common set of properties and methods. A class can be considered as a template that is defined by the properties and methods of the class. For example, the Modem class represents all the modems in a system.
CIM Datatypes
CIMOM currently supports several intrinsic data types. See also the section User-Defined Data Types in the WBEM documentation.
Instance
An object derived from a WBEM class which contains actual data. For example a HardDrive class would define what properties are available; you might have three instances of that class representing the three hard drives on your machine

In database terms, an instance is a row of data from a table.

Qualifiers
A value used to characterize a method, property, or class in the SMS schema. For example, one qualifier of a class is its provider.
WBEM Query Language
WBEM supports queries for schema objects using the IWbemServices::ExecQuery and ExecQueryAsync methods. In addition, WBEM supports acquisition of events through queries, using the permanent consumer registration model or by using IWbemServices::ExecNotificationQuery or ExecNotificationQueryAsync.

In the current version, the only query language supported for all of these purposes is the WBEM Query Language (WQL).

WQL is an SQL dialect with certain extensions to specify schema relationships, such as references and associations, and other extensions to specify events. WQL duplicates Microsoft Transact SQL in syntax and behavior except where otherwise indicated.

WQL features a simplified design and does not achieve the power of SQL. Therefore, you can expect object providers to handle WQL queries directly and attempt to optimize object retrieval to minimize system overhead.

IWBEM Interfaces
The Component Information Model Object Manager (CIMOM) programmer's reference provides Win32® Component Object Model (COM) interface definitions for communication with CIMOM. The interfaces enable you to access CIMOM services. This reference provides information for advanced system administrators and for developers writing client and provider applications.

Each of the many different CIMOM objects inherits from an interface that is ultimately inherited from IUnknown. COM dictates how object implementers handle tasks such as memory management, parameter management, and multithreading. By conforming to this model, an object implementer adheres to a contract as specified by the interfaces included in the object.

These interfaces are particularly interesting to developers using the SMS Provider.
IWBEMLocator
This interface obtains the initial IWbemServices pointer to the CIMOM on a particular host machine.
IWBEMServices
This is the primary CIMOM interface. It provides management services to client processes and to other providers.
IWBEMClassObject
This interface contains and manipulates both class definitions and class object instances. Users do not implement this interface; the implementation is provided.


SMS 2.0 Architecture

[This is preliminary documentation and subject to change.]

The architecture design allows components of a management environment to interact with CIMOM, which resides on the Primary Site. The client application provides object instrumentation while CIMOM, using various DLLs, provides services from system mapping through inventory tracking, and from planning to software

The major components of the architecture follow:

  • Client application - possible remote connection
  • WBEM CIM Object Manager (CIMOM)
  • SMS Provider DLL
  • SMS Site Server data

A variety of dynamic-link libraries support the development and deployment of the systems that are implementations of the architecture. The SMS Provider includes two SMS Provider DLLs and four SMS base class DLLs. This is illustrated in the following figure.

The requested support information flows back to the client application using CIMOM services. The CIMOM Managed Object Format (MOF) database does not record any instance data. Instance information that is not stored in the CIMOM database is dynamic data.


The SMS Provider

[This is preliminary documentation and subject to change.]

The Systems Management Server (SMS) Provider uses the Web-Based Enterprise Management (WBEM) architecture to access selected data for supporting information system management initiatives.

  • WBEM offers the following features to the SMS Provider:
  • Defines the APIs and conventions necessary to access the managed objects.
  • Provides heterogeneous client-access .
  • Supports a growing list of high-level data access methods including ODBC and Directory Services.


SMS 2.0 Schema Overview

[This is preliminary documentation and subject to change.]

The current version of SMS, SMS 2.0 is the first version to employ the WBEM architecture. The effect on SMS is that it has become object oriented. Any management element such as a disk drive,or a collectoin of machines is represented by an object. SMS objects are instances of SMS classes. Taken as a whole, this is known as the SMS schema.

Previous versions of SMS used an SQL (Structure Query Language) database exclusively as the backbone of the management system. As mentioned earlier in WBEM Architecture, SMS 2.0 uses WBEM for many of its advantages to provide the backbone of the management system. However, in addition to the WBEM CIMOM repository, SMS still uses an SQL database to store persistant information about an enterprise.

The SMS 2.0 schema is very closely modeled on the previous SMS SQL Server schema. This approach provides an easy way to upgrade existing SMS enterprises to SMS 2.0. In addition, the personnel responsible for system management do not have to relearn many new concepts when making this upgrade.


SMS SQL Database

[This is preliminary documentation and subject to change.]

The only way to gain access to the underlying SMS SQL tables is through the SMS Provider. You use the SMS Provider like any other WBEM provider: calling various WBEM interfaces and using methods provided in certain SMS classes.

Each class in the SMS schema generally maps onto a single SQL table. The associations between the classes are derived from the relational keys in the SQL schema and therefore in most cases do not map onto a relational table. In general, each class contains the necessary keys to make relational access to the schema possible. The associations are created to improve programmability and to enable viewing of the object relationships in a WBEM browser application such as the WBEM Object Browser.

The schema is broken up into functional units; these are called 'models' and are detailed below.


SMS Static Classes Model

[This is preliminary documentation and subject to change.]

Static classes are those in which the properties are fixed and defined at compile time. This type comprises the majority of the schema. Static classes have properties that map directly to SQL column names in most cases. In the majority of classes, properties map to SMS base class functions. Typically, these include Get/Set methods, though in some cases the mapping is more sophisticated. Sometimes, the arguments of a base class function have properties as well. The SMS Provider user is limited to creating instances of classes of certain SMS objects. Schema interrogation of fixed classes is handled directly by Common Information Model Object Manager (CIMOM) because the class information is loaded into a namespace by the Managed Object Format (MOF) compiler.


SMS Defineable Classes Model

[This is preliminary documentation and subject to change.]

The classes SMS_Resource and SMS_Group, which contain SMS inventory and discovery data, are dynamic, meaning that derived classes and properties of these classes are created by the SMS Provider at run-time.

As a consequence, no SMS_Group derived classes in the SMS Provider namespace exist when the provider starts up on a newly installed SMS Site. The derived classes appear as soon as client inventory data arrives at the site.

For Discovery and Inventory resource classes, the relevant architecture is represented by a derived class, the actual name of which is a class qualifier. For resource and inventory group classes, the property names and types are obtained by querying the relevant SMS base class. There is no current requirement to allow creation of these fundamental architecture elementswith the SMS Provider. The SMS Provider cannot create new instances of existing architectures and groups.

The schema for dynamic classes is unknown at compile time. Thus, the SMS Provider must carry out this functionality directly by querying the base classes. Retrieval of all inventory resource class types is an example.


Use of Qualifiers

[This is preliminary documentation and subject to change.]

WBEM Qualifiers are used extensively in the schema to describe additional information about a class or property. Qualifiers used in the SMS Site schema include 'key' and 'read', for example.


Keys

[This is preliminary documentation and subject to change.]

In all cases where an SMS Provider class maps to an SMS SQL table, the set of class key properties are identical to the equivalent set of SQL columns that are primary keys. For example, the class SMS_Program has two key properties, ProgramName and PackageId, and the SQL Program table has two primary key equivalent columns.

Foreign key relationships are not explicitly expressed by qualifiers, but in all cases where a foreign key is used, it has the same property name when used as a primary of foreign key. Using the same example as above, the property PackageId in SMS_Program is also a foreign key to the SMS_Package class, whose key property has the same name.


Use of Methods

[This is preliminary documentation and subject to change.]

The SMS 2.0 classes do not use methods extensively. Methods are used when an operation, rather than data transfer, is required, or when the use of standard WBEM operations is inappropriate or confusing. Using the Commit method to save an instance of the class SMS_SiteControlFile is an example.


Location and Remoting Issues

[This is preliminary documentation and subject to change.]

The SMS provider ships with SMS 2.0 and is installed along with the core SMS components by default. Any WBEM client not residing on the SMS Provider machine requiring SMS site data connects to the remote CIMOM on the provider machine as required. The client can use any of the CIMOM remoting protocols.


SMS Security Instrumentation

[This is preliminary documentation and subject to change.]

To be done.


Namespace hierarchy

[This is preliminary documentation and subject to change.]

The SMS Provider provided instrumentation the schema in this namespace:

Root\Sms\Sms


SMS Functional Description

[This is preliminary documentation and subject to change.]

This section contains comments and details on the functional nature of each class and how each is used. The functional areas roughly parallel the presentation of material in the Users Getting Started guide of SMS 2.0. Here are the areas detailed in this section:

  1. Resource Management
  2. Software Distribution
  3. Status Reporting
  4. Site Configuration
  5. Security
  6. Query Model
  7. Collection Model
  8. Other SMS Classes

SMS Base Classes

It is important to realize that the class schema in SMS 2.0 is a strict hierarchy. All classes presented in this following functional areas are derived from SMS_BaseClass and SMS_BaseAssociation. The association classes are derived from SMS_BaseAssociation while all other classes are derived from SMS_BaseClass.


Resource Management

[This is preliminary documentation and subject to change.]

This section includes discussion of these classes:

SMS_ResourceMap

SMS_Resource

SMS_R_System

SMS_Group

SMS_G_System

SMS_G_User

SMS_G_System_SoftwareProduct

SMS_G_System_SoftwareFile

SMS_G_System_UnknownFile

SMS_G_System_CollectedFile

SMS_ResourceToGroup_a

In SMS 2.0, resources are the hardware, Windows NT user groups, and Windows NT user accounts that you can manage by using SMS. Hardware resources include personal computers, servers, and network devices, such as routers. SMS 2.0 discovers resources on your network according to their types – different discovery methods are provided for the different resource types.


Types of Resources

Resource objects include computers as well as network resources such as routers, user groups, and individual user accounts. By default, SMS 2.0 discovers and manages three types of resources:

  • System resources include computers and other tangible devices on the network, such as routers and SNMP devices.
  • User group resources include Windows NT user groups.
  • User resources include individual Windows NT user accounts.

Of the objects that SMS views as resources, only computers can become clients. Clients are the computers that match the criteria for inclusion in at least one site and have had the SMS client software installed. Other types of resources are discovered and added to the site database so that you can specify them when targeting software distribution and other management tasks. For example, you can advertise a program to install a financial software application to every member of the Finance user group. In this case, that application would be advertised to any client where a member of Finance is logged on.

Resources are managed through two means: discover and inventory. Both discovery data and inventory data can be catagorized into the three resource types. The system type is the easiest to use to demonstrate the concepts of resource management.


Resource Discovery

The three types of resources managed by discovery are represented by classes derived from the SMS_Resource class:

Resource Type | Class
System | SMS_R_System
User | SMS_R_User
UserGroup | SMS_R_UserGroup

The properties of any instance of an SMS_Resource are the discovered property types for that resource type. For example, SMS_R_System contains a property for an Internet Protocol (IP) address string array, IPAdresses, and a property for the NetBIOS name, NetbiosName. The key property any instance of an SMS_Resource is the integer value ResourceID. The values for these properties are realized after discovery in instances of SMS_R_System. For more information on discovery, see Resource Discovery and Management in the SMS Getting Started guide.

Each machine discovered in a site will have an instance of SMS_R_System in the CIMOM repository. Similarly, each user could have an instance of SMS_R_User in the CIMOM repository. User information is not as predictable due to the differences between networking systems.


Resource Inventory

The three types of resources managed by inventory are represented by classes derived from the SMS_Group class:

Resource Type | Class
System | SMS_G_System
User | SMS_G_User
UserGroup | SMS_G_UserGroup

For each Resource type, there is a an abstract class – derived from SMS_Group – that corrrespons to the the SMS_Resource class with the SMS_G_ prefix instead of SMS_R_ prefix, for example, SMS_G_System.

Superclass | SMS_Resource | SMS_Group
Derived | SMS_R_System | SMS_G_System
Derived | SMS_R_User | SMS_G_User
Derived | SMS_R_UserGroup | SMS_G_UserGroup

The classes derived from SMS_Group are hardware and software inventory group types. The abstract classes SMS_Group and SMS_G_System are the superclasses from which classes such as SMS_G_System_CollectedFile are derived. You will find and instance of SMS_G_System_CollectedFile for every file collected through inventory for each system.

This model is extensible to accommodate new types of hardware. For example, a new type of tablet input device could be construed as SMS_G_System_InputTablet. Provided you derived the new class properly from its superclasses, you could use that class as you would any other type of inventory class.

Every machine in a site that has the SMS Client software installed and has begun to collect inventory information will begin to create instances of classes derived from SMS_G_System.


Qualifiers in Resource classes

Class names for specific SMS_G_System hardware inventory groups will be generally be long and unfriendly due to uniqueness requirements and WBEM character limitations. A DisplayName class qualifier will contain the friendly name to be used by the SMS Admin UI. When inventory data is loaded by SMS, new classes prefixed with SMS_G_ will be exposed through the SMS Provider. For example, SMS_G_System contains basic machine information.


Inventory History

To keep a history of a system, the system hardware inventory groups contain two key properties: ResourceID and GroupID. Also present is the RevisionID property, which contains the value of a counter denoting the number of history instances. The classes derived from system hardware inventory, SMS_GH_System, contain RevisionID as a key property and the instances for specific derived classes contain the record of previous data on the group. If the current RevisionID in the SMS_G_System group is value x, then the corresponding SMS_GH_System group will contain x-1 instances with RevisionID values from 1 to x-1.


Software Inventory

The System resource type additionally has software inventory in three specific pre-defined classes. These classes are SMS_G_SoftwareProduct, SMS_G_SoftwareFile and SMS_G_SoftwareCollectedFile. These classes all have a key property, ResourceId, but have additional specific keys. The SMS_G_SoftwareProduct class also contains a ProductId key property, and its properties include the software product name and manufacturer. The SMS_G_SoftwareFile class also contains ProductID and FileID as key properties and its properties include file name, version and size. The SMS_G_SoftwareCollectedFile also contains RevisionID and FilePath as keys and includes the actual collected file and its local file path. The RevisionID as with hardware inventory history indicates that prior versions of inventoried files are stored in separate instances.


Software Distribution

[This is preliminary documentation and subject to change.]

The package model consists of these classes:

SMS_Package

SMS_Advertisement

SMS_Program

SMS_DistributionPoint

SMS_PackageToAdvert_a

SMS_PkgToPkgServer_a

SMS_ScheduleToken

SMS_ST_NonRecurring

SMS_ST_RecurInterval

SMS_ST_RecurMonthlyByWeekday

SMS_ST_RecurWeekly

SMS_ST_RecurMonthlyByDate

SMS_PackageAccessByUsers

SMS_DistributionPointGroup

SMS_ScheduleData

SMS_ScheduleMethods

SMS_OS_Details

SMS_SupportedPlatforms

SMS allows you to distribute software across one or more sites in your SMS site hierarchy. You can distribute a single command to be run on workstations, a complete software application to be installed on individual workstations, or a shortcut to a software package that is installed on and run from a network share.

SMS uses the terms packages, programs and advertisements to denote certain relationships in the distribution of software. These terms correspond directly with classes: SMS_Package, SMS_Program, and SMS_Advertisement. An SMS_Package contains programs, SMS_Program, that are distributed using an SMS_Advertisement. You can create several programs for one package (for example, one program can perform an express installation, while another executes a customized script you have created with SMS Installer).

SMS packages specify information about the software, the location of source files, the distribution points that will be used to distribute the software, and similar information.

SMS programs specify the command to be run at the client to perform the tasks (for example install software, copy data files, or run a batch file) described in a specific package.

SMS_Advertisements to distribute programs to specific clients, emobodied in collections. Targeting collections is discuessed below in SMS Advertisements. See Collection Model for more information on on collections


SMS Packages

A package defines software to Systems Management Server (SMS) and enables you to distribute that software to SMS clients. By using packages, you can distribute, install, and configure software in a variety of ways, to any client in your SMS system. You can create packages for commercial software, in-house software, configuration scripts, and data files.

Important Although SMS enables you to easily install software on multiple computers, you must still make sure to follow the licensing agreements for any commercial software you use.

For each package, you must define:

  1. The package source directory that contains the files for the package.
  2. The distribution points for the package.
  3. The programs (command lines) that can be run on the package.


SMS Programs

Programs are commands associated with an SMS package that run on clients when the software is distributed. You can specify more than one program per package. You can associate virtually any activity with a program. For example, a program can be used to install new software on clients, distribute data files, run virus detection software, update client configurations, and so on.

When creating a program, make sure that the package source directory contains all the files and subdirectories needed to complete the program, including any scripts.

You must specify one or more supported platforms for each program. Programs are only offered to target clients running a supported platform. SMS 2.0 supports the following platforms:

  • Windows 95
  • Windows NT


SMS Advertisements

Advertisements are evaluated by SMS to determine which clients receive a specific program that runs on their computers. An advertisement specifies:

  1. The program to run on the client.
  2. The target collection of computers, users, or user groups that will receive the program.
  3. The schedule of when the program is available to clients.

SMS copies advertisements to secondary sites and reevaluates them at regular intervals. Target collection lists are updated as members of the target collections change, and as client computers evaluate themselves against the new lists.

SMS determines which programs should be advertised to which clients as Available Programs in the Control Panel.

When you select a target collection that contains one or more query-based membership rules, those queries are evaluated at each site. For this reason, query-based collections are useful for guaranteeing that the program is targeted to all computers that meet the criteria. On the other hand, query-based collections are not appropriate for situations that require a greater degree of control. For example, if you have a limited number of licenses for a particular software application, you would not want to use query-based collections to distribute that software. Instead, you should use a fixed collection for the advertisement target. This approach is often more appropriate for distributing to computers where the target collection is relatively static and well defined.


How to distribute software

Software can be distributed only to those clients that have the Advertised Program Manager client agent installed. It is installed by default, and is configurable in the Client Setup Methods for the site.

  1. You must have a package source directory available. You can copy distribution files to a shared directory, or keep an installation CD on a shared drive. The package source directory must be accessible to the SMS service account or any other account in your program.
  2. To install the software without input from the user, you will need to use a scripted installation procedure. Many commercial software packages, including operating systems such as Windows NT Workstation and Windows 95, support scripted installation. If you want to distribute a software application that does not support scripted installation, use the SMS Installer to create your own installation script. The script should be placed in the package source directory along with the other files for the package.
  3. You must create or use exisiting distribution points for packages. Distribution points are the locations accessed by clients to obtain the files in the packages. The computer or share designated as a distribution point must have sufficient disk space for all the files that will be stored on it, and must be assigned the role of distribution point as described in "Configuring a Systems Management Server Site" of the SMS Getting Started mnaul. Distribution points are described later in this section.
  4. You must create the software distribution package. Package properties include the software name and version, the location of the package source directory, and group permissions for the distribution folder. Packages are described later in this section.
  5. Create the programs within the package. Program properties specify the command line that will run on the clients. A package can have multiple programs defined; for example, you can define a Full Install, a Custom Install, and a Minimum Install for a single package. If the program runs a command that does not require any files (for example if the program runs the net time command), it still needs to be associated with a package. In this case, the package may contain no files. Programs are described later in this section.
  6. Define a target collection. The target collection specifies the clients that will run a program from the package. You must define a collection before you can specify it in an advertisement. You don't need to define a separate collection for each advertisement. In most cases, you will maintain collections that reflect general software distribution needs. Advertisements are described in SMS Advertisements. Collections are described in Collection Model.
  7. Create advertisements that make a program available to a collection and, optionally, its collections. Advertisements specify which collection will receive each program and the date and time when the software will be available to run on clients. You can assign an advertisement (make it mandatory) from the moment it is advertised, or set it to be assigned after a specified date and/or time. You can also set an expiration date after which the advertisement is no longer available. Advertisements are described later in this section.
  8. Each client that meets the criteria for the collection you specify receives the advertisement. Because collection memberships are evaluated dynamically, new computers and new users automatically receive advertisements for programs if they meet the criteria for a collection to which the software has been advertised.


Relationships of Software distribution classes

An SMS_Package contains at least one SMS_Program and one or more SMS_DistributionPoint instances. An SMS_Advertisment targets an SMS_Program to an SMS_Collection. A program must be contained in an SMS_Package.

The SMS_Program class and the SMS_DistributionPoint class contain the PackageId property as a key and, therefore, need to reference a valid SMS_Package when created. The PackageId and Advertisement properties of SMS_Package and SMS_ Advertisement are auto-generated and are NULL when creating a new instance.

An SMS_Advertisement contains a property CollectionID and therefore links to the Collection model.


Status Reporting

[This is preliminary documentation and subject to change.]

This features is not currently implemented.

This section includes discussion of these classes:

SMS_PropertyDisplayNode

SMS_StatusMessage

SMS_StatMsgAttributes

SMS_StatMsgInsStrings

SMS_SiteSummarizer

SMS_MachineSummarizer

SMS_ComponentSummarizer

SMS_PackageStatusRootSummarizer

SMS_PackageStatusSummarySummarizer

SMS_AdvertisementStatusSummarizer

The SMS status system reports information about the flow of data through the SMS system. Status messages can be written to the SMS database and to the Windows NT Event Log, and they can be forwarded up the hierarchy. You can set up filters at each status system interface to restrict the flow of status messages. The filter configuration is done on a per site basis.

Status messages are categorized into three priorities:

  1. Error messages indicate conditions that may cause loss of data or services, and require swift operator intervention.
  2. Warning messages indicate conditions that may degrade system performance, but are not expected to cause loss of data or services. Warning conditions are generally recoverable if acted on in a timely way.
  3. Informational messages indicate important state or condition changes. For example, informational messages are generated each time a service is stopped or restarted.

Messages are also categorized into two levels:

  1. Milestone messages signify that an SMS component has been started or stopped, and delimit separate stages of processing a system action. For example, the scheduler has detected and has begun processing a new send request, or the LAN Sender has established a connection and has begun sending the package file and instructions.
  2. Detail messages include detailed information about the components that are processing an individual system action. For example, a detail status object may report that the Despooler is decompressing a package into a certain directory, on a certain drive.

The status system has the capability to gather and summarize certain types of status.


About Status Summarizers

The SMS Status system includes special components called summarizers that provide high level summaries of different types of status messages. For example, you can view summarized site status, package status, and advertisement status.


Site Configuration

[This is preliminary documentation and subject to change.]

This section includes discussion of these classes:

SMS_ConfigData

SMS_SiteInstallMap

SMS_SiteInstallItem

SMS_SiteInstallItemBase

SMS_SII_Property

SMS_SII_PropertyList

SMS_SIIB_Configuration

SMS_SIIB_Generic_Configuration

SMS_SIIB_Component_FileList

SMS_SIIB_SysResRole

SMS_SIIB_AddressType

SMS_SIIB_SenderType

SMS_SIIB_NALProvider

SMS_UINAL_ResourceInfo

SMS_SIIB_UINALProvider

SMS_SiteControlItem

SMS_Client_Reg_MultiString_List

SMS_SessionHandle

SMS_SiteControlFile

SMS_SCI_Property

SMS_EmbeddedProperty

SMS_SCI_PropertyList

SMS_EmbeddedPropertyList

SMS_SCI_SiteDefinition

SMS_SCI_SysResUse

SMS_SCI_Configuration

SMS_SCI_ClientComp

SMS_SCI_ClientConfig

SMS_SiteControlDaySchedule

SMS_SCI_Address

SMS_SCI_SQLCmd

SMS_SCI_SQLTask

SMS_SCI_SiteAssignment

SMS_NoLoopInData

SMS_VerifyResult

SMS_Site

SMS_SiteToSubSite_a

SMS_SiteToROOTColl_a

SMS_Identification

SMS_PackedNALPath

SMS_UnPackedNALPath

SMS_Utility

SMS_SystemResourceList

SMS_ExtendedStatus

SMS enables you to organize your existing network into SMS sites. Information gathered from computers is processed and stored on a site-by-site basis, and then passed up through the hierarchy. Likewise, management information and software distributions can be defined at one site in the hierarchy and passed down to child sites. Since data passed between sites is often summarized or compressed, it is more efficient for large networks, or networks that include slow links, to be organized into a hierarchy of SMS sites.

There are two main types of site:

  1. A primary site stores system data (for itself and its subsites) in a SQL Server database.
  2. A secondary site has clients but no database – it passes its data to its parent primary site.

Sites can also be described by their relationship to other sites in the hierarchy:

  • A parent site is a primary site that includes at least one other site beneath it in an SMS hierarchy. A primary site can have one or more child sites.
  • A child site is a site that reports to a site above it in the hierarchy. (All information collected at a child site is copied to the parent site, which in turn reports all of the accumulated data to its parent site.) A primary site can have one or more child sites, while a secondary site cannot have a child site and must be a child site itself.
  • The central site is the primary site at the top of the hierarchy; it is the one site in a hierarchy that is not a child to any other site. Therefore, the database at the central site acquires all the data for the entire hierarchy.

Each site comprises one or more IP, IPX, or AppleTalk networks.

The local site, represented by SMS_Site, exists by default on installation. Sites cannot be created directly through the the SMS Provider.


Using the Site Configuration classes

Two parallel sets of Site Configuration classes provide the instrumentation for data stored in the SMS database and behave in a similar manner. The classes SMS_SiteControlFile and SMS_SiteInstallMap are controlling classes. Each contains a property that represents an image of the relevant data the SMS database: the property in SMS_SiteControlFile is SCFData; the property in SMS_SiteInstallMap is IMapData.

To transfer data to and from the database, you use methods. Each file is represented as a number of 'Item's which contain general data for the base items but specific data for most derived classes. The important point here is that the SMS Provider holds in memory a copy of each file to expose data in these Item classes. Therefore, performing a PutInstance method on an Item instance changes only the copy in memory of each file maintained by the SMS Provider.

To write the file back to SMS database, both the classes SMS_SiteControlFile and SMS_SiteInstallMap contain a Commit method. When Commit is called on an instance of SMS_SiteControlFile or SMS_SiteInstallMap, the static file in the SMS database is updated.

The Refresh method works in a similar way. Calling the Refresh method on SMS_SiteControlFile or SMS_SiteInstallMap updates the copy of each file in memory from the SMS Database so that all information will be up-to-date.


Security

[This is preliminary documentation and subject to change.]

This section includes discussion of these classes:

SMS_SecurityInstance

SMS_SecurityUser

SMS_SecurityObject

This feature is not currently implemented.

SMS 2.0 takes advantage of the Windows NT security model, allowing you to grant permissions needed to perform specific SMS tasks to Windows NT users and user groups. For example, you can set SMS security so that members of the System Administrators user group can also create packages for software distribution or alter the site hierarchy structure.


Security Rights On SMS Objects

You set the levels of security you want to grant by specifying the rights that a Windows NT user or user group has on various SMS security objects. SMS ships with the following default security objects:

  • collections
  • packages
  • advertisements
  • status objects

Other security objects can be made available through third-party vendors.

In order to set security rights, you must have the appropriate permissions on security objects.

SMS 2.0 requires some special user accounts to perform its work. At the server level, one account — the SMS service account — is crucial. In addition, up to three accounts are used by client components to provide functionality that is transparent to the end user.


Query Model

[This is preliminary documentation and subject to change.]

This section includes discussion of these classes:

SMS_Query

SMS_QueryExec_a

You use queries to search for objects in the SMS database. Although SMS supports several types of queries, each query you create is specific to a predefined resource class. For example, you could create a query for the Personal Computer resource class to find computers that match a specified set of criteria (such as Processor Name is Pentium and Operating System Name is Windows NT Server). You can also query system resource classes (such as SMS Events and Job Details) or custom resource classes that you have created.

When you create a query, you specify general data, used to identify the query; query criteria, used to specify the objects that you want the query to find; and a query results format, used to determine how the attributes returned by a query should be displayed. Queries can be stored.

When you run a query, SMS searches the database for objects that match the query's criteria.


Collection Model

[This is preliminary documentation and subject to change.]

The collection model includes these classes:

SMS_CollectionRule

SMS_CollectionRuleDirect

SMS_CollectionRuleQuery

SMS_CollNoLoopInData

SMS_CollForMembersInData

SMS_CollForMembersOutData

SMS_Collection

SMS_CollectToSubCollect_a

SMS_CollectionToPkgAdvert_a

SMS_CollectionMember

SMS_CollectionMember_a

A collection is a customized management view of the resources in your enterprise. Collections are similar in some ways to machine groups and site groups in previous versions of SMS, but they are much more flexible and useful. Collections gather resources according to criteria that you define, enabling you to create an organized structure that logically represents the kinds of tasks you want to perform. For example, you can create collections for various client and resource groups such as Finance and Human Resources, or Atlanta and Tallahassee, or even Pentiums and 386s. Collections also serve as targets for performing SMS operations on multiple resources at one time, such as Software Distribution.


Collection Definition

Resources are assigned to collections by one or more membership rules that you define. Within a collection, you can specify multiple static or dynamic membership rules.

When defining a static membership rule, you can specify a resource by name or ID (for example, "Resource named JOESMITH2" or "Resource with ID 2345908908").

When defining a dynamic membership rule, include only those resources that meet the query criteria you specify (for example, "All computers running Windows NT 4 Service Pack 3 (SP3) with at least 16 MB of RAM" or "All users in the Corporate domain").

If you define collections with dynamic membership rules, the list of resources included in a collection updates with the latest information in the SMS database when the collection membership is evaluated. You can update the list of resources on demand, and you can schedule regular evaluations.

By default, SMS provides root collections that contain the contents (systems, users, and user groups) of the central site of the current SMS database. The root collections are updated every day.


The Collection classes

An SMS_Collection can be created with no rules and therefore no members. An SMS_Collection contains instances of SMS_CollectionRule as embedded objects that are only set and deleted by methods. Both the query and direct collection rules result in the SMS_Collection being associated with resources when the SMS_Collection is evaluated by an SMS server component.

The SMS_CollectionMember is also an association but cannot be created or modified since it is the result of an internal SMS query evaluation. A SMS_Collection also has an association describing sub-collections and that it is a target of an SMS_Advertisment.


Relationships of Collection classes

An SMS_Collection is defined by one or more rules that can be either direct or queries. An SMS_Collection, once evaluated, contains instances of SMS_Resource as members. An SMS_Collection can contain other instances of the SMS_Collection class. An SMS_Collection is targeted by an SMS_Advertisement.


Other SMS Classes

[This is preliminary documentation and subject to change.]

This feature is not currently implemented.

This section includes discussion of these classes:

SMS_SNMPVarbind

SMS_SNMPTrap


Data types and qualifiers

[This is preliminary documentation and subject to change.]

This sections contains information on Datatypes, Important Embedded Objects, and Qualifiers.


Datatypes

[This is preliminary documentation and subject to change.]

The following standard WBEM datatypes are used in the Provider schema, The following table describes their usage.

WBEM Datatype | Usage
String | Free format string or enumerated type
Uint32/Sint32 | Unbound or range limited integer
Bool | Boolean value
Uint8 | As an array for binary data e.g. icons.
Datetime | Fully described date and time

The following embedded objects are used commonly and can be regarded as compound datatypes.


Important Embedded Objects

[This is preliminary documentation and subject to change.]

SMS_ScheduleToken
Classes derived from this base class represent time scheduling information for a variety of tasks such as scheduling an operation monthly or weekly.
SMS_SCI_Property and SMS_SCI_PropertyList
These classes fall into this category since they appear as embedded objects in many SiteControlItem derived classes. They contain specific configuration properties or list configuration properties and their values.


Qualifiers

[This is preliminary documentation and subject to change.]

Bits (property)
This gives the bit position of a Boolean flag in a bitfield.
Embedded (class)
This is a textual description qualifier which states that the class is used as an embedded object where it is not obvious, such as when it is also used as stand-alone class, that is, it has key properties.
Enumeration (property)
This gives the list of valid string names for a discrete enumeration.
Large (property)
A textual description qualifier indicating that the value of this property is likely to be large in data size and therefore expensive to transport over a network.

Lazy (property)

A property with this qualifier is only returned for a GetObject. In other words, it is omitted from the result class instance for an enumeration or a query.

NoQuery (property)
This property cannot be used in the where clause of a WBEM query. This behavior is implicit in all embedded object properties so this qualifier is used only on simple types. It is also unlikely that a NoQuery property is present in any query result instance even for the 'select *'case.
Range (property)
This gives the range of permitted values for a string or integer. Format:
Integer: "<Low Value>-<High Value>"
String: "<string low value>-<string high value>"
SizeLimit (property)
This states the limits of the size of the data value for this property, and depends on the property datatype:
String: "<string low length>-<string high length>" OR
     "<specific string length>"
Array:   as above


Writing programs for the SMS Provider

[This is preliminary documentation and subject to change.]

The Systems Management Server (SMS) Provider enables access to SMS data through a wide variety of mechanisms. As shown in the following diagram, you can view SMS data on the Internet or intranet, by way of management applications using C++, COM, Visual Basic, or Java, and through Open Database Connectivity (ODBC) applications.

The SMS Provider provides acces to the objects that are part of the SMS 2.0 schema. By writing programs that use the the SMS Provider, you can view and manipulate these objects. Each Opal object is represented by a WBEM class and these objects include packages, sites, collections and inventory groups.

The classes are functionally grouped by model. See the models in this document for more information.

The Opal schema resides in a single namespace.

Database keys are actual SMS table keys such as the package identifier. Associations describe the relationships between objects. For example, the association between an advertisement and a collection is similar to a relational key between two tables.

You can use any client access mechanism available for WBEM to access the information and functionality of the SMS provider in this beta release. The COM/Automation interface of CIMOM is the primary programming interface to the SMS Provider.


Sample Applications

[This is preliminary documentation and subject to change.]

Sample applications included with the SMS 2.0 SDK illustrate basic calls to an SMS 2.0 Provider. The samples provide a framework by which other users of the SDK can model their own SMS 2.0 applications.

Samples can be found on the CD in this directory:

\SDK\Sample

The sample below, SMSPApp, is a console application (a command line executable) that takes parameters to access specific Opal objects. It was written in C++.


Building the Sample SMSPApp

[This is preliminary documentation and subject to change.]

To install the Sample Application
  1. Insert the "correct CD" into the drive.
  2. Copy the following files to a folder on your hard drive:
    SMSPApp.dsw
SMSPApp.dsp
SMSPApp.cpp
SMSPWrap.cpp
SMSPWrap.h
Stdpch.h
Stdpch.cpp
Wbwmsvc.h
Wbemsvc_i.c
  3. Start Microsoft ®Visual C++® version 5.0 and open a new work space (SMSPApp.dsw).
  4. Build the project by choosing Build SMSPApp.exe from the Build menu.


Code Overview

[This is preliminary documentation and subject to change.]

The following is a breakdown of the SMSPWrap.h and SMSPWrap.cpp files:

bool EnumerateClass(bool);     // Enumerate Class deep or not deep
bool EnumerateInstance(bool);  // Enumerate instance deep or not deep
bool GetObject();              // Gets an instance or a class
bool  CreateInstance();        // Creates a new instance of specified
                               // class
bool  ExecQuery ();            // Executes a query
bool  ModifyInstance ( );      // Modifies an existing instance

Each of these member functions corresponds to a certain switch on the command line arguments for the program. EnumerateClass and EnumerateInstance take a bool as an argument that determines whether deep enumerations are required. All of the functions return a bool to indicate the success (true) or failure (false) of the operation.

EnumerateClass

The EnumerateClass option uses an Enumeration object to retrieve classes from CIMOM one by one. By using IWbemClassObject->GetObjectText, it then converts the results into a MOF compliant syntax and displays the result on the screen in the form of a MOF. The bool parameter indicates whether to do a deep or shallow enumeration.

EnumerateInstance

The EnumerateInstance option uses an Enumeration object to retrieve instances from CIMOM one at a time. By using IWbemClassObject->GetObjectText, it then converts the results into a MOF compliant syntax and displays the result on the screen in the form of a MOF. The bool parameter indicates whether to do a deep or shallow enumeration.

GetObject

The GetObject option retrieves a single class or instance from CIMOM. Uses IWbemClassObject->GetObjectText to convert the result into MOF syntax and displays the result on the screen.

CreateInstance

The CreateInstance option creates a new instance of a specified class by using the following algorithm:

  1. Attempt to get the specific class from CIMOM (GetObject).
  2. Spawn a new instance of that class (IWbemClassObject->SpawnInstance).
  3. Read in each of the property names (IWbemClassObject->GetNames).
  4. Get the property type (IWbemClassObject->Get).
  5. For each property let the user enter a value (key values must be entered, otherwise the user is prompted to enter a value again).
  6. Store the property (IWbemClassObject->Put).
  7. When all properties have been read in and stored, put the instance in CIMOM (IWbemClassObject->PutInstance).

ExecQuery

The ExecQuery option executes a query against CIMOM by using IWBEMServices->ExecQuery. The query language and actual query must be specified. It then retrieves objects one at a time (IEnumWbemClassObject->Next) and displays the result on the screen by using (IWbemClassObject->GetObjectText).

ModifyInstance

The ModifyInstance option retrieves an instance from CIMOM and prompts the user to enter new values for the properties. Key properties cannot be changed and are therefore skipped. The general algorithm is the same as for CreateInstance.


Class Reference

This section of the documentation contains all the classes contained in SMSPROV.MOF. This file represents the SMS schema, an extension of the WBEM CIM schema.


SMS_Advertisement

The SMS_Advertisement is a dynamic class.

class SMS_Advertisement : SMS_BaseClass {
[key]
    string    AdvertisementID = "";
[Not_null]
    string    AdvertisementName = "";
[Not_null]
    string    PackageID = "";
[Not_null]
    string    ProgramName = "";
[Not_null]
    string    CollectionID = "";
    string Comment = "";
    BOOL      IncludeSubCollection = 1;
    string    HierarchyPath = "";
[max(2), noquery]
    SMS_ScheduleToken AssignedSchedule[];
[noquery]
    BOOL      AssignedScheduleEnabled = 0;
[noquery]
    BOOL      AssignedScheduleIsGMT = 0;
[noquery]
    datetime  PresentTime = "19900101000000.000000+***";
[noquery]
    BOOL      PresentTimeEnabled = 1;
[noquery]
    BOOL      PresentTimeIsGMT = 0;
[noquery]
    datetime  ExpirationTime = "19900101000000.000000+***";
[noquery]
    BOOL ExpirationTimeEnabled = 0;
[noquery]
    BOOL ExpirationTimeIsGMT = 0;

[bits("IMMEDIATE(5),ONSYSTEMSTARTUP(8),ONUSERLOGON(9),ONUSERLOGOFF(10),NO_DISPLAY(25),ONSLOWNET(26)")]
    uint32    AdvertFlags = 0;
[enumeration("HIGH(1),NORMAL(2),LOW(3)")]
    uint32    Priority = 2;
    string    SourceSite = "";
  };

Properties

AdvertisementID
This is automatically generated and used as a key.

Qualifiers: key

Datatype: string

AdvertisementName
The name of the advertisement provided by the user.

Qualifiers: Not_null

Datatype: string

PackageID
The PackageID that is advertised.

Qualifiers: Not_null

Datatype: string

ProgramName
The name of the program from the package specified in PackageID.

Qualifiers: Not_null

Datatype: string

CollectionID
The collection to which to direcet the advertisement.

Qualifiers: Not_null

Datatype: string

Comment
Holds any comment to display with the advertisement.

Qualifiers:

Datatype: string

IncludeSubCollection
When TRUE, its advertised to all the subcollections of the collection. When FALSE, only advertised to the collection, not any subcollections of it.

Qualifiers:

Datatype: BOOL

HierarchyPath
Qualifiers:

Datatype: string

AssignedSchedule
Takes an array of SMS_Scheduletoken classes in order to define the schedules for when this advertisement will be mandatory.

Qualifiers: max, noquery

Datatype: SMS_ScheduleToken

AssignedScheduleEnabled
Set to TRUE if you have anything in AssignedSchedule.

Qualifiers: noquery

Datatype: BOOL.

AssignedScheduleIsGMT
Set to TRUE if time represented in AssignedSchedule are in GMT.

Qualifiers: noquery

Datatype: BOOL.

PresentTime
The time at which users will see the advertisement.

Qualifiers: noquery

Datatype: datetime

PresentTimeEnabled
Qualifiers: noquery

Datatype: BOOL.

PresentTimeIsGMT
Set to TRUE if the present time that the users will see the advertisement is in GMT.

Qualifiers: noquery

Datatype: BOOL.

ExpirationTime
Denotes when the advertisement will expire.

Qualifiers: noquery

Datatype: datetime.

ExpirationTimeEnabled
If TRUE, an ExpirationTime has been defined.

Qualifiers: noquery

Datatype: BOOL.

ExpirationTimeIsGMT
If TRUE, the ExpirationTime has been defined in GMT.

Qualifiers: noquery

Datatype: BOOL.

AdvertFlags
Defines when to run the program: The values for this property IMMEDIATE(5), ONSYSTEMSTARTUP(8), ONUSERLOGON(9), ONUSERLOGOFF(10), NO_DISPLAY(25), and ONSLOWNET(26). If set to ONSLOWNET, the package is not mandatory over a slow network link.

Qualifiers: bits

Datatype: uint32.

Priority2
The values for this property are HIGH(1), NORMAL(2), LOW(3).

Qualifiers: enumeration

Datatype: uint32.

SourceSite
Contains the three letter site code for the site that made the advertisement.

Qualifiers:

Datatype: string


SMS_BaseAssociation

To be done.

class SMS_BaseAssociation : SMS_BaseClass {
};


SMS_BaseClass

To be done.

class SMS_BaseClass {
};


SMS_Client_Reg_MultiString_List

[ Embedded,  Dynamic,  Provider("ExtnProv") ]
class SMS_Client_Reg_MultiString_List {
[key, read]
    string    ItemType = "Client registry multi-string item, Site Control File";
    string    ValueName = "";
    string    KeyPath = "";
    string    ValueStrings[];
};

Properties

ItemType
The default string is "Client registry multi-string item, Site Control File".

Qualifiers: key, read

Datatype: string

ValueName
Qualifiers:

Datatype: string

KeyPath
Qualifiers:

Datatype: string

ValueStrings
Qualifiers:

Datatype: string


SMS_Collection

[ Dynamic,  Provider("ExtnProv") ]
class SMS_Collection : SMS_BaseClass {
[key, read]
    string    CollectionID = "";
[Not_null]
    string   Name     = "New Collection";
    string   Comment     = "";
    BOOL  OwnedByThisSite   = 0;
    BOOL  ReplicateToSubSites  = 0;
    datetime LastRefreshTime = "19900101000000.000000+***";
    datetime LastChangeTime = "19900101000000.000000+***";
[noquery, enumeration("MANUAL(1),PERIODIC(2)")]
    uint32 RefreshType = 1;
[read,enumeration("NONE(0),READY(1),REFRESHING(2),SAVING(3),EVALUATING(4),AWAITING_REFRESH(5),DELETING(6),APPENDING_MEMBER(7),QUERYING(8)")]
 uint32 CurrentStatus;
[max(2)]
    SMS_ScheduleToken RefreshSchedule[];
[read, lazy]
    SMS_CollectionRule CollectionRules[];
[instancemethod, in("SMS_CollectionRule")]
    method AddMembershipRule;
 [instancemethod, in("SMS_CollectionRule")]
    method    DeleteMembershipRule;
[instancemethod]
 method RequestRefresh;
[read, Description("This property is the class name whose instances are the members of this collection")]
    string MemberClassName;
[classmethod, in("SMS_CollNoLoopInData"),out("SMS_VerifyResult")]
    method VerifyNoLoops;
  // NOT IMPLEMENTED yet :
[classmethod, in("SMS_CollForMembersInData"), out("SMS_CollForMembersOutData")]
    method EnumCollectionsForMember;
};

Properties

CollectionID
Qualifiers: key, read

Datatype: string

Name
Qualifiers: Not_null

Datatype: string

Comment
Qualifiers:

Datatype: string

OwnedByThisSite
Qualifiers:

Datatype: BOOL.

ReplicateToSubSites
Qualifiers:

Datatype: BOOL.

LastRefreshTime
Qualifiers:

Datatype: datetime.

LastChangeTime
Qualifiers:

Datatype: datetime.

RefreshType
Qualifiers: noquery, enumeration

Datatype: uint32.

CurrentStatus
Qualifiers: read, enumeration

Datatype: uint32.

RefreshSchedule
You can only have two schedule tokens

Qualifiers: max

Datatype: SMS_ScheduleToken.

CollectionRules
Qualifiers: read, lazy

Datatype: SMS_CollectionRule.

AddMembershipRule
This can also be used to modify a membership rule.
Qualifiers: instancemethod, in

Datatype: method.

DeleteMembershipRule
Qualifiers: instancemethod, in

Datatype: method.

RequestRefresh
Qualifiers: instancemethod

Datatype: method.

MemberClassName
This property is the class name whose instances are the members of this collection.

Qualifiers: read, Description

Datatype: string

VerifyNoLoops
Qualifiers: classmethod, in, out

Datatype: method.

EnumCollectionsForMember
Qualifiers: classmethod, in, out

Datatype: method.


SMS_CollectionMember_a

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_CollectionMember_a : SMS_BaseAssociation{
[key]
    SMS_Resource  ref  resource;
[key]
    SMS_Collection  ref  collection;
    uint32    ResourceID;
    uint32    ResourceType;
    string    Name;
    string    SMSID;
    string GUID;
[SizeLimit("3")]
    string    SiteCode;
    string    Domain;
    bool      IsDirect;
};

Properrties

resource
This property references SMS_Resource

Qualifiers: key

Datatype: SMS_Resource

collection
This property references SMS_Collection

Qualifiers: key

Datatype: SMS_Collection

ResourceID
Qualifiers:

Datatype: uint32

ResourceType
Qualifiers:

Datatype: uint32

Name
Qualifiers:

Datatype: string

SMSID
Qualifiers:

Datatype: string

GUID
Qualifiers:

Datatype: string

SiteCode
Qualifiers: SizeLimit

Datatype: string

Domain
Qualifiers:

Datatype: string

IsDirect
Qualifiers:

Datatype: bool.


SMS_CollectionMember

[ Abstract ]
class SMS_CollectionMember : SMS_BaseClass {
[key]
    uint32    ResourceID;
    uint32    ResourceType;
    string    Name;
    string    SMSID;
    string    GUID;
[SizeLimit("3")]
    string    SiteCode;
    string    Domain;
    bool      IsDirect;
};

Properties

ResourceID
Qualifiers: key

Datatype: uint32

ResourceType
Qualifiers:

Datatype: uint32

Name
Qualifiers:

Datatype: string

SMSID
Qualifiers:

Datatype: string

GUID
Qualifiers:

Datatype: string

SiteCode
Qualifiers: SizeLimit

Datatype: string

Domain
Qualifiers:

Datatype: string

IsDirect
Qualifiers:

Datatype: string


SMS_CollectionRule

[ Abstract, Embedded ]
class SMS_CollectionRule : SMS_BaseClass {
    string    RuleName = "";
};

Properties

RuleName
Qualifiers:

Datatype: string


SMS_CollectionRuleDirect

[ Embedded ]
class SMS_CollectionRuleDirect : SMS_CollectionRule {
    string    ResourceClassName = "";
    uint32    ResourceID = 0;
};

Properties

ResourceClassName
Qualifiers:

Datatype: string

ResourceID
Qualifiers:

Datatype: uint32.


SMS_CollectionRuleQuery

[ Embedded ]
class SMS_CollectionRuleQuery : SMS_CollectionRule {
    string    QueryExpression = "";
[read]
    uint32    QueryID;
};

Properties

QueryExpression
Qualifiers:

Datatype: string

QueryID
Qualifiers: read

Datatype: uint32.


SMS_CollectionToPkgAdvert_a

[ Dynamic,  Provider("ExtnProv"),  Read ]
class SMS_CollectionToPkgAdvert_a : SMS_BaseAssociation {
[key]
    SMS_Advertisement  ref  advert;
[key]
    SMS_Collection  ref  collection;
};

Properties

advert
This property references SMS_Advertisment

Qualifiers: key

Datatype: SMS_Advertisment

collection
This property references SMS_Collection

Qualifiers: key

Datatype: SMS_Collection


SMS_CollectToSubCollect_a

[ Dynamic, Provider("ExtnProv") ]
class SMS_CollectToSubCollect_a  : SMS_BaseAssociation {
[key]
    SMS_Collection  ref  parentCollection;
[key]
    SMS_Collection  ref  subCollection;
};

Properties

parentCollection
This property references SMS_Advertisment

Qualifiers: key

Datatype: SMS_Collection

subCollection
This property references SMS_Collection

Qualifiers: key

Datatype: SMS_Collection


SMS_CollForMembersInData

[ methoddata ]
class SMS_CollForMembersInData {
    uint32    ResourceID;
    uint32    ResourceType;
};

Properties

ResourceID
Qualifiers:

Datatype: uint32

ResourceType
Qualifiers: read

Datatype: uint32


SMS_CollForMembersOutData

[ methoddata ]
class SMS_CollForMembersOutData {
    string    CollectionIDs[];
};

Properties

CollectionIDs
This is an array of zero or more collection IDs

Qualifiers:

Datatype: string


SMS_CollNoLoopInData

[ methoddata ]
class SMS_CollNoLoopInData {
    string    parentCollection;
    string    subCollection;
};

Properties

parentCollection
The path to a collection object.

Qualifiers:

Datatype: string

subCollection
The path to a collection object.

Qualifiers:

Datatype: string


SMS_ComponentSummarizer

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_ComponentSummarizer {
[key, SizeLimit("3")]
    string    SiteCode;
[key, SizeLimit("128")]
    string    MachineName;
[key, SizeLimit("40")]
    string    ComponentName;
[enumeration("STOPPED(0),STARTED(1),PAUSED(2),INSTALLING(3),RE_INSTALLING(4),DE_INSTALLING(5)")]
    uint32    State;
    datetime  LastStarted;
    datetime  LastContacted;
    datetime  TimeReported;
    uint32    Heartbeat;
    uint32    Warnings_All;
    uint32    Errors_All;
    uint32    Warnings_Every2;
    uint32    Errors_Every2;
    uint32    Warnings_Every4;
    uint32    Errors_Every4;
    uint32    Warnings_Every6;
    uint32    Errors_Every6;
    uint32    Warnings_Noon;
    uint32    Errors_Noon;
    uint32    Warnings_Midnight;
    uint32    Errors_Midnight;
    uint32    Warnings_1_of_Week;
    uint32    Errors_1_of_Week;
    uint32    Warnings_1_of_Month;
    uint32    Errors_1_of_Month;
    uint32    Warnings_15_of_Month;
    uint32    Errors_15_of_Month;
};

Properties

SiteCode

Qualifiers: key, SizeLimit

Datatype: string

MachineName
This the machine name.

Qualifiers: key, SizeLimit

Datatype: string

ComponentName
This is the SMS component name.

Qualifiers: key, SizeLimit

Datatype: string

State
This is an enumerated list that represents the component states (Stopped, Started, Paused, Installing, Re_Installing, and De_Installing).

Qualifiers: enumeration

Datatype: uint32

LastStarted
This is the last start message time.

Qualifiers:

Datatype: datetime

LastContacted
This is the last message time.

Qualifiers:

Datatype: datetime

TimeReported
This is the last replicated time.

Qualifiers:

Datatype: datetime

Heartbeat
This designates the heartbeat interval, in minutes.

Qualifiers:

Datatype: uint32

Warnings_All
This is a count of all warnings.

Qualifiers:

Datatype: uint32

Errors_All
This is a count of all errors.

Qualifiers:

Datatype: uint32

Warnings_Every2
This is a count of warnings for the last two hours, reported on the hour.

Qualifiers:

Datatype: uint32

Errors_Every2
This is a count of errors for the last two hours, reported on the hour.

Qualifiers:

Datatype: uint32

Warnings_Every4
This is a count of warning for the last four hours, reported on the hour.

Qualifiers:

Datatype: uint32

Errors_Every4
This is a count of errors for the last four hours, reported on the hour.

Qualifiers:

Datatype: uint32

Warnings_Every6
This is a count of warning for the last six hours, reported on the hour.

Qualifiers:

Datatype: uint32

Errors_Every6
This is a count of errors for the last six hours, reported on the hour.

Qualifiers:

Datatype: uint32

Warnings_Noon
This is a count of warnings at 12 noon.

Qualifiers:

Datatype: uint32

Errors_Noon
This is a count of errors at 12 noon.

Qualifiers:

Datatype: uint32

Warnings_Midnight
This is a count of warnings at midnight.

Qualifiers:

Datatype: uint32

Errors_Midnight
This is a count of warnings at midnight.

Qualifiers:

Datatype: uint32

Warnings_1_of_Week
This is a count of errors for the first (1) of the week.

Qualifiers:

Datatype: uint32

Errors_1_of_Week
This is a count of errors for the first (1) of the week.

Qualifiers:

Datatype: uint32

Warnings_1_of_Month
This is a count of errors for the first (1) of the month.

Qualifiers:

Datatype: uint32

Errors_1_of_Month
This is a count of errors for the first (1) of the month.

Qualifiers:

Datatype: uint32

Warnings_15_of_Month
This is a count of errors for the fifteenth (15) of the month.

Qualifiers:

Datatype: uint32

Errors_15_of_Month
This is a count of errors for the fifteenth (15) of the month.

Qualifiers:

Datatype: uint32


SMS_DistributionPoint

The SMS_DistributionPoint class is a dynamic class.

class SMS_DistributionPoint : SMS_BaseClass {
[key]
    string    PackageID = "";
[key]
    string    ServerNALPath = "";
[key, SizeLimit("3")]
    string    SiteCode = "";
    string    SiteName = "";
[SizeLimit("3")]
    string    SourceSite = "";
    DateTime  LastRefreshTime = "19900101000000.000000+***";
    bool      RefreshNow = 0;
[read,enumeration("NONE(0),UPDATED(1),ADDED(2),DELETED(3)")]
    uint32    Status;
};

Properties

PackageID
Qualifiers: key

Datatype: string

ServerNALPath
Qualifiers: key

Datatype: string

SiteCode
The size limit is three.

Qualifiers: key, SizeLimit

Datatype: string

SiteName
Qualifiers:

Datatype: string

SourceSite
The size limit is three.

Qualifiers: SizeLimit

Datatype: string

LastRefreshTime
Qualifiers:

Datatype: DateTime.

RefreshNow
Qualifiers:

Datatype: BOOL

Status
Qualifiers: read, enumeration

Datatype: uint32.


SMS_DistributionPointGroup

[ Dynamic,  Provider("ExtnProv") ]
class SMS_DistributionPointGroup : SMS_BaseClass {
[key]
    string    sGroupName = "";
    string    arrNALPath[];
};

Properties

sGroupName
This is the name of the distribution point group.

Qualifiers: key

Datatype: string

arrNALPath
This is an array of NAL paths

Qualifiers:

Datatype: string


SMS_EmbeddedProperty

[ Embedded,   Dynamic,  Provider("ExtnProv"),
Description("This is a list of well known property names\n"
    "Related to Site Configuration Manager\n"
    "Site Control Heartbeat Interval\n"
    "Inter-Poll Delay Time\n"
    "Server Deinstallation Retry Time\n"
    "Component Deinstallation Retry Time\n"
    "Startup Schedule\n"
    "Maximum Thread Yield Time In Milliseconds\n"
    "Number of CPU Resource Tokens\n"
    "Number of Disk Resource Tokens\n\n"
    "Related to Configuration section in Site Control File\n"
    "Concurrent Sending Limit  - <Max sending limit><Max concurrent sending limit><0>\n"
    "Number of Retries         - <><><Number of retries>\n"
    "Retry Delay               - <><><Retry delay in minutes>\n"
    "Update Timeout            - <><><Update timeout in minutes>\n"
    "Thread Limit              - <><><Thread limit>\n"
    "P1 Thread Limit           - <><><High pirority job thread processing limit>\n"
    "P2 Thread Limit           - <><><Medium pirority job thread processing limit>\n"
    "P3 Thread Limit           - <><><Low pirority job thread processing limit>\n"
    "Package Root Directory    - <Package root directory><><0>\n\n"
    "Related to SysResUse section in Site Control File\n"
    "InboxRoot\n"
    "Site Info                 - <Site Code><Site Name><0>\n\n"

    "Related to Address section in Site Control File\n"
    "LAN Login                 - <user name><password><>\n"
    "Connection Point          - <server name><share name><>\n"
    "Ras Login Domain          - <domain name><><>\n"
    "RAS Login                 - <user name><password><>\n"
    "Phone Book                - <phone book name><><>\n"
    "LU and TP                 - <LU name><TP name><>\n"
    "SNA Login                 - <user name><password><>\n"
    "MAPI Alias                - <desitination alias><><>"),
    StringEnumeration("SITE_CONF_MANGR_HEARTBEAT_INTERVAL(Site Control Heartbeat Interval),"
"SITE_CONF_MANGR_INTER_POLL_DELAY_TIME(Inter-Poll Delay Time),"
"SITE_CONF_MANGR_SRVR_DEINSTALL_RETRY_TIME(Server Deinstallation Retry Time),"
      "SITE_CONF_MANGR_COMP_DEINSTALL_RETRY_TIME(Component Deinstallation Retry Time),"
      "SITE_CONF_MANGR_STARTUP_SCHED(Startup Schedule),"
      "SITE_CONF_MANGR_MAX_THREAD_YIELD_TIME(Maximum Thread Yield Time In Milliseconds),"
      "SITE_CONF_MANGR_NUM_CPU_RESOURCE_TOKNS(Number of CPU Resource Tokens),"
      "SITE_CONF_MANGR_NUM_DISK_RESOURCE_TOKNS(Number of Disk Resource Tokens),"
      "SCF_CONFIG_CONCURRENT_SENDING_LIMIT(Concurrent Sending Limit),"
      "SCF_CONFIG_NUM_RETRIES(Number of Retries),"
      "SCF_CONFIG_RETRY_DELAY(Retry Delay),"
      "SCF_CONFIG_UPDATE_TIMEOUT(Update Timeout),"
      "SCF_CONFIG_THREAD_LIMIT(Thread Limit),"
      "SCF_CONFIG_P1_THREAD_LIMIT(P1 Thread Limit),"
      "SCF_CONFIG_P2_THREAD_LIMIT(P2 Thread Limit),"
      "SCF_CONFIG_P3_THREAD_LIMIT(P3 Thread Limit),"
      "SCF_CONFIG_PACKAGE_ROOT_DIR(Package Root Directory),"
      "SCF_SYSRESUSE_INBOXROOT(InboxRoot),"
      "SCF_SYSRESUSE_SITE_INFO(Site Info),"
      "SCF_ADDRESS_LAN_LOGIN(LAN Login),"
      "SCF_ADDRESS_CONNECTION_POINT(Connection Point),"
      "SCF_ADDRESS_RAS_LOGIN_DOMAIN(Ras Login Domain),"
      "SCF_ADDRESS_RAS_LOGIN(Ras Login),"
      "SCF_ADDRESS_PHONE_BOOK(Phone Book),"
      "SCF_ADDRESS_LU_AND_TP(LU and TP),"
      "SCF_ADDRESS_SNA_LOGIN(SNA Login),"
      "SCF_ADDRESS_MAPI_ALIAS(MAPI Alias)") ]
class SMS_EmbeddedProperty {
[key, read]
    string    ItemType="Property Token Item, Site Control File";
    string    PropertyName = "";
    string    Value1 = "";
    string    Value2 = "";
    uint32    Value = 0;
};

Properties

ItemType
This is the Property Token Item for the Site Control File.

Qualifiers: key, read

Datatype: string

PropertyName
This is the name of the property

Qualifiers:

Datatype: string

Value1
This is the first string value.

Qualifiers:

Datatype: string

Value2
This is the second string value.

Qualifiers:

Datatype: string

Value
This is the DWORD value.

Qualifiers:

Datatype: uint32


SMS_EmbeddedPropertyList

[ Embedded, Dynamic,  Provider("ExtnProv"),  Description("This is a list of well known property list names\n"
    "Related to the Site Definition within a Site Control File\n"
    "Network Connection Accounts\n"
    "License Database Accounts     - the string order is SQL Server name, db name, encrypted account name, encrypted password then public key\n\n"

    "Related to Site Configuration Manager\n"
    "Start On Master Site Control File Changes\n\n"
    "Related to MAPI Sender\n"
    "MAPI INITIAL CONFIGURATION\n\n"
    "Related to Status Manager and Status System\n"
    "Status Filter: Component Status Message Filter\n"
    "Status Filter: Status Manager Status Message Filter"),

    StringEnumeration("SITE_DEFN_NETWK_CONN_ACCNTS(Network Connection Accounts),"
      "SITE_DEFN_LICENCE_DBASE_ACCNTS(License Database Accounts),"
      "SITE_CONF_MANGR_START_MASTER_SCF_CHANGES(Start On Master Site Control File Changes),"
      "MAPI_SENDER_INIT_CONF(MAPI INITIAL CONFIGURATION),"
      "STATUS_COMP_STATUS_MESS_FILTER(Status Filter: Component Status Message Filter),"
      "STATUS_STATUS_MAN_STATUS_MESS_FILTER(Status Filter: Status Manager Status Message Filter)") ]
class SMS_EmbeddedPropertyList {
[key, read]
    string    ItemType="Property List Token Item, Site Control File";
    string    PropertyListName = "";
    string    Values[];
};

Properties

ItemType
This is the Property List Token Item for the Site Control File.

Qualifiers: key, read

Datatype: string

PropertyListName
This is the name of the property list.

Qualifiers:

Datatype: string

Values
This is an array of zero or more string values.

Qualifiers:

Datatype: string


SMS_ExtendedStatus

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_ExtendedStatus : __ExtendedStatus {
//  string    Description;
//  string    Operation;
//  string    ParameterInfo;
//  string    ProviderName;
//  sint32    StatusCode;
    uint32    SDKErrorCode = 0;
    string    File = "";
    uint32    Line = 0;
};

Properties

SDKErrorCode
Qualifiers:

Datatype: uint32

File
Qualifiers:

Datatype: string

Line
Qualifiers:

Datatype: uint32


SMS_G_System_CollectedFile

[ Dynamic, Provider("ExtnProv"), DisplayName("Collected Files") ]
class SMS_G_System_CollectedFile : SMS_G_System {
[key]
    uint32    ResourceID;
[key]
    string    FilePath;
[key]
    uint32    RevisionID;
    string    FileName;
    uint32    FileSize;
    datetime  ModifiedDate;
    string    LocalFilePath;
    datetime  CollectionDate;
};

Properties

ResourceID
This is the resource ID number.

Qualifiers: key

Datatype: uint32

FilePath
This is the path for the file

Qualifiers: key

Datatype: string

FileSize
This is the file size.

Qualifiers:

Datatype: uint32

ModifiedDate
This is the timestamp for the modified file.

Qualifiers:

Datatype: datetime

LocalFilePath
This is the local file path.

Qualifiers:

Datatype: uint32

CollectionDate
This is the timestamp for the collection.

Qualifiers:

Datatype: datetime


SMS_G_System_SoftwareFile

[ Dynamic, Provider("ExtnProv"), DisplayName("Software Products") ]
class SMS_G_System_SoftwareFile : SMS_G_System {
[key]
    uint32    ResourceID;
[key]
    uint32    FileID;
    uint32    ProductId;
    string    FileName;
    string    FileDescription;
    string    FileVersion;
    uint32    FileSize;
    uint32    FileCount;
    datetime  ModifiedDate;
    datetime  CreationDate;
};

Properties

ResourceID
This is the resource ID number.

Qualifiers: key

Datatype: uint32

FileID
This is the file ID

Qualifiers: key

Datatype: uint32

ProductID
This is product ID.

Qualifiers:

Datatype: uint32

FileName
This is the file name.

Qualifiers:

Datatype: string

FileDescription
This is the file description

Qualifiers:

Datatype: string

FileVersion
This is the file version

Qualifiers:

Datatype: string

FileSize
This is the file size.

Qualifiers:

Datatype: uint32

FileCount
This is the file count.

Qualifiers:

Datatype: uint32

ModifiedDate
This is the timestamp for the modified file.

Qualifiers:

Datatype: datetime

CreationDate
This is the intial timestamp for the file.

Qualifiers:

Datatype: datetime


SMS_G_System_SoftwareProduct

[ Dynamic, Provider("ExtnProv"), DisplayName("Software Products") ]
class SMS_G_System_SoftwareProduct : SMS_G_System {
[key]
   uint32     ResourceID;
[key]
    uint32    ProductId;
    string    CompanyName;
    string    ProductName;
    string    ProductVersion;
    string    ProductLanguage;
};

Properties

ResourceID
This is the resource ID number.

Qualifiers: key

Datatype: uint32

ProductID
This is the product ID.

Qualifiers: key

Datatype: uint32

CompanyName
This is the company name.

Qualifiers:

Datatype: sting

ProductName
This is the product name.

Qualifiers:

Datatype: string

ProductVersion
This is the product version.

Qualifiers:

Datatype: string

ProductLanguage
This is the product language.

Qualifiers:

Datatype: string


SMS_G_System_UnknownFile

[ Dynamic, Provider("ExtnProv"), DisplayName("Unknown Files") ]
class SMS_G_System_UnknownFile : SMS_G_System {
[key]
    uint32    ResourceID;
[key]
    uint32    FileID;
    uint32    ProductId;
    string    FileName;
    string    FileDescription;
    string    FileVersion;
    uint32    FileSize;
    uint32    FileCount;
    datetime  ModifiedDate;
    datetime  CreationDate;
};

Properties

ResourceID
This is the resource ID number.

Qualifiers: key

Datatype: uint32

FileID
This is the file ID

Qualifiers: key

Datatype: uint32

ProductID
This is product ID.

Qualifiers:

Datatype: uint32

FileName
This is the file name.

Qualifiers:

Datatype: string

FileDescription
This is the file description

Qualifiers:

Datatype: string

FileVersion
This is the file version

Qualifiers:

Datatype: string

FileSize
This is the file size.

Qualifiers:

Datatype: uint32

FileCount
This is the file count.

Qualifiers:

Datatype: uint32

ModifiedDate
This is the timestamp for the modified file.

Qualifiers:

Datatype: datetime

CreationDate
This is the intial timestamp for the file.

Qualifiers:

Datatype: datetime


SMS_G_System

[ Abstract ]
class SMS_G_System : SMS_Group {
};


SMS_G_User

[ Abstract ]
class SMS_G_User : SMS_Group {
};


SMS_Group

[ Abstract,  DisplayName("") ]
class SMS_Group : SMS_BaseClass {
    uint32    ResourceID = 0;
};

Properties

ResourceID
This is the resource ID.

Qualifiers:

Datatype: uint32.

Usage

The SMS_Group class will be populated for most derived classes.


SMS_Identification

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_Identification  : SMS_BaseClass {
[key]
    string    ThisSiteCode;
    string    SMSVersion;
    uint32    SMSBuildNumber;
    uint32    SMSMinBuildNumber;
    string    ServiceAccountName;
};

Properties

ThisSiteCode
This is the site code.

Qualifiers: key

Datatype: string

SMSVersion
This is the SMS version

Qualifiers:

Datatype: string

SMSBuildNumber
This is the SMS build number.

Qualifiers:

Datatype: uint32

SMSinBuildNumber

Qualifiers:

Datatype: uint32

ServiceAccountName

Qualifiers:

Datatype: string


SMS_MachineSummarizer

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_MachineSummarizer {
[key, SizeLimit("3")]
    string    SiteCode;
[key, SizeLimit("128")]
    string    MachineName;
[bits("LOGON_POINT(1),DISTRIBUTION_POINT(2),CLIENT_ACCESS_POINT(3),COMPONENT_SERVER(4),SMS_SQL_SERVER(5),SITE_SERVER(6)")]
    uint32    Role;
    datetime  LastContacted;
    datetime  TimeReported;
    uint32    Heartbeat;
    uint32    Warnings_All;
    uint32    Errors_All;
    uint32    Warnings_Every2;
    uint32    Errors_Every2;
    uint32    Warnings_Every4;
    uint32    Errors_Every4;
    uint32    Warnings_Every6;
    uint32    Errors_Every6;
    uint32    Warnings_Noon;
    uint32    Errors_Noon;
    uint32    Warnings_Midnight;
    uint32    Errors_Midnight;
    uint32    Warnings_1_of_Week;
    uint32    Errors_1_of_Week;
    uint32    Warnings_1_of_Month;
    uint32    Errors_1_of_Month;
    uint32    Warnings_15_of_Month;
    uint32    Errors_15_of_Month;
};

Properties

SiteCode

Qualifiers: key, SizeLimit

Datatype: string

MachineName
This the machine name.

Qualifiers: key, SizeLimit

Datatype: string

Role
This is a bit mask for the identified SMS roles (LOGON_POINT, DISTRIBUTION_POINT, CLIENT_ACCESS_POINT, COMPONENT_SERVER, SMS_SQL_SERVER, and SITE_SERVER).

Qualifiers: bits

Datatype: uint32

LastContacted
This is the last message time.

Qualifiers:

Datatype: datetime

TimeReported
This is the last replicated time.

Qualifiers:

Datatype: datetime

Heartbeat
This designates the heartbeat interval, in minutes.

Qualifiers:

Datatype: uint32

Warnings_All
This is a count of all warnings.

Qualifiers:

Datatype: uint32

Errors_All
This is a count of all errors.

Qualifiers:

Datatype: uint32

Warnings_Every2
This is a count of warnings for the last two hours, reported on the hour.

Qualifiers:

Datatype: uint32

Errors_Every2
This is a count of errors for the last two hours, reported on the hour.

Qualifiers:

Datatype: uint32

Warnings_Every4
This is a count of warning for the last four hours, reported on the hour.

Qualifiers:

Datatype: uint32

Errors_Every4
This is a count of errors for the last four hours, reported on the hour.

Qualifiers:

Datatype: uint32

Warnings_Every6
This is a count of warning for the last six hours, reported on the hour.

Qualifiers:

Datatype: uint32

Errors_Every6
This is a count of errors for the last six hours, reported on the hour.

Qualifiers:

Datatype: uint32

Warnings_Noon
This is a count of warnings at 12 noon.

Qualifiers:

Datatype: uint32

Errors_Noon
This is a count of errors at 12 noon.

Qualifiers:

Datatype: uint32

Warnings_Midnight
This is a count of warnings at midnight.

Qualifiers:

Datatype: uint32

Errors_Midnight
This is a count of warnings at midnight.

Qualifiers:

Datatype: uint32

Warnings_1_of_Week
This is a count of errors for the first (1) of the week.

Qualifiers:

Datatype: uint32

Errors_1_of_Week
This is a count of errors for the first (1) of the week.

Qualifiers:

Datatype: uint32

Warnings_1_of_Month
This is a count of errors for the first (1) of the month.

Qualifiers:

Datatype: uint32

Errors_1_of_Month
This is a count of errors for the first (1) of the month.

Qualifiers:

Datatype: uint32

Warnings_15_of_Month
This is a count of errors for the fifteenth (15) of the month.

Qualifiers:

Datatype: uint32

Errors_15_of_Month
This is a count of errors for the fifteenth (15) of the month.

Qualifiers:

Datatype: uint32


SMS_NoLoopInData

[ methoddata ]
class SMS_NoLoopInData {
[SizeLimit("3")]
    string    CentralSiteCode = "";
[SizeLimit("3")]
    string    TargetSiteCode = "";
[SizeLimit("3")]
    string    ParentSiteCode = "";
};

Properties

CentralSiteCode
Qualifiers: SizeLimit

Datatype: string

TargetSiteCode
Qualifiers: SizeLimit

Datatype: string

ParentSiteCode
Qualifiers: SizeLimit

Datatype: string


SMS_OS_Details

The SMS_OS_Details is an embedded class.

class SMS_OS_Details  {
    string Name = "";
    string Platform = "";
    string MinVersion = "";
    string MaxVersion = "";
};

Properties

Name
Qualifiers:

Datatype: string

Platform
Qualifiers:

Datatype: string

MinVersion
Qualifiers:

Datatype: string

MaxVersion
Qualifiers:

Datatype: string

See Also


SMS_Package

The SMS_Package is a dynamic, provider class.

class SMS_Package : SMS_BaseClass {
[key]
    string    PackageID = "";
    string    Name = "";
    string    Version = "";
    string    Language = "";
    string    Manufacturer = "";
    string    Description = "";
[enumeration("STORAGE_NO_SOURCE(1),STORAGE_DIRECT(2), STORAGE_COMPRESS(3),STORAGE_LOCAL(4)")]
    uint32    PkgSourceFlag = 1;
    string    PkgSourcePath = "";
[instancemethod, Description("This method causes a refresh of the package source - for use when the Package properties have not changed")]
    method    RefreshPkgSource;
    string    StoredPkgPath = "";
    uint32    StoredPkgVersion = 0;
[enumeration("SHARE_COMMON(1),SHARE_SPECIFIC(2)")]
    uint32    ShareType = 1;
    string    ShareName = "";
    string    SourceSite = "";
    BOOL      ForcedDisconnectEnabled = 0;
    uint32    ForcedDisconnectNumRetries = 0;
    uint32    ForcedDisconnectDelay = 0;
[enumeration("HIGH(1),NORMAL(2),LOW(3)")]
    uint32    Priority = 2;
[stringenumeration("ADDR_NONE(),ADDR_LAN(MS_LAN),ADDR_MAPI(MS_MAPI),ADDR_RAS_ASYNC(MS_ASYNC_RAS),ADDR_RAS_ISDN(MS_ISDN_RAS),ADDR_RAS_X25(MS_X25_RAS),ADDR_RAS_SNA(MS_SNA_RAS),ADDR_SNA_BATCH(MS_BATCH_SNA),ADDR_SNA_INTER(MS_INTER_SNA),ADDR_COURIER(MS_COURIER)")]
    string    PreferredAddressType = "";
    BOOL      IgnoreAddressSchedule = 0;
    uint32    IconSize = 0;
    uint8     Icon[];
[max(2), noquery]
    SMS_ScheduleToken  RefreshSchedule[];
    uint32    GenericAccess = 0;
[noquery]
    SMS_PackageAccessByUsers    UserSpecificAccess[];
};

Properties

PackageID
A unique key generated by sms.

Qualifiers: key

Datatype: string

Name
The name of the package.

Qualifiers:

Datatype: string

Version
The version of the package.

Qualifiers:

Datatype: string

Language
The language of the package.

Qualifiers:

Datatype: string

Manufacturer
The manufacture of the package.

Qualifiers:

Datatype: string

Description
A description of the package.

Qualifiers:

Datatype: string

PkgSourceFlag
This flage denotes where and how the package should be stored. Here are the values: 1 = if there is no files in the package; 2= if you want to store a normal copy uncompressed; 3= if you want to store a compressed version and store it.

Qualifiers: enumeration

Datatype: uint32

PkgSourcePath
The path where you have the package data. It's used when PkgSourceFlag is equal to 2 or 3.

Qualifiers:

Datatype: string

RefreshPkgSource
This method causes a refresh of the package source - for use when the Package properties have not changed.

Qualifiers: Instancemethod, Description

Datatype: method

StoredPkgPath
The location of the compressed files for the package. It is supplied by SMS when it compression has been completed.

Qualifiers:

Datatype: string .

StoredPkgVersion
Qualifiers:

Datatype: uint32 .

ShareType.
The value is SHARE_COMMON when the package is shared through a common SMS package share, or the value is SHARE_SPECIFIC when the package is shared from a specifc name.

Qualifiers: enumeration

Datatype: uint32.

ShareName
Contains the name if you choose SHARE_SPECIFIC in ShareType.
Qualifiers:
Datatype: string
SourceSite
The three letter site code of the originatng site of the package.

Qualifiers:

Datatype: string

ForcedDisconnectEnabled
When TRUE, SMS will disconnect the any users from the package share–the time specificed in the ForcedDisconnectDelay below. When FALSE, SMS won't try to disconnect users from the share. The default value is FALSE.
Qualifiers:

Datatype: BOOL

ForcedDisconnectNumRetries
The number of times SMS tries to disconnect the users from the shares. The default value is zero.

Qualifiers:

Datatype: uint32

ForcedDisconnectDelay
The number of hours SMS tries to disconnect the users from the shares. The default value is zero.

Qualifiers:

Datatype: uint32.

Priority
The sending priority for the package. The values for this property are represented by HIGH(1), NORMAL(2), LOW(3).

Qualifiers: enumeration

Datatype: uint32.

PreferredAddressType
The type of address used by sender to distribute the package. The values for this property are represented by a string enumeration.

Qualifiers: stringenumeration

Datatype: string
ADDR_NONE
()
ADDR_LAN
(MS_LAN)
ADDR_MAPI
(MS_MAPI)
ADDR_RAS_ASYNC
(MS_ASYNC_RAS)
ADDR_RAS_ISDN
(MS_ISDN_RAS)
ADDR_RAS_X25
(MS_X25_RAS)
ADDR_RAS_SNA
(MS_SNA_RAS)
ADDR_SNA_BATCH
(MS_BATCH_SNA)
ADDR_SNA_INTER
(MS_INTER_SNA)
ADDR_COURIER
(MS_COURIER)"

IgnoreAddressSchedule
When true, the sender will ignore any address availability restrictions, thus enabling "send now" irrespective of sender settings. The default value is zero.

Qualifiers:

Datatype: BOOL.

IconSize
The icon size for the package. The default value is zero, which clears the icon.

Qualifiers:

Datatype: uint32.

Icon
An array of numbers that defines the icon.

Qualifiers:

Datatype: uint8.

RefreshSchedule
Uses an embedded object of type SMS_Scheduletoken to indicate when to refresh the package at it's distribution points.

Qualifiers: max, noquery

Datatype: SMS_ScheduleToken

GenericAccess
Defines the NT permissions set on the package share for guests and users. The default value is zero indicating that users have no access by default. GenericAccess is for all users not specified by an instance of SMS_PackageAccessByUsers.

Qualifiers: bits

Datatype: uint32

UserSpecificAccess
Takes an array of SMS_PkgAccessByUsers objects, and uses it to set individual permissions on the share for those users. It is not returned by a query.

Qualifiers: noquery

Datatype: SMS_PackageAccessByUsers.


SMS_PackageAccessByUsers

The SMS_PackageAccessByUsers is an embedded class.

class SMS_PackageAccessByUsers {
    string    UserName = "";
    uint32    Access = 0;
};

Properties

UserName
Qualifiers: (none)

Datatype: string

Access
Qualifiers: (none)

Datatype: uint32


SMS_PackageStatusRootSummarizer

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_PackageStatusRootSummarizer {
[key, SizeLimit("8")]
    string    PkgID ;
[SizeLimit("64")]
    string    Name;
    uint32    TotalTarget;
    uint32    TotalInstalled;
};

Properties

PkgID
Qualifiers: key, SizeLimit

Datatype: string

Name
Qualifiers: SizeLimit

Datatype: string

TotalTarget
Qualifiers:

Datatype: uint32

TotalInstalled
Qualifiers:

Datatype: uint32


SMS_PackageStatusSummarySummarizer

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_PackageStatusSummarySummarizer {
[key, SizeLimit("8")]
    string    PkgID;
[key, SizeLimit("3")]
    string    SiteCode;
    datetime  LastRefresh;
    uint32    Targeted;
    uint32    Installed;
    uint32    Refreshing;
    uint32    Retrying;
    uint32    Failed;
    datetime  UpdateTime;
};

Properties

PkgID
Qualifiers: key, SizeLimit

Datatype: string

SiteCode
Qualifiers: key, SizeLimit

Datatype: string

LastRefresh
Qualifiers:

Datatype: datetime

Targeted
Qualifiers:

Datatype: uint32

Installed
Qualifiers:

Datatype: uint32

Refreshing
Qualifiers:

Datatype: uint32

Failed
Qualifiers:

Datatype: uint32

UpdateTime
Qualifiers:

Datatype: datetime


SMS_PackageToAdvert_a

The SMS_PackageToAdvert_a is a dynamic class. It is for read only and is used to associate an SMS_Package class with an SMS_Advertisement class.

class SMS_PackageToAdvert_a : SMS_BaseAssociation {
[key]
    SMS_Package  ref  packageRef;
[key]
    SMS_Advertisement  ref  advertRef;
};

Properties

packageRef
Qualifiers: key

Datatype: SMS_Package

advertRef
Qualifiers: key

Datatype: SMS_Advertisment.


SMS_PackedNALPath

[ methoddata ]
class SMS_PackedNALPath {
    string    NALPath;
};

Properties

NALPath
This contains the full NAL Path string.

Qualifiers:

Datatype: string


SMS_PkgToPkgProgram_a

The SMS_PkgToPkgProgram_a is a dynamic class. It is for read only and is used to associate an SMS_Package class with an SMS_Program class.

class SMS_PkgToPkgProgram_a : SMS_BaseAssociation {
[key]
    SMS_Package  ref  packageRef;
[key]
    SMS_Program  ref  pkgProgramRef;
};

Properties

packageRef
Qualifiers: key

Datatype: SMS_Package

pkgProgramRef
Qualifiers: key

Datatype: SMS_Program


SMS_PkgToPkgServer_a

The SMS_PkgToPkgServer_a is a dynamic class. It is for read only and is used to associate an SMS_Package class with an SMS_Distribution class.

class SMS_PkgToPkgServer_a : SMS_BaseAssociation  {
[key]
    SMS_Package  ref  packageRef;
[key]
    SMS_DistributionPoint  ref  pkgServerRef;
};

Properties

packageRef
Qualifiers: key

Datatype: SMS_Package

pkgServerRef

Qualifiers: key

Datatype: SMS_DistributionPoint


SMS_Program

The SMS_Program class is a dynamic class.

class SMS_Program : SMS_BaseClass {
[key, Not_null]
    string ProgramName = "";
[key, Not_null]
    string    PackageID = "";
    string    Description = "";
    string    CommandLine = "";
    string    Comment= "";
    string    Requirements= "";
    string    DependentProgram= "";
[SizeLimit("1"),Range("a-z")]
    string DriveLetter = "";
    string    WorkingDirectory = "";
[noquery]
    SMS_OS_Details  SupportedOperatingSystems[];
    string ApplicationHierarchy = "";
    uint32    IconSize = 0;
    uint8     Icon[];
[bits("DISABLED(12),UNATTENDED(13),USERCONTEXT(14),ADMINRIGHTS(15),EVERYUSER(16),NOUSERLOGGEDIN(17),OKTOQUIT(18),OKTOREBOOT(19),USEUNCPATH(20),PERSISTCONNECTION(21),RUNMINIMIZED(22),RUNMAXIMIZED(23),HIDEWINDOW(24),OKLOGOFF(25),RUNACCOUNT(26)") ]
    uint32 ProgramFlags = 1130496;
    uint32 DiskSpaceReq = 0;
    uint32 Duration = 0;
};

Properties

ProgramName
Qualifiers: key, Not_null

Datatype: string

PackageID
Qualifiers: key, Not_null

Datatype: string

Description
Qualifiers:

Datatype: string

CommandLine
Qualifiers:

Datatype: string

Comment
Qualifiers:

Datatype: string

Requirements
Qualifiers:

Datatype: string

DependentProgram
Qualifiers:

Datatype: string

DriveLetter
The size limit is one and the range is from a - z.

Qualifiers: SizeLimit, Range

Datatype: string

WorkingDirectory
Qualifiers:

Datatype: string

SupportedOperatingSystems
Qualifiers: noquery

Datatype: SM.

ApplicationHierarchy
Qualifiers:

Datatype: string

IconSize
Set this to zero to clear icon

Qualifiers:

Datatype: uint32.

Icon
Qualifiers:

Datatype: uint8.

ProgramFlags
The default value is set to EveryUser, UsUNC, and USERCONTEXT.

Qualifiers: bits

Datatype: uint32.

DiskSpaceReq
Qualifiers:

Datatype: uint32.

Duration
Qualifiers:

Datatype: uint32.


SMS_PropertyDisplayNode

[ Dynamic, Provider("ExtnProv") ]
class SMS_PropertyDisplayNode {
[read, Not_null, key]
    uint32    NodeKey = 0;
[bits("Static(0),RootNode(1),LeafNode(2),HasHistory(3)")]
    uint32    Flags = 0;
    uint32    PaneOrder = 0;
    string    NodeName = "";
    uint32    ParentNodeKey = 0;
[read, nowhere]
    string    ClassName = "";
    string    ClassDisplayName = "";
    string    ResourceDisplayName = "";
    string    ScopePropertyNames[];
    string    ScopePropertyIDName = "";
    string    ResultProperties[];
    string    ResultPropertyIDName = "";
};

Properties

NodeKey
This is an auto generated key value.

Qualifiers: read, Not_null, key

Datatype: uint32.

Flags
Qualifiers: bits

Datatype: uint32.

PaneOrder
Qualifiers:

Datatype: uint32.

NodeName
The name of the Node in the scope pane

Qualifiers:

Datatype: string

ParentNodeKey
Node key of the Parent Node. The default value is zero.

Qualifiers:

Datatype: uint32

ClassName
Name of the class for the scope and result query.

Qualifiers: read, nowhere

Datatype: string

ClassDisplayName
Display name for class.

Qualifiers:

Datatype: string.

ResourceDisplayName
Display name for the Resource Class.

Qualifiers:

Datatype: string.

ScopePropertyNames
An array that contains the names of the property to request for the scope list.

Qualifiers:

Datatype: string.

ScopePropertyIDName
Name of the id property that needs to be stored for each scope.

Qualifiers:

Datatype: string

ResultProperties
Names of the properties to be displayed in the results pane.

Qualifiers:

Datatype: string.

ResultPropertyIDName
Name of the property to be used in the 'where' clause of Result query

Qualifiers:

Datatype: string


SMS_Query

[ Dynamic, Provider("ExtnProv") ]
class SMS_Query : SMS_BaseClass
  {
[read, key]
    string    QueryID;
    string    Name = "";
    string    Comments = "";
[Description("The WQL text for the query")]
    string    Expression = "";
[Description("This list target class names is extensible, for joins on Resources and Groups use the derived Resource Class name")]
    string    TargetClassName = "";
[read, Description("The literal SQL, read only, temporary and here for test purposes only")]
    string    SQLExpression;
};

Properties

QueryID
Qualifiers: read, key

Datatype: string

Name
Qualifiers:

Datatype: string

Comments
Qualifiers:

Datatype: string

Expression
The WQL text for the query.

Qualifiers: Description

Datatype: string

TargetClassName
This list target class names is extensible, for joins on Resources and Groups use the derived Resource Class name.

Qualifiers: Description

Datatype: string

SQLExpression
The literal SQL, read only, temporary and here for only test purposes.

Qualifiers: read, Description

Datatype: string


SMS_QueryExec_a

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_QueryExec_a : SMS_BaseAssociation {
[key]
    SMS_Query  ref  query;
[key]
    SMS_BaseClass  ref  result;
};

Properties

query
This property references SMS_Query

Qualifiers: key

Datatype: SMS_Query.

result
This property references SMS_BaseClass

Qualifiers: key

Datatype: SMS_BaseClass


SMS_R_System

class SMS_R_System : SMS_Resource {
// lots of props
};


SMS_Resource

[ Abstract, DisplayName(""), ResourceType(0) ]
class SMS_Resource : SMS_BaseClass {
[key]
    uint32    ResourceId = 0;
};

Properties

ResourceId
Qualifiers: key

Datatype: uint32

Usage

This will be populated for derived classes (the old architecture name and the old architecture key)


SMS_ResourceMap

[ Dynamic, Provider("ExtnProv"), Read, Description("A class containing Resource mapping information for conversion between the 3 properties") ]
class SMS_ResourceMap {
[key]
    uint32    ResourceType;
    string    DisplayName;
    string    ResourceClassName;
[classmethod, Description("This updates the resource and inventory class lists with new definitions")]
    method    Refresh;
};

Properties

ResourceType
This is the old architecture key.

Qualifiers: key

Datatype: uint32

DisplayName
This is the old architecture name.

Qualifiers:

Datatype: string

ResourceClassName
This is the WBEM class name.

Qualifiers:

Datatype: string

Refresh
This updates the resource and inventory class lists with new definitions.

Qualifiers: classmethod, Description

Datatype: method


SMS_ResourceToGroup_a

class SMS_ResourceToGroup_a : SMS_BaseAssociation {
[key]
    SMS_Resource  ref  invResource;
[key]
    SMS_Group  ref  invGroup;
};

Properties

invResource
This property references SMS_Resource

Qualifiers: key

Datatype: SMS_Resource

invGroup
This property references SMS_Group

Qualifiers: key

Datatype: SMS_Group

Usage

This class in not implmented


SMS_ScheduleData

[ methoddata ]
class SMS_ScheduleData {
    string    StringData = "";
    SMS_ScheduleToken TokenData[];
};

Properties

StringData
This property provides the schedule list meta data as string references.

Qualifiers:

Datatype: string

TokenData
This is a token array that contains schedule list meta data.

Qualifiers:

Datatype: SMS_ScheduleToken


SMS_ScheduleMethods

[ Abstract,  Dynamic,  Provider("ExtnProv") ]
class SMS_ScheduleMethods {
[classmethod, in("SMS_ScheduleData"), out("SMS_ScheduleData")]
    method    WriteToString;
[classmethod, in("SMS_ScheduleData"), out("SMS_ScheduleData")]
    method    ReadFromString;
};

Properties

WriteToString
Qualifiers: classmethod, in, out

Datatype: method

ReadFromString
Qualifiers: classmethod, in, out

Datatype: method


SMS_ScheduleToken

The SMS_ScheduleToken is an abstract, embedded class. It is the basic building block for all the scheduling classes.

class SMS_ScheduleToken {
    datetime  StartTime = "19900101000000.000000+***";
    uint32    MinuteDuration = 0;
    uint32    HourDuration = 0;
    uint32    DayDuration = 0;
};

Properties

StartTime
This property has a range from zero to 59.

Qualifiers: (none)

Datatype: datetime

MinuteDuration
This property has a range from zero to 59.

Qualifiers: (none)

Datatype: uint32

HourDuration
This property has a range from zero to 23.

Qualifiers: (none)

Datatype: uint32

DayDuration
This property has a rangefrom zero to 31.

Qualifiers: (none)

Datatype: uint32

Usage

Other classes inherit the basic scheduling properties from SMS_ScheduleToken. Many other classes are derived from it, including SMS_ST_NonRecurring, SMS_ST_RecurInterval, and SMS_ST_RecurWeekly . Each of the classes derived from SMS_ScheduleToken inherit its properties and can then add their own for more specific scheduling tasks.

See Also

SMS_ST_NonRecurring, SMS_ST_RecurInterval, and SMS_ST_RecurWeekly


SMS_SCI_Address

[ Dynamic, Provider("ExtnProv") ]
class SMS_SCI_Address : SMS_SiteControlItem {
[read]
    string    ItemType="Address Item, Site Control File";
[SizeLimit("3")]
    string    DesSiteCode = "";
[stringenumeration("ADDR_LAN(MS_LAN),ADDR_MAPI(MS_MAPI),ADDR_RAS_ASYNC(MS_ASYNC_RAS),ADDR_RAS_ISDN(MS_ISDN_RAS),ADDR_RAS_X25(MS_X25_RAS),ADDR_RAS_SNA(MS_SNA_RAS),ADDR_SNA_BATCH(MS_BATCH_SNA),ADDR_SNA_INTER(MS_INTER_SNA),ADDR_COURIER(MS_COURIER)")]
    string    AddressType = "";
    uint32    Order = 0;
    SMS_EmbeddedProperty Props[];
    SMS_EmbeddedPropertyList PropLists[];
    SMS_SiteControlDaySchedule Schedule[7];
    bool      UnlimitedRateForAll;
    uint32    RateLimitingSchedule[24];
};

Properties

ItemType
This contains the Address Item, Site Control File.

Qualifiers: read

Datatype: string.

DesSiteCode
This contains the destination site code. The limit is three.

Qualifiers: SizeLimit

Datatype: string.

AddressType
This contains the type of the address.

Qualifiers: stringenumeration

Datatype: string.

Order
This is the order. The value 0 tells UI to autoassign.

Qualifiers:

Datatype: uint32.

Props
This is a list of zero or more Property items for this configuration.

Qualifiers:

Datatype: SMS_EmbeddedProperty.

PropLists
It is an arrary listing zero or more Property List items for this configuration (e.g., . 0=Sunday, 1=Monday etc.)

Qualifiers:

Datatype: SMS_EmbeddedPropertyList

Schedule[7]
It is an array of 7 items, each representing one week day, 0 - Sunday, 1 - Monday and so on.

Qualifiers:

Datatype: SMS_SiteControlDaySchedule.

UnlimitedRateForAll
This identifies the enables/disables rate limiting flag unlimited for all.

Qualifiers:

Datatype: bool.

RateLimitingSchedule[24]
This is the /24 hour rate table that goes from 1% to 100%. If rate limiting flag is unlimited for all, this returns 100 for all 24 elements

Qualifiers:

Datatype: uint32.


SMS_SCI_ClientComp

[ Dynamic, Provider("ExtnProv") ]
class SMS_SCI_ClientComp : SMS_SiteControlItem {
[read]
    string    ItemType="Client component item, Site Control File";
    string    ClientComponentName = "";
[bits("ACTIVE(0)")]
    uint32    Flags = 0;
    SMS_EmbeddedProperty  Props[];
    SMS_EmbeddedPropertyList PropLists[];
    SMS_Client_Reg_MultiString_List RegMultiStringLists[];
};

Properties

ItemType
Qualifiers: read

Datatype: string.

ClientComponentName
This contains the client component name

Qualifiers:

Datatype: string.

Flags
This contains the Client component flags

Qualifiers: bits

Datatype: uint32.

Props
This contains the list of zero or more Property items for this configuration.

Qualifiers:

Datatype: SMS_EmbeddedProperty.

PropLists
This contains the List of zero or more Property List items for this configuration.

Qualifiers:

Datatype: SMS_EmbeddedPropertyList.

RegMultiStringLists
This contains the list of zero or more Client_Reg_MultString_List items

Qualifiers:

Datatype: SMS_Client_Reg_MultiString_List.


SMS_SCI_ClientConfig

[ Dynamic, Provider("ExtnProv") ]
class SMS_SCI_ClientConfig : SMS_SiteControlItem {
[read]
    string    ItemType="Client configuration item, Site Control File";
[StringEnumeration("COMP_STATUS_MESSAGE_FILTER(Component Status Message Filter)")]
    string    ClientConfigName = "";
[enumeration("ACTIVE(1),BASE_INSTALL(2)")]
    uint32    Flags = 0;
[StringEnumeration("ALL(ALL),"
       "WIN_NT(WIN_NT),"
       "WIN_95(WIN_95),"
       "WIN_16(WIN_16),"
       "DOS(DOS),"
       "OS2(OS2)")]
    string    Platforms[];
    SMS_EmbeddedProperty  Props[];
    SMS_EmbeddedPropertyList PropLists[];
    SMS_Client_Reg_MultiString_List RegMultiStringLists[];
};

Properties

ItemType
This contains the Client configuration item, Site Control File.

Qualifiers: read

Datatype: string.

ClientConfigName
This contains the Client configuration block name.

Qualifiers: StringEnumeration

Datatype: string.

Flags
This contains the configuration block flags.

Qualifiers: enumeration

Datatype: uint32.

Platforms
This contains the Client platform(s).

Qualifiers: StringEnumeration

Datatype: string.

Props
It is an array.of zero or more property items for this configuration.

Qualifiers:

Datatype: SMS_EmbeddedProperty.

PropLists
It is an arrary listing zero or more Property List items for this configuration.

Qualifiers:

Datatype: SMS_EmbeddedPropertyList.

RegMultiStringLists
It is an arrary listing zero or more Client_Reg_MultString_List items for this configuration.

Qualifiers:

Datatype: SMS_Client_Reg_MultiString_List.


SMS_SCI_Component

[ Dynamic, Provider("ExtnProv") ]
class SMS_SCI_Component : SMS_SiteControlItem {
[read]
    string    ItemType="Component Token Item, Site Control File";
    string    ComponentName = "";
[enumeration("ROLE_NOT_INSTALLED(1),NAMED_SERVER_NOT_INSTALLED(2),ROLE_INSTALLED(5),NAMED_SERVER_INSTALLED(6)"), description("If 'Flag' is ROLE, then 'Name' specifies the role of the\n"
    "servers that this component should be installed on. The component is\n"
    "installed on every server having the specified role.\n\n"
    "If 'Flag' is NAMED_SERVER, then 'Name' specifies a\n"
    "single particular server that this component should be installed on.  The\n"
    "server name is a just the name of the server; it does not have any\n"
    "backslashes prepended to it, or 'MSWNet:', etc.\n\n"
    "The 'Flag' may be OR'ed with INSTALLED to indicate that the component\n"
    "is installed or not installed")]
    uint32    Flag = 0;
    string    Name = "";
    SMS_EmbeddedProperty  Props[];
    SMS_EmbeddedPropertyList  PropLists[];
};

Properties

ItemType
This contains the Client configuration item, Site Control File.

Qualifiers: read

Datatype: string.

ComponentName
This contains the component name.

Qualifiers:

Datatype: string.

Flag
This contains the component flags.

Qualifiers: enumeration, description

Datatype: uint32.

Name
This contains the role or server name.

Qualifiers:

Datatype: string.

Props
It is an array.of zero or more property items for this configuration.

Qualifiers:

Datatype: SMS_EmbeddedProperty.

PropLists
It is an arrary listing zero or more Property List items for this configuration.

Qualifiers:

Datatype: SMS_EmbeddedPropertyList.


SMS_SCI_Configuration

[ Dynamic, Provider("ExtnProv") ]
class SMS_SCI_Configuration : SMS_SiteControlItem {
[read]
    string    ItemType="Configuration Item, Site Control File";
    string    ConfigurationName = "";
    SMS_EmbeddedProperty  Props[];
    SMS_EmbeddedPropertyList PropLists[];
};

Properties

ItemType
This contains the Client configuration item, Site Control File.

Qualifiers: read

Datatype: string.

ConfigurationName
This contains the name of the configuration.

Qualifiers:

Datatype: string.

Props
It is an array.of zero or more property items for this configuration.

Qualifiers:

Datatype: SMS_EmbeddedProperty.

PropLists
It is an arrary listing zero or more Property List items for this configuration.

Qualifiers:

Datatype: SMS_EmbeddedPropertyList.


SMS_SCI_FileDefinition

[ Dynamic, Provider("ExtnProv") ]
class SMS_SCI_FileDefinition : SMS_SiteControlItem {
[read]
    string    ItemType="File Definition Token Item, Site Control File";
    string    Comment = "";
    string    TargetSite = "";
    string    OriginatingSite = "";
[read]
    uint32    SerialNumber = 0;
[enumeration("NOT_POSTED(0),POSTED(1)")]
    uint32    Flags = 0;
};

Properties

ItemType
This is the file definition token item, regarding site control file.

Qualifiers: read

Datatype: string.

Comment
This contains textual comment regarding site control file.

Qualifiers:

Datatype: string.

TargetSite
This contains the target site for this site control file.

Qualifiers:

Datatype: string.

OriginatingSite
This contains the site which created this site control file.

Qualifiers:

Datatype: string.

SerialNumber
This contains the serial number for site control file.

Qualifiers: read

Datatype: uint32.

Flags
This represents whether it was posted or not posted

Qualifiers: enumeration

Datatype: uint32.


SMS_SCI_Property

[ Embedded, Dynamic, Provider("ExtnProv"), Description("This a list of well known property names\n"
    "Related to Site Configuration Manager\n"
    "Site Control Heartbeat Interval\n"
    "Inter-Poll Delay Time\n"
    "Server Deinstallation Retry Time\n"
    "Component Deinstallation Retry Time\n"
    "Startup Schedule\n"
    "Maximum Thread Yield Time In Milliseconds\n"
    "Number of CPU Resource Tokens\n"
    "Number of Disk Resource Tokens\n\n"
    "Related to Configuration section in Site Control File\n"
    "Concurrent Sending Limit  - <Max sending limit><Max concurrent sending limit><0>\n"
    "Number of Retries   - <><><Number of retries>\n"
    "Retry Delay      - <><><Retry delay in minutes>\n"
    "Update Timeout   - <><><Update timeout in minutes>\n"
    "Thread Limit     - <><><Thread limit>\n"
    "P1 Thread Limit     - <><><High pirority job thread processing limit>\n"
    "P2 Thread Limit     - <><><Medium pirority job thread processing limit>\n"
    "P3 Thread Limit     - <><><Low pirority job thread processing limit>\n"
    "Package Root Directory - <Package root directory><><0>\n\n"
    "Related to SysResUse section in Site Control File\n"
    "InboxRoot\n"
    "Site Info     - <Site Code><Site Name><0>\n\n"

    "Related to Address section in Site Control File\n"
    "LAN Login     - <user name><password><>\n"
    "Connection Point    - <server name><share name><>\n"
    "Ras Login Domain    - <domain name><><>\n"
    "RAS Login     - <user name><password><>\n"
    "Phone Book    - <phone book name><><>\n"
    "LU and TP     - <LU name><TP name><>\n"
    "SNA Login     - <user name><password><>\n"
    "MAPI Alias    - <desitination alias><><>"),
 StringEnumeration("SITE_CONF_MANGR_HEARTBEAT_INTERVAL(Site Control Heartbeat Interval),"
       "SITE_CONF_MANGR_INTER_POLL_DELAY_TIME(Inter-Poll Delay Time),"
       "SITE_CONF_MANGR_SRVR_DEINSTALL_RETRY_TIME(Server Deinstallation Retry Time),"
       "SITE_CONF_MANGR_COMP_DEINSTALL_RETRY_TIME(Component Deinstallation Retry Time),"
       "SITE_CONF_MANGR_STARTUP_SCHED(Startup Schedule),"
       "SITE_CONF_MANGR_MAX_THREAD_YIELD_TIME(Maximum Thread Yield Time In Milliseconds),"
       "SITE_CONF_MANGR_NUM_CPU_RESOURCE_TOKNS(Number of CPU Resource Tokens),"
       "SITE_CONF_MANGR_NUM_DISK_RESOURCE_TOKNS(Number of Disk Resource Tokens),"
       "SCF_CONFIG_CONCURRENT_SENDING_LIMIT(Concurrent Sending Limit),"
       "SCF_CONFIG_NUM_RETRIES(Number of Retries),"
       "SCF_CONFIG_RETRY_DELAY(Retry Delay),"
       "SCF_CONFIG_UPDATE_TIMEOUT(Update Timeout),"
       "SCF_CONFIG_THREAD_LIMIT(Thread Limit),"
       "SCF_CONFIG_P1_THREAD_LIMIT(P1 Thread Limit),"
       "SCF_CONFIG_P2_THREAD_LIMIT(P2 Thread Limit),"
       "SCF_CONFIG_P3_THREAD_LIMIT(P3 Thread Limit),"
       "SCF_CONFIG_PACKAGE_ROOT_DIR(Package Root Directory),"
       "SCF_SYSRESUSE_INBOXROOT(InboxRoot),"
       "SCF_SYSRESUSE_SITE_INFO(Site Info),"
       "SCF_ADDRESS_LAN_LOGIN(LAN Login),"
       "SCF_ADDRESS_CONNECTION_POINT(Connection Point),"
       "SCF_ADDRESS_RAS_LOGIN_DOMAIN(Ras Login Domain),"
       "SCF_ADDRESS_RAS_LOGIN(Ras Login),"
       "SCF_ADDRESS_PHONE_BOOK(Phone Book),"
       "SCF_ADDRESS_LU_AND_TP(LU and TP),"
       "SCF_ADDRESS_SNA_LOGIN(SNA Login),"
       "SCF_ADDRESS_MAPI_ALIAS(MAPI Alias)") ]
class SMS_SCI_Property : SMS_SiteControlItem {
[read]
    string    ItemType="Property Token Item, Site Control File";
    string    PropertyName = "";
    string    Value1 = "";
    string    Value2 = "";
    uint32    Value = 0;
};

Properties

ItemType
This is the property token item for the site control file

Qualifiers: read

Datatype: string.

PropertyName
This is the name of the property

Qualifiers:

Datatype: string.

Value1
This is the first string value.

Qualifiers:

Datatype: string.

Value2
This is the second string value.

Qualifiers:

Datatype: string.

Value
This is the DWORD value. The default value is set to zero (0).

Qualifiers:

Datatype: uint32.


SMS_SCI_PropertyList

[ Embedded, Dynamic, Provider("ExtnProv"), Description("This a list of well known property list names\n"
    "Related to the Site Definition within a Site Control File\n"
    "Network Connection Accounts\n"
    "License Database Accounts  - the string order is SQL Server name, db name, encrypted account name, encrypted password then public key\n\n"

    "Related to Site Configuration Manager\n"
    "Start On Master Site Control File Changes\n\n"
    "Related to MAPI Sender\n"
    "MAPI INITIAL CONFIGURATION\n\n"
    "Related to Status Manager and Status System\n"
    "Status Filter: Component Status Message Filter\n"
    "Status Filter: Status Manager Status Message Filter"),
 StringEnumeration("SITE_DEFN_NETWK_CONN_ACCNTS(Network Connection Accounts),"
       "SITE_DEFN_LICENCE_DBASE_ACCNTS(License Database Accounts),"
       "SITE_CONF_MANGR_START_MASTER_SCF_CHANGES(Start On Master Site Control File Changes),"
       "MAPI_SENDER_INIT_CONF(MAPI INITIAL CONFIGURATION),"
       "STATUS_COMP_STATUS_MESS_FILTER(Status Filter: Component Status Message Filter),"
       "STATUS_STATUS_MAN_STATUS_MESS_FILTER(Status Filter: Status Manager Status Message Filter)") ]
class SMS_SCI_PropertyList : SMS_SiteControlItem {
[read]
    string ItemType="Property List Token Item, Site Control File";
    string PropertyListName = "";
    string Values[];
};

Properties

ItemType
This is the property list token item, for the site control file.

Qualifiers: read

Datatype: string.

PropertyListName
This is the name of the property list.

Qualifiers:

Datatype: string.

Values
This is an array of zero or more string values.

Qualifiers:

Datatype: string.


SMS_SCI_SiteAssignment

[ Dynamic, Provider("ExtnProv") ]
class SMS_SCI_SiteAssignment : SMS_SiteControlItem {
[read]
    string    ItemType="Site Assignment, Site Control File";
    string    AssignTypes[];
    string    AssignDetails[];
};

Properties

ItemType
This is the site assignment for the site control file.

Qualifiers: read

Datatype: string.

AssignTypes
This is an array of zero or more assignment types.

Qualifiers:

Datatype: string.

Values
This is an array of zero or more assignment details.

Qualifiers:

Datatype: string.


SMS_SCI_SiteDefinition

[ Dynamic, Provider("ExtnProv") ]
class SMS_SCI_SiteDefinition : SMS_SiteControlItem {
[read]
    string    ItemType="Site Definition Token Item, Site Control File";
[enumeration("SECONDARY(1),PRIMARY(2)")]
    uint32    SiteType = 2;
    string    SiteName = "";
[SizeLimit("3")]
    string    ParentSiteCode = "";
    string    SiteServerName = "";
    string    SiteServerDomain = "";
    string    SiteServerPlatform = "";
    string    InstallDirectory = "";
    string    ServiceAccountDomain = "";
    string    ServiceAccount = "";
    string    ServiceAccountPassword = "";
    string    ServicePublicKey = "";
    string    SQLServerName = "";
    string    SQLDatabaseName = "";
    string    SQLAccount = "";
    string    SQLAccountPassword = "";
    string    SQLPublicKey = "";
    SMS_EmbeddedProperty  Props[];
    SMS_EmbeddedPropertyList PropLists[];
};

Properties

ItemType
This is the site definition token item for the site control file.

Qualifiers: read

Datatype: uint32.

SiteType
This contains the type of site

Qualifiers: enumeration

Datatype: uint32.

SiteName
This contains the site name (recommended this be unique).

Qualifiers:

Datatype: string.

ParentSiteCode
This contains a three letter site code of the parent site (if there is one).

Qualifiers: SizeLimit

Datatype: string.

SiteServerName
This contains the name of Windows NT site server.

Qualifiers:

Datatype: string.

SiteServerDomain
This contains the domain in which site server participates.

Qualifiers:

Datatype: string.

SiteServerPlatform
This contains the processor platform of the site server.

Qualifiers:

Datatype: string.

InstallDirectory
This contains the directory on the site server where the SMS tree starts.

Qualifiers:

Datatype: string.

ServiceAccountDomain
This contains the Domain for the NT service account that is used by NT for the SMS services.

Qualifiers:

Datatype: string.

ServiceAccount
This contains the Encrypted NT account that is used by NT for the SMS services.

Qualifiers:

Datatype: string.

ServiceAccountPassword
This contains the Encrypted password for the service account.

Qualifiers:

Datatype: string.

ServicePublicKey
This contains the Public key used to decrypt the service account and password.

Qualifiers:

Datatype: string.

SQLServerName
This contains the Name of the SQL Server machine for this installation.

Qualifiers:

Datatype: string.

SQLDatabaseName
This contains the Name of the SQL database on the server.

Qualifiers:

Datatype: string.

SQLAccount
This contains the Encrypted account used by the SMS services when accessing the SQL server.

Qualifiers:

Datatype: string.

SQLAccountPassword
This contains the Encrypted password used to connect to the SQL server.

Qualifiers:

Datatype: string.

SQLPublicKey
This contains the Public key used to decrypt the SQL account and password.

Qualifiers:

Datatype: string.

Props
This contains a List of zero or more Property items for this site.

Qualifiers:

Datatype: SMS_EmbeddedProperty.

PropLists
This contains the List of zero or more Property List items for this site.

Qualifiers:

Datatype: SMS_EmbeddedPropertyList.


SMS_SCI_SQLCmd

[ Dynamic, Provider("ExtnProv") ]
class SMS_SCI_SQLCmd : SMS_SiteControlItem {
[read]
    string    ItemType="SQL Cmd Item, Site Control File";
    string    SQLCmd = "";
    bool      On;
    uint32    NumRefreshDays = 0;
[bits("SUNDAY(0),MONDAY(1),TUESDAY(2),WEDNESDAY(3),THURSDAY(4),FRIDAY(5),SATURDAY(6)")]
    uint32    DaysOfWeek = 0;
[Description("Only hours and mins of this datetime property are used")]
    datetime  BeginTime = "00000000000000.000000+000";
[Description("Only hours and mins of this datetime property are used")]
    datetime  LatestBeginTime = "00000000050000.000000+000";
    string    LogFile = "";
};

Properties

ItemType
This contains the SQL Cmd Item, Site Control File

Qualifiers: read

Datatype: string.

SQLCmd
This contains the string SQL to execute.

Qualifiers:

Datatype: string.

On
If TRUE to activate, FALSE to deactivate.

Qualifiers:

Datatype: bool.

NumRefreshDays
This denotes the Execute task every __ days.

Qualifiers:

Datatype: uint32.

DaysOfWeek
This identifies the execution on these weekdays

Qualifiers: bits

Datatype: uint32.

BeginTime
This value reads "00000000000000.000000+000"

Qualifiers: Description

Datatype: datetime.

LatestBeginTime
This value reads "00000000050000.000000+000"

Qualifiers: Description

Datatype: datetime.

LogFile
This contains the logfile to write the output.

Qualifiers:

Datatype: string.


SMS_SCI_SQLTask

[ Dynamic,  Provider("ExtnProv") ]
class SMS_SCI_SQLTask : SMS_SiteControlItem {
[read]
    string    ItemType="SQL Task Item, Site Control File";
[StringEnumeration("DUMP_SMS_DATABASE(Dump SMS Database),"
   "DUMP_SMS_TRANSACTION_LOG(Dump SMS Transaction Log),"
   "DUMP_LICENSING_DATABASE(Dump Licensing Database),"
   "DUMP_LICENSING_TRANSACTION_LOG(Dump Licensing Transaction Log),"
   "UPDATE_STATISTICS(Update Statistics),"
   "REBUILD_INDEXES(Rebuild Indexes),"
   "MONITOR_KEYS_RECREATE_VIEWS(Monitor Keys and Recreate Views),"
   "DELETE_AGED_INVENTORY_HISTORY(Delete Aged Inventory History),"
   "DELETE_AGED_STATUS_OBJECTS(Delete Aged Status Objects),"
   "DELETE_AGED_DISCOVERY_DATA(Delete Aged Discovery Data),"
   "DELETE_AGED_COLLECTED_FILES(Delete Aged Collected Files)")]
    string    TaskName = "";
[enumeration("BACKUP(1),PERIOD(2),DELETE(3)")]
    uint32    TaskType = 0;
    bool      On;
    uint32    NumRefreshDays = 0;
[bits("SUNDAY(0),MONDAY(1),TUESDAY(2),WEDNESDAY(3),THURSDAY(4),FRIDAY(5),SATURDAY(6)")]
    uint32    DaysOfWeek = 0;
[Description("Only hours and mins of this datetime property are used")]
    datetime  BeginTime = "00000000000000.000000+000";
[Description("Only hours and mins of this datetime property are used")]
    datetime  LatestBeginTime = "00000000000000.000000+000";
    string    DeviceName = "";
    uint32    DeleteOlderThan = 0;
};

Properties

ItemType
This contains the SQL Task Item, Site Control File.

Qualifiers: read

Datatype: string.

TaskName
This contains the string task name.

Qualifiers: StringEnumeration

Datatype: string.

TaskType
This contains the task type.

Qualifiers: enumeration

Datatype: uint32.

On
If TRUE to activate, FALSE to deactivate.

Qualifiers:

Datatype: bool.

NumRefreshDays
This denotes the Execute task every __ days.

Qualifiers:

Datatype: uint32.

DaysOfWeek
This identifies the execution on these weekdays

Qualifiers: bits

Datatype: uint32.

BeginTime
This is the beginning time value that reads "00000000000000.000000+000"

Qualifiers: Description

Datatype: datetime.

LatestBeginTime
This is the latest beginning time value that reads 00000000000000.000000+000

Qualifiers: Description

Datatype: datetime.

DeviceName
This contains thedevice name (BACKUP type only).

Qualifiers:

Datatype: string.

DeleteOlderThan
This identifies when to delete records older than (DELETE type).

Qualifiers:

Datatype: uint32.


SMS_SCI_SysResUse

[ Dynamic, Provider("ExtnProv") ]
class SMS_SCI_SysResUse : SMS_SiteControlItem {
[read]
    string    ItemType="System Resource Use Token Item, Site Control File";
    string    NALResType = "";
    string    NALPath = "";
    string    NALPathRaw = "";
[SizeLimit(64), StringEnumeration("SMS_SQL_SERVER(SMS SQL Server),"
       "SMS_COMP_SERVER(SMS Component Server),"
       "SMS_CLIENT_ACCESS_POINT(SMS Client Access Point),"
       "SMS_DISTRIBUTION_POINT(SMS Distribution Point),"
       "SMS_LOGON_POINT(SMS Logon Point),"
       "SMS_SITE_SERVER(SMS Site Server)")]
    string   RoleName = "";
    SMS_EmbeddedProperty  Props[];
    SMS_EmbeddedPropertyList  PropLists[];
    string    InboxRoot = "";
};

Properties

ItemType
Qualifiers: read

Datatype: string

NALResType
This contains the type of NAL resource

Qualifiers:

Datatype: string.

NALPath
This contains the path to NAL resource

Qualifiers:

Datatype: string.

NALPathRaw
This contains the raw NAL Path with no qualifiers

Qualifiers:

Datatype: string.

RoleName
This contains the name of the role this resource is serving.

Qualifiers: SizeLimit, StringEnumeration

Datatype: string

Props
This contains the list of zero or more Property items for this component.

Qualifiers:

Datatype: SMS_EmbeddedProperty.

PropLists
This contains the List of zero or more Property List items for this component.

Qualifiers:

Datatype: SMS_EmbeddedPropertyList

InboxRoot
This contains the the NAL path to the inbox root

Qualifiers:

Datatype: string.


SMS_SecurityInstance

[ Dynamic, Provider("ExtnProv") ]
class SMS_SecurityInstance : SMS_BaseClass {
[key]
    uint32    ObjectKey = 0;
[key]
    string    UserName = "";
[key]
    string    InstanceKey = "";
[bits("READ(0),MODIFY(1),DELETE(2),DISTRIBUTE(3),CREATE_CHILD(4),REMOTE_CONTROL(5),ADVERTISE(6),MODIFY_RESOURCE(7),ADMINISTER(8),DELETE_RESOURCE(9),CREATE(10)")]
    uint32   InstancePermissions = 0;
};

Properties

ObjectKey
Qualifiers: key

Datatype: uint32

UserName
Qualifiers: key

Datatype: string.

InstanceKey
Qualifiers: key

Datatype: string.

InstancePermissions
This contains the instance permissions: Read (0), Modify (1), Delete (2), Distribute (3), Create_Child (4), Remote_Control (5), Advertise (6), Modify_Resource (7), Administer (8), Delete_Resource (9), Create (10). The default value is set to Read (0).

Qualifiers: bits

Datatype: uint32


SMS_SecurityObject

[ Dynamic, Provider("ExtnProv") ]
class SMS_SecurityObject : SMS_BaseClass {
[key]
    uint32    ObjectKey = 0;
    string    ObjectName = "";
[bits("READ(0),MODIFY(1),DELETE(2),DISTRIBUTE(3),CREATE_CHILD(4),REMOTE_CONTROL(5),ADVERTISE(6),MODIFY_RESOURCE(7),ADMINISTER(8),DELETE_RESOURCE(9),CREATE(10)")]
    uint32    DefaultClassPermissions = 0;
[bits("READ(0),MODIFY(1),DELETE(2),DISTRIBUTE(3),CREATE_CHILD(4),REMOTE_CONTROL(5),ADVERTISE(6),MODIFY_RESOURCE(7),ADMINISTER(8),DELETE_RESOURCE(9),CREATE(10)")]
    uint32    DefaultInstancePermissions = 0;
[bits("READ(0),MODIFY(1),DELETE(2),DISTRIBUTE(3),CREATE_CHILD(4),REMOTE_CONTROL(5),ADVERTISE(6),MODIFY_RESOURCE(7),ADMINISTER(8),DELETE_RESOURCE(9),CREATE(10)")]
    uint32    AvailableClassPermissions = 0;
[bits("READ(0),MODIFY(1),DELETE(2),DISTRIBUTE(3),CREATE_CHILD(4),REMOTE_CONTROL(5),ADVERTISE(6),MODIFY_RESOURCE(7),ADMINISTER(8),DELETE_RESOURCE(9),CREATE(10)")]
    uint32    AvailableInstancePermissions = 0;
};

Properties

ObjectKey
This is the numeric key.

Qualifiers: key

Datatype: uint32

ObjectName
This is the security object name.

Qualifiers:

Datatype: string.

DefaultClassPermissions
This contains the instance class permissions: Read (0), Modify (1), Delete (2), Distribute (3), Create_Child (4), Remote_Control (5), Advertise (6), Modify_Resource (7), Administer (8), Delete_Resource (9), Create (10). The default class permissions value is set to Read (0).

Qualifiers: bits

Datatype: uint32

DefaultInstancePermissions
This contains the default instance permissions: Read (0), Modify (1), Delete (2), Distribute (3), Create_Child (4), Remote_Control (5), Advertise (6), Modify_Resource (7), Administer (8), Delete_Resource (9), Create (10). The default value for the default instance permissions is set to Read (0).

Qualifiers: bits

Datatype: uint32

AvailableClassPermissions
This contains the available class permissions: Read (0), Modify (1), Delete (2), Distribute (3), Create_Child (4), Remote_Control (5), Advertise (6), Modify_Resource (7), Administer (8), Delete_Resource (9), Create (10). The default available class permissions value is set to Read (0).

Qualifiers: bits

Datatype: uint32

AvailableInstancePermissions
This contains the available instance permissions: Read (0), Modify (1), Delete (2), Distribute (3), Create_Child (4), Remote_Control (5), Advertise (6), Modify_Resource (7), Administer (8), Delete_Resource (9), Create (10). The default value for the available instance permissions is set to Read (0).

Qualifiers: bits

Datatype: uint32


SMS_SecurityUser

[ Dynamic, Provider("ExtnProv") ]
class SMS_SecurityUser : SMS_BaseClass {
[key]
    uint32    ObjectKey = 0;
[key]
    string    UserName = "";
[bits("READ(0),MODIFY(1),DELETE(2),DISTRIBUTE(3),CREATE_CHILD(4),REMOTE_CONTROL(5),ADVERTISE(6),MODIFY_RESOURCE(7),ADMINISTER(8),DELETE_RESOURCE(9),CREATE(10)")]
    uint32    ClassPermissions = 0;
};

Properties

ObjectKey
This is the numeric key.

Qualifiers: key

Datatype: uint32

UserName
This is the security user name.

Qualifiers:

Datatype: string.

ClassPermissions
This contains the class permissions: Read (0), Modify (1), Delete (2), Distribute (3), Create_Child (4), Remote_Control (5), Advertise (6), Modify_Resource (7), Administer (8), Delete_Resource (9), Create (10). The default class permissions value is set to Read (0).

Qualifiers: bits

Datatype: uint32


SMS_SessionHandle

[ methoddata ]
class SMS_SessionHandle {
    string    SessionHandle = "";
    string    IMapSessionHandle = "";
};

Properties

SessionHandle
This is the site control file session handle in the form of the GUID string.

Qualifiers:

Datatype: string

IMapSessionHandle
This is the install map session handle in the form of the GUID string.

Qualifiers:

Datatype: string.


SMS_SII_Property

[ Embedded, Dynamic, Provider("ExtnProv"), Read ]
class SMS_SII_Property : SMS_SiteInstallItem {
    string    ItemType;
    string    PropertyName;
    string    Value1;
    string    Value2;
    uint32    Value;
};

Properties

ItemType
This contains the Property Token Item, Install Map.

Qualifiers:

Datatype: string.

PropertyName
This contains the name of this property.

Qualifiers:

Datatype: string.

Value1
This contains the first string value.

Qualifiers:

Datatype: string.

Value2
This contains the second string value.

Qualifiers:

Datatype: string.

Value
This contains the integer value.

Qualifiers:

Datatype: uint32.


SMS_SII_PropertyList

[ Embedded, Dynamic, Provider("ExtnProv"), Read ]
class SMS_SII_PropertyList : SMS_SiteInstallItem {
    string    ItemType;
    string    PropertyListName;
    string    Values[];
};

Properties

ItemType
This is the property list token item for the install map.

Qualifiers:

Datatype: string.

PropertyListName
This is the name of the property list.

Qualifiers:

Datatype: string.

Values
This is an array of string values.

Qualifiers:

Datatype: string.


SMS_SIIB_AddressType

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_SIIB_AddressType : SMS_SiteInstallItemBase {
    string    ItemType;
    string    AddressType;
    string    GUID;
    string    ChmFile;
    string    HtmFile;
[bits("ALLOW_ADD(0),ALLOW_DELETE(1),ALLOW_MODIFY(2),ALLOW_SCHEDULE(3),ALLOW_RATE_LIMITING(4)")]
    uint32    Flags;
    string    ResDLL;
    uint32    DispNameID;
    uint32    DescriptionID;
    uint32    DispIconID;
};

Properties

ItemType
This is the address type token item for the install map.

Qualifiers:

Datatype: string.

AddressType
This is the address type.

Qualifiers:

Datatype: string.

GUID
This is the MMC node type.

Qualifiers:

Datatype: string.

ChmFile
This is the compressed chm file containing the htm file.

Qualifiers:

Datatype: string.

HtmFile
This is the htm file for this address type.

Qualifiers:

Datatype: string.

Flags
These identify the address type flags.

Qualifiers: bits

Datatype: uint32.

ResDLL
This is the name of the resource DLL.

Qualifiers:

Datatype: string.

DispNameID
This is the resource id of the display name.

Qualifiers:

Datatype: uint32.

DescriptionID
This is the resource id of the description.

Qualifiers:

Datatype: uint32.

DispIconID
This is the resource id of the display icon.

Qualifiers:

Datatype: uint32.


SMS_SIIB_Component_FileList

[ Dynamic, Provider("ExtnProv"), Read]
class SMS_SIIB_Component_FileList : SMS_SiteInstallItemBase {
    string    ItemType;
    string    ComponentName;
[bits("INSTALL(0),LOCAL_SYSTEM_ACCOUNT(1),LITERAL_PATH(2),PRIMARY_SITE(3),SECONDARY_SITE(4),AUTO_START(5),AS_THREAD(6),MULTI_SITE(7),SCHEDULED(8),ON_SITE_SERVER(9),ON_SQL_SERVER(10),ON_CLIENT_ACCESS(11),ONLY_ONE_COPY(12),USE_NAL(13)")]
    uint32    Flags;
    SMS_SII_Property   Props[];
    SMS_SII_PropertyList   PropLists[];
};

Properties

ItemType
This is the component file list token item for the install map.

Qualifiers:

Datatype: string.

ComponentName
This is the name of the component this file list corresponds to.

Qualifiers:

Datatype: string.

Flags
These are option flags specifying how the component should be installed.

Qualifiers: bits

Datatype: uint32.

Props
This is an array of zero or more property items for this configuration.

Qualifiers:

Datatype: SMS_SII_Property.

PropLists
This is an array of zero or more property list items for this configuration.

Qualifiers:

Datatype: SMS_SII_PropertyList.


SMS_SIIB_Configuration

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_SIIB_Configuration : SMS_SiteInstallItemBase {
    string    ItemType; //"Configuration Token Item, Install Map";
[StringEnumeration("COMPONENT_CONFIGURATION(Component Configuration),"
    "DISCOVERY_METHOD(Discovery Method),"
    "CLIENT_SETUP_METHOD(Client Setup Method),"
    "INVENTORY_METHOD(Inventory Method),"
    "CLIENT_AGENT(Client Agent),"
    "CLIENT_ACCOUNT_CONFIGURATION(Client Account Configuraiton),"
    "SERVER_ACCOUNT_CONFIGURATION(Server Account Configuration)")]
    string    ConfigurationName;
    string    Type;
    string    GUID;
    string    ChmFile;
    string    HtmFile;
    uint32    Flags;
    string    ResDLL;
    uint32    DispNameID;
    uint32    DescriptionID;
    uint32    DispIconID;
};

Properties

ItemType
This is the property list token item for the install map.

Qualifiers:

Datatype: string.

ConfigurationName
This is the configuration name.

Qualifiers: StringEnumeration

Datatype: string.

Type
This is the configuration type.

Qualifiers:

Datatype: string.

GUID
This is the MMC node type.

Qualifiers:

Datatype: string.

ChmFile
This is the compressed chm file containing the htm file.

Qualifiers:

Datatype: string.

HtmFile
This is the htm file for this sender type.

Qualifiers:

Datatype: string.

Flags
These identify the configuation flags.

Qualifiers:

Datatype: uint32.

ResDLL
This is the resource DLL name

Qualifiers:

Datatype: string.

DispNameID
This is the resource id of the display name.

Qualifiers:

Datatype: uint32.

DescriptionID
This is the resource id of the description.

Qualifiers:

Datatype: uint32.

DispIconID
This is the resource id of the display icon.

Qualifiers:

Datatype: uint32.


SMS_SIIB_Generic_Configuration

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_SIIB_Generic_Configuration : SMS_SiteInstallItemBase {
    string    ItemType;
    string    ConfigurationName;
    SMS_SII_Property   Props[];
    SMS_SII_PropertyList   PropLists[];
};

Properties

ItemType
This is the generic configuration token item for the install map.

Qualifiers:

Datatype: string.

ConfigurationName
This is the configuration name.

Qualifiers:

Datatype: string.

Props
This is an array of zero or more property items for this configuration.

Qualifiers:

Datatype: SMS_SII_Property.

PropLists
This is an array of zero or more property list items for this configuration.

Qualifiers:

Datatype: SMS_SII_PropertyList.


SMS_SIIB_NALProvider

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_SIIB_NALProvider : SMS_SiteInstallItemBase {
    string    ItemType;
    string    ProviderName;
[enumeration("SERVER(1),ADMINUI(2),CLIENT(3)")]
    uint32    Flags;
};

Properties

ItemType
This is the NAL provider item for the install map.

Qualifiers:

Datatype: string.

ProviderName
This is the provider name.

Qualifiers:

Datatype: string.

Flags
This flag indicates if this provider is for server, client or UI.

Qualifiers: enumeration

Datatype: uint32.


SMS_SIIB_SenderType

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_SIIB_SenderType : SMS_SiteInstallItemBase {
    string    ItemType;
    string    SenderType;
    string    GUID;
    string    ChmFile;
     string   HtmFile;
[bits("ALLOW_ADD(0),ALLOW_DELETE(1),ALLOW_MODIFY(2)")]
     uint32   Flags;
     string   ResDLL;
     uint32   DispNameID;
     uint32   DescriptionID;
     uint32   DispIconID;
};

Properties

ItemType
This is the sender type token item for the install map.

Qualifiers:

Datatype: string.

SenderType
This is the address type.

Qualifiers:

Datatype: string.

GUID
This is the MMC node type.

Qualifiers:

Datatype: string.

ChmFile
This is the compressed chm file containing the htm file.

Qualifiers:

Datatype: string.

HtmFile
This is the htm file for this sender type.

Qualifiers:

Datatype: string.

Flags
These identify the sender type flags: Allow_Add (0), Allow_Delete (1), Allow_Modify (2).

Qualifiers: bits

Datatype: uint32.

ResDLL
This is the name of the resource DLL.

Qualifiers:

Datatype: string.

DispNameID
This is the resource id of the display name.

Qualifiers:

Datatype: uint32.

DescriptionID
This is the resource id of the description.

Qualifiers:

Datatype: uint32.

DispIconID
This is the resource id of the display icon.

Qualifiers:

Datatype: uint32.


SMS_SIIB_SysResRole

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_SIIB_SysResRole : SMS_SiteInstallItemBase {
    string    ItemType;
    string    RoleName;
    string    GUID;
    string    ChmFile;
    string    HtmFile;
[bits("ASSIGNABLE(0)")]
    uint32    Flags;
    string    ResDLL;
    uint32    DispNameID;
    uint32    DescriptionID;
    uint32    DispIconID;
};

Properties

ItemType
This is the system resource role token item for the install map.

Qualifiers:

Datatype: string.

RoleName
This is the role name.

Qualifiers:

Datatype: string.

GUID
This is the MMC node type.

Qualifiers:

Datatype: string.

ChmFile
This is the compressed chm file containing the htm file.

Qualifiers:

Datatype: string.

HtmFile
This is the htm file for this address type.

Qualifiers:

Datatype: string.

Flags
These identify the role flags.

Qualifiers: bits

Datatype: uint32.

ResDLL
This is the name of the default configuration DLL.

Qualifiers:

Datatype: string.

DispNameID
This is the resource id of the display name.

Qualifiers:

Datatype: uint32.

DescriptionID
This is the resource id of the description.

Qualifiers:

Datatype: uint32.

DispIconID
This is the resource id of the display icon.

Qualifiers:

Datatype: uint32.


SMS_SIIB_UINALProvider

[ Embedded, Dynamic, Provider("ExtnProv"), Read ]
class SMS_UINAL_ResourceInfo {
    string    ResourceType;
    string    GUID;
    string    ResourceDLL;
    uint32    DisplayNameResID;
    uint32    DisplayNameIconID;
    string    ChmFile;
    string    HtmFile;
};

Properties

ResourceType
This is the supported resource type.

Qualifiers:

Datatype: string.

GUID
This is the MMC node type.

Qualifiers:

Datatype: string.

ResourceDLL
This is the resource DLL for the resource type.

Qualifiers:

Datatype: string.

DisplayNameResID
This is the resource id of the display name for the resource type.

Qualifiers:

Datatype: uint32.

DisplayNameIconID
This is the resource id of the display icon for the resource type.

Qualifiers:

Datatype: uint32.

ChmFile
This is the compressed chm file containing the htm file.

Qualifiers:

Datatype: string.

HtmFile
This is the htm file for this address type.

Qualifiers:

Datatype: string.


SMS_Site

This class a dynamic class that contains the basic info of any SMS site that is associated with the "local" SMS Site.

class SMS_Site : SMS_BaseClass {
[key, SizeLimit("3")]
    string    SiteCode = "";
    string    SiteName = "";
[SizeLimit("3"),Not_null]
    string    ReportingSiteCode = "";
    string    Version = "";
[enumeration("SECONDARY(1),PRIMARY(2)")]
    uint32    Type = 1;
[read, enumeration("ACTIVE(1), PENDING(2), FAILED(3), DELETED(4), UPGRADE(5)")]
    uint32    Status = 1;
[enumeration("ACTIVE(1), PENDING(2), FAILED(3), DELETED(4), UPGRADE(5),  SEC_CREATE(1001), SEC_CREATE_CD(1002), SEC_CREATION_STARTED(1003), SEC_UPGRADE(1004), SEC_UPGRADE_CD(1005), SEC_UPGRADE_STARTED(1006), SEC_DEINSTALL(1007), SEC_DEINSTALL_STARTED(1008)"),
Description("Secondary Site Status.  Use this property for create and upgrade of a secondary site")]
    uint32 RequestedStatus = 1001;
[read]
    uint32 BuildNumber = 0;
    string ServerName = "";
    string InstallDir = "";
[classmethod, in("SMS_NoLoopInData"),out("SMS_VerifyResult")]
    method VerifyNoLoops;
};

Properties

SiteCode
This property contains a three letter code that represents your SMS site.

Qualifiers: key, SizeLimit

Datatype: string

SiteName
This property contains a longer, more descriptive name for your site.

Qualifiers: (none)

Datatype: string

ReportingSiteCode
This property contains the name of the primary site to which this secondary site reports.

Qualifiers: SizeLimit, Not_null

Datatype: string

Version
A sentence or two of description.

Qualifiers: (none)

Datatype: string

Type
A sentence or two of description.

Qualifiers: read, enumeration

Datatype: uint32

Status
The default value is "ACTIVE."

Qualifiers: read, enumeration

Datatype: uint32

RequestedStatus
This property referes to the secondary site's status. Use this property when creating and upgrading a secondary site.

Qualifiers: enumeration, description

Datatype: uint32

BuildNumber
A sentence or two of description.

Qualifiers: read

Datatype: uint32

ServerName
A sentence or two of description.

Qualifiers: (none)

Datatype: string

InstallDir
A sentence or two of description.

Qualifiers: (none)

Datatype: string

VerifyNoLoops
This method is used to check and create a stricy hierarchy of sites.

Qualifiers: classmethod, in, out

Datatype: method

Usage

At least one instance of this class exists, represnting the main, local SMS Site on which the the SMS provider is actually running. Other instances of this class represent secondary to sites the primary main sms site. Secondary sites report to the primary site.

This class also contains the class method VerifyNoLoops. You pass this method a class of SMS_NoLoopInData in order to receive the class SMS_VerifyResult. The VerifyNoLoops method is used by the sms to make sure that that you are not creating a hierarchy that has loops in it. In other words, your hierarchy will follow as strict binary format.


SMS_SiteControlDaySchedule

[Embedded]
class SMS_SiteControlDaySchedule {
[enumeration("ALL_PRIORITY(1),ALL_BUT_LOW(2),HIGH_ONLY(3),CLOSED(4)"):(ToInstance,ToDerivedClass)]
    uint32    Hour[24];
    bool      Backup[24];
    bool      update;
};

Properties

Hour
This identifies the at–specified hour.

Qualifiers: enumeration

Datatype: uint32.

Backup
Identifies if address can be used as backup.

Qualifiers:

Datatype: bool.

update
Indicates if the parent Address object is saved.

Qualifiers:

Datatype: bool.


SMS_SiteControlFile

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_SiteControlFile {
[key, enumeration("EMPTY(0),ACTUAL(1),PROPOSED(2),TRANSACTIONS(4),LOCAL_TRANSACTIONS(6),1XSTYLE(7)"):(ToInstance,ToDerivedClass)]
    uint32    FileType = 2;
[key , read, SizeLimit("3")]
    string    SiteCode = "";
    uint32    SerialNumber;
[lazy]
    string    FormatVersion = "";
[lazy]
    string    BuildNumber = "";
[large, lazy]
    string    SCFData = "";
[instancemethod]
    Method    Commit;
[instancemethod]
    Method    Refresh;
[classmethod, out("SMS_SessionHandle")]
    Method    GetSessionHandle;
[classmethod, in("SMS_SessionHandle")]
    Method    ReleaseSessionHandle;
};

Properties

FileType
This identifies the type of site control file.

Qualifiers: key, enumeration

Datatype: uint32.

SiteCode
This identifies the site code.

Qualifiers: key, read, SizeLimit

Datatype: string.

SerialNumber
This indicates the serial number.

Qualifiers:

Datatype: uint32.

FormatVersion
This identifies the format version.

Qualifiers: lazy

Datatype: string

BuildNumber
This identifies the SMS build number.

Qualifiers: lazy

Datatype: string

SCFData
This indicates the site control file data in text format.

Qualifiers: large, lazy

Datatype: string

Commit
This indicates save changes from the site control file to database.

Qualifiers: instancemethod

Datatype: Method

Refresh
This identifies the re-load site control file from database.

Qualifiers: instancemethod

Datatype: Method

GetSessionHandle
This indicates the get user session.

Qualifiers: classmethod, out

Datatype: Method

ReleaseSessionHandle
This indicates the release user session.

Qualifiers: classmethod, in

Datatype: Method


SMS_SiteControlItem

class SMS_SiteControlItem  {
[key, enumeration("EMPTY(0),ACTUAL(1),PROPOSED(2),TRANSACTIONS(4),LOCAL_TRANSACTIONS(6)"):(ToInstance,ToDerivedClass)]
    uint32    FileType = 2;
[key, SizeLimit("3")]
    string    SiteCode = "";
[key, read]
    string    ItemType = "";
[key, read]
    string    ItemName = "";
};

Properties

FileType
This identifies the type of site control file.

Qualifiers: key, enumeration

Datatype: uint32.

SiteCode
This identifies the three letter site code uniquley identifying a site.

Qualifiers: key, SizeLimit

Datatype: string

ItemType
This is a unique string that identifies the site control item type.

Qualifiers: key, read

Datatype: string

ItemName
This is the string uniquely identifying a site control item within items of the same type.

Qualifiers: key, read

Datatype: string


SMS_SiteInstallItem

class SMS_SiteInstallItem {
[key, read]
    string    ItemType;
[key, read]
    string     ItemName;
};

Properties

ItemType
This contains the uniquely identify Site Install Item type.

Qualifiers: key, read

Datatype: string

ItemName
This contains the uniquely identifying a Site Install Item within items of the same type.

Qualifiers: key, read

Datatype: string


SMS_SiteInstallItemBase

[ Read ]
class SMS_SiteInstallItemBase : SMS_SiteInstallItem {
[StringEnumeration("SMS(SMS),"
    "ADMIN_UI(ADMIN UI),"
    "NETWORK_MONITOR(NETWORK MONITOR),"
    "BOOKS_ONLINE(BOOKS ONLINE),"
    "SCRIPTS(SCRIPTS)")]
    string    Units[];
};

Properties

Units
This is an arrary that lists units to install.

Qualifiers: StringEnumeration

Datatype: string


SMS_SiteInstallMap

[ Dynamic, Provider("ExtnProv"), Read]
class SMS_SiteInstallMap  {
[key]
    uint32    key;
[lazy]
    string    FormatVersion;
[lazy]
    string    BuildNumber;
[large, lazy]
    string    IMapData;
[instancemethod]
    Method    Refresh;
[classmethod, out("SMS_SessionHandle")]
    Method    GetSessionHandle;
[classmethod, in("SMS_SessionHandle")]
    Method    ReleaseSessionHandle;
};

Properties

key
This contains the key.

Qualifiers: key

Datatype: uint32.

FormatVersion
This contains the format version of Install Map.

Qualifiers: lazy

Datatype: string.

BuildNumber
This contains the SMS build number.

Qualifiers: lazy

Datatype: string.

IMapData
This contains the install Map data in text format.

Qualifiers: large, lazy

Datatype: string.

Refresh
This contains the Re-load Install Map from database.

Qualifiers: instancemethod

Datatype: embedded

GetSessionHandle
This contains the get user session

Qualifiers: classmethod

Datatype: embedded

ReleaseSessionHandle
This contains the release user session

Qualifiers: classmethod

Datatype: embedded


SMS_SiteSummarizer

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_SiteSummarizer {
[key,SizeLimit("3"), Not_null]
    string    SiteCode;
[SizeLimit("128"), Not_null]
    string    SiteName;
    string    Version;
[enumeration("SECONDARY(1),PRIMARY(2)")]
    uint32    SiteType;
    uint32    Children;
    uint32    Machines;
    datetime  LastContacted ;
    datetime  TimeReported;
    uint32    Heartbeat;
    uint32    Warnings_All;
    uint32    Errors_All;
    uint32    Warnings_Every2;
    uint32    Errors_Every2;
    uint32    Warnings_Every4;
    uint32    Errors_Every4;
    uint32    Warnings_Every6;
    uint32    Errors_Every6;
    uint32    Warnings_Noon;
    uint32    Errors_Noon;
    uint32    Warnings_Midnight;
    uint32    Errors_Midnight;
    uint32    Warnings_1_of_Week;
    uint32    Errors_1_of_Week;
    uint32    Warnings_1_of_Month;
    uint32    Errors_1_of_Month;
    uint32    Warnings_15_of_Month;
    uint32    Errors_15_of_Month;
};

Properties

SiteCode
This is the site code.

Qualifiers: key, SizeLimit, Not_null

Datatype: string

SiteName
This is the site name.

Qualifiers: SizeLimit, Not_null

Datatype: string

Version
This the version (same as in SMS_Site).

Qualifiers:

Datatype: string

SiteType
This is the site type (same as in SMS_Site).

Qualifiers: enumeration

Datatype: uint32

Children
This indicates the number of child sites reporting to this parent site.

Qualifiers:

Datatype: uint32

Machines
This the number of machines associated with this site.

Qualifiers:

Datatype: uint32

LastContacted
This is the last message time.

Qualifiers:

Datatype: datetime

TimeReported
This is the last replicated time.

Qualifiers:

Datatype: datetime

Heartbeat
This designates the heartbeat interval, in minutes.

Qualifiers:

Datatype: uint32

Warnings_All
This is a count of all warnings.

Qualifiers:

Datatype: uint32

Errors_All
This is a count of all errors.

Qualifiers:

Datatype: uint32

Warnings_Every2
This is a count of warnings for the last two hours, reported on the hour.

Qualifiers:

Datatype: uint32

Errors_Every2
This is a count of errors for the last two hours, reported on the hour.

Qualifiers:

Datatype: uint32

Warnings_Every4
This is a count of warning for the last four hours, reported on the hour.

Qualifiers:

Datatype: uint32

Errors_Every4
This is a count of errors for the last four hours, reported on the hour.

Qualifiers:

Datatype: uint32

Warnings_Every6
This is a count of warning for the last six hours, reported on the hour.

Qualifiers:

Datatype: uint32

Errors_Every6
This is a count of errors for the last six hours, reported on the hour.

Qualifiers:

Datatype: uint32

Warnings_Noon
This is a count of warnings at 12 noon.

Qualifiers:

Datatype: uint32

Errors_Noon
This is a count of errors at 12 noon.

Qualifiers:

Datatype: uint32

Warnings_Midnight
This is a count of warnings at midnight.

Qualifiers:

Datatype: uint32

Errors_Midnight
This is a count of warnings at midnight.

Qualifiers:

Datatype: uint32

Warnings_1_of_Week
This is a count of errors for the first (1) of the week.

Qualifiers:

Datatype: uint32

Errors_1_of_Week
This is a count of errors for the first (1) of the week.

Qualifiers:

Datatype: uint32

Warnings_1_of_Month
This is a count of errors for the first (1) of the month.

Qualifiers:

Datatype: uint32

Errors_1_of_Month
This is a count of errors for the first (1) of the month.

Qualifiers:

Datatype: uint32

Warnings_15_of_Month
This is a count of errors for the fifteenth (15) of the month.

Qualifiers:

Datatype: uint32

Errors_15_of_Month
This is a count of errors for the fifteenth (15) of the month.

Qualifiers:

Datatype: uint32


SMS_SiteToROOTColl_a

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_SiteToROOTColl_a  : SMS_BaseAssociation {
[key]
    SMS_Site  ref  site;
[key]
    SMS_Collection  ref  collection;
};

Properties

site
This property references SMS_Site

Qualifiers: key

Datatype: SMS_Site..

collection
This references SMS_Site.

Qualifiers: key

Datatype: SMS_Collection.


SMS_SiteToSubSite_a

This dymamic class an association class that is used to programmatically build a tree view of the sms hierarchy.

class SMS_SiteToSubSite_a  : SMS_BaseAssociation {
[key]
    SMS_Site  ref  parentSite;
[key]
    SMS_Site  ref  childSite;
};

Properties

parentSite
This property is an embedded SMS_Site class that references the parent part of the association.

Qualifiers: key

Datatype: SMS_Site

childSite
This property is an embedded SMS_Site class that references the child part of the association.

Qualifiers: key

Datatype: SMS_Site

Usage

This class has two properties: parentSite and childSite. It is an association class that associates sites to their subsites. The role that the association class plays is similar to a query in database terms: it is readily-defined join of two disparate sites.

See also

SMS_Site


SMS_SNMPTrap

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_SNMPTrap {
[key]
    uint32    TrapKey;
[lazy]
    string    SourceName;
    string    TrapSourceIPAddress;
    string    TrapEnterprise;
[lazy]
    string    TrapEventSource;
[enumeration("ColdStart(0),WarmStart(1),LinkDown(2),LinkUp(3),AuthenticationFailure(4),EGPNeighborLoss(5),EnterpriseSpecific(6)")]
    uint32    GenericTrapNo;
    uint32    SpecificTrapNo;
[lazy]
    uint32    TrapTimeTicks;
    datetime  TrapTimeStamp;
    uint16    NumberOfVarbinds;
[lazy , max(25)]
    SMS_SNMPVarbind TrapVarbindData[];
};

Properties

TrapKey
This unique key identifies an instance of a trap.

Qualifiers: key

Datatype: uint32

SourceName
This is the source name.

Qualifiers: lazy

Datatype: string

TrapSourceIPAddress
This the source IP address of the trap.

Qualifiers:

Datatype: string

TrapEnterprise
This is the Enterprise OID for the trapsite.

Qualifiers: enumeration

Datatype: uint32

TrapEventSource
This is the event source for the trap.

Qualifiers: lazy

Datatype: uint32

GenericTrapNo
This is the generic trap number and identified by the following enumerated list: ColdStart (0), WarmStart (1), LinkDown (2), LinkUp (3), AuthenticationFailure (4), EGPNeighborLoss (5), EnterpriseSpecific (6)

Qualifiers: enumeration

Datatype: uint32

SpecificTrapNo
This is the specific trap number.

Qualifiers:

Datatype: uint32

TrapTimeTicks
This indicates trap time ticks.

Qualifiers: lazy

Datatype: uint32

TrapTimeStamp
This indicates the timestamp for trap.

Qualifiers:

Datatype: datetime

NumberOfVarbinds
This indicates the actual number of varbinds for this trap instance (up to 25).

Qualifiers:

Datatype: uint16

TrapVarbindData
This array stores trap varbinds.

Qualifiers: lazy, max

Datatype: SMS_SNMPVarbind


SMS_SNMPVarbind

[ Embedded, Dynamic, Provider("ExtnProv"), Read ]
class SMS_SNMPVarbind {
    uint32    VarbindNumber;
    string    ElementOID;
[enumeration("Integer(2),OctetString(4),Null(5),ObjectIdentifier(6),IpAddress(64),Counter(65),Gauge(66),TimeTicks(67),Opaque(68)")]
    uint32    ElemDataType;
    string    ElemData;
};

Properties

VarbindNumber
This is the index for this varbind.

Qualifiers:

Datatype: uint32

ElementOID
This is the OID for this varbind.

Qualifiers:

Datatype: string

ElemDataType
This is the type of data and identified bye the following enumerated list: .Integer (2), OctetString (4), Null (5), ObjectIdentifier (6), IpAddress (64), Counter (65), Gauge (66) ,TimeTicks (67) ,Opaque (68).

Qualifiers: enumeration

Datatype: uint32

ElemData
This is the data.

Qualifiers: enumeration

Datatype: string


SMS_ST_NonRecurring

The SMS_ST_NonRecurring class is an embedded class. All of its properties are inherited from the SMS_ScheduleToken class.

class SMS_ST_NonRecurring : SMS_ScheduleToken {
};

See Also

SMS_ScheduleToken


SMS_ST_RecurInterval

The SMS_ST_RecurInterval is an embedded class that is derived from SMS_ScheduleToken in programs that require management task on recurring intervals.

class SMS_ST_RecurInterval : SMS_ScheduleToken {
[Range("0-59")]
    uint32    MinuteSpan = 0;
[Range("0-23")]
    uint32    HourSpan = 0;
[Range("0-31")]
    uint32    DaySpan = 0
};

Properties

MinuteSpan
It has a range from zero to 59.

Qualifiers: Range

Datatype: uint32

HourSpan
It has a range from zero to 23.

Qualifiers: Range

Datatype: uint32

DaySpan
This property has a range from zero to 31.

Qualifiers: Range

Datatype: uint32

Usage

To be done.

See Also

SMS_ScheduleToken


SMS_ST_RecurMonthlyByDate

The SMS_ST_RecurMonthlyByDate is an embedded class derived from SMS_ScheduleToken.

class SMS_ST_RecurMonthlyByDate : SMS_ScheduleToken  {
[Range("0-31"),Special("0 is last day")]
    uint32    MonthDay = 0;
[Range("1-12")]
    uint32    ForNumberOfMonths = 1;
};

Properties

MonthDay
This property has a range from zero to 31. Zero is the value for the last day.

Qualifiers: Range

Datatype: uint32.

ForNumberOfMonths
This property has a range from 1 to 12.

Qualifiers: Range

Datatype: uint32.

Usage

To be done.

See Also

SMS_ScheduleToken


SMS_ST_RecurMonthlyByWeekday

The SMS_ST_RecurMonthlyByWeekday is an embedded class derived from SMS_ScheduleToken.

class SMS_ST_RecurMonthlyByWeekday : SMS_ScheduleToken  {
[enumeration("SUNDAY(1),MONDAY(2),TUESDAY(3),WEDNESDAY(4),THURSDAY(5),FRIDAY(6),SATURDAY(7)")]
    uint32    Day = 1;
[enumeration("LAST(0),FIRST(1),SECOND(2),THIRD(3),FOURTH(4)")]
    uint32    WeekOrder = 0;
[Range("1-12")]
    uint32    ForNumberOfMonths = 1;
};

Properties

Day
The property values are based on the enumeration of "SUNDAY(1), MONDAY(2), TUESDAY(3), WEDNESDAY(4), THURSDAY(5), FRIDAY(6), SATURDAY(7)."

Qualifiers: enumeration

Datatype: uint32.

WeekOrder
The property values are based on the enumeration "LAST(0), FIRST(1), SECOND(2), THIRD(3), FOURTH(4)."

Qualifiers: enumeration

Datatype: uint32.

ForNumberOfMonths
The property has a range from one to twelve.

Qualifiers: Range

Datatype: uint32.

Usage

To be done.

See Also

SMS_ScheduleToken


SMS_ST_RecurWeekly

The SMS_ST_RecurWeekly is an embedded class derived from SMS_ScheduleToken.

class SMS_ST_RecurWeekly : SMS_ScheduleToken  {
[enumeration("SUNDAY(1),MONDAY(2),TUESDAY(3),WEDNESDAY(4),THURSDAY(5),FRIDAY(6),SATURDAY(7)")]
    uint32   Day = 1;
[Range("1-4")]
    uint32   ForNumberOfWeeks = 1;
};

Properties

Day
The property values are based on "SUNDAY(1), MONDAY(2), TUESDAY(3), WEDNESDAY(4), THURSDAY(5), FRIDAY(6), SATURDAY(7)."

Qualifiers: enumeration

Datatype: uint32.

ForNumberOfWeeks
This property has a range from one to four.

Qualifiers: Range

Datatype: uint32.

Usage

Can we have an example of this, Lamar?

See Also


SMS_StatMsgAttributes

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_StatMsgAttributes : SMS_BaseClass {
[key]
    uint32    RecordID;
    uint32    AttributeID;
    string    AttributeValue;
};

Properties

RecordID
This is the unique key for the record.

Qualifiers: key

Datatype: uint32

AttributeID
This is the attribute ID number.

Qualifiers:

Datatype: uint32

AttributeValues
Qualifiers: Range

Datatype: string


SMS_StatMsgInsStrings

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_StatMsgInsStrings : SMS_BaseClass {
[key]
    uint32    RecordID;
    uint32    InsStrIndex;
    string    InsStrValue;
};

Properties

RecordID
This is the unique key for the record.

Qualifiers: key

Datatype: uint32

InsStrIndex
Qualifiers:

Datatype: uint32

InsStrValue
Qualifiers:

Datatype: string


SMS_StatusMessage

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_StatusMessage : SMS_BaseClass {
[key]
    uint32    RecordID;
    string    ModuleName;
[bits("Informational(30),Warning(31"),Description("Error is bits 30 and 31 set")]
    uint32    Severity;
[Range("0-65535")]
    uint32    MessageID;
[enumeration("Report(0),BeginTransaction(16),CommitFailedTransaction(17),CommitSuccessfulTransaction(18)")]
    uint32    ReportFunction;
[enumeration("Failed(0),Successful(8)")]
    uint32    SuccessfulTransaction;
[enumeration("False(0),True(4)")]
    uint32    Transaction;
[enumeration("False(0),True(2)")]
    uint32    PerClient;
[enumeration("Milestone(0),Detail(1)")]
    uint32    Level;
    uint32    Win32Error;
    uint32    InsStrIDs[];
    string    InsStrValues[];
    uint32    AttrIDs[];
    string    AttrValues[];
    datetime  Time;
[SizeLimit("3")]
    string    SiteCode;
[SizeLimit("3")]
    string    TopLevelSiteCode;
    string    MachineName;
    string    Component;
    uint32    ProcessID;
    uint32    ThreadID;
};

Properties

RecordID
Qualifiers: key

Datatype: uint32

ModuleName
Message object. This member specifies a DLL associated with the Status. This member is not actually the name of the DLL itself, but a display string corresponding to the "Source" column in the Windows NT Event viewer.

Qualifiers:

Datatype: string.

Severity
Message severity, 3 possible values: Informational, Warning, Error.

Qualifiers: bits

Datatype: uint32

MessageID
Message ID, possible values: 0-65535.

Qualifiers: range

Datatype: uint32.

ReportFunction
The report function that are identified by the following enumerated list: Report (0), BeginTransaction (16), CommitFailedTransaction (17), CommitSuccessfulTransaction (18).

Qualifiers: enumeration

Datatype: uint32

SuccessfulTransaction
This indicates the status of the transaction: Failed or Successful.

Qualifiers: enumeration

Datatype: uint32

Transaction
Qualifiers: enumeration

Datatype: uint32.

PerClient
Qualifiers: enumeration

Datatype: uint32.

Level
This identifies the level: Milestone or Detail.

Qualifiers: enumeration

Datatype: uint32.

Win32Error
This is the Win32 error code associated with Status Message.

Qualifiers:

Datatype: uint32.

InsStrIDs
This the insertion string ID.

Qualifiers:

Datatype: uint32.

InsStrValues
These strings are inserted into message string.

Qualifiers:

Datatype: string.

AttrID
This is an array that contains zero or more attribute Ids.

Qualifiers:

Datatype: uint32

AttrValues
This is an array that contains zero or more attribute values.

Qualifiers:

Datatype: string.

Time
This identifies the UTC time status message was created.

Qualifiers:

Datatype: datetime

SiteCode
This identifies the site that created the message.

Qualifiers: SizeLimit

Datatype: string

TopLevelSiteCode
This indicates the top-most site that the message can be replicated to.

Qualifiers: SizeLimit

Datatype: string.

MachineName
This indicates the name of machine that created the message.

Qualifiers:

Datatype: string.

Component
This indicates the name of component that created the message.

Qualifiers:

Datatype: string

ProcessID
This the process ID of the process that created the message.

Qualifiers:

Datatype: uint32

ThreadID
This is the thread ID of the thread that created the message.

Qualifiers:

Datatype: uint32


SMS_SupportedPlatforms

[ Dynamic, Provider("ExtnProv"), read ]
class SMS_SupportedPlatforms : SMS_BaseClass {
[key, Not_null]
    string    OSPlatform;
[key, Not_null]
    string    OSName;
[key, Not_null]
    string    OSMinVersion;
[key, Not_null]
    string    OSMaxVersion;
    string    DisplayText;
    string    ResourceDll;
    uint32    StringId;
};

Properties

OSPlatform
Qualifiers: key, Not_null

Datatype: string

OSName
Qualifiers: key, Not_null

Datatype: string

OSMinVersion
Qualifiers: key, Not_null

Datatype: string

OSMaxVersion
Qualifiers: key, Not_null

Datatype: string

ResourceDll
Qualifiers:

Datatype: string

StringId
Qualifiers:

Datatype: uint32


SMS_SystemResourceList

[ Dynamic, Provider("ExtnProv"), Read ]
class SMS_SystemResourceList : SMS_BaseClass {
[key]
    string    sNALPath = "";
[key]
    string    sResourceType = "";
[key, SizeLimit("3")]
    string    sSiteCode = "";
[key]
    string    sRoleName = "";
    string    sServerName ="";
};

Properties

sNALPath
Qualifiers: key

Datatype: uint32

sResourceType
Qualifiers: key

Datatype: string

sSiteCode
Qualifiers: key, SizeLimit

Datatype: string

sRoleName
Qualifiers: key

Datatype: string

sServerName
Qualifiers:

Datatype: string


SMS_UINAL_ResourceInfo

[ Embedded, Dynamic, Provider("ExtnProv"), Read ]
class SMS_UINAL_ResourceInfo {
    string    ResourceType;
    string    GUID;
    string    ResourceDLL;
    uint32    DisplayNameResID;
    uint32    DisplayNameIconID;
    string    ChmFile;
    string    HtmFile;
};

Properties

ResourceType
This is the resource type.

Qualifiers:

Datatype: string.

GUID
This is the MMC node type.

Qualifiers:

Datatype: string.

ResourceDLL
This is the resource DLL for the resource type.

Qualifiers:

Datatype: string.

DisplayNameResID
This is the resource id of the display name for the resource type.

Qualifiers:

Datatype: uint32.

DisplayNameIconID
This is the resource id of the display icon for the resource type.

Qualifiers:

Datatype: uint32.

ChmFile
This is the compressed chm file containing the htm file.

Qualifiers:

Datatype: string.

HtmFile
This is the htm file for this address type.

Qualifiers:

Datatype: string.


SMS_UnPackedNALPath

[ methoddata ]
class SMS_UnPackedNALPath {
    string    DisplayQualifiers[];
    string    NALProvider;
    string    DirectoryPath;
    string    NetworkConnectionQualifiers[];
};

Properties

DisplayQualifiers
This array contains zero or more of the optional display qualifiers.

Qualifiers:

Datatype: string

NALProvider
This is the NAL provider.

Qualifiers:

Datatype: string

DirectoryPath
This contains the directory path, without a trailing '\'.

Qualifiers:

Datatype: string

NetworkConnectionQualifiers
This array contains zero or more optional network connection qualifiers.

Qualifiers:

Datatype: string


SMS_Utility

[ Dynamic, Provider("ExtnProv"), Abstract ]
class SMS_Utility {
[classmethod, in("SMS_UnPackedNALPath"), out("SMS_PackedNALPath")]
    method PackNALPath;
[classmethod, in("SMS_PackedNALPath"), out("SMS_UnPackedNALPath")]
    method UnPackNALPath;
};

Properties

PackNALPath
Qualifiers: classmethod, in, out

Datatype: method

UnPackNALPath
Qualifiers: classmethod, in, out

Datatype: method


SMS_VerifyResult

[ methoddata ]
class SMS_VerifyResult {
    bool     Result;
};

Properties

Result
Qualifiers:

Datatype: boolean


SMS SDK Glossary

[This is beta documentation and subject to change.]

The Systems Management Server (SMS) Software Development Kit (SDK) uses its own collection of terms, or nomenclature. Many of these terms are familiar to developers, but have new or altered definitions in the SMS environment. Please read the following list of definitions carefully in order to understand the meaning of these terms when they occur in the SMS SDK documentation.

A B C D E F G H I J K L M
N O P Q R S T U V W X Y X


A

[This is beta documentation and subject to change.]

address
Specific information that senders use to connect to a sender on a site, so that instructions and data can be sent to that site.
address types
There are seven types of addresses, and each has its own sender.
Microsoft LAN
For all local area network (LAN) communication.
Microsoft RAS
For all Remote Access Service (RAS) communication.
Microsoft Asynchronous RAS
For Remote Access Service (RAS) communication over an asynchronous line.
Microsoft ISDN RAS
For Remote Access Service (RAS) communication over an ISDN line.
Microsoft SNA RAS
For Simple Network Architecture (SNA) communication over a Remote Access Service (RAS) line.
Microsoft X25 RAS
For Remote Access Service (RAS) communication over an X.25 line.
Microsoft Courier
For sending and receiving SMS data (parcels) outside the SMS system (for example, on a compact disc, floppy disk, or tape). Courier Sender includes Courier Sender Manager and the Courier Sender Confirmation service. Courier Sender creates, receives, and monitors files sent with Courier Sender. The Courier Sender Confirmation service receives the confirmation and updates the parcel status in Courier Sender Manager.
ad hoc query
A query created for immediate execution. Ad hoc queries are not stored in the Systems Management Server (SMS) system database, do not affect any queries in the database, and are not displayed in the Queries window. You can create an ad hoc query from scratch or by modifying an existing query.
Applications Manager
A component of the SMS Executive that communicates package and program group configuration information from the site database to the other components at that site and to the sites beneath it.
Applications Manager database
A set of configuration files installed on all SMS logon servers and used by Program Group Control on Windows-based SMS clients.
architecture
A structure for recording inventory for a specific type of object. An architecture defines the structure for a set of objects. Each object is composed of groups that contain attributes. An example of an architecture is the Personal Computer architecture.


C

[This is beta documentation and subject to change.]

central site
The primary site to which all other sites in the SMS system report their inventory and events.
child site
A site that has a parent site. Every site except the central site is another site's child. The terms "parent" and "child" are relative, and a site can be both, unlike the terms "primary site" and "secondary site," in which a site is one or the other.
client
A discovered system resource that runs SMS client software and belongs to an SMS site.
Client Configuration Manager
An SMS service that installs and maintains SMS services on clients in a site.
collection
A set of resources in a site, defined by membership rules. Collections are used for software distribution, and for viewing inventory on clients. An example of a collection is "All computers running Microsoft Windows NT." See also membership rule, subcollection.
community
An administrative relationship between Simple Network Management Protocol (SNMP) entities. For SNMP transactions, it is always necessary to specify a community name.
component server
A role performed by a site system. This role is automatically assigned by SMS to a site system that runs SMS components (such as SMS_SCHEDULER, SMS_DESPOOLER, and SMS_INVENTORY_DATA_LOADER). The site server is a component server. Other servers acting as component servers may be running components that have been moved from the site server or installed directly (for example, senders).

See also site system

connectivity system
Software that allows sites to communicate with each other. SMS supports these connectivity systems: Local area network (LAN) protocols, Remote Access Service (RAS), and Systems Network Architecture (SNA) Server.
current site
The primary site whose database you have logged onto with the SMS Administrator. In the Sites window of the SMS Administrator, the current site is represented with a globe icon as a primary site


D

[This is beta documentation and subject to change.]

database
See site database.
database server
The computer running the instance of SQL Server being used by SMS.
default servers machine group
A machine group that specifies the servers on which package source directories are installed.
Delta MIF
See MIF file.
deploy
To install SMS on many computers.
Despooler
A component of the SMS Executive that watches for despooler instruction files and compressed packages created by the Scheduler. The instructions and packages can come from the local site or from another site. The Despooler reads instruction files and uses the instructions to decompress and handle package files. For example, it decompresses inventory files so they can be processed by the Inventory Data Loader, which then updates the database.
distribution address
Specific information for connecting to a target site so that instructions and data can be sent to that site.
distribution point
A role performed by a site system. This role, which is assigned by an administrator, receives package files when they are sent from a source server. The distribution point then provides those files when advertised programs are run on clients.

See also site system

domain
In Microsoft® Windows NT® and Microsoft LAN Manager networks, a domain is an administrative unit based on a database of security and user account information shared by a set of servers.

For servers running Microsoft LAN Manager and Microsoft Windows NT® Server, a domain supplies central security and user-account information for a group of servers. When a user at a client running LAN Manager or Windows NT logs on to a domain, that client participates in that domain while that user is logged on.


E

[This is beta documentation and subject to change.]

event
Anything of significance that happens in a Windows NT® operating system or an application that causes users to be notified, an entry to be written to a log, or both.
event configuration
The events to be translated to SNMP traps in the Event to Trap Translator (or a .cnf file) on a Windows NT-based client.
event configuration file
A file containing the Windows NT events to be translated into SNMP traps by the Event to Trap Translator.
Event to Trap Translator
A component of SMS that translates Windows NT events into Simple Network Management Protocol (SNMP) traps.


F

[This is beta documentation and subject to change.]

frame
A unit of data transmitted through a network, also called a packet.


H

[This is beta documentation and subject to change.]

heartbeat interval
The interval during which the Inventory Processor checks for reported inventory.
Hierarchy Manager
Monitors the SMS SQL Server database for configuration change requests and updates the databases after configurations are complete. If Hierarchy Manager detects a change in a site's proposed configuration, it creates a new site control file (which contains all proposed configurations for a site) and sends it to the site server.


I

[This is beta documentation and subject to change.]

identification group
A collection of attributes that uniquely identify a computer.
implement
To design, plan, and deploy an SMS system.
installation script
A file of script commands that a shell program, such as SMS Installer uses to automate a setup program.
inventory
The information that SMS collects for each computer on the network. The information that SMS collects for each client on the network. The inventory includes hardware and software information, and collected files, depending on the administrator-defined configuration.
Inventory Agent
A service that scans a client for hardware and software inventory and reports the inventory to the SMS system.
Inventory Data Loader
A component of the SMS Executive that monitors SMS for binary Management Information Format (MIF) files.
inventory frequency
The interval at which the Inventory Agent scans a computer for inventory. The inventory frequency, which is configured on a per-site basis, is the time between the last scan and the time that the Inventory Agent program was currently invoked, either from a logon script or explicitly from the command line. Hardware and software inventory can be set to different intervals.
Inventory Processor
A component of the SMS Executive that collects all the Management Information Format (MIF) files created by the Inventory Agent and creates a history file for each computer (an image of the last MIF file). When new MIF files are ready, the Inventory Processor compares them with the history files and writes changes to binary MIF files. The Inventory Processor also converts MIF files in the INVPROC.BOX directory into binary MIF files.


L

[This is beta documentation and subject to change.]

logical operator
A connector between two expressions, two subclauses, or a combination of an expression and a subclause. There are three logical operators: AND, OR, and NOT. AND has highest precedence.
logon server
This site system role is automatically assigned to computer systems that validate users logging on to a network for all domains participating in a site.


M

[This is beta documentation and subject to change.]

Maintenance Manager
A component of the SMS Executive that installs and maintains the SMS components on SMS logon servers in a site. This component replicates client components and configuration information to SMS logon servers within a site and collects inventory and status information.
Management Information Format (MIF)
Management Information Format, a standard designed by the Desktop Management Task Force (DMTF) for accessing desktop computer components, both hardware and software, across multiple platforms.
membership rule
The criteria used to evaluate whether a resource is a member of a particular collection. A membership rule can be a query or it can explicitly specify a resource.

See also collection

Microsoft® Asynchronous RAS Sender
See sender, sender types.
Microsoft Courier Sender
See sender, sender types.
Microsoft ISDN RAS Sender
See sender, sender types.
Microsoft LAN Sender
See sender, sender types.
Microsoft RAS Sender
See sender, sender types.
Microsoft SNA RAS Sender
See sender, sender types.
Microsoft X25 RAS Sender
See sender, sender types.
MIF
See Management Information Format.
MIF file
A description of a computer component that is available to other applications through a standard management interface. MIF files can be ASCII text or binary (formerly called a delta MIF file), and either type can be a full MIF file or an update (formerly called a partial MIF file). Binary MIF files are used by SMS services to add information to a site database.


N

[This is beta documentation and subject to change.]

namespace
A tree-formatted, ordered listing of nodes. The namespace display closely resembles that of a folder and directory structure on a disk.
network logon server
Servers that validate users logging on to a network. These can be NetWare servers or Microsoft Windows NT and LAN Manager domain controllers.

See also SMS logon server.

Network Monitor
An SMS utility that captures, edits, transmits, and displays frames from a local area network (LAN).
node
An object in the SMS namespace.


O

[This is beta documentation and subject to change.]

object
An item whose structure is defined by its architecture and which is stored in the site database. For example, a Macintosh computer is an object within the Personal Computer architecture.
outbox
A directory in which SMS services can place Send Request files, which contain instructions for transferring data and instructions to other sites. There is a separate outbox for each type of sender.


P

[This is beta documentation and subject to change.]

package
An object that defines software to the SMS system so that the software can be identified and installed. A package defines both the files that comprise the software, and the package's configuration and identification information.
package definition file (PDF)
An ASCII text file that contains predefined Workstation, Sharing, and Inventory property settings for a package. When you create a new package, you can import a PDF and use it to define the properties for the package. If you import a package definition file, SMS uses the PDF's property definitions to enter the package properties for you. SMS includes PDFs for a number of software applications and operating systems.
package distribution
Placing the decompressed package image on distribution points, sharing that image, and making it available for clients to access.
package source directory
A shared directory that contains a package's source files.
parent site
A site that has one or more child or secondary sites.
PDF
See package definition file.
permitted viewers
A list of user accounts that can remotely control a Windows NT-based client.
pilot project
Deploying SMS on a limited number of computers to verify that you are ready to deploy in the production environment.
pragma statement
A line in a MIF or event configuration file that indicates how the information in the MIF file relates to the information in a site database.

See also event configuration file and MIF file.

primary site
A site that has its own SQL Server database to store system, package, inventory, and status information for itself and the sites beneath it in the site hierarchy. Only a primary site can be a parent site.
program
Component of a package that contains the command line that runs on the client when the package is distributed to a collection. The command line can be an executable or an installation script that installs a software application, or it can simply copy data files. A package can contain multiple programs.

See also collection, package.

promiscuous mode
A state in which a network adapter card copiesall the frames that pass over the network to a local buffer.
prompted query
A query that causes a dialog box to appear, prompting a user for more information. These queries are constructed using a general expression, not a specific value. The SMS Administrator prompts for the actual value when the query is run.

See also query.


Q

[This is beta documentation and subject to change.]

query
An SMS object that contains criteria for finding objects in the site database. When run, a query searches the inventory for objects that match the query's criteria. For example, a query can be used to search for all client computers with Microsoft Word 97 installed.
query clause
In a query, the combination of an expression (or subclause within an expression) and its adjacent logical operator.

See also query subclause.

query criteria
The set of instructions for searching for objects.
query expression
A statement that compares a specific value against a specific attribute, using an operator, such as is equal to or is like. An expression is made up of an attribute, an operator, and a value.
query group
A set of expressions that are explicitly held together with parentheses. By making a set of expressions into a group, you ensure that the group's expressions are treated as a single entity. Groups have a higher operator precedence than the logical operators (AND, OR, and NOT).
query hit count
The number of objects that SMS found in the site database, according to the criteria specified by a query.
query relational operator
Part of an expression, such as is equal to or is like, that defines how a specified value is compared with the actual value stored for a specified attribute.

See also query expression.

query result format
An object that stores the format used to display the results of a query. A query result format enables you to select which attributes to display for the list of objects returned in the Query Results window. A format is specific to a single architecture. For example, a query format defined for an Employee architecture cannot be used to display computers that have a Personal Computer architecture.
query subclause
A set of expressions that can be logically treated as a single expression. You can explicitly specify that a subclause is a group.


R

[This is beta documentation and subject to change.]

remote capture
Using the Network Monitor Agent on a remote computer to perform a capture, but displaying the results on a local computer. Because a remote capture uses the capture buffer on a remote computer, system resources on the local computer are saved.
remote control agent
A program that enables you to use the remote troubleshooting utilities to diagnose or control a client.
remote site
A site other than the current one.
remote troubleshooting utilities
Tools that allow you to control and monitor some remote clients directly.
resource
A managed object, such as a computer, a router, or a Windows NT® Users local group. Resources can be viewed in collections.

See also collection.


S

[This is beta documentation and subject to change.]

Scheduler
A thread component of SMS Executive that manages the data transfer between sites based on user-defined addresses and sending schedules
secondary site
A site that has no SQL Server database or administrative tools. Instead, it forwards inventory and status information to its parent site, and is managed from its parent site.
send
The method SMS uses to transfer job data and instructions between sites (limited sending also occurs within a site). When a job is activated by SMS_SCHEDULER, SMS_SCHEDULER compresses the data or instructions needed to complete the job and writes a send request file for a sender to transfer the data or instructions. The sender transfers the data or instructions to the target site, where SMS_DESPOOLER handles or routes the data or instructions to the SMS services required to complete the job at that site.
send request file
A file with instructions that a sender uses to connect to a site and to transfer data to the site.
sender
A component of the SMS Executive that sends instructions and data between sites.

Within a site, SMS assumes that the network is fast and reliable, so SMS provides nothing to facilitate communication between servers in a site. Between sites, however, SMS presumes the network is slow and unreliable. Therefore, SMS provides senders to facilitate site-to-site communication.

Senders use an existing connectivity system to communicate with other sites; the sender itself does not provide connectivity to sites. The sender manages the connection, ensures the integrity of transferred data, recovers from errors, and closes the connection when it is no longer needed.

sender types
There are seven types of senders, one for each address type:
Microsoft LAN Sender
For all local area network (LAN) communication.
Microsoft RAS Sender
For all Remote Access Service (RAS) communication.
Microsoft Asynchronous RAS Sender
For Remote Access Service (RAS) communication over an asynchronous line.
Microsoft ISDN RAS Sender
For Remote Access Service (RAS) communication over an ISDN line.
Microsoft SNA RAS Sender
For SNA communication over a Remote Access Service (RAS) line.
Microsoft X25 RAS Sender
For Remote Access Service (RAS) communication over an X.25 line.
Microsoft Courier Sender
For creating and receiving parcels that are sent outside the SMS system.
site code
A three-character code that SMS uses to identify a site. A site code must be unique across an SMS system.
Site Configuration Manager
An SMS service that installs, maintains, and monitors SMS services at site servers and logon servers, ensuring that the servers are active and the SMS services are started.
site control file
An ASCII text file that contains the configuration of a site.
site database
A Microsoft SQL Server database that stores system information, such as configuration and status, and the software and hardware inventory at a primary site. Every primary site has a site database.
Site Reporter
At child sites, a component of the SMS Executive that detects a queue of binary MIF files containing inventory, job status, or event information, and that creates a mini-job to send these files to the parent site. This component exists at both primary and secondary sites.
site server
A computer that contains the SMS components needed to monitor and manage a site, its domains, and its computers. Each site has a site server.
site server domain
An SMS domain containing a site server.
site system
A server, share, or volume on which an SMS component is running.
SMS Administrator
The graphical user interface (GUI) used for administering SMS.

SMS_APPLICATIONS_MANAGER
See Applications Manager.
SMS client
See client.
SMS_CLIENT_CONFIG_MANAGER
See Client Configuration Manager.
SMS database
See site database.
SMS_DESPOOLER
See Despooler.
SMS domain
A group of servers and clients managed as a single entity within a site.
SMS Executive
The SMS component that runs one or more thread components as a single Windows NT service. It is composed of the following
  • Despooler
  • Inventory Data Loader
  • Inventory Processor
  • Scheduler
  • Sender
SMS_HIERARCHY_MANAGER
See Hierarchy Manager.
SMS_INVENTORY_AGENT
See Inventory Agent.
SMS_INVENTORY_DATA_LOADER
See Inventory Data Loader.
SMS_INVENTORY_PROCESSOR
See Inventory Processor.
SMS_LAN_SENDER
See sender.
SMS logon server
See client access point.
SMS_MAINTENANCE_MANAGER
See Maintenance Manager.
SMS network application
A computer program defined within a package and run across the network by users at clients. SMS network applications are defined as program items within a package. You can assemble program items from any packages into program groups. These program groups are then assigned to LAN Manager user groups, Windows NT Server global groups, or NetWare user groups. Wherever these users log on, they see a program group that contains their assigned SMS network applications in the Program Manager on the local client.

SMS_RAS_SENDER
See sender.
SMS_SCHEDULER
See Scheduler.
SMS site
A management unit comprising a group of subnets, such as an Internet protocol (IP) or Internetwork Packet Exchange (IPX) subnet, or an AppleTalk zone.
SMS_SITE_CONFIG_MANAGER
See Site Configuration Manager.
SMS_SITE_REPORTER
See Site Reporter.
SMS_SNA_SENDER
See sender.
SMS_TRAP_FILTER
See trap filter.
SNA Receiver
An SMS service that processes instructions and data sent by a Microsoft SNA Sender. When you install an SNA Sender on a computer, the SNA Receiver is automatically installed.
SNMP
Simple Network Management Protocol.
SNMP agent
A process running on an SNMP-managed device that uses SNMP to exchange management information with one or more management stations.
SNMP trap
An unsolicited SNMP packet sent from one SNMP entity to another, usually in response to some stimulus or event on the sending entity.
SNMP trap receiver
See Trap Receiver.
SNMP trap translator
See Event to Trap Translator.
source server
A package server that contains the source package files to be sent to distribution servers.
subcollection
A collection that is associated with another collection.
subsite
A site beneath another site in the site hierarchy.
subnet
A network (such as an Internet protocol [IP], or Internetwork Packet Exchange [IPX] network, or an AppleTalk zone) that is a component of a larger network.
system database
See site database.
system job
A job that transfers system instructions to other sites. System jobs maintain a site or report events, status, or inventory to other sites.


T

[This is beta documentation and subject to change.]

trap filter
An SMS service responsible for receiving SNMP traps and writing them to the SMS database. This service runs only on primary sites and is configured using the Site Properties dialog box.
Trap Receiver
An SMS feature that makes SNMP trap information available to SMS. By default, this service is disabled (no traps are received or stored in the database). The SNMP Traps button in the Site Properties dialog box is used to configure this service.
trigger
A condition that causes an alert when the condition is true.


W

[This is beta documentation and subject to change.]

workgroup
A logical grouping of computers for browsing network resources. Windows NT, Windows for Workgroups, and Microsoft Workgroup Add-on for MS-DOS support workgroups.


A

[This is preliminary documentation and subject to change.]

ad hoc query

A query created for immediate execution. Ad hoc queries are not stored in the Systems Management Server (SMS) system database, do not affect any queries in the database, and are not displayed in the Queries window. You can create an ad hoc query from scratch or by modifying an existing query.

address

Specific information for connecting to a target site so that instructions and data can be sent to that site.

address types

There are seven types of addresses, and each has its own sender.

Microsoft LAN

For all local area network (LAN) communication.

Microsoft RAS

For all Remote Access Service (RAS) communication.

Microsoft Asynchronous RAS

For Remote Access Service (RAS) communication over an asynchronous line.

Microsoft ISDN RAS

For Remote Access Service (RAS) communication over an ISDN line.

Microsoft SNA RAS

For Simple Network Architecture (SNA) communication over a Remote Access Service (RAS) line.

Microsoft X25 RAS

For Remote Access Service (RAS) communication over an X.25 line.

Microsoft Courier

For creating and receiving parcels that are sent outside the SMS system.

Applications Manager

A component of the SMS Executive that communicates package and program group configuration information from the site database to the other components at that site and to the sites beneath it.

Applications Manager database

A set of configuration files installed on all SMS logon servers and used by Program Group Control on Windows-based SMS clients.

architecture

A structure for recording inventory for a specific type of object. An architecture defines the structure for a set of objects. Each object is composed of groups that contain attributes.


Audience

[This is preliminary documentation and subject to change.]

The SMS 2.0 SDK is intended to give SMS Independent Software Vendors (ISVs), and partners as well as users of SMS early exposure to this new technology. The SMS SDK is intended to be used in writing programs and utilities for the SMS.

Feedback

You are encouraged to provide feedback on the SMS 2.0 SDK beta release through email. Please mail your comments to this address.

opalsdk@microsoft.com


Building the Sample SMSPApp

[This is preliminary documentation and subject to change.]

To install the Sample Application

1.Insert the "correct CD" into the drive.

2.Copy the following files to a folder on your hard drive:

SMSPApp.dsw

SMSPApp.dsp

SMSPApp.cpp

SMSPWrap.cpp

SMSPWrap.h

Stdpch.h

Stdpch.cpp

Wbwmsvc.h

Wbemsvc_i.c

3.Start Microsoft ®Visual C++® version 5.0 and open a new work space (SMSPApp.dsw).

4.Build the project by choosing Build SMSPApp.exe from the Build menu.


C

[This is preliminary documentation and subject to change.]

central site

The primary site to which all other sites in the SMS system report their inventory and events.

child site

A site that has a parent site. Every site except the central site is another site's child. The terms "parent" and "child" are relative, and a site can be both, unlike the terms "primary site" and "secondary site," in which a site is one or the other.

client

A computer that runs SMS client software, is included[BZ—need an active verb to maintain parallel structure. "resides in the SMS inventory"?] in the SMS inventory, receives packages, and can run SMS network applications.

Client Configuration Manager

An SMS service that installs and maintains SMS services on clients in a site.

collection

A set of resources in a site, defined by membership rules. Collections are used for software distribution, and for viewing inventory on clients. See also membership rule, subcollection.[BZ—Are these supposed to be jumps?]

community

An administrative relationship between SNMP entities.

component server

An SMS logon server running SMS components (such as SMS_SCHEDULER, SMS_DESPOOLER, and SMS_INVENTORY_DATA_LOADER[BZ—These are software components, right? In ActiveX, component is synonymous with object, according to MSTP. Does this at all affect anything here?) that have been moved from the site server or installed directly on to the component server (for example, senders[BZ—what is a "sender" an example of, an SMS component, or a component server?). Component servers decrease the load on the site server.

connectivity system

Software that allows sites to communicate with each other. SMS supports these connectivity systems: Local area network (LAN) protocols, Remote Access Service (RAS), and Systems Network Architecture (SNA) Server.

current site

The primary site whose database you have logged on to with the SMS Administrator. In the Sites window of the SMS Administrator, the current site is represented as a primary site with a globe icon.


Collection Model

[This is preliminary documentation and subject to change.]

The collection model includes these classes:

SMS_CollectionRule

SMS_CollectionRuleDirect

SMS_CollectionRuleQuery

SMS_CollNoLoopInData

SMS_CollForMembersInData

SMS_CollForMembersOutData

SMS_Collection

SMS_CollectToSubCollect_a

SMS_CollectionToPkgAdvert_a

SMS_CollectionMember

SMS_CollectionMember_a

Usage:

An SMS_Collection is a stand-alone class because it can be created with no rules and therefore no members. A SMS_Collection contains SMS_CollectionRules as embedded objects, though they are set and deleted from the SMS_Collection by methods. Both the query and direct collection rules result in the SMS_Collection being associated with resources when the SMS_Collection is evaluated by an SMS server component.

SMS_CollectionMember is also an association but cannot be created or modified since it is the result of an internal SMS query evaluation. A SMS_Collection also has an association describing sub-collections and that it is a target of an SMS_Advertisment.

Class Relationships in SMS terms:

An SMS_Collection is defined by one or more rules that can be either direct or queries. An SMS_Collection, once evaluated, contains instances of SMS_Resource as members. An SMS_Collection can contain other instances of the SMS_Collection class. An SMS_Collection is targeted by an SMS_Advertisement.


Components

[This is preliminary documentation and subject to change.]

The SMS 2.0 SDK beta release requires you to have installed SMS 2.0. The SMS Provider is integral to SMS 2.0; it is the backbone for any of the functionality provided by the System Management Server.

In addition, the SMS 2.0 SDK will install the WBEM SDK and some sample programs that demonstrate how to write programs for the SMS Provider.

SMS 2.0 components

The SMS 2.0 installation installs all of the components needed to use the SMS Provider including these: the Site Server database, an SQL database that resides with CIMOM on a server known as the primary server; all the WBEM components; the SMS Provider and; the Administration User Interface.

WBEM SDK

The WBEM SDK consists of two parts:

·The SDK system components, including Common Information Model Object Manager (CIMOM), supporting CIMOM providers, a Managed Object File (MOF) compiler, client application and provider development tools, and sample source code and applications.

·Supporting documentation for the components and tools described above.


D

[This is preliminary documentation and subject to change.]

database

See site database.

database server

The computer running the instance of SQL Server used by SMS.

default servers machine group

A machine group that specifies the servers on which package source directories are installed.

Delta MIF

See MIF file.

deploy

To install SMS on many computers.

Despooler

A component of the SMS Executive that watches for despooler instruction files and compressed packages[BZ—jump to entry] created by the Scheduler[BZ—entry?]. The instructions and packages can come from the local site or from another site. The Despooler reads instruction files and uses the instructions to decompress and handle package files. For example, it decompresses inventory files so they can be processed by the Inventory Data Loader, which then updates the database.

distribution address

Specific information for connecting to a target site so that instructions and data can be sent to that site.

distribution point

A server that receives package files when they are sent from a source server. The distribution point then sends those packages [BZ—jump to entry]to the clients.

domain

In Windows NT and LAN Manager networks, a domain is an administrative unit based on a database of security and user account information shared by a set of servers.

For servers running Microsoft® LAN Manager and Microsoft Windows NT® Server, a domain supplies central security and user-account information for a group of servers. When a user at a client running LAN Manager or Windows NT logs on to a domain, that client participates in that domain while that user is logged on.


E

[This is preliminary documentation and subject to change.]

event

Anything of significance that happens in a Windows NT® operating system or an application that causes users to be notified, an entry to be written to a log, or both.

event configuration

The events to be translated to SNMP traps in the Event to Trap Translator (or a .cnf file) on a Windows NT-based client.

event configuration file

A file containing the Windows NT events to be translated into SNMP traps[BZ—entry needed?] by the Event to Trap Translator.

Event to Trap Translator

A component of SMS that translates Windows NT events into SNMP traps.


F

[This is preliminary documentation and subject to change.]

frame

A unit of data transmitted through a network, also called a packet.


H

[This is preliminary documentation and subject to change.]

heartbeat interval

The interval during which the Inventory Processor checks for reported inventory.

Hierarchy Manager

An SMS service used at primary sites to monitor the site database for changes to the configuration of that site or its secondary sites. If Hierarchy Manager detects a change in a site's proposed configuration, it creates and sends to the site a site control file, which contains all proposed configurations for a site.


I

[This is preliminary documentation and subject to change.]

identification group

A collection of attributes that uniquely identify a computer.

implement

To design, plan, and deploy an SMS system.

installation script

A file of script commands that a shell program, such as Microsoft Test. uses to automate a setup program.

inventory

The information that SMS collects for each computer on the network. The inventory includes hardware (CPU, BIOS, drive information, and so on), software (specified applications), and collected files.

Inventory Agent

A service that scans a computer for hardware and software inventory and reports the inventory to the SMS system.

Inventory Data Loader

A component of the SMS Executive that monitors SMS for binary Management Information Format (MIF) files.

inventory frequency

The interval at which the Inventory Agent scans a computer for inventory. The inventory frequency is the time between the last scan and the time that the Inventory Agent program was currently invoked, either from a logon script or explicitly from the command line.

Inventory Processor

A component of the SMS Executive that collects all the RAW files created by the Inventory Agent and creates a history file for each computer (an image of the last RAW file)[BZ—Is the parenthetical necessary? Somewhat ambiguous as well, as syntactically, it modifies "computer" and semantically it modifies "history file."]. When new RAW[BZ—What are these? Spell out?] files are ready, the Inventory Processor compares them with the history files and writes changes to binary MIF files.

The Inventory Processor also converts MIF files in the ISVMIF directory into binary MIF files.


Installing the Sample data

[This is preliminary documentation and subject to change.]

The sample data must be installed on a clean site, that is, one that has been freshly installed. Installing this on a site where packages, queries, groups, and other objects have already been created almost certainly causes the loading of sample data to fail.

To install the sample data:

1.Copy the contents of the \SDK\Sample\Data directory to a temporary directory on your hard drive.

2.Use notepad to open Copysamp.bat. Inspect the paths listed at the top of the file and make any adjustments.

3.Save the batch file and run it.

While the batch file runs fairly quickly, it can take the various systems up to 10-15 minutes to complete.

4.Go to Start/Settings/Control Panel/Services. Stop and re-start the WBEM CIM Object Manager.


L

[This is preliminary documentation and subject to change.]

logical operator

A connector between two expressions, two subclauses, or a combination of an expression and a subclause. There are three logical operators: AND, OR, and NOT. AND has highest precedence.

logon server

See network logon server and SMS logon server.


License Agreement

[This is preliminary documentation and subject to change.]

This is a legal agreement ("Agreement") between you (either an individual or an entity), the end user, and Microsoft Corporation. By installing, copying, or otherwise using the Product (as defined below), you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not install, copy, or use the Product, and promptly return the disks and any accompanying items (including written materials and binders or other containers, if any) to Microsoft Corporation.

MICROSOFT LICENSE AGREEMENT

for a Pre-Release Copy of

Microsoft SMS Provider
Documentation

© 1997 Microsoft Corporation. All rights reserved.

1.GRANT OF LICENSE.

(a) Microsoft grants you ("Recipient") a limited, nonexclusive, nontransferrable, royalty-free license to make and use an unlimited number of copies of the software accompanying this agreement ("Product") to be installed on an unlimited number of CPUs residing on Recipient's premises, solely for Recipient's internal testing and development. The total number of individual users with access to the Product shall be unlimited. All other rights are reserved to Microsoft. Recipient shall not rent, lease, sell, sublicense, assign, or otherwise transfer the Product or any accompanying printed materials ("Documentation"). Recipient may not reverse engineer, decompile the Product, except to the extent that the foregoing restriction is expressly prohibited by local law. Microsoft and its suppliers shall retain title and all ownership rights to the product, and this Agreement shall not be construed in any manner as transferring any rights of ownership or license to the Product or to the features or information therein, except as specifically stated herein.

(b) Recipient agrees to provide reasonable feedback to Microsoft, including but not limited to usability, bug reports, and test results, with respect to the Product testing and development use. Recipient will use reasonable efforts to review and comment on all documentation supplied. All bug reports, test results, and other feedback made by Recipient shall be the property of Microsoft and may be used by Microsoft for any purpose it sees fit. Due to the nature of the development work, Microsoft is not certain as to when errors or discrepancies in the Products may be corrected.

(c) Recipient may disclose the Product only to its employees who have a need to know and have access to the Product in order to assist in Recipient's testing and development use of the Product, provided that (1) such employee's use of the Product takes place solely at Recipient's site and (2) Recipient has executed appropriate written agreements with such employees sufficient to enable it to comply with the terms of this Agreement. Upon Microsoft's request, Recipient shall provide to Microsoft a list of all employees granted access to the Product hereunder.

2.TERM OF AGREEMENT. The term of this Agreement shall commence on the date you accept this Agreement and shall continue unless terminated by Microsoft in writing at any time, with or without cause. This Agreement will terminate without notice upon the commercial release of the Product. Upon the termination of this Agreement, Recipient shall promptly return to Microsoft, or certify destruction of, all full or partial copies of such product and related materials provided by Microsoft.

3.COST OF TESTING. There is no charge to Recipient for testing and development use of the Product. Microsoft shall bear all transportation expenses relating to the shipment of the Product to Recipient's place of business. If the Product is returned by Recipient, Recipient will pay the return transportation expense.

4.PRODUCT MAINTENANCE. Microsoft is not obligated to provide maintenance or updates to Recipient for Product licensed under this Agreement. In no event shall Microsoft be obligated to provide Recipient, free of charge, a copy of the commercial release version of the Product in connection with Recipient's participation in the testing and development program.

5.DISCLAIMER OF WARRANTY. Product is deemed accepted by Recipient. The Product constitutes prerelease code and may be changed substantially before the first commercial release. The PRODUCT is provided "AS IS" WITHOUT WARRANTY OF ANY KIND. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT FURTHER DISCLAIMS ALL WARRANTIES, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE OR PERFORMANCE OF THE PRODUCT AND DOCUMENTATION REMAINS WITH RECIPIENT.

TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL MICROSOFT OR ITS SUPPLIERS BE LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, DIRECT, INDIRECT, SPECIAL, PUNITIVE, OR OTHER DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE PRODUCT OR DOCUMENTATION, EVEN IF MICROSOFT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. BECAUSE SOME STATES/JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO RECIPIENT.

6.GOVERNING LAW; ATTORNEYS FEES. This Agreement shall be governed by the laws of the State of Washington and Recipient further consents to jurisdiction by the state and federal courts sitting in the State of Washington. If either Microsoft or Recipient employs attorneys to enforce any rights arising out of or relating to this Agreement, the prevailing party shall be entitled to recover reasonable attorneys' fees.

7.U.S. GOVERNMENT RESTRICTED RIGHTS. The Product and Documentation are provided with RESTRICTED RIGHTS. Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of The Rights in Technical Data and Computer Software clause of DFARS 252.227-7013 or subparagraphs (c)(i) and (2) of the Commercial Computer Software -- Restricted Rights at 48 CFR 52.227-19, as applicable. Manufacturer is Microsoft Corporation, One Microsoft Way, Redmond, WA 98052-6399.

8.EXPORT RESTRICTIONS. Recipient acknowledges that the Product and Documentation acquired hereunder are subject to the export control laws and regulations of the U.S.A., and any amendments thereof. Recipient confirms that with respect to these Product and Documentation, it will not export or re-export them, directly or indirectly, either to (i) any countries that are subject to U.S.A export restrictions (currently including, but not necessarily limited to, Cuba, Iran, Iraq, Libya, North Korea, Syria, and Sudan); (ii) any end user who Recipient knows or has reason to know will utilize them in the design, development or production of nuclear, chemical or biological weapons; or (iii) any end user who has been prohibited from participating in the U.S.A. export transactions by any federal agency of the U.S.A. government. Recipient further acknowledges that the Product may include technical data subject to export and re-export restrictions imposed by U.S.A. law.

Should you have any questions concerning this Agreement, or if you desire to contact Microsoft for any reason, please write: Microsoft Corporation, Attn: Stephen Todd, Program Manager, Systems Management Server Group, One Microsoft Way, Redmond, WA 98052-6399.


M

[This is preliminary documentation and subject to change.]

Maintenance Manager

A component of the SMS Executive that installs and maintains the SMS components on SMS logon servers in a site. This component replicates client components and configuration information to SMS logon servers within a site and collects inventory and status information.

Management Information Format

See MIF.

membership rule

The criteria used to evaluate whether a resource is a member of a particular collection. A membership rule can specify a name or a query.

Microsoft® Asynchronous RAS Sender

See sender, sender types.

Microsoft Courier Sender

See sender, sender types.

Microsoft ISDN RAS Sender

See sender, sender types.

Microsoft LAN Sender

See sender, sender types.

Microsoft RAS Sender

See sender, sender types.

Microsoft SNA RAS Sender

See sender, sender types.

Microsoft X25 RAS Sender

See sender, sender types.

MIF[BZ—Just want to make sure that you aren't talking about the MOF (Managed Object Format) that I've seen discussed in the WBEM docs. In WBEM, I've heard nothing about MIF. I know this is Opal, not WBEM, but this sounds a lot like MOF.]

Management Information Format, a standard designed by the Desktop Management Task Force (DMTF) for accessing desktop computer components, both hardware and software, across multiple platforms.

MIF file

A description of a computer component that is available to other applications through a standard management interface. MIF files can be ASCII text or binary (formerly called a delta MIF file), and either type can be a full MIF file or an update (formerly called a partial MIF file). Binary MIF files are used by SMS services to add information to a site database.


N

[This is preliminary documentation and subject to change.]

namespace

A tree-formatted, ordered listing of nodes. The namespace display closely resembles that of a folder and directory structure on a disk.

network logon server

Servers that validate users logging on to a network. These can be NetWare servers or Windows NT and LAN Manager domain controllers.

See also SMS logon server.

Network Monitor

An SMS utility that captures, edits, transmits, and displays frames from a local area network (LAN).

node

An object in the SMS namespace.


O

[This is preliminary documentation and subject to change.]

object

An item whose structure is defined by its architecture and which is stored in the site database. For example, a Macintosh computer is an object within the Personal Computer architecture.

outbox

A directory in which SMS services can place Send Request files, which contain instructions for transferring data and instructions to other sites. There is a separate outbox for each type of sender.


Opal Glossary

[This is preliminary documentation and subject to change.]

OPAL uses its own collection of terms, or nomenclature. Many of these terms are familiar to developers, but have new or altered definitions in the OPAL environment. Please read the following list of definitions carefully in order to understand what is meant when these terms occur in the OPAL documentation.


Other SMS Classes

[This is preliminary documentation and subject to change.]

This section includes discussion of these classes:

SNMP Traps

SMS_SNMPVarbind

SMS_SNMPTrap


P

[This is preliminary documentation and subject to change.]

package

An object that defines software to the SMS system so that the software can be identified and installed. A package defines both the files that comprise the software, and the package's configuration and identification information.

package definition file (PDF)

An ASCII text file that contains predefined Workstation, Sharing, and Inventory property settings for a package. When you create a new package, you can import a PDF and use it to define the properties for the package. By importing a PDF, SMS uses the PDF's property definitions to enter the package properties for you. SMS includes PDFs for a number of software applications and operating systems.

package distribution

Placing a package on servers and making the package available from a shared directory. For Run[BZ—not sure what this is. Is it the name of the directory?]

Command On Workstation jobs,[BZ—What is this? Should this be a single paragraph with this mystery phrase and the one above excised?] package distribution installs the package's Workstations source directory on the specified distribution servers at the target sites, shares the directories on the network, and makes them available to SMS_PACKAGE_COMMAND_MANAGER.

package source directory

A shared directory that contains a package's source files.

parent site

A site that has a child site.

PDF

See package definition file.

permitted viewers

A list of user accounts that can be used to remotely control a Windows NT-based client.

pilot project

Deploying SMS on a limited number of computers to verify that you are ready to deploy in the production environment.

pragma statement

A line in a MIF or event configuration file that indicates how the information in the MIF file relates to the information in a site database.

See also event configuration file and MIF file.

primary site

A site that has its own SQL Server database to store system, package, inventory, and status information for itself and the sites beneath it in the site hierarchy.

program

The part of a package that contains the command line that runs on the client when the package is distributed to a collection. The command line can be an executable or an installation script that installs a software application, or it can simply copy data files. A package can contain multiple programs.

See also collection, package.

promiscuous mode

A state in which a network adapter card detects all the frames that pass over the network.

prompted query

A query that causes a dialog box to appear, prompting a user for more information. These queries are constructed using a general expression, not a specific value. The SMS Administrator prompts for the actual value when the query is run.

See also query.


Package Model

Usage:

The SMS_Program and SMS_DistributionPoint contain the PackageId property as a key and, therefore, need to reference a valid SMS_Package when created. The PackageId and Advertisement properties of SMS_Package and SMS_ Advertisement are auto-generated and are NULL when creating a new instance.

An SMS_Advertisement contains a property CollectionID and therefore links to the Collection model.

Class Relationships in SMS terms:

A Package contains one or more SMS_Program and SMS_DistributionPoint instances. An SMS_Advertisment targets an SMS_Program to an SMS_Collection. A program must be contained in an SMS_Package.


Q

[This is preliminary documentation and subject to change.]

query

An SMS object that contains criteria for finding objects in the site database. When run, a query searches the inventory for objects that match the query's criteria.

query clause

In a query, the combination of an expression (or subclause)[BZ—Are you saying that this is another term for an expression, or that a subclause and its adjacent operator are also a query clause? If the former, then set off with commas and italicize subclause, if the latter, the parens remain.] and its adjacent logical operator.

See also query subclause.

query criteria

The set of instructions for searching for objects.

query expression

A statement that compares a specific value against a specific attribute, using an operator, such as is equal to or is like. An expression is made up of an attribute, an operator, and a value.

query group

A set of expressions that are explicitly held together with parentheses. By making a set of expressions into a group, you ensure that the group's expressions are treated as a single entity. Groups have a higher operator precedence than the logical operators (AND, OR, and NOT).

query hit count

The number of objects that SMS found in the site database, according to the criteria specified by a query.

query relational operator

Part of an expression, such as is equal to or is like, that defines how a specified value is compared with the actual value stored for a specified attribute.

See also query expression.

query result format

An object that stores the format used to display the results of a query. A query result format enables you to select which attributes to display for the list of objects returned in the Query Results window. A format is specific to a single architecture. For example, a query format defined for an Employee architecture cannot be used to display computers, which may have a Personal Computer architecture.

query subclause

A set of expressions that can be logically treated as a single expression. You can explicitly specify that a subclause is a group.


Query Model

[This is preliminary documentation and subject to change.]

This section includes discussion of these classes:

SMS_Query

SMS_QueryExec_a


R

[This is preliminary documentation and subject to change.]

remote capture

Using the Network Monitor Agent on a remote computer to perform a capture, but displaying the results on a local computer. Because a remote capture uses the capture buffer on a remote computer, system resources on the local computer are saved.

remote control agent

A program that enables you to use the remote troubleshooting utilities to diagnose or control a client.

remote site

A site other than the current one[BZ—Can the current site also be a remote site? Is the current site a client site?].

remote troubleshooting utilities

Tools that allow you to control and monitor some remote clients directly.

resource

A managed object, such as a computer, a router, or a Windows NT® Users local group. Resources can be viewed in collections.

See also collection.


Resource Inventory

The three types of resources managed by inventory are represented by classes derived from the SMS_Group class:

Resource Type | Class
System | SMS_G_System
User | SMS_G_User
UserGroup | SMS_G_UserGroup

For each Resource type, there is a an abstract class – derived from SMS_Group – that corrrespons to the the SMS_Resource class with the SMS_G_ prefix instead of SMS_R_ prefix, for example, SMS_G_System.

Superclass | SMS_Resource | SMS_Group
Derived | SMS_R_System | SMS_G_System
Derived | SMS_R_User | SMS_G_User
Derived | SMS_R_UserGroup | SMS_G_UserGroup

The classes derived from SMS_Group are hardware and software inventory group types. The abstract classes SMS_Group and SMS_G_System are the superclasses from which classes such as SMS_G_System_CollectedFile are derived. You will find and instance of SMS_G_System_CollectedFile for every file collected through inventory for each system.

This model is extensible to accommodate new types of hardware. For example, a new type of tablet input device could be construed as SMS_G_System_InputTablet. Provided you derived the new class properly from its superclasses, you could use that class as you would any other type of inventory class.

Every machine in a site that has the SMS Client software installed and has begun to collect inventory information will begin to create instances of classes derived from SMS_G_System.

Qualifiers in Resource classes

Class names for specific SMS_G_System hardware inventory groups will be generally be long and unfriendly due to uniqueness requirements and WBEM character limitations. A DisplayName qualifier contains the friendly name to be used by the SMS Admin UI. When inventory data is loaded by SMS, new classes prefixed with SMS_G_ will be exposed through the SMS Provider. For example, SMS_G_System contains basic machine information.

System hardware inventory groups contain two key properties; ResourceID and GroupID, the latter equivalent to the 'InstanceKey' column in SQL group tables. Also present but not as a key is RevisionID key, which gives the current value of a counter denoting the number of history instances. System hardware inventory history derived classes, SMS_GH_System, contain RevisionID as a key property and the instances for specific derived classes contain the record of previous data on the group. If the current RevisionID in the SMS_G_System group is value x, then the corresponding SMS_GH_System group will contain x-1 instances with RevisionID values from 1 to x-1.

Software Inventory

The System resource type additionally has software inventory in three specific pre-defined classes. These classes are SMS_G_SoftwareProduct, SMS_G_SoftwareFile and SMS_G_SoftwareCollectedFile. These classes all have a key of ResourceId but have additional specific keys. The SMS_G_SoftwareProduct class also contains a ProductId key, and its properties include the software product name and manufacturer. The SMS_G_SoftwareFile class also contains ProductID and FileID as keys and its properties include file name, version and size. The SMS_G_SoftwareCollectedFile also contains RevisionID and FilePath as keys and includes the actual collected file and its local file path. The RevisionID as with hardware inventory history indicates that prior versions of inventoried files are stored in separate instances.


Resource Management

[This is preliminary documentation and subject to change.]

This section includes discussion of these classes:

SMS_ResourceMap

SMS_Resource

SMS_R_System

SMS_Group

SMS_G_System

SMS_G_User

SMS_G_System_SoftwareProduct

SMS_G_System_SoftwareFile

SMS_G_System_UnknownFile

SMS_G_System_CollectedFile

SMS_ResourceToGroup_a

In SMS 2.0, resources are the hardware, Windows NT user groups, and Windows NT user accounts that you can manage by using SMS. Hardware resources include personal computers, servers, and network devices, such as routers. SMS 2.0 discovers resources on your network according to their types – different discovery methods are provided the different resource types.


S

[This is preliminary documentation and subject to change.]

Scheduler

A component of the SMS Executive that detects pending jobs and creates auxiliary files that allow jobs to be processed. This includes jobs initiated by a user, such as a Run Command On Workstations [BZ—Set in bold because it sounds like language that came from the interface.]job, as well as system jobs.

secondary site

A site that has no SQL Server database or administrative tools. Instead, it forwards inventory and status information to its parent site, and is managed from its parent site.

send

The method SMS uses to transfer job data and instructions between sites (limited sending also occurs within a site). When a job is activated by SMS_SCHEDULER, SMS_SCHEDULER compresses the data or instructions needed to complete the job and writes a send request file for a sender to transfer the data or instructions. The sender transfers the data or instructions to the target site, where SMS_DESPOOLER handles or routes the data or instructions to the SMS services required to complete the job at that site.

send request file

A file with instructions that a sender uses to connect to a site and to transfer data to the site.

sender

A component of the SMS Executive that sends instructions and data between sites.

Within a site, SMS assumes that the network is fast and reliable, so SMS provides nothing to facilitate communication between servers in a site. Between sites, however, SMS presumes the network is slow and unreliable. Therefore, SMS provides senders to facilitate site-to-site communication.

Senders use an existing connectivity system to communicate with other sites; the sender itself does not provide connectivity to sites. The sender manages the connection, ensures the integrity of transferred data, recovers from errors, and closes the connection when it is no longer needed.

sender types

There are seven types of senders, one for each address type:

Microsoft LAN Sender

For all local area network (LAN) communication.

Microsoft RAS Sender

For all Remote Access Service (RAS) communication.

Microsoft Asynchronous RAS Sender

For Remote Access Service (RAS) communication over an asynchronous line.

Microsoft ISDN RAS Sender

For Remote Access Service (RAS) communication over an ISDN line.

Microsoft SNA RAS Sender

For SNA communication over a Remote Access Service (RAS) line.

Microsoft X25 RAS Sender

For Remote Access Service (RAS) communication over an X.25 line.

Microsoft Courier Sender

For creating and receiving parcels that are sent outside the SMS system.

site code

A three-character code that SMS uses to identify a site. A site code must be unique across an SMS system.

Site Configuration Manager

An SMS service that installs, maintains, and monitors SMS services at site servers and logon servers, ensuring that the servers are active and the SMS services are started.

site control file

An ASCII text file that contains the configuration of a site.

site database

A Microsoft SQL Server database that stores system information, such as configuration and status, and the software and hardware inventory at a primary site. Every primary site has a site database.

Site Reporter

At child sites, a component of the SMS Executive that detects a queue of binary MIF files containing inventory, job status, or event information, and that creates a mini-job to send these files to the parent site. This component exists at both primary and secondary sites.

site server

A computer that contains the SMS components needed to monitor and manage a site, its domains, and its computers. Each site has a site server.

site server domain

An SMS domain containing a site server.

site system

A server, share, or volume on which an SMS component is running.

SMS Administrator

The graphical user interface (GUI) used for administering SMS.

SMS_APPLICATIONS_MANAGER

See Applications Manager.

SMS client

See client.

SMS_CLIENT_CONFIG_MANAGER

See Client Configuration Manager.

SMS database

See site database.

SMS_DESPOOLER

See Despooler.

SMS domain

A group of servers and clients managed as a single entity within a site.

SMS Executive

An SMS service composed of the following :

·Applications Manager

·Despooler

·Inventory Data Loader

·Inventory Processor

·Maintenance Manager

·Scheduler

·Sender

·Site Reporter

SMS_HIERARCHY_MANAGER

See Hierarchy Manager.

SMS_INVENTORY_AGENT

See Inventory Agent.

SMS_INVENTORY_DATA_LOADER

See Inventory Data Loader.

SMS_INVENTORY_PROCESSOR

See Inventory Processor.

SMS_LAN_SENDER

See sender.

SMS logon server

A server that handles SMS client logon[BZ—MSTP nixes the use of logon as a noun. If we're complying, can we say "SMS client logon requests"? or "logon information"?]. When clients request to log on to a network, they connect to an SMS logon server on which SMS files are run. Site servers are automatically SMS logon servers, but other servers in the site can be made into SMS logon servers to share the load.

See also network logon server.

SMS_MAINTENANCE_MANAGER

See Maintenance Manager.

SMS network application

A computer program defined within a package and run across the network by users at clients. SMS network applications are defined as program items within a package. You can assemble program items from any packages into program groups. These program groups are then assigned to LAN Manager user groups, Windows NT Server global groups, or NetWare user groups. Wherever these users log on, they see a program group that contains their assigned SMS network applications in the Program Manager on the local client.

SMS_RAS_SENDER

See sender.

SMS_SCHEDULER

See Scheduler.

SMS site

A management unit comprising a group of subnets, such as an Internet protocol (IP) or Internetwork Packet Exchange (IPX) subnet, or an AppleTalk zone.

SMS_SITE_CONFIG_MANAGER

See Site Configuration Manager.

SMS_SITE_REPORTER

See Site Reporter.

SMS_SNA_SENDER

See sender.

SMS_TRAP_FILTER

See trap filter.

SNA Receiver

An SMS service that processes instructions and data sent by a Microsoft SNA Sender. When you install an SNA Sender on a computer, the SNA Receiver is automatically installed.

SNMP

Simple Network Management Protocol.

SNMP agent

A process running on an SNMP-managed device that uses SNMP to exchange management information with one or more management stations.

SNMP trap

An unsolicited SNMP packet sent from one SNMP entity to another, usually in response to some stimulus or event on the sending entity.

SNMP trap receiver

See Trap Receiver.

SNMP trap translator

See Event to Trap Translator.

source server

A package server that contains the source package files to be sent to distribution servers.

subcollection

A collection that is associated with another collection.

subsite

A site beneath another site in the site hierarchy.

subnet

A network (such as an Internet protocol [IP], or Internetwork Packet Exchange [IPX] network, or an AppleTalk zone) that is a component of a larger network.

system database

See site database.

system job

A job that transfers system instructions to other sites. System jobs maintain a site or report events, status, or inventory to other sites.


Security

[This is preliminary documentation and subject to change.]

This section includes discussion of these classes:

Security Model

SMS_SecurityInstance

SMS_SecurityUser

SMS_SecurityObject


Site Configuration

[This is preliminary documentation and subject to change.]

This section includes discussion of these classes:

SMS Configuration Classes

SMS_ConfigData

Install Map

SMS_SiteInstallMap

SMS_SiteInstallItem

SMS_SiteInstallItemBase

SMS_SII_Property

SMS_SII_PropertyList

SMS_SIIB_Configuration

SMS_SIIB_Generic_Configuration

SMS_SIIB_Component_FileList

SMS_SIIB_SysResRole

SMS_SIIB_AddressType

SMS_SIIB_SenderType

SMS_SIIB_NALProvider

SMS_UINAL_ResourceInfo

SMS_SIIB_UINALProvider

Site and Configuration Model

SMS_SiteControlItem

SMS_Client_Reg_MultiString_List

SMS_SessionHandle

SMS_SiteControlFile

SMS_SCI_Property

SMS_EmbeddedProperty

SMS_SCI_PropertyList

SMS_EmbeddedPropertyList

SMS_SCI_SiteDefinition

SMS_SCI_SysResUse

SMS_SCI_Configuration

SMS_SCI_ClientComp

SMS_SCI_ClientConfig

SMS_SiteControlDaySchedule

SMS_SCI_Address

SMS_SCI_SQLCmd

SMS_SCI_SQLTask

SMS_SCI_SiteAssignment

Site Model

SMS_NoLoopInData

SMS_VerifyResult

SMS_Site

SMS_SiteToSubSite_a

SMS_SiteToROOTColl_a

SMS_Identification

SMS Utility Methods

SMS_PackedNALPath

SMS_UnPackedNALPath

SMS_Utility

SysResList

SMS_SystemResourceList

SMS_ExtendedStatus

Usage:

The local SMS_Site exists by default on installation. Examining it is a useful way to check if the SMS Provider installed properly. Sites cannot be created with the Provider.

The other classes in this model relate to SMS configuration data. There are two parallel sets of classes that behave in a similar manner. These classes provide the instrumentation for data stored in the SQL database. Because of this, the procedure for creating or updating data in these classes needs some explanation.

The classes SMS_SiteControlFile and SMS_SiteInstallMap are the controlling classes that allow the image of the relevant file to be updated in SQL. These classes contain a property that is the complete file image but this is not the intended way that data for these files should be manipulated. Rather each file is represented as a number of 'Item's which contain general data for the base items but specific data for the most derived classes. The important point here is that the SMS Provider holds in memory a copy of each file to expose data in these Item classes. Therefore, performing a PutInstance method on an Item instance changes only the copy in memory of each file maintained by the SMS Provider.

To write the file back to SQL, the classes SMS_SiteControlFile and SMS_SiteInstallMap contain a Commit method that, when called on an instance of these classes, results in the static file data being updated in SQL. The Refresh method similarly updates the in-memory copy of the file from SQL so that all the Item class instances will be up-to-date.


SMS 2.0 Architecture

[This is preliminary documentation and subject to change.]

The architecture design allows components of a management environment to interact with CIMOM, which resides on the Primary Site. The client application provides object instrumentation while CIMOM, using various DLLs, provides services from system mapping through inventory tracking, and from planning to software

The major components of the architecture follow:

·Client application - possible remote connection

·WBEM CIM Object Manager (CIMOM)

·SMS Provider DLL

·SMS Site Server data

A variety of dynamic-link libraries support the development and deployment of the systems that are implementations of the architecture. The SMS Provider includes two SMS Provider DLLs and four SMS base class DLLs. This is illustrated in the following figure.

The requested support information flows back to the client application using CIMOM services. The CIMOM Managed Object Format (MOF) database does not record any instance data. Instance information that is not stored in the CIMOM database is dynamic data.


SMS 2.0 SDK Internal Release

Provisional document

Do not distribute

Microsoft Confidential

Version 19980202

Information in this document is subject to change without notice. Companies, names, and data used in examples herein are fictitious unless otherwise noted. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Microsoft Corporation.

© 1998 Microsoft Corporation. All rights reserved.


SMS 2.0 SDK Release Notes

This section will contain any information that limits the scope of this beta release or provides additional insight into otherwise undocumented parts of SMS 2.0.

The SMS_Site class represents a sample of the formatting that will eventually apply to all the other major classes in the Class Reference.


SMS_Advertisement

The SMS_Advertisement class is a dynamic class.

class SMS_Advertisement : SMS_BaseClass {

[key]

string AdvertisementID = "";

[Not_null]

string AdvertisementName = "";

[Not_null]

string PackageID = "";

[Not_null]

string ProgramName = "";

[Not_null]

string CollectionID = "";

string Comment = "";

BOOL IncludeSubCollection = 1;

string HierarchyPath = "";

[max(2), noquery]

SMS_ScheduleToken AssignedSchedule[];

[noquery]

BOOL AssignedScheduleEnabled = 0;

[noquery]

BOOL AssignedScheduleIsGMT = 0;

[noquery]

datetime PresentTime = "19900101000000.000000+***";

[noquery]

BOOL PresentTimeEnabled = 1;

[noquery]

BOOL PresentTimeIsGMT = 0;

[noquery]

datetime ExpirationTime = "19900101000000.000000+***";

[noquery]

BOOL ExpirationTimeEnabled = 0;

[noquery]

BOOL ExpirationTimeIsGMT = 0;

[bits("IMMEDIATE(5),ONSYSTEMSTARTUP(8),ONUSERLOGON(9),ONUSERLOGOFF(10),NO_DISPLAY(25),ONSLOWNET(26)")]

uint32 AdvertFlags = 0;

[enumeration("HIGH(1),NORMAL(2),LOW(3)")]

uint32 Priority = 2;

string SourceSite = "";

};

Properties

AdvertisementID

This is automatically generated and used as a key.

Qualifiers: key

Datatype: string

AdvertisementName

Qualifiers: Not_null

Datatype: string

PackageID

Qualifiers: Not_null

Datatype: string

ProgramName

Qualifiers: Not_null

Datatype: string

CollectionID

Qualifiers: Not_null

Datatype: string

Comment

Qualifiers:

Datatype: string

IncludeSubCollection

Qualifiers:

Datatype: BOOL

HierarchyPath

Qualifiers:

Datatype: string

AssignedSchedule

Qualifiers: max, noquery

Datatype: SMS_ScheduleToken

AssignedScheduleEnabled

Qualifiers: noquery

Datatype: BOOL.

AssignedScheduleIsGMT

Qualifiers: noquery

Datatype: BOOL.

PresentTime

Qualifiers: noquery

Datatype: datetime.

PresentTimeEnabled

Qualifiers: noquery

Datatype: BOOL.

PresentTimeIsGMT

Qualifiers: noquery

Datatype: BOOL.

ExpirationTime

Qualifiers: noquery

Datatype: datetime.

ExpirationTimeEnabled

Qualifiers: noquery

Datatype: BOOL.

ExpirationTimeIsGMT

Qualifiers: noquery

Datatype: BOOL.

AdvertFlags = 0

The values for this property IMMEDIATE(5), ONSYSTEMSTARTUP(8), ONUSERLOGON(9), ONUSERLOGOFF(10), NO_DISPLAY(25), and ONSLOWNET(26).

Qualifiers: bits

Datatype: uint32.

Priority2

The values for this property are HIGH(1), NORMAL(2), LOW(3).

Qualifiers: enumeration

Datatype: uint32.

SourceSite

Qualifiers:

Datatype: string


SMS Base Classes

[This is preliminary documentation and subject to change.]

This section includes discussion of these classes:

SMS_BaseClass

SMS_BaseAssociation


SMS Functional Description

[This is preliminary documentation and subject to change.]

This section contains comments and details on the functional nature of each class and how each is used.


SMS_Package

The SMS_Package is a dynamic, provider class.

class SMS_Package : SMS_BaseClass {

[key]

string PackageID = "";

string Name = "";

string Version = "";

string Language = "";

string Manufacturer = "";

string Description = "";

[enumeration("STORAGE_NO_SOURCE(1),STORAGE_DIRECT(2), STORAGE_COMPRESS(3),STORAGE_LOCAL(4)")]

uint32 PkgSourceFlag = 1;

string PkgSourcePath = "";

[instancemethod, Description("This method causes a refresh of the package source - for use when the Package properties have not changed")]

method RefreshPkgSource;

string StoredPkgPath = "";

uint32 StoredPkgVersion = 0;

[enumeration("SHARE_COMMON(1),SHARE_SPECIFIC(2)")]

uint32 ShareType = 1;

string ShareName = "";

string SourceSite = "";

BOOL ForcedDisconnectEnabled = 0;

uint32 ForcedDisconnectNumRetries = 0;

uint32 ForcedDisconnectDelay = 0;

[enumeration("HIGH(1),NORMAL(2),LOW(3)")]

uint32 Priority = 2;

[stringenumeration("ADDR_NONE(),ADDR_LAN(MS_LAN),ADDR_MAPI(MS_MAPI),ADDR_RAS_ASYNC(MS_ASYNC_RAS),ADDR_RAS_ISDN(MS_ISDN_RAS),ADDR_RAS_X25(MS_X25_RAS),ADDR_RAS_SNA(MS_SNA_RAS),ADDR_SNA_BATCH(MS_BATCH_SNA),ADDR_SNA_INTER(MS_INTER_SNA),ADDR_COURIER(MS_COURIER)")]

string PreferredAddressType = "";

BOOL IgnoreAddressSchedule = 0;

uint32 IconSize = 0;

uint8 Icon[];

[max(2), noquery]

SMS_ScheduleToken RefreshSchedule[];

uint32 GenericAccess = 0;

[noquery]

SMS_PackageAccessByUsers UserSpecificAccess[];

};

Properties

PackageID

Qualifiers: key

Datatype: string

Name

Qualifiers:

Datatype: string

Version

Qualifiers:

Datatype: string

Language

Qualifiers:

Datatype: string

Manufacturer

Qualifiers:

Datatype: string

Description

Qualifiers:

Datatype: string

PkgSourceFlag

The values for this property are represented by the enumeration "STORAGE_NO_SOURCE(1), STORAGE_DIRECT(2), STORAGE_COMPRESS(3), STORAGE_LOCAL(4)."

Qualifiers: enumeration

Datatype: uint32

PkgSourcePath

Qualifiers:

Datatype: string

RefreshPkgSource

This method causes a refresh of the package source - for use when the Package properties have not changed.

Qualifiers: Instancemethod, Description

Datatype: method

StoredPkgPath

Qualifiers:

Datatype: string

StoredPkgVersion

Qualifiers:

Datatype: uint32

ShareType

The values for this property are SHARE_COMMON and SHARE_SPECIFIC.

Qualifiers: enumeration

Datatype: uint32.

ShareName

Qualifiers:

Datatype: string

SourceSite

Qualifiers:

Datatype: string

ForcedDisconnectEnabled

The default value is false.

Qualifiers:

Datatype: BOOL

ForcedDisconnectNumRetries

The default value is zero.

Qualifiers:

Datatype: uint32

ForcedDisconnectDelay

The default value is zero.

Qualifiers:

Datatype: uint32.

Priority

The values for this property are represented by HIGH(1), NORMAL(2), LOW(3).

Qualifiers: enumeration

Datatype: uint32.

PreferredAddressType

The values for this property are represented by a string enumeration.

Qualifiers: stringenumeration

Datatype: string

ADDR_NONE | ()
ADDR_LAN | (MS_LAN)
ADDR_MAPI | (MS_MAPI)
ADDR_RAS_ASYNC | (MS_ASYNC_RAS)
ADDR_RAS_ISDN | (MS_ISDN_RAS)
ADDR_RAS_X25 | (MS_X25_RAS)
ADDR_RAS_SNA | (MS_SNA_RAS)
ADDR_SNA_BATCH | (MS_BATCH_SNA)
ADDR_SNA_INTER | (MS_INTER_SNA)
ADDR_COURIER | (MS_COURIER)"

IgnoreAddressSchedule

The default value is zero.

Qualifiers:

Datatype: BOOL.

IconSize

The default value is zero. A value of zero clears the icon.

Qualifiers:

Datatype: uint32.

Icon

Qualifiers:

Datatype: uint8.

RefreshSchedule

Qualifiers: max, noquery

Datatype: SMS_ScheduleToken

GenericAccess

The default value is zero, that is users have no access by default. GenericAccess is for all users not specified by an instance of SMS_PackageAccessByUsers.

Qualifiers: bits

Datatype: uint32

UserSpecificAccess

It is not returned by a query.

Qualifiers: noquery

Datatype: SMS_PackageAccessByUsers.


Software Distribution

[This is preliminary documentation and subject to change.]

The package model consists of these classes:

SMS_Package

SMS_Advertisement

SMS_Program

SMS_DistributionPoint

SMS_PackageToAdvert_a

SMS_PkgToPkgServer_a

SMS Embedded Objects

This section includes discussion of these classes:

SMS_ScheduleToken

SMS_ST_NonRecurring

SMS_ST_RecurInterval

SMS_ST_RecurMonthlyByWeekday

SMS_ST_RecurWeekly

SMS_ST_RecurMonthlyByDate

SMS Package Access

SMS_PackageAccessByUsers

DistributionPointGroup

SMS_DistributionPointGroup

Methods for Schedule Token string packing/unpacking

SMS_ScheduleData

SMS_ScheduleMethods

SMS OS Details Guide

SMS_OS_Details

SMS Supported Platforms

SMS_SupportedPlatforms


Status Reporting

[This is preliminary documentation and subject to change.]

This section includes discussion of these classes:

Resource Explorer Property Display Model

SMS_PropertyDisplayNode

SMS_StatusMessage

SMS_StatMsgAttributes

SMS_StatMsgInsStrings

Site Summarizers

SMS_SiteSummarizer

SMS_MachineSummarizer

SMS_ComponentSummarizer

SMS_PackageStatusRootSummarizer

SMS_PackageStatusSummarySummarizer

SMS_AdvertisementStatusSummarizer


T

[This is preliminary documentation and subject to change.]

target site

A site at which a job sends a package or performs an action. For example, when you create a Run Command On Workstation[BZ—Sounds like an item in the UI.] job, target sites are the sites at which the target clients are located.

trap filter

An SMS service responsible for receiving SNMP traps and writing them to the SMS database. This service runs only on primary sites and is configured using the Site Properties dialog box.

Trap Receiver

An SMS feature that makes SNMP trap information available to SMS. By default, this service is disabled (no traps are received or stored in the database). The SNMP Traps button in the Site Properties dialog box is used to configure this service.

trigger

A condition that causes an alert when the condition is true.


Using the Sample Data

[This is preliminary documentation and subject to change.]

Here are a few simple tests you can run to view the sample data. An attempt is made both to show how to use various tools, and where to find some of the more interesting 2.0 data.

1.From the WBEM directory, run Wbemtest.exe.

2.Click the Connect button.

For the Namespace, enter 'root\sms\sms'.

3.Click Login. This will display the 'Main Screen.' (The term Main Screen does not reflect anything on the screen that says 'Main Screen.' The term is used as a reference in later instructions).

4.Click Enum Instances. Type 'SMS_Site', click OK.

This shows you all the sites that are currently defined (there should be only one: ABC). You can double click on this to see details about the site.

5.Click Close/OK until you return to the 'Main Screen.'

6.Click on the Enum Classes button.

7.Click the Recursive Radio button.

8.Click OK.

This shows you all the classes defined in the root\sms\sms namespace. Class names that begin with double underscore are created by WBEM, that is, they do not contain SMS data in them.

9. Scroll down until you find SMS_Package. Double click it.

10.This shows you the definition of the class. It lists all the properties, the data types of those properties, and the default value of these properties, which are used if someone creates an instance of this class and does not specify a value for this property.

11.Double click on the PackageID property. This shows you the qualifiers for this property. From here we see that PackageID is a key field, and has a qualifier named CIMTYPE with a value of 'string.'

12.Click Cancel.

13.Click Instances. This is the list of packages currently defined in the SMS database. You can get this same list by using the Enum Instances button from the 'Main Screen.'

14.Click Close/OK until you return to the 'Main Screen.'

15.Click on the Query button.

16.Enter 'Select * from SMS_SCI_Component where SiteCode= "ABC" and FileType=2'.

17.Click Apply.

This shows you all the 'Components' defined in the Site Control file.

Getting started writing programs against the provider.

[This is preliminary documentation and subject to change.]

Before writing any code to the provider, you will need to generate the headers and .c files in the format understood by your compiler. Copy the \sdk\sample directory tree (including subdirectories) to your hard drive.

From the sample\idl directory, type the following:

MIDL wbemsvc.idl

This generates the appropriate .h and .c files, depending on the compiler you use.

If you intend to compile/run these samples, make sure you build utillib first. All of these directories build with just NMAKE.

Start with sample\crpkg. This is a simple program that shows how to connect to WBEM, and create a package.

A slightly more involved example is to be found in craddr. This shows how to create and query site control file addresses.

The code for wbemdump is also available to you.


W

[This is preliminary documentation and subject to change.]

workgroup

A logical grouping of computers for browsing network resources. Windows NT, Windows for Workgroups, and Microsoft Workgroup Add-on for MS-DOS support workgroups.


WBEM Architecture

[This is preliminary documentation and subject to change.]

The WBEM architecture defines the structures and conventions necessary to access information about the objects being managed, centralizes the information for cross-client analysis, and supports access to managed objects for both analysis and manipulation.

The major components of the architecture are:

·Common Information Model (CIM)—An extensible data model used to define and manipulate the state of the system.

·CIM Object Manager (CIMOM)—An object manager that provides an interface between management applications and the objects being managed.

·Providers—Providers such as the SMS Provider encapsulate information and map the data into an information model. Instance providers enumerate the instances of a particular class of entries. Property providers enumerate the properties for a particular class.

The WBEM architecture allows components of a management environment to be supplied by multiple organizations such as businesses, schools, government agencies, or private web entrepreneurs. Object instrumentation at the client location can be provided by many different organizations. No single management platform provides complete management capabilities spanning the whole range of functions, from system mapping through inventory tracking, and from planning to software distribution and capacity planning.

A variety of development tools and strategies for integrating WBEM with your existing enterprise are defined. The following figure illustrates the basic WBEM architecture.

The architecture uses a rich data model capable of expressing the structure and the semantics of the information required to handle the management environment.

The Schema data model is object-oriented. It supports classes, objects, properties, and methods. The model uses the fundamental concepts of inheritance and association to normalize the managed environment. Using association to join groupings of data, normalization permits uniform access to data that appears in different applications. The data model is specifically designed to accommodate the evolving requirements of the CIM schema as different organizations see their needs change.

The schema data is defined one of two ways:

·The introduction of schema fragments on an as-needed basis.

·The deployment of large-scale schemas, such as the Win32® schema, as a part of system installation.

WBEM achieves schema definition and object creation through the use of namespaces that limit the scope of identifiers to a manageable space. WBEM does not assume the existence of any central identifier-dispensing organization, using instead a namespace-naming convention that guarantees uniqueness of namespace names.

WBEM is defined to cross the spectrum of management capabilities, ranging from simple workstation management to full-scale enterprise management. The architecture is scaleable and distributed, the information model is capable of describing any existing managed environment, and the system has been designed to be compatible with all the major existing management protocols. These protocols include Simple Network Management Protocol (SNMP), the HyperMedia Management Protocol (HMMP), Desktop Management Interface (DMI), and Common Management Information Protocol (CMIP).


The SMS Provider

[This is preliminary documentation and subject to change.]

The Systems Management Server (SMS) Provider uses the Web-Based Enterprise Management (WBEM) architecture to access selected data for supporting information system management initiatives.

·WBEM offers the following features to the SMS Provider:

·Defines the APIs and conventions necessary to access the managed objects.

·Provides heterogeneous client-access .

·Supports a growing list of high-level data access methods including ODBC and Directory Services.