Professional Documents
Culture Documents
1 USE
GUIDE
The identification and activation of vPro systems that are not remote configuration capable
and that have not completed the provisioning/activation process prior to being placed in the
field can be a daunting task in a large enterprise environment. Especially in the common
situation where vPro systems have been deployed before backend infrastructure is in place.
To help address these challenges, and other activation issues, a script/tool package is
available to assist in automating the identification of such systems, as well as facilitating
automated data collection process enterprise wide, known as iAMT Scan.
Challenges associated with activating these now dormant vPro devices.
1. The hello packet process must be restarted if more than 24 hours has passed and
the system is still un-provisioned since the system was plugged into power. There
several different ways to accomplish this.
a. Powering off the system and pulling the power cord (and the battery in the
case of a laptop) and then plugging the system back in.
b. Package and deploy the Activator Utility (formerly known as the Remote
Configuration Tool (RCT)) on the local system. To restart the hello packets, the
syntax is:
c:\activator /s http:<provisioning service location> /h | /d <8 character PID>
Once the hello packet process is restarted, the system should contact the provision
server, be identified by its fully qualified domain name (FQDN), receive its
provisioning profile and complete the provisioning/activation process.
2. Intel HECI, LMS and UNS Drivers must be updated to current versions supported by
your OEM, in order to successfully use Activator within the Windows environment.
3. It is also recommended to update the Intel AMT firmware or system BIOS to the
most current version depending on the specific hardware platform (i.e. AMT 2.x, 2.5,
or 3.x.)
Here is the high level overview of how iAMT Scan can help address these challenges,
troubleshoot other activation issues, and assist in automating the identification of such
systems, as well as facilitating automated data collection process enterprise wide.
Process Overview:
iAMT Scan was created with the following criteria in mind:
Store this data in the Windows registry for collection via custom inventory process of
the Management Console.
Using this approach, Support Staff can create a distribution that will deploy the iAMT Scan
executable to the target machines, and subsequently inventory this collection thus
capturing data back into the central management console. Armed with this newly available
data, reports can now be generated to assist in planning your remote configuration strategy
with limited desk side visits, by identifying systems that are in need of updates before
Activator is deployed. Update packages can then be deployed to the systems that have
been identified, ensuring a successful Activator deployment. In some sense the process
helps to give another window into your vPro activation process from the Enterprise
Perspective.
MEInfoWIN.exe does require the Intel HECI driver for Windows to be in place in order to
return full detail, but iAMT Scan will continue to return a subset of the information despite
the missing driver, and again this is useful in determining whether or not the PC is capable
of activation using the Activator Utility to restart the provisioning process. The remaining
fields will be present, but contain no value. Below represents what data is returned based
on dependency:
No HECI Driver
Make - Manufacturer
Deployment:
The iAMT Scan executable is package ready and requires no additional parameters to
perform; simply leverage your existing software distribution, hardware inventory, and
reporting processes to achieve results. A typical deployment consists of the preparing your
management console to receive the custom inventory data, distributing and executing the
utility, and then scheduling an inventory scan of the targeted machines that will collect this
data from the systems registry. Once this data has been populated into the management
console, you can now use the Consoles reporting features to generate reports based on this
custom inventory. An example would be to report all Dell 755s that have no HECI driver in
place or all HP dc7800s at a particular AMT version and then plan a distribution to install the
prerequisite drivers and firmware. Please refer to your ISV documentation on how to
distribute software, inventory custom registry data, and build custom reports. Below is a
suggested process flow diagram:
Inventory Environment
Report
Requirements
Met
YES
Deploy Activator
NO
Remediate
Appendix:
A. Useful links and Documents:
SCCM
o
SMS
o
LANDesk
o
Altiris
o
Example Display:
LANDesk:
The inventory scanner is capable of scanning for any registry key. The
following procedure should be used to configure the inventory scanner to scan
for additional registry keys. (see link above)
1. On the core server, modify the c:\Program
Files\LANDesk\ManagementSuite\ldlogon\ldappl3.template with a text editor,
such as Notepad.
2. Find the section called Registry Info.
3. Add a new line using this syntax:
KEY='VALUE PATH', 'VALUE', 'INVENTORY BRANCH'
where 'VALUE PATH' is the path where the registry value is located (i.e.
HKLM\Software); 'VALUE' is the name of the value that you would like LANDesk
to scan (i.e. MyValue); 'INVENTORY BRANCH' is the branch in the LANDesk
inventory tree where this new value needs to be saved (i.e. Custom Data).
4. Save the LDAPPL3.TEMPLATE file and close the text editor.
5. Open the LANDesk Management Suite console.
6. Go to Tools | Reporting/Monitoring | Software License Monitoring.
7. Click the 'Make Available to Clients' button. Clicking this button will add the
changes made to the LDAPPL3.TEMPLATE file to the LDAPPL3.INI file.
8. Clients will begin sending the registry information along with their next
inventory scan. Please note that this process assumes that the agent is
configured to download the LDAPPL3.INI automatically. If the agent is
configured for manual update, the new LDAPPL3.INI will need to be copied
down to the clients.
Please note the registry value being scanned must have a value. For example,
a zero-length binary value with no value will not scan.
LANDesk (Cont.)
SMS 2003
You can extend hardware inventory by editing the sms_def.mof file using a
text editor. On the primary site server computer, navigate to:
<installation directory>\inboxes\clifiles.src\hinv\sms_def.mof
and copy the following data into the end of the file using notepad. Save and
compile the edited file. The file must be compiled by using the Mofcomp.exe
command on each SMS Client, as in this example: Mofcomp.exe
<path>\SMS_def.mof
//==========================================================
========
// Create namespaces for iAMT Scan Data used by the Inventory Agent
//==========================================================
========
#pragma namespace("\\\\.\\root\\CIMV2")
#pragma deleteclass("Intel_iAMT_SCAN_DATA", NOFAIL)
[DYNPROPS]
class Intel_iAMT_SCAN_DATA
{
[key]
string
KeyName="";
string
AMTMac;
string
AMTSetupStatus;
string
AMTVersion;
string
AssetTag;
string
BIOSVersion;
string
ChassisType;
string
DHCPServer;
string
DNSServerOrder;
string
FQDN;
string
DNS_FQDN;
string
Gateway;
string
HECIVersion;
string
MAC;
string
IPAddress;
string
LMSVersion;
string
Make;
string
Model;
string
ProvisionServerPing;
string
SerialNumber;
string
SubnetMask;
string
SystemName;
string
UNSVersion;
string
SMSSiteCode;
string
SMSManagementServer
string
UUID;
};
[DYNPROPS]
instance of Intel_iAMT_SCAN_DATA
{
KeyName="Intel iAMT SCAN DATA";
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
AMTMac"),Dynamic, Provider("RegPropProv")] AMTMac;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
AMTSetupStatus"),Dynamic, Provider("RegPropProv")] AMTSetupStatus;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
AMTVersion"),Dynamic, Provider("RegPropProv")] AMTVersion;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
AssetTag"),Dynamic, Provider("RegPropProv")] AssetTag;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
BIOSVersion"),Dynamic, Provider("RegPropProv")] BIOSVersion;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
ChassisType"),Dynamic, Provider("RegPropProv")] ChassisType;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
DHCPServer"),Dynamic, Provider("RegPropProv")] DHCPServer;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
DNSServerOrder"),Dynamic, Provider("RegPropProv")] DNSServerOrder;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
FQDN"),Dynamic, Provider("RegPropProv")] FQDN;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
DNS_FQDN"),Dynamic, Provider("RegPropProv")] DNS_FQDN;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
Gateway"),Dynamic, Provider("RegPropProv")] Gateway;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
HECIVersion"),Dynamic, Provider("RegPropProv")] HECIVersion;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
Mac"),Dynamic, Provider("RegPropProv")] MAC;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
IPAddress"),Dynamic, Provider("RegPropProv")] IPAddress;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
LMSVersion"),Dynamic, Provider("RegPropProv")] LMSVersion;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
Make"),Dynamic, Provider("RegPropProv")] Make;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
Model"),Dynamic, Provider("RegPropProv")] Model;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
ProvisionServerPing"),Dynamic, Provider("RegPropProv")] ProvisionServerPing;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
SerialNumber"),Dynamic, Provider("RegPropProv")] SerialNumber;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
SubnetMask"),Dynamic, Provider("RegPropProv")] SubnetMask;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
SystemName"),Dynamic, Provider("RegPropProv")] SystemName;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
UNSVersion"),Dynamic, Provider("RegPropProv")] UNSVersion;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
SMSSiteCode"),Dynamic, Provider("RegPropProv")] SMSSiteCode;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
SMSManagementServer"),Dynamic, Provider("RegPropProv")] SMSManagementServer;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN DATA|
UUID"),Dynamic, Provider("RegPropProv")] UUID;
};
//==========================================================
========
// Custom iAMT Data Reporting Definition used by the Inventory Agent
//==========================================================
========
#pragma namespace("\\\\.\\root\\CIMV2\\SMS")
#pragma deleteclass("Intel_iAMT_SCAN_DATA", NOFAIL)
[SMS_Report(TRUE),
SMS_Group_Name("Intel iAMT Scan Data"),
SMS_Class_ID("Intel_iAMT_SCAN_DATA")]
class Intel_iAMT_SCAN_DATA : SMS_Class_Template
{
[SMS_Report(True)] string AMTMac;
[SMS_Report(TRUE)] string AMTSetupStatus;
[SMS_Report(TRUE)] string AMTVersion;
[SMS_Report(TRUE)] string BIOSVersion;
[SMS_Report(TRUE)]string Date;
[SMS_Report(TRUE)] string DHCPServer;
[SMS_Report(TRUE)] string DNSServerOrder;
[SMS_Report(TRUE)] string FQDN;
[SMS_Report(True)] string DNS_FQDN;
[SMS_Report(TRUE)] string Gateway;
[SMS_Report(TRUE)] string HECIVersion;
[SMS_Report(TRUE)] string MAC;
[SMS_Report(TRUE)] string IPAddress;
[SMS_Report(TRUE)] string LMSVersion;
[SMS_Report(TRUE)] string Make;
[SMS_Report(TRUE)] string Model;
[SMS_Report(TRUE)] string ProvisionServerPing;
[SMS_Report(TRUE)] string SerialNumber;
[SMS_Report(TRUE)] string SubnetMask;
[SMS_Report(TRUE)] string SystemName;
[SMS_Report(TRUE)] string UNSVersion;
[SMS_Report(TRUE)] string SMSSiteCode;
[SMS_Report(TRUE)] string UUID;
};
SCCM
Extending hardware inventory within the SCCM environment is very similar to the
approach used in SMS 2003, except that there are two separate files to work with,
configuration.mof and sms_def.mof. Configuration.mof is used to define the
namespaces and instances of a particular class, in our case Intel iAMT SCAN
DATA , while sms_def.mof is used to define the reporting class, and objects. One
advantage to extending inventory data with SCCM is there is no need to compile
the MOF files on each client. SCCM will monitor the configuration.mof, and
sms_def.mof files and take appropriate action on its own.
On the primary site server computer, navigate to the following location and open
the file using notepad:
<installation
directory>\inboxes\clifiles.src\hinv\configuration.mof
You will notice a section at the end of the file dedicated to inventory extension:
//========================
// Added extensions start
//========================
//========================
// Added extensions end
//========================
Insert the following in between this section and save the file:
//============================================================
======
// Create namespaces for iAMT Scan Data used by the Inventory Agent
//============================================================
======
#pragma namespace("\\\\.\\root\\CIMV2")
#pragma deleteclass("Intel_iAMT_SCAN_DATA", NOFAIL)
[DYNPROPS]
class Intel_iAMT_SCAN_DATA
{
[key]
string
KeyName="";
string
AMTMac;
string
AMTSetupStatus;
string
AMTVersion;
string
AssetTag;
string
BIOSVersion;
string
ChassisType;
string
Date;
string
DHCPServer;
string
DNSServerOrder;
string
FQDN;
string
DNS_FQDN;
string
Gateway;
string
HECIVersion;
string
MAC;
string
IPAddress;
string
LMSVersion;
string
Make;
string
Model;
string
ProvisionServerPing;
string
SerialNumber;
string
SubnetMask;
string
SystemName;
string
UNSVersion;
string
SMSSiteCode;
string SMSManagementServer;
string
UUID;
};
[DYNPROPS]
instance of Intel_iAMT_SCAN_DATA
{
KeyName="Intel iAMT Scan Data";
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] AMTMac;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
AMTSetupStatus"),
Dynamic, Provider("RegPropProv")] AMTSetupStatus;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] AMTVersion;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] AssetTag;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] BIOSVersion;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] ChassisType;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] Date;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] DHCPServer;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
DNSServerOrder"),
Dynamic, Provider("RegPropProv")] DNSServerOrder;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] FQDN;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] DNS_FQDN;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] Gateway;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] HECIVersion;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] MAC;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] IPAddress;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] LMSVersion;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] Make;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT
Dynamic, Provider("RegPropProv")] Model;
SCAN DATA|AMTMac"),
SCAN DATA|
SCAN DATA|AMTVersion"),
SCAN DATA|AssetTag"),
SCAN DATA|BIOSVersion"),
SCAN DATA|ChassisType"),
SCAN DATA|Date"),
SCAN DATA|DHCPServer"),
SCAN DATA|
SCAN DATA|FQDN"),
SCAN DATA|DNS_FQDN"),
SCAN DATA|Gateway"),
SCAN DATA|HECIVersion"),
SCAN DATA|Mac"),
SCAN DATA|IPAddress"),
SCAN DATA|LMSVersion"),
SCAN DATA|Make"),
SCAN DATA|Model"),
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN
ProvisionServerPing"),
Dynamic, Provider("RegPropProv")] ProvisionServerPing;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN
Dynamic, Provider("RegPropProv")] SerialNumber;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN
Dynamic, Provider("RegPropProv")] SubnetMask;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN
Dynamic, Provider("RegPropProv")] SystemName;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN
Dynamic, Provider("RegPropProv")] UNSVersion;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN
Dynamic, Provider("RegPropProv")] SMSSiteCode;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN
SMSManagementServer"),
Dynamic, Provider("RegPropProv")] SMSManagementServer;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\Intel\\iAMT SCAN
Dynamic, Provider("RegPropProv")] UUID;
};
DATA|
DATA|SerialNumber"),
DATA|SubnetMask"),
DATA|SystemName"),
DATA|UNSVersion"),
DATA|SMSSiteCode"),
DATA|
DATA|UUID"),
Now open the SMS_DEF.MOF file and paste the Following at the end of the file,
and save.
//============================================================
======
// Custom iAMT Data Reporting Definition used by the Inventory Agent
//============================================================
======
#pragma namespace("\\\\.\\root\\CIMV2\\SMS")
#pragma deleteclass("Intel_iAMT_SCAN_DATA", NOFAIL)
[SMS_Report(TRUE),
SMS_Group_Name("Intel iAMT Scan Data"),
SMS_Class_ID("Intel_iAMT_Scan_Data")]
class Intel_iAMT_SCAN_DATA : SMS_Class_Template
{
[SMS_Report(True)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(True)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
AMTMac;
AMTSetupStatus;
AMTVersion;
AssetTag;
BIOSVersion;
ChassisType;
Date;
DHCPServer;
DNSServerOrder;
FQDN;
DNS_FQDN;
Gateway;
HECIVersion;
MAC;
IPAddress;
LMSVersion;
Make;
Model;
ProvisionServerPing;
SerialNumber;
SubnetMask;
SystemName;
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
[SMS_Report(TRUE)]
};
string
string
string
string
UNSVersion;
SMSSiteCode;
SMSManagementServer;
UUID;