Create a Power Management application using Intel AMT
Systems with Intel AMT allow for remote management of their power state. There are multiple ways to execute the remote power commands via a management console. Developers can create their own tools that use WS-Management commands or Intel AMT's High Level API library (HLAPI.) The following sections describe each of these methods.
Note: Any of these solutions require the managed device to be configured. For configuration information see my AMT Configuration Blog
Option 1: Use the Intel AMT WMI Provider
Key Resource: WS-Management Section of the Intel AMT Implementation and Reference Guide
Required Software: Microsoft Visual Studio, and the Intel AMT SDK.
Unfortunately, writing code for Intel AMT requires extensive knowledge of C# plus an understanding of specific Intel AMT objects and the variations between Intel AMT releases. The AMT HLAPI SDK can help..
Use the Intel vPro Scripting library from the SDK, which is composed of f Intel.WsMan.Scripting.DLL, imrsdk.dll, and KVMlib.dll.
The scripting library includes Managed Object Format (MOF) files that include full descriptions of the Common Information Model (CIM) data objects defined and implemented by Intel AMT. Per industry standards, there are three types of MOF files: CIM, AMT, and IPS classes.
- CIM – Standard Distributed Management Task Force (DMTF) classes
- AMT – Intel AMT specific classes
- IPS – Additional Intel proprietary classes
This tutorial will use the CIM and/or IPS classes.
WS-Management Process Flow
The basic process steps are:
- Make the connection
- Get Boot Configuration Options
- Set Boot Configuration
- Initiate the reboot
The Intel AMT SDK has a sample file that demonstrates some of the Remote Control capabilities from an application. These files can be found within the Intel AMT SDK download package - <SDK_root>\Windows\Intel_AMT\Samples\WS-Management\RemoteControl.
Note: Sample files are not for production use and may not exercise all of the capabilities of a given feature, nor provide robust error messaging.
Using the Intel AMT HLAPI
Key Resource: Intel AMT High Level API documentation
Use of Intel AMT HLAPIs will ease development by providing libraries of commonly used features making it a quick and easy way to create applications that take advantage of Intel AMT features. Power API is an extremely simple .NET API that transparently supports all versions of Intel AMT, starting with Release 2.2. The key steps include:
- Making the Connection - Code Sample:Connection: Allows an application to connect to the remote Intel AMT client by creating an object for each Intel AMT device. The instance is created using the AMTInstanceFactoryCreate method and the IAMTInstance interface.
- Issuance of the command - Code Sample: Power Reset (Select the drop down for "Reboot the system" on that page for a code sample).
In summary, the Intel AMT HLAPI provides the developer with an easy to use, robust API toolset for Intel AMT management in comparison to using WS-Management commands.
Other Resources
I have written some other blogs on Intel AMT to help with basic enabling tasks.
Icon Image:
Clik here to view.
