One feature of Windows PowerShell is that it gives you the ability treat various data stores as if they were file systems. An advantage of this approach is that you can use a relatively small set of built-in commands to manage your data stores. This is because only thing that changes from data store to data store is the path to individual items, while the commands to operate on the data remain the essentially the same. Another advantage is that you can start at root of the data store and navigate or explore the contents just like you would a file system. Building on this concept, the PowerShell Module for Intel® vPro™ allows you to treat Intel AMT as if it was a file system. This means you can manage all the hardware settings using just a few built-in PowerShell commands like Get-Item and Set-Item. Furthermore, you can navigate through the various firmware settings using built-in commands like Get-ChildItem and Set-Location.
There are two different types of drives supported by Intel’s module.
- The Heci drive
- The AmtSystem drive
The HECI drive lets you manage local AMT driver settings through the host. HECI stands for Host Embedded Controller Interface. This drive is exposes all settings available to the local host driver interface. The HECI drive is accessible even if AMT is not setup. You must be running as Admin in order to have the necessary permissions to access items in the HECI drive, and the Intel drivers must be installed as well. On the other hand, the AmtSystem drive exposes all the settings of a fully setup AMT system remotley. You can mount a new AmtSystem drive to a remote AMT system using the built in New-PSDrive cmtlet.
Before we demonstrate how to access these drives let’s take care of some of the module basics. First, you can download and install the module here. Next, make sure PowerShell scripting has been enabled by using the Get-ExecutionPolicy cmtlet. If the execution policy is “Restricted” then you will need to change it to something higher than Restricted such as Unnrestricted or AllSigned based on your security preferences.
Next, you will need to need to make sure Intel’s commands are available to PowerShell by using the Import-Module command.
Now that you have the Intel module installed, and PowerShell scripting is enabled, and the module’s commands have been imported into you PowerShell session, you are ready to access AMT drives.
Get the AMT version from the local host driver
List all version supported by the local host system
Note: If you have AMT 6.2 or above firmware you can setup AMT with a single command
Now let’s mount a new AmtSystem drive and access information using it. First, we will need the AMT credentials for mounting an AmtSystem drive. We did not need to do this for the HECI drive because running as admin on the local host system gave us permission. However, for remote access we will need to provide some credentials.
Get credentials for accessing AMT remotely.
>$myCreds = Get-Credential
Now mount the drive to a remote computer using the credentials
>New-PSDrive -Name amt -PSProvider AmtSystem -Root / -ComputerName amt1.vprodemo.com -Credential $myCreds
Lets see how long the firmware is configured to stay awake after the host has asleep
Let’s change amount of time the firmware stays awake after the host as fallen asleep.
>Set-Item amt:\config\etc\PowerPolicy\IdleWakeTimeout 65535
These are just a few examples on how to use a drive provider to manage firmware settings. You can a help for each drive provider as shown below.
With the Intel Module you can now write PowerShell scripts that conist of may Set-Item commands that configure the embedded system the way you want.