In Microsoft System Center Configuration Manager 2007, you initiate a hardware inventory collection cycle by creating an instance of the CPAppletMgr Client COM Automation Class, identifying the client action, and running the client action by using the PerformAction method.

To initiate the hardware inventory collection cycle

  1. Create a CPAppletMgr instance by using the CPAppletMgr COM class.

  2. Get the available client actions.

  3. Enumerate through the client actions until a match is found (in this case, Hardware Inventory Collection Cycle).

  4. Run the client action by using the PerformAction method.

Example

The following example method shows how to initiate a hardware inventory collection cycle using the CPAppletMgr COM class.

For information about calling the sample code, see How to Call Configuration Manager COM Automation Objects

Visual Basic Script  Copy Code
Sub RunHardwareInventory()

	' Set the required variables.
	actionNameToRun = "Hardware Inventory Collection Cycle"

	' Create the CPAppletMgr instance.
	Dim controlPanelAppletManager
	Set controlPanelAppletManager = CreateObject("CPApplet.CPAppletMgr")

	' Get the available ClientActions object.
	Dim clientActions
	Set clientActions = controlPanelAppletManager.GetClientActions()

	' Loop through the available client actions. Run the matching client action when it is found.
	Dim clientAction
	For Each clientAction In clientActions
		If clientAction.Name = actionNameToRun Then
			clientAction.PerformAction  
		End If
	Next

	wscript.echo "Ran: " & actionNameToRun

End Sub
C#  Copy Code
// How to Initiate Hardware Inventory
public void RunHardwareInventory()
{
	try
	{
		// Set the required variables.
		string actionNameToRun = "Hardware Inventory Collection Cycle";

		// Create the CPAppletMgr instance.
		CPAPPLETLib.CPAppletMgr controlPanelAppletManager = new CPAPPLETLib.CPAppletMgr();

		// Loop through the available client actions. Run the matching client action when it is found.
		foreach (CPAPPLETLib.ClientAction possibleClientAction in controlPanelAppletManager.GetClientActions())
		{
			if (possibleClientAction.Name == actionNameToRun)
			{
				possibleClientAction.PerformAction();
				Console.WriteLine("Ran: " + possibleClientAction.Name);
		}
	}
}

	catch (COMException ex)
	{
		Console.WriteLine("Failed to run action. Error: " + ex.Message);
		throw;
}
}

Compiling the Code

This C# example requires:

Namespaces

System

System.Runtime.InteropServices

CPAPPLETLib COM Automation Library

COM Automation

The reference that is needed for early binding is CPApplet 1.0 Type Library. This creates a type library reference named CPAppletLib. The early binding object name for the Control Panel Manager is CPAppletMgr.

Robust Programming

For more information about error handling, see About Configuration Manager Errors.

Security

For more information about securing Configuration Manager applications, see Securing Configuration Manager Applications.

See Also


Send comments about this topic to Microsoft.