<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Mike Poulson's Thoughts on lots of stuff</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/mpoulson/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/mpoulson/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 05:19:41 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Enumerating TFS Permissions for items within the TPC for audit and logging</title>
      <link>https://docs.microsoft.com/archive/blogs/mpoulson/enumerating-tfs-permissions-for-items-within-the-tpc-for-audit-and-logging</link>
      <pubDate>Tue, 08 Apr 2014 08:55:39 GMT</pubDate>
      <dc:creator><![CDATA[mpoulson]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mpoulson/2014/04/08/enumerating-tfs-permissions-for-items-within-the-tpc-for-audit-and-logging/</guid>
      <description><![CDATA[https://www.mikepoulson.com/2014/04/enumerating-tfs-permissions-for-items.html]]></description>
      <content:encoded><![CDATA[<p><a href="https://www.mikepoulson.com/2014/04/enumerating-tfs-permissions-for-items.html">https://www.mikepoulson.com/2014/04/enumerating-tfs-permissions-for-items.html</a></p>]]></content:encoded>
    </item>
    <item>
      <title>A new pediatric oncology camp in Chicago</title>
      <link>https://docs.microsoft.com/archive/blogs/mpoulson/a-new-pediatric-oncology-camp-in-chicago</link>
      <pubDate>Wed, 26 Mar 2014 20:13:00 GMT</pubDate>
      <dc:creator><![CDATA[mpoulson]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mpoulson/2014/03/26/a-new-pediatric-oncology-camp-in-chicago/</guid>
      <description><![CDATA[I have been working with a new pediatric oncology camp that is getting started in Chicago that will...]]></description>
      <content:encoded><![CDATA[<p>I have been working with a new pediatric oncology camp that is getting started in Chicago that will be at the Ritz Carlton Hotel, Chicago called Camp Kids are Kids.</p>
<p>How cool is it that&nbsp;there will be a&nbsp;pediatric oncology camp in a hotel in the city.&nbsp; Take a look at their website at <a href="https://www.campkidsarekids.org/">https://www.campkidsarekids.org</a>.&nbsp; They are getting ready for the camp to start in Aug 2014.&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Enumerating TFS 2012 Build ActivityLog via API</title>
      <link>https://docs.microsoft.com/archive/blogs/mpoulson/enumerating-tfs-2012-build-activitylog-via-api</link>
      <pubDate>Fri, 23 Aug 2013 23:38:10 GMT</pubDate>
      <dc:creator><![CDATA[mpoulson]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mpoulson/2013/08/23/enumerating-tfs-2012-build-activitylog-via-api/</guid>
      <description><![CDATA[Check out the post at https://www.mikepoulson.com/2013/08/getting-detailed-tfs-build-log.html on how...]]></description>
      <content:encoded><![CDATA[<p>Check out the post at <a href="https://www.mikepoulson.com/2013/08/getting-detailed-tfs-build-log.html">https://www.mikepoulson.com/2013/08/getting-detailed-tfs-build-log.html</a> on how to get the ActivityLog information directly from the TFS Server via APIs.&nbsp; This saves from attempting to parse the ActivityLog.xml file that is created with each BuildDefinition build.</p>]]></content:encoded>
    </item>
    <item>
      <title>Migrating TFS (2010 or 2012) Personal Queries from one project to another via Powershell</title>
      <link>https://docs.microsoft.com/archive/blogs/mpoulson/migrating-tfs-2010-or-2012-personal-queries-from-one-project-to-another-via-powershell</link>
      <pubDate>Wed, 14 Aug 2013 17:26:42 GMT</pubDate>
      <dc:creator><![CDATA[mpoulson]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mpoulson/2013/08/14/migrating-tfs-2010-or-2012-personal-queries-from-one-project-to-another-via-powershell/</guid>
      <description><![CDATA[Over at my personal Blog I provide a powershell example of how users can migrate their personal TFS...]]></description>
      <content:encoded><![CDATA[<p>Over at my personal Blog I provide a powershell example of how users can migrate their personal TFS Work Item queries from one project to another.&nbsp; This is useful when migrating from a TFS 2010 server to a new TFS 2012 server.</p>
<p>&nbsp;</p>
<p><a href="https://www.mikepoulson.com/2013/08/migrating-tfs-2010-or-2012-personal.html">https://www.mikepoulson.com/2013/08/migrating-tfs-2010-or-2012-personal.html</a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Watching the "Big Game" cost me $.24 in power!</title>
      <link>https://docs.microsoft.com/archive/blogs/mpoulson/watching-the-big-game-cost-me-24-in-power</link>
      <pubDate>Sun, 05 Feb 2012 21:43:46 GMT</pubDate>
      <dc:creator><![CDATA[mpoulson]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mpoulson/2012/02/05/watching-the-big-game-cost-me-24-in-power/</guid>
      <description><![CDATA[Check out part 2 of my Home power monitoring blog to see how I found out the cost to watch the "Big...]]></description>
      <content:encoded><![CDATA[<p>Check out part 2 of my Home power monitoring blog to see how I found out the cost to watch the "Big Game" tonight!</p>
<p><a href="https://www.mikepoulson.com/2012/02/home-circuit-power-monitoring-part-2.html">https://www.mikepoulson.com/2012/02/home-circuit-power-monitoring-part-2.html</a></p>]]></content:encoded>
    </item>
    <item>
      <title>VLan nembership management defect in Brocade Turbo Iron 10Gig ToR switch</title>
      <link>https://docs.microsoft.com/archive/blogs/mpoulson/vlan-nembership-management-defect-in-brocade-turbo-iron-10gig-tor-switch</link>
      <pubDate>Mon, 22 Aug 2011 20:56:00 GMT</pubDate>
      <dc:creator><![CDATA[mpoulson]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mpoulson/2011/08/22/vlan-nembership-management-defect-in-brocade-turbo-iron-10gig-tor-switch/</guid>
      <description><![CDATA[As part of my automation solution I have created plugins to interact with network devices.&nbsp;...]]></description>
      <content:encoded><![CDATA[<p>As part of my automation solution I have created plugins to interact with network devices.&nbsp; While working with the Brocade Turbo Iron 10gig switch running version 04.2.00b. I found a defect in the way the switch does Vlan Management via SNMP.</p>
<p><strong>The issue</strong>:<br />When adding a port to &gt;1 vlans as tagged the QBridge interface incorrectly does not check if only adding as &ldquo;Egress Port&rdquo;.&nbsp; <br />Example: Add Port 24 tagged to vlan 100, attempt to add port 24 tagged to vlan 101 via SNMP.&nbsp; The latter will fail.&nbsp;</p>
<p>Additional Note: Brocade/Foundry Private MIBs cannot be used exclusively on the Turbo Iron due to limitations in the switch software.</p>
<p><strong>The Workaround</strong>:<br />For Tagged/Trunked ports only<br />1.&nbsp;Check if adding port to vlan as tagged<br />2.&nbsp;Enumerate all vlans on switch<br />3.&nbsp;Enumerate all vlan members in Vlans to find if Port is member of any vlan as tagged<br />4.&nbsp;If port is already member call private OID (1.3.6.1.4.1.1991.1.1.3.2.6.1.3.&lt;tag&gt;.&lt;ifIndex&gt;) to add port to vlan as tagged.&nbsp; You can find more on this OID at <a href="https://ipmsupport.solarwinds.com/mibs/FOUNDRY-SN-SWITCH-GROUP-MIB/item.aspx?id=snVLanByPortMemberRowStatus">https://ipmsupport.solarwinds.com/mibs/FOUNDRY-SN-SWITCH-GROUP-MIB/item.aspx?id=snVLanByPortMemberRowStatus</a><br />5.&nbsp;If port is NOT already member use Qbridge interface to add port to vlan.</p>
<p><strong>Code Snip</strong>:<br />public bool addPortToVlan(int tag, int ifIndex, bool isTagged)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Byte[] currentMembers;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (GetQBridgeVlanMembers(tag, isTagged, out currentMembers) == false)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (currentMembers.Length == 0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false; //vlan needs to be created first</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; currentMembers = this.GeneratePortByteStream(ifIndex, currentMembers, true);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Due to bug in TI code<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Issue is that QBridge Add port to vlan logic does not check if target port is tagged <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //So if target port is already member of another vlan as tagged it will fail on all other adds</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Workaround is to use 1.3.6.1.4.1.1991.1.1.3.2.6.1.3.&lt;tag&gt;.&lt;ifindex&gt; i 4 to add the port to the vlan after it is added via qbridge to first</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //If we are doing tagged we need to do workaround<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isTagged)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //check to see if target port is already member of another vlan<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isPortTaggedinAnotherVlan(ifIndex) == true)//add with snVLanByPortMemberRowStatus&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return sendSNMP("1.3.6.1.4.1.1991.1.1.3.2.6.1.3." + tag + "." + ifIndex, 4);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //if this did not find and return fall through to qbridge<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return SetQBridgeVlanMembers(currentMembers, tag, isTagged);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>]]></content:encoded>
    </item>
    <item>
      <title>Securing Server Racks with RFID at the Microsoft Enterprise Engineering Center</title>
      <link>https://docs.microsoft.com/archive/blogs/mpoulson/securing-server-racks-with-rfid-at-the-microsoft-enterprise-engineering-center</link>
      <pubDate>Tue, 16 Aug 2011 14:18:00 GMT</pubDate>
      <dc:creator><![CDATA[mpoulson]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mpoulson/2011/08/16/securing-server-racks-with-rfid-at-the-microsoft-enterprise-engineering-center/</guid>
      <description><![CDATA[In 2009 the EEC was completing the it major remodel and part of our new design was to secure each...]]></description>
      <content:encoded><![CDATA[<p>In 2009 the EEC was completing the it major remodel and part of our new design was to secure each rack from unauthorized access.&nbsp; I set out to create a solution on a limited budget.<br />&nbsp;<br /><strong>Reason to secure racks</strong>:<br />The EEC works with Microsoft top customers to test and validate Microsoft products for the Enterprise.&nbsp; The facility in Building 25 of main Campus (<a href="https://www.bing.com/maps/?v=2&amp;where1=Microsoft%20Building%2025%2C%20WA&amp;q=microsoft%20building%2025&amp;form=LMLTSN&amp;cp=47.64513799999999~-122.13020552380371&amp;lvl=17&amp;sty=r&amp;encType=1">https://www.bing.com/maps/?v=2&amp;where1=Microsoft%20Building%2025%2C%20WA&amp;q=microsoft%20building%2025&amp;form=LMLTSN&amp;cp=47.64513799999999~-122.13020552380371&amp;lvl=17&amp;sty=r&amp;encType=1</a>) has 7 separate customer labs that allow for 8-16 people per lab.&nbsp; We have 2 server PODs that have 15 and 18 Rittal 42U server racks.&nbsp; We use the Rittal LCP+ in-row cooling which gives us a closed loop and allows both front and rear doors to be closed.&nbsp;</p>
<p>Side note: Our business model required that we have a visually appealing design.&nbsp; This required that we have transparent glass on front doors.&nbsp; The LCP+ system also required that the doors be non-perforated so no ambient air was pulled into cooling system.<br />&nbsp;<br />Our light touch system deployment automation (SNaPs aka Green Monster) along with having more than 1 customer onsite at a time poses several issues.&nbsp;</p>
<p><strong>For example</strong>:&nbsp;&nbsp;</p>
<ol>
<li>How do you audit physical access to servers inside of a rack?</li>
<li>How do you allow customers physical access to only servers that they have reserved?&nbsp;</li>
<li>How to you allow customers physical access to their servers without providing them access to the back?&nbsp;</li>
<ol>
<li>Preventing access to the rear of the racks reduces the risk that cables will be moved.&nbsp; By knowing which power, network and KVM ports systems are connected to allows for easier automation (see project SNaPs).</li>
</ol></ol>
<p>These along with many other items drove the decision to secure each rack.&nbsp;</p>
<p><strong>Requirements</strong>:</p>
<ol>
<li>Inexpensive solution - less than $4,000 for 33 racks with 66 (2 doors per rack) access points</li>
<li>Integrate with existing RFIDs issued to Employees/Partners and customers&nbsp;</li>
<li>Integrate with 24volt Electromagnetic locks that were available on our Rittal racks <a href="https://www.rittal-corp.com/products/product_details.cfm?n1Id=5&amp;n2Id=53&amp;n3Id=182&amp;pn=7320721">https://www.rittal-corp.com/products/product_details.cfm?n1Id=5&amp;n2Id=53&amp;n3Id=182&amp;pn=7320721</a>&nbsp;</li>
<li>SQL based backend for ACLs and Auditing&nbsp;</li>
<li>Easy to use User Interface (UI)&nbsp;</li>
<li>Access KIOSK must run Windows 7&nbsp;</li>
<li>C# based UI (WinForms or WPF)&nbsp;</li>
</ol>
<p><br />An option that was considered was to integrate the 24v locks with the Microsoft facilities building access control system.&nbsp; While this option would have been ideal it had a few issues.</p>
<ol>
<li>Cost:&nbsp; At ~$1000 per door (we have 33 racks for a total of 66 doors) to integrate the cost would have been very high.&nbsp; This is the cost that our team would pay to be have a connection into the building security system.</li>
<li>Audit log access: Access to audit information is not readily available to teams that are not part of Microsoft physical security teams&nbsp;</li>
<li>API to control access permissions (badge to door mapping): This is not an offering by the access control team</li>
</ol>
<p>Because the building access integration was not an option I had to come up with another solution.&nbsp; I determined what components I needed and set out to create a Proof of Concept.<br />&nbsp;<br /><strong>Components</strong> (After countless searches on Bing I had found all the parts I needed for a solution.):</p>
<ol>
<li>All-in-One touch screen PC that was inexpensive and supported Windows 7 (at the time was not released)&nbsp;</li>
<ol>
<li>This was a tricky one.&nbsp; Because Windows 7 had not been released finding a system that was small and had current driver support - <a href="https://www.tangent.com/t_thinclients/lcd_515_517.htm">https://www.tangent.com/t_thinclients/lcd_515_517.htm</a></li>
</ol>
<li>USB based RFID badge reader - RFIdeas&nbsp;pcProx Enroll reader <a href="https://www.rfideas.com/products/pcprox_readers/pcprox_enroll/index.php">https://www.rfideas.com/products/pcprox_readers/pcprox_enroll/index.php</a></li>
<ol>
<li>This was easy.&nbsp; Anyone visiting Microsoft's Cafeterias has probably seen the badge readers used at the registers for employee meal accounts</li>
</ol>
<li>24v DC Relay system that had programmatic ability to be controlled (preferably over Wired Ethernet) - SeaLevel O-440 <a href="https://www.sealevel.com/store/440e-ethernet-modbus-tcp-to-32-reed-relay-outputs.html">https://www.sealevel.com/store/440e-ethernet-modbus-tcp-to-32-reed-relay-outputs.html</a></li>
<ol>
<li>Hardest item to find:&nbsp; C# APIs, 24v DC @~100mAmps / relay and have enough ports to keep costs down (remember I have 66 doors to secure)</li>
</ol>
<li>24v power supplies to power locks when engaged - SeLevel TR108 <a href="https://www.sealevel.com/store/accessories/power-supplies/tr108-100-250vac-to-24vdc-at-2-7a-desktop-power-supply-requires-power-cord.html">https://www.sealevel.com/store/accessories/power-supplies/tr108-100-250vac-to-24vdc-at-2-7a-desktop-power-supply-requires-power-cord.html</a></li>
<ol>
<li>The power system must support having 66 locks engaged at a time (Full Open mode).&nbsp; @~100mAmps per lock it was a significant amount of current</li>
</ol></ol>
<p>Video that shows concept:<br /> <iframe height="349" src="https://www.youtube.com/embed/XITDIoPWcmU?hl=en&amp;fs=1" frameborder="0" width="425" allowfullscreen=""></iframe></p>
<p>UI Showing limited User access based on RFID badge scanned. User has limited access to only front doors.&nbsp; And NO access to P1-R1</p>
<p><img alt="" src="https://i1.code.msdn.s-msft.com/inexpensively-improving-d6e0f6d1/image/file/41584/1/limited_access.png" width="670" height="478" /></p>
<p><em><em>UI Showing FULL&nbsp;access based on RFID badge scanned.&nbsp; Includes Lockdown button to disable all relays and open all to allow fast open of all racks.</em></em></p>
<p><img alt="" src="https://i1.code.msdn.s-msft.com/inexpensively-improving-d6e0f6d1/image/file/41846/1/full_access.png" width="672" height="480" /></p>
<p><strong>End-To-End scenario</strong></p>
<ol>
<li>User (Employee, Partner, Customer) uses RFID to enter POD.&nbsp; RFID access to room is managed with building access control system.&nbsp;</li>
<li>User "taps" RFID to reader attached to Touch Screen directly inside pod door&nbsp;</li>
<li>Badge reader queries SQL DB (using badge SN) to get "Allowed Doors" list&nbsp;</li>
<li>Based on "Allowed Doors" list UI updates to provide user with unlock options for permitted doors&nbsp;</li>
<li>User selects 1 or more doors they wish to have engaged for access and submits request&nbsp;</li>
<li>System creates audit entries in SQL, updates current status of door lock (engaged/disengaged) in SQL, calls "relay control" to engage locks on selected doors&nbsp;</li>
<li>User then walks to selected doors&nbsp;</li>
<li>User presses door handle release button to actuate handle into unlocked position&nbsp;</li>
<li>60 Seconds after locks were marked as engaged (aka unlocked) command sent to relay control to disengage lock to prevent further access</li>
</ol>
<p><strong>Rittal Lock notes</strong>:<br />The Rittal locks have 4 handle positions:</p>
<ol>
<li>Locked - cannot be opened and 24v lock is not energized&nbsp;</li>
<li>Energized - 24v lock has been powered and user can press "access button" on lock to move to position</li>
<li>Unlocked - Door is unlocked but not opened.&nbsp; Handle is in "released" position and can be moved to position 4 (Opened) or locked (position 1).&nbsp; At this point the 24v lock can be energized or not</li>
<li>Opened - Door handle is in "up" position and door will swing open on its own.&nbsp; 24v lock can be engaged or not.&nbsp; Door handle can be locked without closing door (which prevents door from being closed without unlocking again).</li>
</ol>
<p><br />Key Access: Each lock ships with a set of keys (that by default is the same for all locks).&nbsp; Because our physical security requirements are not that high simply collecting the keys was enough for us.&nbsp; In some scenarios a unique keyed core might be required.<br />&nbsp;<br />Handle position sensor:&nbsp; Each lock/handle assembly has a sensor to detect if the handle is in positions 3 or 4 (Unlocked or Opened).&nbsp; My solution did not utilize this feature but some simple additions in hardware would allow it.&nbsp; This sensor along with adding a contact sensor to the physical door could provide the pieces to create solution that would notify you if the door was left unlocked or opened.&nbsp; We decided to use policies rather than technology for that.<br />&nbsp;<br />Project source can be downloaded at <a href="https://code.msdn.microsoft.com/Inexpensively-improving-d6e0f6d1">https://code.msdn.microsoft.com/Inexpensively-improving-d6e0f6d1</a></p>[Video]]]></content:encoded>
    </item>
    <item>
      <title>How to create differencing disk VM from template on SCVMM 2012 via PowerShell</title>
      <link>https://docs.microsoft.com/archive/blogs/mpoulson/how-to-create-differencing-disk-vm-from-template-on-scvmm-2012-via-powershell</link>
      <pubDate>Thu, 28 Jul 2011 08:47:23 GMT</pubDate>
      <dc:creator><![CDATA[mpoulson]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mpoulson/2011/07/28/how-to-create-differencing-disk-vm-from-template-on-scvmm-2012-via-powershell/</guid>
      <description><![CDATA[Over at my personal blog (www.mikepoulson.com) I have a post on using Differencing Disks with an...]]></description>
      <content:encoded><![CDATA[<p>Over at my personal blog (<a href="https://www.mikepoulson.com">www.mikepoulson.com</a>) I have a post on using Differencing Disks with an SCVMM template.&nbsp;</p>
<p>The main issue I ran into when first doing Diff disks with VMM was making sure the Parent VHD was on the target HyperV host.&nbsp; The PowerShell script at <a href="https://www.mikepoulson.com/2011/07/how-to-create-differencing-disk-vm-from.html">https://www.mikepoulson.com/2011/07/how-to-create-differencing-disk-vm-from.html</a> does that work for you.</p>]]></content:encoded>
    </item>
    <item>
      <title>Per Circuit home power monitoring</title>
      <link>https://docs.microsoft.com/archive/blogs/mpoulson/per-circuit-home-power-monitoring</link>
      <pubDate>Mon, 18 Jul 2011 10:17:14 GMT</pubDate>
      <dc:creator><![CDATA[mpoulson]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mpoulson/2011/07/18/per-circuit-home-power-monitoring/</guid>
      <description><![CDATA[Check out my Home power monitoring...]]></description>
      <content:encoded><![CDATA[<p>Check out my Home power monitoring post.&nbsp;</p>
<p><a href="https://www.mikepoulson.com/2011/07/new-home-power-monitor.html">https://www.mikepoulson.com/2011/07/new-home-power-monitor.html</a></p>
<p>Currently uses both Microsoft-hohm and Google Power meter.&nbsp;I will soon have to find a new solution.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Microsoft announces shutdown of hohm.microsoft.com</title>
      <link>https://docs.microsoft.com/archive/blogs/mpoulson/microsoft-announces-shutdown-of-hohm-microsoft-com</link>
      <pubDate>Thu, 30 Jun 2011 11:44:00 GMT</pubDate>
      <dc:creator><![CDATA[mpoulson]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mpoulson/2011/06/30/microsoft-announces-shutdown-of-hohm-microsoft-com/</guid>
      <description><![CDATA[First google powermeter was shutdown now Microsoft Hohm.&nbsp; Where am I to view all my power...]]></description>
      <content:encoded><![CDATA[<p>First google powermeter was shutdown now Microsoft Hohm.&nbsp; Where am I to view all my power monitoring information?</p>
<p><a href="https://blog.microsoft-hohm.com/news/11-06-30/Microsoft_Hohm_Service_Discontinuation.aspx">https://blog.microsoft-hohm.com/news/11-06-30/Microsoft_Hohm_Service_Discontinuation.aspx</a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
  </channel>
</rss>