<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Intel vPro Expert Center Blog</title>
    <link>http://communities.intel.com/community/openportit/vproexpert/blog</link>
    <description>Intel vPro Expert Center Blog</description>
    <pubDate>Wed, 11 Nov 2009 21:03:38 GMT</pubDate>
    <generator>Clearspace 2.5.9 (http://jivesoftware.com/products/clearspace/)</generator>
    <dc:date>2009-11-11T21:03:38Z</dc:date>
    <item>
      <title>Finding AMT Objects in Active Directory</title>
      <link>http://communities.intel.com/community/openportit/vproexpert/blog/2009/11/11/finding-amt-objects-in-active-directory</link>
      <description>&lt;!-- [DocumentBodyStart:6d9283d8-04a2-4a87-bda4-eeaaef1488ee] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;&lt;span style="background-color: #f9fcf6;"&gt;If you are using Out Of Band (OOB) Management in Microsoft System Center Configuration Manager (SCCM) 2007 SP1 (or greater) to manage your Intel vPro clients, you may have noticed that computer objects are created in your Active Directory domain during provisioning of the Intel vPro firmware. These computer objects are created by the &lt;em&gt;amtproxymgr&lt;/em&gt; component of an OOB Service Point, and allow Intel vPro to communicate directory with Active Directory, regardless of the operating system state.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #f9fcf6;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #f9fcf6;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #f9fcf6;"&gt;Since these vPro computer objects appear very similar to standard computer objects that are created when joining a Windows OS to an AD domain, it may be hard to distinguish which ones are vPro accounts, and which ones aren't. This situation can be worsened if you somehow have Windows computer accounts mixed into the same OU that contains your AMT objects.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #f9fcf6;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #f9fcf6;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #f9fcf6;"&gt;As you'll see below, it's very easy to locate these computers using some simple PowerShell code:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier; color: #0000ff; font-size: 10pt;"&gt;$vprosearcher = [adsisearcher]"(&amp;amp;(objectclass=computer)(serviceprincipalname=*:16993*)(samaccounttype=805306368))"&lt;br/&gt;$vproaccounts = $vprosearcher.FindAll()&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #f9fcf6;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;These two lines of code simply create a &lt;em&gt;System.DirectoryServices.DirectorySearcher&lt;/em&gt; instance, with some LDAP search criteria to identify the accounts, and then assigns the results of this search to a PowerShell variable called &lt;span style="color: #800080; font-size: 10pt;"&gt;$vproaccounts&lt;/span&gt;. The default search root is the top-level of your Active Directory domain, and the default search scope is already set to SubTree, so you don't have to specifically configure these settings on the &lt;em&gt;DirectorySearcher&lt;/em&gt;. Once you're at this point, you can simply enumerate the accounts, or pipe the results into a PowerShell &lt;em&gt;ForEach&lt;/em&gt; loop, and perform some operation against them (for example, givem them a &lt;em&gt;Description&lt;/em&gt; attribute value).&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Because this code sample uses the "adsisearcher" &lt;a class="jive-link-external-small" href="http://blogs.msdn.com/powershell/archive/2006/07/12/type-shortcuts.aspx"&gt;type accelerator&lt;/a&gt; (aka. type shortcut), it will only work with &lt;a class="jive-link-external-small" href="http://blogs.msdn.com/powershell/archive/2009/10/27/windows-management-framework-is-here.aspx"&gt;PowerShell v2.0&lt;/a&gt; (included as part of the &lt;em&gt;Windows Management Framework&lt;/em&gt;), unless you modify PowerShell v1.0 to include it. There's almost no reason not to be using PowerShell 2.0, now that it has been officially released, however. &lt;img height="16px" src="http://communities.intel.com/images/emoticons/happy.gif" width="16px"/&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I recommend using the free &lt;a class="jive-link-external-small" href="http://www.powergui.org"&gt;Quest PowerGUI&lt;/a&gt; tool to develop and debug PowerShell scripts.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Cheers,&lt;/p&gt;&lt;p&gt;Trevor Sullivan&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:6d9283d8-04a2-4a87-bda4-eeaaef1488ee] --&gt;</description>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">intel</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">amt</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">management</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">sccm</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">configmgr</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">system</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">center</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">configuration</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">manager</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">2007</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">microsoft</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">powershell</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">automation</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">scripting</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">vpro</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">active</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">technology</category>
      <pubDate>Wed, 11 Nov 2009 21:03:38 GMT</pubDate>
      <author>pcgeek86@gmail.com</author>
      <guid>http://communities.intel.com/community/openportit/vproexpert/blog/2009/11/11/finding-amt-objects-in-active-directory</guid>
      <dc:date>2009-11-11T21:03:38Z</dc:date>
      <clearspace:dateToText>2 weeks, 3 days ago</clearspace:dateToText>
      <wfw:comment>http://communities.intel.com/community/openportit/vproexpert/blog/comment/finding-amt-objects-in-active-directory</wfw:comment>
      <wfw:commentRss>http://communities.intel.com/community/openportit/vproexpert/blog/feeds/comments?blogPost=12825</wfw:commentRss>
    </item>
    <item>
      <title>Intel AMT DTK: Synchronous Connections</title>
      <link>http://communities.intel.com/community/openportit/vproexpert/blog/2009/06/02/intel-amt-dtk-synchronous-connections</link>
      <description>&lt;!-- [DocumentBodyStart:6fd98e52-6e29-4a7a-977f-b4e8c9eb5397] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Hello vPro Experts,&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In case you've worked with any of the Powershell code samples I've previously posted, you've probably noticed that the &lt;span style="color: #008080;"&gt;&lt;em&gt;AmtSystem.Connect()&lt;/em&gt;&lt;/span&gt; method executes asynchronously, and returns immediately. In this case, you'd have to develop some sort of loop in order to determine whether or not the connection was successful. Typically, I would just use this code to prevent a script from continuing before the connection was established:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;&lt;span style="font-family: courier new, courier;"&gt;while ($amtdevice.State -eq "Connecting") { Start-Sleep 1 }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;But that's ugly, because, what happens if it never connects? Although it's nice to have the ability to asychronously connect to AMT devices, writing code and understanding the logic, to handle async processes is significantly more difficult than writing code that is synchronous. For this reason, we will look at how to modify and recompile the &lt;em&gt;ManageabilityStack&lt;/em&gt; .NET assembly in the Intel AMT Developer Toolkit (DTK) to allow synchronous connections to AMT from PowerShell code.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In order to perform the next steps, you'll need the following:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The &lt;a class="jive-link-external-small" href="http://software.intel.com/en-us/articles/download-the-latest-version-of-manageability-developer-tool-kit/"&gt;Intel AMT DTK source code&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="jive-link-external-small" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F3FBB04E-92C2-4701-B4BA-92E26E408569&amp;amp;displaylang=en"&gt;Microsoft Visual Studio 2008&lt;/a&gt; (the Express edition is &lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;fully functional and free&lt;/strong&gt;&lt;/span&gt;!)&lt;/li&gt;&lt;li&gt;Microsoft Windows &lt;a class="jive-link-external-small" href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx"&gt;PowerShell 1.0&lt;/a&gt; or &lt;a class="jive-link-external-small" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c913aeab-d7b4-4bb1-a958-ee6d7fe307bc"&gt;2.0 CTP3&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Once you've installed these components, continue on:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;ol start="1"&gt;&lt;li&gt;Download the Intel AMT DTK source code and extract to a folder&lt;/li&gt;&lt;li&gt;Navigate to &lt;span style="color: #008080;"&gt;&lt;em&gt;&amp;lt;Source&amp;gt;\Manageability Stack&lt;/em&gt;&lt;/span&gt; and open the &lt;em&gt;&lt;span style="color: #008080;"&gt;Manageability Stack.csproj&lt;/span&gt;&lt;/em&gt; file in Visual Studio 2008&lt;/li&gt;&lt;li&gt;Open the &lt;em&gt;AmtSystem.cs&lt;/em&gt; file in the Visual Studio Solution Explorer&lt;/li&gt;&lt;li&gt;Rename the &lt;em&gt;Connect()&lt;/em&gt; method to &lt;em&gt;ConnectAsync&lt;/em&gt;()&lt;/li&gt;&lt;li&gt;Copy the following code above the ConnectAsync() method:&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;public void Connect()&lt;br/&gt;{&lt;br/&gt;   if (State != AmtSystemObjState.Disconnected) return;&lt;br/&gt;   ChangeState(AmtSystemObjState.Connecting);&lt;br/&gt;   ConnectEx(this);&lt;br/&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li&gt;In the Visual Studio Solution Explorer, right-click the Manageability Stack project, and click Build&lt;/li&gt;&lt;li&gt;Go to your &lt;span style="color: #008080;"&gt;&lt;em&gt;&amp;lt;Source&amp;gt;\Manageability Stack\obj\Debug&lt;/em&gt;&lt;/span&gt; folder, and grab your new &lt;em&gt;&lt;span style="color: #008080;"&gt;ManageabilityStack.dll&lt;/span&gt;&lt;/em&gt; .NET assembly&lt;/li&gt;&lt;/ol&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Now that you have a recompiled &lt;em&gt;ManageabilityStack&lt;/em&gt; assembly, you can load this into PowerShell, and connect &lt;span style="text-decoration: underline;"&gt;synchronously&lt;/span&gt; using the &lt;em&gt;Connect&lt;/em&gt;() method! &lt;img height="16px" src="http://communities.intel.com/images/emoticons/happy.gif" width="16px"/&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;Update&lt;/span&gt;&lt;/strong&gt;: I attached the &lt;em&gt;AmtSystem.cs&lt;/em&gt; file to this blog post, if you're not comfortable modifying source code yourself! You'll still need to replace the file, open the project, and recompile the library though &lt;img height="16px" src="http://communities.intel.com/images/emoticons/happy.gif" width="16px"/&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Trevor Sullivan&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Systems Engineer&lt;/em&gt;&lt;/p&gt;&lt;p&gt;OfficeMax Corporation&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:6fd98e52-6e29-4a7a-977f-b4e8c9eb5397] --&gt;</description>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">programming</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">automation</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">vpro</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">administer</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">code</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">developer</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">visual</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">dtk</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">administration</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">amt</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">microsoft</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">studio</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">c#</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">coding</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">.net</category>
      <pubDate>Tue, 02 Jun 2009 20:17:27 GMT</pubDate>
      <author>pcgeek86@gmail.com</author>
      <guid>http://communities.intel.com/community/openportit/vproexpert/blog/2009/06/02/intel-amt-dtk-synchronous-connections</guid>
      <dc:date>2009-06-02T20:17:27Z</dc:date>
      <clearspace:dateToText>7 months, 2 weeks ago</clearspace:dateToText>
      <wfw:comment>http://communities.intel.com/community/openportit/vproexpert/blog/comment/intel-amt-dtk-synchronous-connections</wfw:comment>
      <wfw:commentRss>http://communities.intel.com/community/openportit/vproexpert/blog/feeds/comments?blogPost=12066</wfw:commentRss>
    </item>
    <item>
      <title>Powershell: Controlling AMT Power States</title>
      <link>http://communities.intel.com/community/openportit/vproexpert/blog/2009/04/19/powershell-controlling-amt-power-states</link>
      <description>&lt;!-- [DocumentBodyStart:dc093513-350e-4442-808c-44b9965d3af8] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;I wanted to quickly share an example of how to &lt;span style="text-decoration: underline;"&gt;set&lt;/span&gt; the current power state of a provisioned Intel vPro system using Windows Powershell!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Take a moment, and ask yourself these quick questions:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Have you ever wanted to be able to &lt;span style="text-decoration: underline;"&gt;automate&lt;/span&gt; the powering up, or powering off, of multiple computers?&lt;/li&gt;&lt;li&gt;Is your company interested in saving money by not needlessly leaving computers powered on at night?&lt;/li&gt;&lt;li&gt;Do you have a time-critical environment, such as a call center, where you need to &lt;span style="text-decoration: underline;"&gt;reliably&lt;/span&gt; power up your computers so they are ready to go in the morning for agents?&lt;/li&gt;&lt;li&gt;Do you want to be able to create your own helpdesk tools to enable &lt;span style="text-decoration: underline;"&gt;remote&lt;/span&gt; reset of hung systems?&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you answered "&lt;em&gt;yes&lt;/em&gt;" to any of the previous questions, then hopefully this Powershell code will help you, as an administrator, achieve your goals! Let's take a look at how to perform the actions of:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Powering up a vPro (AMT) system&lt;/li&gt;&lt;li&gt;Powering down a vPro (AMT) system (not gracefully, just FYI)&lt;/li&gt;&lt;li&gt;Power cycling a vPro (AMT) system (also not graceful)&lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;For the sake of simplicity, we'll continue to work with the &lt;span style="color: #008080;"&gt;ManageabilityStack.AmtSystem&lt;/span&gt; object that I have referenced in my previous article(s). If you aren't sure how to get the &lt;span style="color: #008080;"&gt;$Global:Amtdevice&lt;/span&gt; Powershell variable, please look back at &lt;a class="jive-link-blog-small" href="http://communities.intel.com/community/openportit/vproexpert/blog/2008/12/03/stepping-through-vpro-powershell-code"&gt;my other articles&lt;/a&gt;. This will also require the download of the &lt;a class="jive-link-external-small" href="http://www.intel.com/software/amt-dtk/"&gt;Intel AMT Developer Toolkit&lt;/a&gt;. You'll need the &lt;span style="color: #008080;"&gt;&lt;em&gt;Manageability Stack.dll&lt;/em&gt;&lt;/span&gt; library contained within.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;-------------------&lt;/p&gt;&lt;p&gt;In order to control the remote power state of an AMT system, all you really need to know are these 3 hex values:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #008080;"&gt;0x10&lt;/span&gt;&lt;/strong&gt; = System reset&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #008080;"&gt;0x11&lt;/span&gt;&lt;/strong&gt; = Power on&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #008080;"&gt;0x12&lt;/span&gt;&lt;/strong&gt; = Power off&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;&lt;strong&gt;0x13&lt;/strong&gt;&lt;/span&gt; = Reset w/ power cycle&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;These hex values will be used with the &lt;span style="color: #008080;"&gt;$AmtSystem.Remote.SendRemoteControl()&lt;/span&gt; method to alter the power state of the remote system. The &lt;span style="color: #008080;"&gt;SendRemoteControl()&lt;/span&gt; method included with the DTK includes a number of parameters that go beyond the scope of this article, so we will pass hex value 0x0 to these parameters for the time being. In order to use the above hex values, simply pass the hex value as the first parameter of the &lt;span style="color: #008080;"&gt;SendRemoteControl()&lt;/span&gt; method. In order to fulfill the parameter requirements of this method, pass 5 additional parameters with the value &lt;span style="color: #008080;"&gt;0x0&lt;/span&gt;. Here are some examples:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-size: 12pt;"&gt;&lt;strong&gt;Powering up an AMT System&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier; color: #000080;"&gt;$Result = $AmtDevice.Remote.SendRemoteControl(0x11, 0x0, 0x0, 0x0, 0x0, 0x0)&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier; color: #000080;"&gt;Write-Host "Power command resulted with: ${Result}"&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-size: 12pt;"&gt;Powering off an AMT System&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier; color: #000080;"&gt;$Result = $AmtDevice.Remote.SendRemoteControl(0x12, 0x0, 0x0, 0x0, 0x0, 0x0)&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier; color: #000080;"&gt;Write-Host "Power command resulted with: ${Result}"&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;Power cycling an AMT System&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier; color: #000080;"&gt;$Result = $AmtDevice.Remote.SendRemoteControl(0x10, 0x0, 0x0, 0x0, 0x0, 0x0)&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier; color: #000080;"&gt;Write-Host "Power command resulted with: ${Result}"&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The above samples show how to use the &lt;span style="color: #008080;"&gt;SendRemoteControl()&lt;/span&gt; method of the &lt;span style="color: #008080;"&gt;AmtRemoteControl&lt;/span&gt; .NET type in the Intel AMT Developer Toolkit (DTK) to control the power state of a remote AMT device.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you have any questions about this, please leave a comment or send me a private message.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Sincerely,&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Trevor Sullivan&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Systems Engineer&lt;/em&gt;&lt;/p&gt;&lt;p&gt;OfficeMax Corporation&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:dc093513-350e-4442-808c-44b9965d3af8] --&gt;</description>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">customize</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">vpro</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">roi</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">administrator</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">manageability</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">trevor</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">sullivan</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">script</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">automate</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">automation</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">developer</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">intel</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">amt</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">dtk</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">sdk</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">microsoft</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">windows</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">powershell</category>
      <pubDate>Sun, 19 Apr 2009 16:25:53 GMT</pubDate>
      <author>pcgeek86@gmail.com</author>
      <guid>http://communities.intel.com/community/openportit/vproexpert/blog/2009/04/19/powershell-controlling-amt-power-states</guid>
      <dc:date>2009-04-19T16:25:53Z</dc:date>
      <clearspace:dateToText>11 months, 1 week ago</clearspace:dateToText>
      <clearspace:replyCount>2</clearspace:replyCount>
      <wfw:comment>http://communities.intel.com/community/openportit/vproexpert/blog/comment/powershell-controlling-amt-power-states</wfw:comment>
      <wfw:commentRss>http://communities.intel.com/community/openportit/vproexpert/blog/feeds/comments?blogPost=11787</wfw:commentRss>
    </item>
    <item>
      <title>Powershell: Exploring the Management Engine</title>
      <link>http://communities.intel.com/community/openportit/vproexpert/blog/2009/02/24/powershell-exploring-the-management-engine</link>
      <description>&lt;!-- [DocumentBodyStart:bab17253-949b-4615-8a90-2ec3d26fff64] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Hello vPro Experts! &lt;img height="16px" src="http://communities.intel.com/images/emoticons/happy.gif" width="16px"/&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I would like to take some time to touch on exploration of the management engine via the local interface (specifically the HECI driver). In order to follow the exercise here, you'll need to have &lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Windows_PowerShell"&gt;Windows Powershell&lt;/a&gt; installed, have the &lt;a class="jive-link-external-small" href="http://www.intel.com/software/amt-dtk/"&gt;Intel AMT Developer Toolkit&lt;/a&gt; downloaded and installed, and have an AMT client (&lt;em&gt;does not need to be provisioned&lt;/em&gt;) with the HECI driver installed. The HECI driver should be downloadable from your OEM.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;To give you a high-level idea of the program flow we'll use to access the AMT device, consider the following:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Load the "&lt;span style="color: #666699;"&gt;Manageability Stack.dll&lt;/span&gt;" .NET library&lt;/li&gt;&lt;li&gt;Create an instance of the &lt;span style="color: #666699;"&gt;ManageabilityStack.HeciWrapper&lt;/span&gt; object&lt;/li&gt;&lt;li&gt;Reference the properties and methods of the &lt;span style="color: #666699;"&gt;HeciWrapper&lt;/span&gt; object, and the &lt;span style="color: #666699;"&gt;HeciMeInfo&lt;/span&gt; object (provided by the &lt;span style="color: #666699;"&gt;HeciWrapper.MeInfo&lt;/span&gt; property)&lt;/li&gt;&lt;/ol&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Here is the Powershell code that correlates to the above process:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;Loading the .NET Library&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #339966;"&gt;# Load the Manageability Stack .NET library&lt;/span&gt;&lt;/p&gt;&lt;p&gt;$AmtLib = "C:\Program Files\Intel\Manageability Developer Tool Kit\Manageability Stack.dll"&lt;br/&gt;[System.Reflection.Assembly]::LoadFile($AmtLib)&lt;br/&gt;&lt;span style="color: #339966;"&gt;# Create a HeciWrapper object&lt;/span&gt;&lt;/p&gt;&lt;p&gt;$Heci = New-Object ManageabilityStack.HeciWrapper&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #339966;"&gt;# Pipe the $Heci variable into the Get-Member cmdlet to determine what properties&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #339966;"&gt;# and methods are available to us.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;$Heci | Get-Member&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;Obtaining a list of embedded certificate hashes&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #339966;"&gt;# List embedded certificate hashes&lt;/span&gt;&lt;br/&gt;$Heci.MeInfo.EnumerateHashHandles()&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;Getting the BIOS and AMT Versions&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #339966;"&gt;# Retrieve the AMT version&lt;/span&gt;&lt;br/&gt;Write-Host "AMT version: $($Heci.Versions.Versions["AMT"])"&lt;br/&gt;&lt;span style="color: #339966;"&gt;# Retrieve the BIOS version&lt;/span&gt;&lt;br/&gt;Write-Host "BIOS version: $($Heci.Versions.BiosVersion)"&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;Retrieving Provisioning Information&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #339966;"&gt;# Retrieve the provisioning server name&lt;/span&gt;&lt;br/&gt;Write-Host "Provisioning server: $($Heci.MeInfo.GetAuditRecord().ProvServerFQDN)"&lt;br/&gt;&lt;span style="color: #339966;"&gt;# Determine provisioning date&lt;br/&gt;# This will return "01/01/0001 00:00:00" if not provisioned&lt;/span&gt;&lt;br/&gt;Write-Host "Provision date: $($Heci.MeInfo.GetAuditRecord().TlsStartTime)"&lt;br/&gt;&lt;span style="color: #339966;"&gt;# Get provisioning mode (Enterprise, SMB, etc.)&lt;/span&gt;&lt;br/&gt;Write-Host "Provision mode: $($Heci.MeInfo.GetProvisioningMode().ProvisioningMode)"&lt;br/&gt;&lt;span style="color: #339966;"&gt;# Get provisioning state&lt;/span&gt;&lt;br/&gt;Write-Host "Provision state: $($Heci.MeInfo.GetProvisioningState())"&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;-----------------------------------&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I hope these code samples are able to help you out in your administration / engineering endeavors! Please let me know if you have any questions, and don't forget that in Powershell .... when in doubt .... use &lt;span style="color: #808080;"&gt;Get-Member&lt;/span&gt; to discover what information is available to you!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Trevor Sullivan&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Systems Engineer&lt;/em&gt;&lt;/p&gt;&lt;p&gt;OfficeMax Corporation&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:bab17253-949b-4615-8a90-2ec3d26fff64] --&gt;</description>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">vpro</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">engineer</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">troubleshoot</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">automate</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">deploy</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">microsoft</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">amt</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">administration</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">sullivan</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">tools</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">powershell</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">script</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">intel</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">automation</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">trevor</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">manage</category>
      <pubDate>Wed, 25 Feb 2009 04:26:00 GMT</pubDate>
      <author>pcgeek86@gmail.com</author>
      <guid>http://communities.intel.com/community/openportit/vproexpert/blog/2009/02/24/powershell-exploring-the-management-engine</guid>
      <dc:date>2009-02-25T04:26:00Z</dc:date>
      <clearspace:dateToText>9 months, 6 days ago</clearspace:dateToText>
      <clearspace:replyCount>3</clearspace:replyCount>
      <wfw:comment>http://communities.intel.com/community/openportit/vproexpert/blog/comment/powershell-exploring-the-management-engine</wfw:comment>
      <wfw:commentRss>http://communities.intel.com/community/openportit/vproexpert/blog/feeds/comments?blogPost=11923</wfw:commentRss>
    </item>
    <item>
      <title>Fully Automated Enterprise Client Builds :: Toying with ideas ...</title>
      <link>http://communities.intel.com/community/openportit/vproexpert/blog/2008/12/16/fully-automated-enterprise-client-builds-toying-with-ideas</link>
      <description>&lt;!-- [DocumentBodyStart:a55b3197-6137-47c4-a415-4fb9b25c2700] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;     &lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;Hello vPro Experts!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;I've got something sitting in the back of my mind, that I would like to share with you all. Unfortunately, it's simply a theory, and I have not yet had the opportunity to test it, but I am in the early stages of developing and documenting it, and would really appreciate any feedback, to help make it become a reality.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;----&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;span style="text-decoration: underline;"&gt;The Problem&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;Are you asking yourself either of these questions?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;"&lt;em&gt;How can I reduce the amount of overhead involved with imaging every new client system that comes through the doors, but at the same time, not shift that cost to the vendor?&lt;/em&gt;"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;or, slightly paraphrased:&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;"&lt;em&gt;How can I streamline the provisioning of new systems, but at the same time, not sacrifice the flexibility of having in-house imaging?&lt;/em&gt;"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;If your support teams are imaging each desktop and laptop that is shipped from your hardware vendor, you may have investigated the option of having the vendor pre-image systems prior to shipping them out. There are a couple of caveats to this methodology though. First of all, there is usually an additional cost associated with any sort of customization that the vendor must make to a system. Secondly, if you are using a task sequence-based "imaging" process in-house, then you may not have a way of transferring that process (which is inherently network-reliant), to the vendor. Typically, in this scenario, your operating systems, applications, and Active Directory domain, are all residing on network servers that can't be contacted by the vendor during the process (&lt;em&gt;unless you have some uber-fast, secure VPN link between you and them, in which case you can stop reading&lt;/em&gt;).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;----&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;span style="text-decoration: underline;"&gt;The Theoretical Solution (utilizing Intel vPro)&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;The proposed solution to the problem presented above, is actually a combination of technologies, and custom development work. In this case, I'm going to be working with the following tools:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;a class="jive-link-external-small" href="http://technet.microsoft.com/en-us/configmgr/default.aspx"&gt;Microsoft Configuration Manager&lt;/a&gt; SP1 / R2 (R2 for unknown computer OSD support)&lt;br/&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva;"&gt;Intel vPro / AMT Clients 3.2.1 and greater (4.0, 5.0)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva;"&gt;Microsoft &lt;a class="jive-link-external-small" href="http://msdn.microsoft.com/en-us/library/t0aew7h6.aspx"&gt;VBscript &lt;/a&gt;and/or &lt;a class="jive-link-external-small" href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx"&gt;Windows Powershell&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;a class="jive-link-external-small" href="http://msdn.microsoft.com/en-us/library/aa394582.aspx"&gt;Microsoft Windows Management Instrumentation&lt;/a&gt; (WMI)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;a class="jive-link-external-small" href="http://www.intel.com/software/amt-dtk/"&gt;Intel AMT Developer Toolkit&lt;/a&gt; (DTK)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-family: verdana,geneva; color: #4f81bd;"&gt;Requirements&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;Here are the requirements for the process:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;Microsoft Configuration Manager SP1&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;An Out-of-Band (OOB) service point for ConfigMgr SP1&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;“&lt;em&gt;ProvisionServer&lt;/em&gt;” DNS record pointing to out-of-band service point&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;Collection 1&lt;/em&gt;: SCCM collection to temporarily store resource records created by script&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;Collection 2&lt;/em&gt;: SCCM collection that contains provisioned vPro clients &lt;em&gt;without&lt;/em&gt; the ConfigMgr client agent&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;ConfigMgr Task Sequence to build vPro system&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;ConfigMgr advertisement to link task sequence to &lt;em&gt;Collection 2&lt;/em&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-family: verdana,geneva; color: #4f81bd;"&gt;Step-by-Step Workflow&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;This is the theoretical process that would be followed:&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Physically plug in vPro system – power and network (&lt;em&gt;device remains powered off&lt;/em&gt;)&lt;br/&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt; &lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;vPro System obtains IP address and DHCP Option 15 (&lt;em&gt;mydomain.com&lt;/em&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;vPro System sends “&lt;em&gt;hello packet&lt;/em&gt;” to site server (CNAME &lt;em&gt;provisionserver.mydomain.com&lt;/em&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Script reads vPro system’s UUID from &lt;em&gt;amtopmgr.log&lt;/em&gt; file on site server&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Script creates Resource Record for system in “&lt;em&gt;Collection 1&lt;/em&gt;” with auto-provisioning enabled&lt;/span&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Use a random name for the hostname (based off of the SMBIOS UUID perhaps)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;Make sure to refresh the collection membership, or verify that it gets added somehow&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;v&lt;/span&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Pro System sends another hello packet to site server at built-in interval&lt;/span&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;vPro System is recognized as a SCCM resource and provisions&lt;/span&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Provisioned vPro resource is automatically populated into SCCM “&lt;em&gt;Collection 2&lt;/em&gt;”&lt;/span&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Task sequence begins executing&lt;/span&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Once the operating system is installed, the device should detect a mismatching hostname between the OS and the ME firmware (this could be configured as part of the task sequence)&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;The device will send a request to the ConfigMgr site server to re-provision the AMT firmware with the new hostname (equivalent of "&lt;em&gt;Update Provisioning Data&lt;/em&gt;"?)&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva; font-size: 10pt;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;/p&gt;&lt;p&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-family: verdana,geneva; color: #4f81bd;"&gt;&lt;a class="jive-link-anchor-small" name="_Toc217093702"&gt;Known Issues and Risks&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;There is at least one known outstanding issue that I'm aware of, and there may be a way to solve it.&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style="font-family: verdana,geneva; color: #4f81bd;"&gt;Possibility of over-writing an existing system&lt;/span&gt;&lt;/h3&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;span style="font-size: 10pt;"&gt;If an existing, un-provisioned system is not reporting into Configuration Manager properly, it may be incorrectly assumed to be a new, blank system. Therefore, during the build (or imaging) process, an automated check may need to be put into place to verify whether or not the system is truly a new client or not. This could theoretically be done by analyzing the filesystem, or mounting the offline registry hives, and looking for any indicators. Additionally, if a vPro device was already provisioned, it would need to be excluded from being targeted with this process.&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;----&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-family: verdana,geneva; color: #4f81bd;"&gt;Conclusion&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;I hope that this overview gives you some ideas about how to automate the provisioning of new enterprise clients using Intel vPro out-of-band provisioning. If you have any suggestions for improvement, I'd be interested in hearing them. If you'd like, you can download a copy of this document below.&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;Thanks,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva; color: #999999;"&gt;&lt;strong&gt;Trevor Sullivan&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva; color: #999999;"&gt;&lt;em&gt;Systems Engineer&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: verdana,geneva; color: #999999;"&gt;OfficeMax Corporation&lt;/span&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;span style="font-family: verdana,geneva;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;!----&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a55b3197-6137-47c4-a415-4fb9b25c2700] --&gt;</description>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">sccm</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">configuration</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">manager</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">engineering</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">roi</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">5.0</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">sccm_sp1</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">automation</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">tools</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">configmgr</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">deploy</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">vista</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">vpro</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">amt</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">trevor</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">provision</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">3.2.1</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">install</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">windows</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">4.0</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">dtk</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">xp</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">sullivan</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">automated</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">microsoft</category>
      <pubDate>Tue, 16 Dec 2008 15:25:09 GMT</pubDate>
      <author>pcgeek86@gmail.com</author>
      <guid>http://communities.intel.com/community/openportit/vproexpert/blog/2008/12/16/fully-automated-enterprise-client-builds-toying-with-ideas</guid>
      <dc:date>2008-12-16T15:25:09Z</dc:date>
      <clearspace:dateToText>11 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:replyCount>2</clearspace:replyCount>
      <wfw:comment>http://communities.intel.com/community/openportit/vproexpert/blog/comment/fully-automated-enterprise-client-builds-toying-with-ideas</wfw:comment>
      <wfw:commentRss>http://communities.intel.com/community/openportit/vproexpert/blog/feeds/comments?blogPost=11766</wfw:commentRss>
    </item>
    <item>
      <title>Setting Power Policies in Windows Powershell</title>
      <link>http://communities.intel.com/community/openportit/vproexpert/blog/2008/12/08/setting-power-policies-in-windows-powershell</link>
      <description>&lt;!-- [DocumentBodyStart:5d86cd01-1c79-48f8-a52b-ad085c940c3c] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Hello Intel vPro Community!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I'm going to talk to you today a little bit about how to use Windows Powershell to set Intel vPro power profiles. I'll provide a quick bit of background first on what power profiles are, and &lt;strong&gt;why&lt;/strong&gt; you'd want to be able to set them with Powershell.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Intel vPro power profiles are nothing more than a setting in the Management Engine that tells the AMT chip when to be powered up, and when not to be powered up. In some cases, you may want vPro to be inactive during sleep states, or after the computer has lost power (eg. UPS failure).&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In my case however, I want vPro to be always active. This is problematic, because Microsoft Configuration Manager's implementation of a provisioning server doesn't give you the option of setting the active power profile. Instead, during provisioning, ConfigMgr sets the active profile to whatever index "5" is. You'll actually see this in the &lt;em&gt;amtopmgr.log&lt;/em&gt; file on your OOB (Out-Of-Band) service point during the provisioning process.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Because ConfigMgr decides the default power profile during provisioning, I've decided that I wanted to change it. Because Windows Powershell is an &lt;em&gt;awesome&lt;/em&gt; automation tool, and because Intel's AMT Developer Toolkit (DTK) offers a .NET library that I can use in Powershell, I figured that I would figure out how to do it!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;--------------------&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;You might remember my last post on how to use Powershell to connect to an AMT device. The process basically involves loading the aforementioned .NET DLL from the DTK, and then establishing a connection to the device. I didn't really get the opportunity to show you how to do a whole lot with it after making the connection though, so that's the purpose of this post! Let's go ahead and take a look at a few lines of Powershell code, so you can understand the retrieval, and setting of power profiles.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;-------------------------------------------------&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# In my last Powershell script, I used the $amtdevice variable&lt;/p&gt;&lt;p&gt;# to reference the &lt;em&gt;AmtSystem&lt;/em&gt; .NET object. We'll assume at this point&lt;/p&gt;&lt;p&gt;# that you have already connected to the AMT device based&lt;/p&gt;&lt;p&gt;# on my last article.&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;$amtdevice&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# By using the .NET Reflector tool, we can see that the &lt;em&gt;AmtSystem&lt;/em&gt;&lt;/p&gt;&lt;p&gt;# object has a property called &lt;em&gt;SecurityAdmin&lt;/em&gt;, which returns an &lt;em&gt;AmtSecurityAdmin&lt;/em&gt;&lt;/p&gt;&lt;p&gt;# object.&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;$AmtSecAdmin = $AmtDevice.SecurityAdmin&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# The &lt;em&gt;AmtSecurityAdmin&lt;/em&gt; object has a method called &lt;em&gt;GetPowerPackages&lt;/em&gt;().&lt;/p&gt;&lt;p&gt;# After examining this data type in .NET Reflector, we can filter for only the two&lt;/p&gt;&lt;p&gt;# properties we want to see, the profile &lt;em&gt;ID&lt;/em&gt;, and its &lt;em&gt;Name&lt;/em&gt;. We'll use the Powershell&lt;/p&gt;&lt;p&gt;# &lt;em&gt;Select-Object&lt;/em&gt; cmdlet to filter this data.&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;$AmtSecAdmin.GetPowerPackages() | Select-Object -Property ID,Name&lt;/span&gt;&lt;/p&gt;&lt;p&gt;# You should get some output looking something like this:&lt;/p&gt;&lt;p&gt;# 12834f94-10fb-dc4f-968e-1e232b0c9065         Desktop: ON in S0&lt;br/&gt;# ab0086a1-7f9a-424c-a6e6-bb243a295d9e         Desktop: ON in S0, S3&lt;br/&gt;# acab8672-b496-e248-9b9e-9b7df91c7fd4         Desktop: ON in S0, S3, S4-5&lt;br/&gt;# 4dcd327b-be6b-8943-a62a-4d7bd8dbd026         Desktop: ON in S0, ME Wake in S3&lt;br/&gt;# 46732273-dc23-2f43-a98a-13d37982d855         Desktop: ON in S0, ME Wake in S3, S4-5&lt;br/&gt;# baa419c5-6f6e-4d8d-b227-517f7e4595db         Desktop: ON in S0, S3, S4-5, OFF After Power Loss&lt;br/&gt;# ede30bd6-c504-462c-b772-d18018ee2fc4         Desktop: ON in S0, ME Wake in S3, S4-5, Off After Power Loss&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# Once we have a listing of the power profiles available on the AMT device&lt;/p&gt;&lt;p&gt;# we can get the one that we want, and then set it. Since I always want my&lt;/p&gt;&lt;p&gt;# AMT device active, no matter the system's power state, I'm going to choose&lt;/p&gt;&lt;p&gt;# "&lt;em&gt;Desktop: ON in S0, S3, S4-5&lt;/em&gt;" which is index 2 (in a zero-based collection).&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;$TargetPowerProfile = ($AmtSecAdmin.GetPowerPackages())[2]&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# Now that I have a variable referencing the target power profile, I will set the&lt;/p&gt;&lt;p&gt;# profile on the AMT device. The AmtSecurityAdmin object has a method called&lt;/p&gt;&lt;p&gt;# &lt;em&gt;SetActivePowerPackage&lt;/em&gt;() that takes one parameter: the power profile we have&lt;/p&gt;&lt;p&gt;# a reference to.&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;$AmtResult = $AmtSecAdmin.SetActivePowerPackage($TargetPowerProfile)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;"Setting power profile to $($TargetPowerProfile.Name) resulted in $AmtResult!"&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;##### End Setting Power Profile #####&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# Let's also take a quick look at how to get some basic information about&lt;/p&gt;&lt;p&gt;# the AMT device's provisioning data. We can figure out if IDE-R, SoL, and the&lt;/p&gt;&lt;p&gt;# WebUI are enabled. We'll use the &lt;em&gt;AmtGeneralInfo&lt;/em&gt; object for this.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# Get a reference to the &lt;em&gt;AmtGeneralInfo&lt;/em&gt; object&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;$AmtInfo = $amtdevice.Info&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# Write out the current configuration settings&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;"SOL Enabled: $AmtInfo.SerialOverLanEnabled"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;"IDE-R Enabled: $AmtInfo.IdeRedirectEnabled"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;"WebUI Enabled: $AmtInfo.WebUiEnabled"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;-------------------------------------------------&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I hope this helps get you on your way to doing some cool Powershell / vPro automation! Let me know whether or not this helps you in your endeavors &lt;img height="16px" src="http://communities.intel.com/images/emoticons/happy.gif" width="16px"/&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Trevor Sullivan&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Systems Engineer&lt;/em&gt;&lt;/p&gt;&lt;p&gt;OfficeMax Corporation&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:5d86cd01-1c79-48f8-a52b-ad085c940c3c] --&gt;</description>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">configmgr</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">microsoft</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">system</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">center</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">saver</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">configuration</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">standardize</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">trevor</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">manager</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">sullivan</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">2007</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">powershell</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">amt</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">deploy</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">administrate</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">automate</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">sccm</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">sccm_sp1</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">administer</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">manage</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">windows</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">automation</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">scripting</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">time</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">vpro</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">tools</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">dtk</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">intel</category>
      <pubDate>Tue, 09 Dec 2008 02:03:20 GMT</pubDate>
      <author>pcgeek86@gmail.com</author>
      <guid>http://communities.intel.com/community/openportit/vproexpert/blog/2008/12/08/setting-power-policies-in-windows-powershell</guid>
      <dc:date>2008-12-09T02:03:20Z</dc:date>
      <clearspace:dateToText>11 months, 3 weeks ago</clearspace:dateToText>
      <wfw:comment>http://communities.intel.com/community/openportit/vproexpert/blog/comment/setting-power-policies-in-windows-powershell</wfw:comment>
      <wfw:commentRss>http://communities.intel.com/community/openportit/vproexpert/blog/feeds/comments?blogPost=11748</wfw:commentRss>
    </item>
    <item>
      <title>Stepping through vPro / Powershell code</title>
      <link>http://communities.intel.com/community/openportit/vproexpert/blog/2008/12/03/stepping-through-vpro-powershell-code</link>
      <description>&lt;!-- [DocumentBodyStart:6135e8a2-4fa7-4f74-a835-f5693fbb975c] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Hello vPro community!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I rather quickly posted the Powershell code I got functioning yesterday just to make sure that I didn't forget to post it at some point, but if you're new to Powershell, you might not understand everything that's going on here. If I left your head spinning, then I apologize, but tonight, I'm wrapping back around to help describe to you the thought process behind the script I posted! &lt;img height="16px" src="http://communities.intel.com/images/emoticons/happy.gif" width="16px"/&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;On top of that, once I put together some notes from earlier today, I will post later on about some of my newest findings! To give you a teaser, I found a method of setting AMT power profiles using Powershell code! I'll be sure to get this posted as soon as I can, but for now, I think it would be most beneficial to understand the basics of connecting to a vPro system.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I'm going to step through the script line-by-line and leave some comments about each of them. Comments will be denoted by lines beginning with a pound sign (#). This is because Powershell uses this character as a "comment" character.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you're experienced with .NET, then you'll probably either already know about, or want to get familiar with, the tool known as the &lt;a class="jive-link-external-small" href="http://www.red-gate.com/products/reflector/"&gt;.NET Reflector&lt;/a&gt;. This utility allows you to "reflect" over a .NET library, and discover the objects, methods, and properties that are available to you to use in your Powershell scripts. It's not always a simple task to figure out how to use .NET objects, especially if there is either poor documentation, or none at all, but this tool definitely makes it easier.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;----------------------------------&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# The following 6 lines are simply variables that we are setting&lt;/p&gt;&lt;p&gt;# to make troubleshooting and customizing our script easier.&lt;/p&gt;&lt;p&gt;# We will be instantiating (creating) an object of the data type&lt;/p&gt;&lt;p&gt;# "AmtSystem" that requires these values as params to its&lt;/p&gt;&lt;p&gt;# constructor method.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# This is the domain\userID we want to authenticate as&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;$amtusername = "vprodemo\DomainUser"&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# This is the password for the user account to authenticate&lt;br/&gt;&lt;span style="color: #008080;"&gt;$amtpassword = "P@SSW0Rd"&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# This is the FQDN of the vPro client system we want to connect to&lt;br/&gt;&lt;span style="color: #008080;"&gt;$amthostname = "vproclient.vprodemo.com"&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# This is the TCP port that we want to connect to the vPro client on&lt;/p&gt;&lt;p&gt;# TCP 16993 is used for TLS communications to AMT clients&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;$amtport = 16993&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# This parameter determines whether or not your password is&lt;/p&gt;&lt;p&gt;# saved in the AmtSystem object (I think)&lt;br/&gt;&lt;span style="color: #008080;"&gt;$amtrecallpassword = $false&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# I haven't verified this, but I believe that this parameter determines&lt;/p&gt;&lt;p&gt;# whether or not WS-MAN is used exclusively on vPro clients&lt;/p&gt;&lt;p&gt;# that support it. Otherwise, it will attempt to use EOI (SOAP).&lt;br/&gt;&lt;span style="color: #008080;"&gt;$amtwebservicesonly = $false&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# Next, this variable stores the path to the "Manageability Stack.dll"&lt;/p&gt;&lt;p&gt;# which is included with the Intel AMT Developer Toolkit (DTK).&lt;/p&gt;&lt;p&gt;# Be sure to download the latest version from the &lt;a class="jive-link-external-small" href="http://www.intel.com/software/amt-dtk/"&gt;Intel website&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;# This DLL is a .NET library, written in C#, that provides an API&lt;/p&gt;&lt;p&gt;# to interact with Intel vPro clients.&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;$manageabilitystack = "C:\Program Files\Intel\Manageability Developer Tool Kit\0.6.08325.2\Manageability Stack.dll"&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# This line uses the built-in Assembly class (part of .NET reflection)&lt;/p&gt;&lt;p&gt;# to load the .NET DLL containing the AMT API. The Out-Null Powershell&lt;/p&gt;&lt;p&gt;# cmdlet is used to suppress any console output of the LoadFile() method.&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;[System.Reflection.Assembly]::LoadFile("$ManageabilityStack") | Out-Null&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# The Write-Host cmdlet is built into Powershell and simply writes&lt;/p&gt;&lt;p&gt;# some text to the console. We are using inline variables to dynamically&lt;/p&gt;&lt;p&gt;# display the information about the client we're connecting to.&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;Write-Host "Connecting to $amthostname on port $amtport"&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# This is the line that's actually getting the object that we will use to&lt;/p&gt;&lt;p&gt;# reference our target Intel AMT client. We are creating a global variable&lt;/p&gt;&lt;p&gt;# name "amtdevice" and setting its value to a "New-Object" of datatype&lt;/p&gt;&lt;p&gt;# ManageabilityStack.AmtSystem (you can use .NET Reflector to find this)&lt;/p&gt;&lt;p&gt;# and then passing the parameters that we defined before to its constructor.&lt;/p&gt;&lt;p&gt;# &lt;strong&gt;If the below line wraps in your browser, please be sure to put it all on one line in your script.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;$global:amtdevice = New-Object ManageabilityStack.AmtSystem -ArgumentList $amthostname,$amtport,$amtusername,$amtpassword,$amtrecallpassword,$amtwebservicesonly&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# &lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;Footnote&lt;/span&gt;&lt;/strong&gt;: With respect to variable scope in Powershell, the reason I am&lt;/p&gt;&lt;p&gt;# defining this as a global variable explicitly, is because if you copy and paste&lt;/p&gt;&lt;p&gt;# this code into a script, and then run that script from within an interactive&lt;/p&gt;&lt;p&gt;# Powershell session, the $amtdevice will now be defined as global to the session&lt;/p&gt;&lt;p&gt;# and will not be deleted when the script exits. This allows you to run the script to&lt;/p&gt;&lt;p&gt;# retrieve the device object, but then continue to work with it interactively once&lt;/p&gt;&lt;p&gt;# the connection is established!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# Tell the AmtSystem object that we want to use TLS&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;$amtdevice.UseTls = $true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;# Enable WS-MAN support (if available) on the connection&lt;br/&gt;&lt;span style="color: #008080;"&gt;$amtdevice.WsManSupport = $true&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# Once we've set up all of our configuration options about the connection,&lt;/p&gt;&lt;p&gt;# this next line actually establishes the connection.&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;$amtdevice.Connect()&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# The "State" property of the AmtSystem object is "Connecting" until the&lt;/p&gt;&lt;p&gt;# connection either succeeds or fails. We want to monitor the status until&lt;/p&gt;&lt;p&gt;# this occurs.&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;while ($amtdevice.State -eq "Connecting") { Start-Sleep 1 }&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;# Finally, once the connection either succeeds or fails, we write out the&lt;/p&gt;&lt;p&gt;# State property to the console so that we know what the outcome was.&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008080;"&gt;Write-Host "AMT device is in state $($amtdevice.State.ToString())"&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;-----------------------------------&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;So, there you have it. That is the code, with my comments inline. If you have any questions or feedback on my articles, please feel free to comment on this blog article. I will try my best to answer them, although please understand that I am still working on comprehending this great API! &lt;img height="16px" src="http://communities.intel.com/images/emoticons/happy.gif" width="16px"/&gt; If this is useful to any of you, I would like to know that, and if not, then please recommend something that you would like to hear about!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;As promised, I will eventually write another follow-up article on how you can set Management Engine (ME) &lt;span style="text-decoration: underline;"&gt;power profiles&lt;/span&gt; on a provisioned AMT client remotely, using Powershell! Until next time ...&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Happy Powershell Scripting!!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #999999;"&gt;&lt;strong&gt;Trevor Sullivan&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #999999;"&gt;&lt;em&gt;Systems Engineer&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #999999;"&gt;OfficeMax Corporation&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:6135e8a2-4fa7-4f74-a835-f5693fbb975c] --&gt;</description>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">microsoft</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">windows</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">powershell</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">1.0</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">trevor</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">sullivan</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">intel</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">vpro</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">amt</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">firmware</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">automation</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">automate</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">script</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">administrate</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">administrative</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">deployment</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">configure</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">manage</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">standardize</category>
      <pubDate>Thu, 04 Dec 2008 01:21:45 GMT</pubDate>
      <author>pcgeek86@gmail.com</author>
      <guid>http://communities.intel.com/community/openportit/vproexpert/blog/2008/12/03/stepping-through-vpro-powershell-code</guid>
      <dc:date>2008-12-04T01:21:45Z</dc:date>
      <clearspace:dateToText>11 months, 4 weeks ago</clearspace:dateToText>
      <wfw:comment>http://communities.intel.com/community/openportit/vproexpert/blog/comment/stepping-through-vpro-powershell-code</wfw:comment>
      <wfw:commentRss>http://communities.intel.com/community/openportit/vproexpert/blog/feeds/comments?blogPost=11744</wfw:commentRss>
    </item>
    <item>
      <title>Intel AMT, Windows Powershell, and You</title>
      <link>http://communities.intel.com/community/openportit/vproexpert/blog/2008/12/02/intel-amt-windows-powershell-and-you</link>
      <description>&lt;!-- [DocumentBodyStart:a60e7ab1-34b0-42f7-a47b-5f6adcfd5c27] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Hello everyone!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I have been working on understanding the Intel AMT Developer's Toolkit (DTK) so that I can begin developing some custom tools around Intel vPro. One of the tools that I am planning on working with is Microsoft's Windows Powershell. Windows Powershell is a very powerful, object-oriented command-line replacement for Windows XP, Vista, 2003, and 2008. It's an administrative scripting language that is significantly more powerful than VBscript, and has the entire power of the Microsoft .NET Platform behind it.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Just today, I've had my first success in using the Intel DTK with Windows Powershell, in my quest to automate Intel vPro related tasks using Powershell!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This is some &lt;strong&gt;really&lt;/strong&gt; cool stuff, and I just had to get it out there to share with the community. I can't wait to see what else people build off of this!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Here is the first sample code that I've gotten to function correctly. I'm using it against a Dell Optiplex 755 running AMT firmware version 3.2.1, which was provisioned through ConfigMgr SP1.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;-------------&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;$amtusername = "vprodemo\DomainUser"&lt;br/&gt;$amtpassword = "P@SSW0Rd"&lt;br/&gt;$amthostname = "vproclient.vprodemo.local"&lt;br/&gt;$amtport = 16993&lt;br/&gt;$amtrecallpassword = $false&lt;br/&gt;$amtwebservicesonly = $false&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;$manageabilitystack = "C:\Program Files\Intel\Manageability Developer Tool Kit\Manageability Stack.dll"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;[System.Reflection.Assembly]::LoadFile("$ManageabilityStack") | Out-Null&lt;br/&gt;Write-Host "Connecting to $amthostname on port $amtport"&lt;br/&gt;$amtdevice = New-Object ManageabilityStack.AmtSystem $amthostname,$amtport,$amtusername,$amtpassword,$amtrecallpassword,$amtwebservicesonly&lt;br/&gt;$amtdevice.UseTls = $true&lt;br/&gt;$amtdevice.WsManSupport = $true&lt;br/&gt;Write-Host "TLS: $($amtdevice.UseTls), WsMan Support: $($amtdevice.WsManSupport)"&lt;br/&gt;$amtdevice.Connect()&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;while ($amtdevice.State -eq "Connecting")&lt;br/&gt;{&lt;br/&gt;    Start-Sleep 1&lt;br/&gt;}&lt;br/&gt;Write-Host "AMT device is in state $($amtdevice.State.ToString())"&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;-------------&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Unfortunately that's all I can post for now, but I definitely plan on continuing work on this development!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Trevor Sullivan&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Systems Engineer&lt;/em&gt;&lt;/p&gt;&lt;p&gt;OfficeMax Corporation&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a60e7ab1-34b0-42f7-a47b-5f6adcfd5c27] --&gt;</description>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">administrator</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">trevor</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">sullivan</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">microsoft</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">windows</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">powershell</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">scripting</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">development</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">automation</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">vpro</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">amt</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">intel</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">configmgr</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">deploy</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">engineer</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">automate</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">manage</category>
      <category domain="http://communities.intel.com/community/openportit/vproexpert/blog/tags">administrate</category>
      <pubDate>Wed, 03 Dec 2008 03:36:40 GMT</pubDate>
      <author>pcgeek86@gmail.com</author>
      <guid>http://communities.intel.com/community/openportit/vproexpert/blog/2008/12/02/intel-amt-windows-powershell-and-you</guid>
      <dc:date>2008-12-03T03:36:40Z</dc:date>
      <clearspace:dateToText>12 months, 19 hours ago</clearspace:dateToText>
      <clearspace:replyCount>3</clearspace:replyCount>
      <wfw:comment>http://communities.intel.com/community/openportit/vproexpert/blog/comment/intel-amt-windows-powershell-and-you</wfw:comment>
      <wfw:commentRss>http://communities.intel.com/community/openportit/vproexpert/blog/feeds/comments?blogPost=11738</wfw:commentRss>
    </item>
  </channel>
</rss>

