<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Dan Cunningham]]></title><description><![CDATA[IT Infrastructure Deployment Security & Management]]></description><link>https://dcunningham.net/</link><image><url>https://dcunningham.net/favicon.png</url><title>Dan Cunningham</title><link>https://dcunningham.net/</link></image><generator>Ghost 2.25</generator><lastBuildDate>Mon, 22 Jul 2019 21:10:55 GMT</lastBuildDate><atom:link href="https://dcunningham.net/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Site Migration to Ghost / Docker Swarm]]></title><description><![CDATA[I've spent a lot of time educating and reskilling myself in the area of DevOps (or ProdOps). I find practical projects are a great way to learn, so I set myself the task of retooling my home lab to accommodate both VMs in Windows (Hyper-V) and containers in Ubuntu Linux (Docker / Kubernetes).]]></description><link>https://dcunningham.net/site-migration/</link><guid isPermaLink="false">5c61a375232201000138acc9</guid><category><![CDATA[docker]]></category><category><![CDATA[ghost]]></category><dc:creator><![CDATA[Dan Cunningham]]></dc:creator><pubDate>Mon, 11 Feb 2019 17:04:03 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1474835409173-5dc81aae3faa?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1474835409173-5dc81aae3faa?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Site Migration to Ghost / Docker Swarm"><p>Oh hey there.</p><p>It's been a while since I've done anything useful with this site, so I'm making myself a late new year's resolution to start writing content again. </p><p>For the last few months I've spent a lot of time educating and reskilling myself in the area of DevOps (or ProdOps). I find practical projects are a great way to learn, so I set myself the task of retooling my home lab to accommodate both VMs in Windows (Hyper-V) and containers in Ubuntu Linux (Docker / Kubernetes). This gives me the flexibility to stand up any environment I might need:</p><ul><li>Reproduce customer issues</li><li>Evaluate products / software</li><li>Reduce the time taken to learn something</li></ul><p>The last is a big one for me. How many times have you been put something on the backburner because it would require you first set up a dozen prerequisites? Containerization has mostly solved this. For example, you wanted to set up a Graylog server? Cool, have fun setting up ElasticSearch and MongoDB first. OR, just use a docker-compose to stand up the whole lot in around 10 seconds. Anyway, I disgress...</p><p>This site was being hosted on Wordpress, on a seriously underperforming linux VM that I had limited access to. After a bit of research, I opted to move to self-hosted on Ghost, on my home lab. I have a slew of services I was running on a Windows server which would be much more performant in a containerized environment - so adding Ghost to that list wasn't that big a deal. After that, I manually migrated a few blog entries but ultimately opted to trash most of the content and start from scratch.</p><p>This site is now running alongside 13 other services in Docker Swarm on my home lab, behind a reverse proxy, each with enforced SSL and a valid certificate from LetsEncrypt. The performance is stellar in comparison to Wordpress, and I can easily stand up new VMs or containers without interference to the existing services.</p><p>I want to work on building an ARM based Kubernetes cluster using Terraform and Ansible to provision and configure the whole thing. First, I need to buy myself some hardware though. Once I start the process, I'll document and add some new stuff here.</p>]]></content:encoded></item><item><title><![CDATA[Deploying applications as a Standard User using SCCM & Defendpoint]]></title><description><![CDATA[Installing an application as System using SCCM can be tricky for Per User components - often requiring hacking of HKCU RunOnce regkeys. But installing as the user means you may not have permissions for a full install...]]></description><link>https://dcunningham.net/deploying-applications-as-a-standard-user-using-sccm-and-defendpoint/</link><guid isPermaLink="false">5c416c412eab980001e67ba0</guid><category><![CDATA[defendpoint]]></category><category><![CDATA[psappdeploytoolkit]]></category><category><![CDATA[sccm]]></category><dc:creator><![CDATA[Dan Cunningham]]></dc:creator><pubDate>Fri, 27 Mar 2015 10:35:32 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1545019851-b43244f012b7?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1545019851-b43244f012b7?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Deploying applications as a Standard User using SCCM & Defendpoint"><p>SCCM 2012 gives the option of installation an application as the currently logged in user, or as the LocalSystem account. There are differences in why you would choose one over the other – namely, easy access to current user paths and registry keys. Some Windows Installers have a lot of Per User components and if installed using LocalSystem, tend to be a pain in the ass to get installed when an actual user logs in. So running deployments as the currently logged in user can be very handy.</p>
<p>However, there is a limitation in the Application Model whereby if you chose to install an application as a User, it inherits their user privileges for the installation. This is a problem if your users are Standard Users as opposed to Local Administrators – more often than not, you won’t have the permissions to perform a full install.</p>
<p>If you’re lucky enough to have deployed <a href="https://www.beyondtrust.com/endpoint-privilege-management">BeyondTrust Defendpoint</a> (formerly Avecto Defendpoint / Privilege Guard), you can very easily overcome this by granting Administrator Privileges to PSAppDeployToolkit installation scripts. Here’s how I have this working.</p>
<p>I created two Application Groups, and one Work-Style in Defendpoint. The first App Group is for the SCCM Agent:</p>
<div style="text-align: center;">
<img src="https://dcunningham.net/content/images/2019/01/DP_SCCMAgent.png" alt="Deploying applications as a Standard User using SCCM & Defendpoint">
</div><br>
<p>The second App Group is for the Deploy-Application.ps1 scripts themselves. It is set to match child processes of the first App Group. You can make this more secure by using a wildcarded path such as “%WinDirCCMCache*Deploy-Application.ps1”. Better still, ensure you code sign your Deploy-Application.ps1 scripts and add a match criteria against the Publisher:</p>
<div style="text-align: center;">
<img src="https://dcunningham.net/content/images/2019/01/DP_DeployApp.png" alt="Deploying applications as a Standard User using SCCM & Defendpoint">
</div><br>
<p>Finally, the Work-Style is set to automatically add Admin Rights to any Deploy-Application.ps1 that gets run – provided it is a child process of the SCCM Agent. This ensures the PSAppDeployToolkit installation script only gets Admin Rights when called by the SCCM Agent:</p>
<div style="text-align: center;">
<img src="https://dcunningham.net/content/images/2019/01/DP_Workstyle.png" alt="Deploying applications as a Standard User using SCCM & Defendpoint">
</div><br>
<p>And that's all there is to it :)</p>
]]></content:encoded></item><item><title><![CDATA[PSAppDeployToolkit: Get the benefits without writing a single line of PowerShell]]></title><description><![CDATA[<p><strong>Edit:</strong> Hey! We just made this obsolete with v3.6.1 of the toolkit. It’s all in-built now! 🙂</p>
<p>One of the primary goals of the PowerShell App Deployment Toolkit is to simplify complex scripting operations to deploy applications. It does however, require that you know PowerShell to some degree,</p>]]></description><link>https://dcunningham.net/psappdeploytoolkit-get-the-benefits-without-writing-a-single-line-of-powershell/</link><guid isPermaLink="false">5c416c412eab980001e67b9e</guid><category><![CDATA[powershell]]></category><category><![CDATA[psappdeploytoolkit]]></category><dc:creator><![CDATA[Dan Cunningham]]></dc:creator><pubDate>Wed, 14 May 2014 18:58:55 GMT</pubDate><media:content url="https://images.unsplash.com/reserve/oIpwxeeSPy1cnwYpqJ1w_Dufer%20Collateral%20test.jpg?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/reserve/oIpwxeeSPy1cnwYpqJ1w_Dufer%20Collateral%20test.jpg?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ" alt="PSAppDeployToolkit: Get the benefits without writing a single line of PowerShell"><p><strong>Edit:</strong> Hey! We just made this obsolete with v3.6.1 of the toolkit. It’s all in-built now! 🙂</p>
<p>One of the primary goals of the PowerShell App Deployment Toolkit is to simplify complex scripting operations to deploy applications. It does however, require that you know PowerShell to some degree, even though a lot of the in-built functionality is going to shield you from a lot of the complexity. This applies to even the most basic of installations. You’re going to need to populate the template provided with a few basic details.</p>
<p>I wanted to see if I could remove the need for any editing of the provided template. What I’ve come up with will be really handy for PowerShell beginners looking to evaluate the toolkit’s functionality, and allow you to rapidly create an application deployment. To that end, I’ve created a customized version of the template which does the following:</p>
<ul>
<li>Searches the Files subfolder for a Windows Installer installation (MSI) and any custom transform</li>
<li>Pulls Windows Installer properties from the MSI file and uses them for the deployment</li>
<li>Prompts to close any applications specified with the -CloseApplications parameter if they are open</li>
<li>Installs / Uninstalls the application</li>
</ul>
<p>How to use the dynamic Deploy-Application.ps1:</p>
<ul>
<li>Download a copy of the toolkit from <a href="https://psappdeploytoolkit.com/" title="PowerShell App Deployment Toolkit">here</a></li>
<li>Overwrite Deploy-Application.ps1 with this version from <a href="http://dcunningham.net/wp-content/uploads/2014/05/Deploy-DynamicApplication.zip" title="Deploy-DynamicApplication">here</a></li>
<li>Drop your MSI (and MST if you have one) into the Files subfolder</li>
<li>Create a new SCCM Application / Package with these source files</li>
<li>Include the -CloseApplications parameter if needed, e.g. - Deploy-Application.exe Install -CloseApplications “iexplore,firefox,chrome”</li>
<li>Deploy-Application.exe Uninstall -CloseApplications “iexplore,firefox,chrome”</li>
</ul>
<p>The benefits of using the toolkit without any customization are still quite apparent:</p>
<ul>
<li>Consistent user experience for closing applications and displaying installation progress, all localized in numerous languages</li>
<li>Logging of all Windows Installer install / uninstall operations, as well as logging from the toolkit itself</li>
<li>Integration with SCCM 2007 / 2012 in terms of exit codes, reboot suppression and fast retry</li>
</ul>
<p></p>
]]></content:encoded></item><item><title><![CDATA[Enabling Intel Virtualization Technology (VT) on Lenovo hardware using an SCCM Configuration Baseline]]></title><description><![CDATA[<p>I’ve been meaning to start posting some tutorials for a while and I’ve finally gotten around to my first. So here goes…</p>
<p>Intel VT is a requirement of any VM solution (Hyper-V, VMware, Virtualbox etc) as well as a number of emerging security products such as McAfee Deep</p>]]></description><link>https://dcunningham.net/enabling-intel-virtualization-technology-vt-on-lenovo-hardware-using-an-sccm-configuration-baseline/</link><guid isPermaLink="false">5c416c412eab980001e67b9d</guid><category><![CDATA[powershell]]></category><category><![CDATA[lenovothinkpad]]></category><category><![CDATA[intelvt]]></category><category><![CDATA[bios]]></category><dc:creator><![CDATA[Dan Cunningham]]></dc:creator><pubDate>Tue, 22 Apr 2014 15:14:20 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1497171156029-51dfc973e5f9?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1497171156029-51dfc973e5f9?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Enabling Intel Virtualization Technology (VT) on Lenovo hardware using an SCCM Configuration Baseline"><p>I’ve been meaning to start posting some tutorials for a while and I’ve finally gotten around to my first. So here goes…</p>
<p>Intel VT is a requirement of any VM solution (Hyper-V, VMware, Virtualbox etc) as well as a number of emerging security products such as McAfee Deep Defender. By default, Lenovo hardware ships with Intel VT disabled in the BIOS. If you’re a large enough enterprise, you can probably agree to have this enabled in the BIOS from the outset but for smaller companies this can be costly. Luckily, you can access Lenovo BIOS settings using WMI. It’s fairly simple to put together a VBScript to enable this as part of your  OSD process. But what if you already have your machines deployed and need to make the change post-deployment?</p>
<p>Well, a nice way of handling this is to use an SCCM Configuration Baseline to enforce the setting. And I’m going to walk you through how to do it…</p>
<p>First, we’re going to open SCCM &gt; Assets &amp; Compliance &gt; Compliance Settings &gt; Configuration Items and create a new Configuration Item:</p>
<p><a href="https://res.cloudinary.com/diepzpydr/image/upload/v1547790314/dcunningham.net/Image1.png"><img src="https://res.cloudinary.com/diepzpydr/image/upload/v1547790314/dcunningham.net/Image1.png" alt="Enabling Intel Virtualization Technology (VT) on Lenovo hardware using an SCCM Configuration Baseline"></a></p>
<p>You’ll only want this running on client OSes so deselect anything server:</p>
<p><a href="https://res.cloudinary.com/diepzpydr/image/upload/v1547790311/dcunningham.net/Image2.png"><img src="https://res.cloudinary.com/diepzpydr/image/upload/v1547790311/dcunningham.net/Image2.png" alt="Enabling Intel Virtualization Technology (VT) on Lenovo hardware using an SCCM Configuration Baseline"></a></p>
<p>Create a new Setting and populate as follows:</p>
<ul>
<li>Name: Intel Virtualization Technology Configuration</li>
<li>Setting Type: Script</li>
<li>Data Type: String</li>
<li>Discovery Script – Type: PowerShell:</li>
</ul>
<p><strong>gwmi -class Lenovo_BiosSetting -namespace rootwmi | Where-Object {$_.CurrentSetting.split(“,”,[fusion_builder_container hundred_percent=”yes” overflow=”visible”][fusion_builder_row][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][StringSplitOptions]::RemoveEmptyEntries) -eq “VirtualizationTechnology”} | Format-List CurrentSetting</strong></p>
<ul>
<li>Remediation Script – Type: PowerShell:</li>
</ul>
<p><strong>(gwmi -class Lenovo_SetBiosSetting -namespace rootwmi).SetBiosSetting(“VirtualizationTechnology,Enable”)</strong><br>
** (gwmi -class Lenovo_SaveBiosSettings -namespace rootwmi).SaveBiosSettings()**</p>
<p><a href="https://res.cloudinary.com/diepzpydr/image/upload/v1547790309/dcunningham.net/Image3.png"><img src="https://res.cloudinary.com/diepzpydr/image/upload/v1547790309/dcunningham.net/Image3.png" alt="Enabling Intel Virtualization Technology (VT) on Lenovo hardware using an SCCM Configuration Baseline"></a></p>
<p>Create a new Compliance rule for this Setting as follows:</p>
<ul>
<li>Name: Intel Virtualization Technology Compliance Rule</li>
<li>Value: <strong>VirtualizationTechnology,Enable</strong></li>
<li>Check “Run the specified remediation script when this setting is non-compliant”</li>
</ul>
<p><a href="https://res.cloudinary.com/diepzpydr/image/upload/v1547790308/dcunningham.net/Image5.png"><img src="https://res.cloudinary.com/diepzpydr/image/upload/v1547790308/dcunningham.net/Image5.png" alt="Enabling Intel Virtualization Technology (VT) on Lenovo hardware using an SCCM Configuration Baseline"></a></p>
<p>Now create a second Setting and populate as follows:</p>
<ul>
<li>Name: Intel VTdFeature Configuration</li>
<li>Setting Type: Script</li>
<li>Data Type: String</li>
<li>Discovery Script – Type: PowerShell:</li>
</ul>
<p><strong>gwmi -class Lenovo_BiosSetting -namespace rootwmi | Where-Object {$_.CurrentSetting.split(“,”,[StringSplitOptions]::RemoveEmptyEntries) -eq “VTdFeature”} | Format-List CurrentSetting</strong></p>
<ul>
<li>Remediation Script – Type: PowerShell:</li>
</ul>
<p><strong>(gwmi -class Lenovo_SetBiosSetting -namespace rootwmi).SetBiosSetting(“VTdFeature,Enable”)</strong><br>
** (gwmi -class Lenovo_SaveBiosSettings -namespace rootwmi).SaveBiosSettings()**</p>
<p>Create a new Compliance rule for this Setting as follows:</p>
<ul>
<li>Name: Intel VTdFeature Compliance Rule</li>
<li>Value: <strong>VTdFeature,Enable</strong></li>
<li>Check “Run the specified remediation script when this setting is non-compliant”</li>
</ul>
<p>When finished, we should be left back in the original Wizard with two Settings and two Compliance items as follows:</p>
<p><a href="https://res.cloudinary.com/diepzpydr/image/upload/v1547790305/dcunningham.net/Image6.png"><img src="https://res.cloudinary.com/diepzpydr/image/upload/v1547790305/dcunningham.net/Image6.png" alt="Enabling Intel Virtualization Technology (VT) on Lenovo hardware using an SCCM Configuration Baseline"></a> <a href="https://res.cloudinary.com/diepzpydr/image/upload/v1547790301/dcunningham.net/Image7.png"><img src="https://res.cloudinary.com/diepzpydr/image/upload/v1547790301/dcunningham.net/Image7.png" alt="Enabling Intel Virtualization Technology (VT) on Lenovo hardware using an SCCM Configuration Baseline"></a></p>
<p>Now that our Configuration Item is created, we need to Create a new Configuration Baseline for deployment. Navigate to Assets &amp; Compliance &gt; Compliance Settings &gt; Configuration Baselines and create a new one as follows:</p>
<p><a href="https://res.cloudinary.com/diepzpydr/image/upload/v1547790300/dcunningham.net/Image8.png"><img src="https://res.cloudinary.com/diepzpydr/image/upload/v1547790300/dcunningham.net/Image8.png" alt="Enabling Intel Virtualization Technology (VT) on Lenovo hardware using an SCCM Configuration Baseline"></a></p>
<p>Once this is created, you can Deploy to any collection in either Monitor or Remediation mode. I would suggest Monitor first to get a handle of how many machines will be affected, and maybe start off in Remediation on a handful of machines to ensure it works as expected. Changes to the BIOS take effect when the machine is next restarted.[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]</p>
]]></content:encoded></item><item><title><![CDATA[Workstation Migration Assistant 1.10 released]]></title><description><![CDATA[<p>So I won’t make any fanfare about this, I’ve made just a few small changes and fixes to WMA as I’ve neglected it for quite a bit.</p>
<ul>
<li>Added support for Windows 8 / 8.1 - <span style="line-height: 1.5em;">Copy the amd64 and x86 folders from USMT 5 as subdirectories of</span></li></ul>]]></description><link>https://dcunningham.net/workstation-migration-assistant-1-10-released/</link><guid isPermaLink="false">5c416c412eab980001e67b9c</guid><category><![CDATA[workstationmigrationassistant]]></category><dc:creator><![CDATA[Dan Cunningham]]></dc:creator><pubDate>Fri, 13 Dec 2013 15:21:18 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1507919909716-c8262e491cde?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1507919909716-c8262e491cde?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Workstation Migration Assistant 1.10 released"><p>So I won’t make any fanfare about this, I’ve made just a few small changes and fixes to WMA as I’ve neglected it for quite a bit.</p>
<ul>
<li>Added support for Windows 8 / 8.1 - <span style="line-height: 1.5em;">Copy the amd64 and x86 folders from USMT 5 as subdirectories of the WMA folder, ie.</span>- <span style="line-height: 1.5em;">MigAssist.exe</span>- <span style="line-height: 1.5em;">amd64</span></li>
<li><span style="line-height: 1.5em;">x86</span></li>
<li><span style="line-height: 1.5em;">Fixed issue where maximum migration size couldn’t be disabled</span></li>
<li><span style="line-height: 1.5em;">Fixed issue where progress wasn’t updating correctly</span></li>
<li><span style="line-height: 1.5em;">Fixed issue where Health Check wouldn’t always run</span></li>
<li><span style="line-height: 1.5em;">Removed support for Windows XP (USMT 3)</span></li>
<li><span style="line-height: 1.5em;">Removed branding – looks better with Windows 8 / 8.1 theme</span></li>
</ul>
<p>Available on Github here: <a href="https://github.com/sintaxasn/MigAssistant">https://github.com/sintaxasn/MigAssistant</a></p>
]]></content:encoded></item><item><title><![CDATA[PowerShell App Deployment Toolkit]]></title><description><![CDATA[<p>Myself and my good friend <a href="http://powersheller.wordpress.com/">Sean Lillis</a> have been working on a neat project for the last few months. Here’s a bit of the blurb:</p><blockquote>The PowerShell App Deployment Toolkit provides a set of functions to perform common application deployment tasks and to interact with the user during a</blockquote>]]></description><link>https://dcunningham.net/powershell-app-deployment-toolkit/</link><guid isPermaLink="false">5c416c412eab980001e67b9b</guid><category><![CDATA[powershell]]></category><category><![CDATA[psappdeploytoolkit]]></category><category><![CDATA[sccm]]></category><dc:creator><![CDATA[Dan Cunningham]]></dc:creator><pubDate>Wed, 07 Aug 2013 10:37:35 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1526498460520-4c246339dccb?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1526498460520-4c246339dccb?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ" alt="PowerShell App Deployment Toolkit"><p>Myself and my good friend <a href="http://powersheller.wordpress.com/">Sean Lillis</a> have been working on a neat project for the last few months. Here’s a bit of the blurb:</p><blockquote>The PowerShell App Deployment Toolkit provides a set of functions to perform common application deployment tasks and to interact with the user during a deployment. It simplifies the complex scripting challenges of deploying applications in the enterprise, provides a consistent deployment experience and improves installation success rates.</blockquote><p>We’ve set up a GitHub project and have published the initial public release, along with some very extensive documentation. Head on over to the link below to take a look!</p><p><a href="https://psappdeploytoolkit.com/">https://psappdeploytoolkit.com</a></p>]]></content:encoded></item><item><title><![CDATA[EncodeHD 1.4.150.0]]></title><description><![CDATA[<p>As usual, I’ve been sidetracked with work and personal life so I haven’t been nearly as busy on here as I’d like to be. I have however, taken some time to bring EncodeHD up to date and bring it out of beta.</p>
<p>A fairly sparse change log</p>]]></description><link>https://dcunningham.net/encodehd-1-4-150-0/</link><guid isPermaLink="false">5c416c412eab980001e67b9a</guid><category><![CDATA[encodehd]]></category><dc:creator><![CDATA[Dan Cunningham]]></dc:creator><pubDate>Wed, 10 Jul 2013 10:06:11 GMT</pubDate><content:encoded><![CDATA[<p>As usual, I’ve been sidetracked with work and personal life so I haven’t been nearly as busy on here as I’d like to be. I have however, taken some time to bring EncodeHD up to date and bring it out of beta.</p>
<p>A fairly sparse change log since the beta:</p>
<ul>
<li>FFmpeg updated to git-00b1401 (2013-07-06)</li>
<li>MediaInfo updated to 0.7.64</li>
<li>Fixed up some FFmpeg command-line parameters</li>
</ul>
<p>The newest releases of FFmpeg are pretty darn fast at re-encoding video though</p>
<p>Available on GitHub here: <a href="https://github.com/sintaxasn/EncodeHD">https://github.com/sintaxasn/EncodeHD</a></p>
]]></content:encoded></item></channel></rss>