<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" 
  xmlns:content="http://purl.org/rss/1.0/modules/content/" 
  xmlns:dc="http://purl.org/dc/elements/1.1/" 
  xmlns:atom="http://www.w3.org/2005/Atom" 
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" 
  xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>PowerShell Utility on gal.vin</title>
    <link>https://gal.vin/tags/powershell-utility/</link>
    <description>Recent content in PowerShell Utility on gal.vin</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>&amp;copy;{year}, All Rights Reserved</copyright>
    <lastBuildDate>Sat, 09 Nov 2024 16:43:47 +0000</lastBuildDate>
    <sy:updatePeriod>daily</sy:updatePeriod>
    
        <atom:link href="https://gal.vin/tags/powershell-utility/index.xml" rel="self" type="application/rss+xml" />
    

      
      <item>
        <title>Remove MS Store Apps Utility - Update 24.11.09</title>
        <link>https://gal.vin/posts/2024/remove-ms-store-apps-utility-v24-11-09/</link>
        <pubDate>Sat, 09 Nov 2024 16:43:47 +0000</pubDate>
        
        <atom:modified>Sat, 09 Nov 2024 16:43:47 +0000</atom:modified>
        <guid>https://gal.vin/posts/2024/remove-ms-store-apps-utility-v24-11-09/</guid>
        <description>It&amp;rsquo;s been a while since I did any work on this utility but I have a couple of small improvements requested from users.
I&amp;rsquo;ve added a new -Uno option which is remove all apps NOT in the user specified apps.txt file. This could be a good way of removing the extra apps that microsoft push down on Windows users over time.
Secondly I added a -PCOnly option which means the utility will only remove provisioned apps and not remove any apps from the currently logged user account.</description>
        <content:encoded>&lt;p&gt;It&amp;rsquo;s been a while since I did any work on this utility but I have a couple of small improvements requested from users.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve added a new -Uno option which is remove all apps NOT in the user specified apps.txt file. This could be a good way of removing the extra apps that microsoft push down on Windows users over time.&lt;/p&gt;
&lt;p&gt;Secondly I added a -PCOnly option which means the utility will only remove provisioned apps and not remove any apps from the currently logged user account. This can be helpful because the current user on a Windows 10/11 system has many more apps - which are mostly dependencies.&lt;/p&gt;
&lt;h3 id=&#34;2024-11-09-version-241109&#34;&gt;2024-11-09: Version 24.11.09&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new &amp;lsquo;-Uno&amp;rsquo; option which removes ALL apps not in the specified text file. The text file becomes an &amp;ldquo;apps to keep&amp;rdquo; list, instead of an &amp;ldquo;apps to remove&amp;rdquo; list.&lt;/li&gt;
&lt;li&gt;Added new &amp;lsquo;-PCOnly&amp;rsquo; option which removes provisioned apps only. This will leave the apps for the current user untouched.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Remove MS Store Apps Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Remove-MS-Store-Apps&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Remove-MS-Store-Apps&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/remove-ms-store-apps-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h2&gt;
&lt;p&gt;If you would like to support me, please check out the links below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/sponsors/Digressive&#34;&gt;Github Sponsors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments please leave them below.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
</content:encoded>
        
        <media:content url="https://gal.vin//media/util-logos/rsau.webp" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 24.08.29</title>
        <link>https://gal.vin/posts/2024/hyperv-backuputility-v24-08-29/</link>
        <pubDate>Thu, 29 Aug 2024 14:54:04 +0100</pubDate>
        
        <atom:modified>Thu, 29 Aug 2024 14:54:04 +0100</atom:modified>
        <guid>https://gal.vin/posts/2024/hyperv-backuputility-v24-08-29/</guid>
        <description>Many thanks to user Digheads for PR 37.
With work from myself and PR 37 linked above, SMB authentication has been added. I&amp;rsquo;ve improved the documentation to help with the explanation of SMB support for backups - it&amp;rsquo;s a complicated situation when dealing with Hyper-V exports and non-domain joined servers.
PR 37 also added a Prefix option to backup all VMs with a certain prefix.
I&amp;rsquo;ve also added a long overdue -AllVms option to backup all VMs, regardless of their running status mentioned in issue 23.</description>
        <content:encoded>&lt;p&gt;Many thanks to user Digheads for &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/pull/37&#34;&gt;PR 37&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;With work from myself and PR 37 linked above, SMB authentication has been added. I&amp;rsquo;ve improved the documentation to help with the explanation of SMB support for backups - it&amp;rsquo;s a complicated situation when dealing with Hyper-V exports and non-domain joined servers.&lt;/p&gt;
&lt;p&gt;PR 37 also added a Prefix option to backup all VMs with a certain prefix.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve also added a long overdue -AllVms option to backup all VMs, regardless of their running status mentioned in &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/23&#34;&gt;issue 23&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Finally, I&amp;rsquo;ve added a -MakeCreds option which will generate a credential file for use with SMTP authentication.&lt;/p&gt;
&lt;h3 id=&#34;2024-08-29-version-240829&#34;&gt;2024-08-29: Version 24.08.29&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added Sponsorship information to the projects Github.&lt;/li&gt;
&lt;li&gt;Added SMB Authentication, based on work from &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/pull/37&#34;&gt;PR 37&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Added -MakeCreds option to help in creation of SMTP authentication file.&lt;/li&gt;
&lt;li&gt;Added -AllVms option to specify the backing up of all VMs on a Hyper-V server without the need for a list file.&lt;/li&gt;
&lt;li&gt;Added -Prefix option to backup all VMs beginning with the string specified.&lt;/li&gt;
&lt;li&gt;Added more information about Hyper-V&amp;rsquo;s export limitations to the documentation and in app help.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h2&gt;
&lt;p&gt;If you would like to support me, please donate via paypal.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
</content:encoded>
        
        <media:content url="https://gal.vin//media/util-logos/hvbu.webp" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 24.05.11</title>
        <link>https://gal.vin/posts/2024/hyperv-backuputility-v24-05-11/</link>
        <pubDate>Sat, 11 May 2024 14:51:18 +0000</pubDate>
        
        <atom:modified>Sat, 11 May 2024 14:51:18 +0000</atom:modified>
        <guid>https://gal.vin/posts/2024/hyperv-backuputility-v24-05-11/</guid>
        <description>This is a quick update to fix an issue where backup success would be reported when using a working directory and the final destination directory didn&amp;rsquo;t have enough disk space. This happened because the backup to the working directory succeeded and the backup state flag wouldn&amp;rsquo;t get set to &amp;ldquo;failed&amp;rdquo; when the move to the final destination failed.
Huge thanks to ecomstation, Charles-Isaac and furicle for reporting this issue. Apologies that it took to some to get a fix in.</description>
        <content:encoded>&lt;p&gt;This is a quick update to fix an issue where backup success would be reported when using a working directory and the final destination directory didn&amp;rsquo;t have enough disk space. This happened because the backup to the working directory succeeded and the backup state flag wouldn&amp;rsquo;t get set to &amp;ldquo;failed&amp;rdquo; when the move to the final destination failed.&lt;/p&gt;
&lt;p&gt;Huge thanks to ecomstation, Charles-Isaac and furicle for reporting this issue. Apologies that it took to some to get a fix in.&lt;/p&gt;
&lt;p&gt;Many thanks to everyone who continues to support the further development of these scripts.&lt;/p&gt;
&lt;h3 id=&#34;2024-05-11-version-240511&#34;&gt;2024-05-11: Version 24.05.11&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed an issue where backup success would be reported when using a working directory and the final destination directory for the backup didn&amp;rsquo;t have enough disk space. From &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/27&#34;&gt;Issue 27&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h2&gt;
&lt;p&gt;If you would like to support me, please donate via paypal.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
</content:encoded>
        
        <media:content url="https://gal.vin//media/util-logos/hvbu.webp" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 24.03.21</title>
        <link>https://gal.vin/posts/2024/hyperv-backuputility-v24-03-21/</link>
        <pubDate>Thu, 21 Mar 2024 14:51:36 +0000</pubDate>
        
        <atom:modified>Thu, 21 Mar 2024 14:51:36 +0000</atom:modified>
        <guid>https://gal.vin/posts/2024/hyperv-backuputility-v24-03-21/</guid>
        <description>In this release I&amp;rsquo;ve added a new option to specify how the Export-VM function should capture the state of the VM, which should help with any VM freezes or lagging during export.
Many thanks to bacardischmal who brought this to my attention via GitHub Issue 34.
2024-03-21: Version 24.03.21  Added -CaptureState option for the user to specify the method that Export-VM uses to capture the state of the VM whilst running.</description>
        <content:encoded>&lt;p&gt;In this release I&amp;rsquo;ve added a new option to specify how the Export-VM function should capture the state of the VM, which should help with any VM freezes or lagging during export.&lt;/p&gt;
&lt;p&gt;Many thanks to &lt;a href=&#34;https://github.com/bacardischmal&#34;&gt;bacardischmal&lt;/a&gt; who brought this to my attention via GitHub &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/34&#34;&gt;Issue 34&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;2024-03-21-version-240321&#34;&gt;2024-03-21: Version 24.03.21&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added -CaptureState option for the user to specify the method that Export-VM uses to capture the state of the VM whilst running. From &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/34&#34;&gt;Issue 34&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h2&gt;
&lt;p&gt;If you would like to support me, please donate via paypal.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
</content:encoded>
        
        <media:content url="https://gal.vin//media/util-logos/hvbu.webp" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 24.03.18</title>
        <link>https://gal.vin/posts/2024/hyperv-backuputility-v24-03-18/</link>
        <pubDate>Mon, 18 Mar 2024 15:23:02 +0000</pubDate>
        
        <atom:modified>Mon, 18 Mar 2024 15:23:02 +0000</atom:modified>
        <guid>https://gal.vin/posts/2024/hyperv-backuputility-v24-03-18/</guid>
        <description>Update Summary This is a follow-up release with an important fix for users who password protect their 7-Zip archives. A user brought this is my attention on GitHub and contributed code via Issue 33.
My sincerest apologies for not catching this issue in the previous release. Many thanks to jlaraby for submitting the issue.
2024-03-18: Version 24.03.18  Added fix for verifying password protected 7-Zip archives from Issue 33  Hyper-V Backup Utility can be downloaded from:</description>
        <content:encoded>&lt;h2 id=&#34;update-summary&#34;&gt;Update Summary&lt;/h2&gt;
&lt;p&gt;This is a follow-up release with an important fix for users who password protect their 7-Zip archives. A user brought this is my attention on GitHub and contributed code via &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/33&#34;&gt;Issue 33&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My sincerest apologies for not catching this issue in the previous release. Many thanks to &lt;a href=&#34;https://github.com/jlaraby&#34;&gt;jlaraby&lt;/a&gt; for submitting the issue.&lt;/p&gt;
&lt;h3 id=&#34;2024-03-18-version-240318&#34;&gt;2024-03-18: Version 24.03.18&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added fix for verifying password protected 7-Zip archives from &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/33&#34;&gt;Issue 33&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h2&gt;
&lt;p&gt;If you would like to support me, please donate via paypal.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
</content:encoded>
        
        <media:content url="https://gal.vin//media/util-logos/hvbu.webp" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 24.03.08</title>
        <link>https://gal.vin/posts/2024/hyperv-backuputility-v24-03-08/</link>
        <pubDate>Mon, 11 Mar 2024 17:35:37 +0000</pubDate>
        
        <atom:modified>Mon, 11 Mar 2024 17:35:37 +0000</atom:modified>
        <guid>https://gal.vin/posts/2024/hyperv-backuputility-v24-03-08/</guid>
        <description>Update Summary This is a big update with many changes specifically around the creation and verification of 7-Zip archives and the handling of split 7-Zip archives when short dates are used. There were previously some issues around the script flagging failed backups as failed and successful at the same time.
My sincerest apologies for not releasing an update before now, finding time to focus on coding as well as finding work has been difficult.</description>
        <content:encoded>&lt;h2 id=&#34;update-summary&#34;&gt;Update Summary&lt;/h2&gt;
&lt;p&gt;This is a big update with many changes specifically around the creation and verification of 7-Zip archives and the handling of split 7-Zip archives when short dates are used. There were previously some issues around the script flagging failed backups as failed and successful at the same time.&lt;/p&gt;
&lt;p&gt;My sincerest apologies for not releasing an update before now, finding time to focus on coding as well as finding work has been difficult. Many thanks to everyone who has supported me and logged issues and suggestions for improvements. Your continued feedback is greatly appreciated!&lt;/p&gt;
&lt;h3 id=&#34;2024-03-08-version-240308&#34;&gt;2024-03-08: Version 24.03.08&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed 7-Zip split files getting renamed and not keeping file extensions when short dates are used.&lt;/li&gt;
&lt;li&gt;Added a verify operation for 7-Zip created archives as per &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/33&#34;&gt;Issue 33&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fixed an issue where failed backups where also listed as successful.&lt;/li&gt;
&lt;li&gt;Overhauled the backup success/fail checks. They now work a lot more reliably.&lt;/li&gt;
&lt;li&gt;Added check for the work dir/backup dir to exist before trying to remove as this caused a script error.&lt;/li&gt;
&lt;li&gt;Cleaned up console and log file output.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h2&gt;
&lt;p&gt;If you would like to support me, please donate via paypal.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
</content:encoded>
        
        <media:content url="https://gal.vin//media/util-logos/hvbu.webp" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>MDT Setup Script Update</title>
        <link>https://gal.vin/posts/2023/mdt-setup-script-update/</link>
        <pubDate>Sun, 02 Jul 2023 19:04:58 +0100</pubDate>
        
        <atom:modified>Sun, 02 Jul 2023 19:04:58 +0100</atom:modified>
        <guid>https://gal.vin/posts/2023/mdt-setup-script-update/</guid>
        <description>I&amp;rsquo;ve updated MDT Setup to support the latest Windows ADK and WinPE Add-on. The fixes are provided from metisit.com who has done a phenomenal amount of work digging into all the changes that the recent version of the Windows ADK brings. Please note that my script only makes changes to MDT and not WDS or Windows server.
For the full change log and more information, visit the home page for MDT Setup.</description>
        <content:encoded>&lt;p&gt;I&amp;rsquo;ve updated MDT Setup to support the latest Windows ADK and WinPE Add-on. The fixes are provided from &lt;a href=&#34;https://metisit.com/blog/microsoft-deployment-toolkit-mdt-configuration-with-unforeseen-challenges&#34;&gt;metisit.com&lt;/a&gt; who has done a phenomenal amount of work digging into all the changes that the recent version of the Windows ADK brings. Please note that my script only makes changes to MDT and not WDS or Windows server.&lt;/p&gt;
&lt;p&gt;For the full change log and more information, &lt;a href=&#34;https://gal.vin/utils/mdt-setup/&#34;&gt;visit the home page for MDT Setup.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;MDT-Setup is available from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/MDT-Setup&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/MDT-Setup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>Microsoft Deployment Toolkit</category>
            
          
            
              <category>Windows Deployment</category>
            
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 23.01.09</title>
        <link>https://gal.vin/posts/2023/hv-bu-v230109/</link>
        <pubDate>Sun, 08 Jan 2023 21:07:32 +0000</pubDate>
        
        <atom:modified>Sun, 08 Jan 2023 21:07:32 +0000</atom:modified>
        <guid>https://gal.vin/posts/2023/hv-bu-v230109/</guid>
        <description>Flexible Hyper-V Backup Utility Many thanks to everyone who has donated, sent me messages about bugs and suggestions for improvements. Your continued feedback is greatly appreciated!
This is a big update with many substantial changes to the code. I have tested it extensively but if a bug has slipped through please do not hesitate to contact me or open an issue on github.
Update Summary  The code has been refactored in many places and now uses functions for a lot of core operations which help greatly in maintaining it.</description>
        <content:encoded>&lt;h2 id=&#34;flexible-hyper-v-backup-utility&#34;&gt;Flexible Hyper-V Backup Utility&lt;/h2&gt;
&lt;p&gt;Many thanks to everyone who has donated, sent me messages about bugs and suggestions for improvements. Your continued feedback is greatly appreciated!&lt;/p&gt;
&lt;p&gt;This is a big update with many substantial changes to the code. I have tested it extensively but if a bug has slipped through please do not hesitate to contact me or open an issue on github.&lt;/p&gt;
&lt;h2 id=&#34;update-summary&#34;&gt;Update Summary&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The code has been refactored in many places and now uses functions for a lot of core operations which help greatly in maintaining it.&lt;/li&gt;
&lt;li&gt;Several improvements have been made. Some small, some large.&lt;/li&gt;
&lt;li&gt;Several new features have been added including a &amp;ldquo;low disk space&amp;rdquo; mode. In this mode previous backups are removed before new ones are made. There is more risk of data loss involved with this but this is now a choice you can make for yourself.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please see the complete release notes down below for all the details.&lt;/p&gt;
&lt;h2 id=&#34;2023-01-09-version-230109&#34;&gt;2023-01-09: Version 23.01.09&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Added script update checker - shows if an update is available in the log and console.&lt;/li&gt;
&lt;li&gt;Added VM restore instructions to readme.md.&lt;/li&gt;
&lt;li&gt;Added &amp;ldquo;low disk space&amp;rdquo; mode. -LowDisk switch deletes previous backup files and folders before backup for systems with low disk space. Default behaviour only removes backups after a successful backup has occurred.&lt;/li&gt;
&lt;li&gt;Added webhook option to send log file to. For Teams, Slack, Discord integration.&lt;/li&gt;
&lt;li&gt;Lot&amp;rsquo;s of refactored code using functions. Simpler, easier to manage. Long overdue.&lt;/li&gt;
&lt;li&gt;Fixed bug that started VMs that were shutdown.&lt;/li&gt;
&lt;li&gt;Changed &amp;ldquo;VM not running&amp;rdquo; from an error state to an informational state.&lt;/li&gt;
&lt;li&gt;Changed &amp;ldquo;Backup Success&amp;rdquo; to a success state (green text in console).&lt;/li&gt;
&lt;li&gt;Changed -NoPerms so that VMs are now saved instead of shutdown (safer, faster, does not require Hyper-V integrations)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h2&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        <media:content url="https://gal.vin//media/util-logos/hvbu.webp" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>MDT Setup - A script to make MDT deployment easy</title>
        <link>https://gal.vin/utils/mdt-setup/</link>
        <pubDate>Tue, 18 Oct 2022 22:01:00 +0100</pubDate>
        
        <atom:modified>Tue, 18 Oct 2022 22:01:00 +0100</atom:modified>
        <guid>https://gal.vin/utils/mdt-setup/</guid>
        <description>User configurable MDT setup script MDT-Setup is available from:
 GitHub The Microsoft PowerShell Gallery  Please consider supporting my work:
 Support with a one-time donation using PayPal.  Please report any problems via the ‘issues’ tab on GitHub.
-Mike
Features and Requirements  Designed to be run on Windows Server 2016+ The script must be run as an administrator. Tested with Windows PowerShell 5 (The version of PowerShell included with Windows Server 2016+) and PowerShell 7.</description>
        <content:encoded>&lt;h2 id=&#34;user-configurable-mdt-setup-script&#34;&gt;User configurable MDT setup script&lt;/h2&gt;
&lt;p&gt;MDT-Setup is available from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/MDT-Setup&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/MDT-Setup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please consider supporting my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support with a one-time donation using &lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please report any problems via the ‘issues’ tab on GitHub.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
&lt;h2 id=&#34;features-and-requirements&#34;&gt;Features and Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Designed to be run on Windows Server 2016+&lt;/li&gt;
&lt;li&gt;The script must be run as an administrator.&lt;/li&gt;
&lt;li&gt;Tested with Windows PowerShell 5 (The version of PowerShell included with Windows Server 2016+) and PowerShell 7.&lt;/li&gt;
&lt;li&gt;Tested on Windows Server 2022.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;usage-information&#34;&gt;Usage Information&lt;/h2&gt;
&lt;p&gt;This script will install and configure Microsoft Deployment Toolkit and its prerequisites on a Windows computer with an internet connection. It has been tested on a basic Windows Server 2022 Standard edition virtual machine.&lt;/p&gt;
&lt;p&gt;Here is what the script will do:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download the installers for Microsoft Deployment Toolkit, the latest MDT patch, the latest ADK and WinPE for ADK.&lt;/li&gt;
&lt;li&gt;Silently install all the above.&lt;/li&gt;
&lt;li&gt;Create an MDT deployment share(s) and the folder structure.&lt;/li&gt;
&lt;li&gt;Download Windows 10/11 from the Media Creation Tool (this requires some user input).&lt;/li&gt;
&lt;li&gt;Convert the Windows 10/11 install ESD to a WIM file for MDT and import it.&lt;/li&gt;
&lt;li&gt;Create Package folders and Selection Profiles for Windows 10/11.&lt;/li&gt;
&lt;li&gt;Import Task Sequence templates.&lt;/li&gt;
&lt;li&gt;Set the configuration of CustomSettings.ini for the share(s).&lt;/li&gt;
&lt;li&gt;Generate the boot media.&lt;/li&gt;
&lt;li&gt;Create Package and Driver folders and Selection Profiles.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When complete the server will be configured to be able to deploy a Windows 10/11 image. There is an option to create a &amp;ldquo;Build and Capture&amp;rdquo; environment to create a gold image for Windows 10/11. Once captured the image can then be imported into the Deployment share and create a Task Sequence using the template included.&lt;/p&gt;
&lt;p&gt;Some user interaction is still required. For example: importing drivers, adding applications and other things specific to the images you want to deploy.&lt;/p&gt;
&lt;h2 id=&#34;user-preferences&#34;&gt;User Preferences&lt;/h2&gt;
&lt;p&gt;When you run the script it will ask you a series of questions to customise your installation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows version and update code (e.g. W10-22H2)&lt;/li&gt;
&lt;li&gt;Download and convert Windows ESD, edition, language&lt;/li&gt;
&lt;li&gt;Optional Build share path (e.g. C:\BuildShare)&lt;/li&gt;
&lt;li&gt;Optional Build share name (e.g. BuildShare$)&lt;/li&gt;
&lt;li&gt;Deploy share path (e.g. C:\DeployShare)&lt;/li&gt;
&lt;li&gt;Deploy share name (e.g. DeployShare$)&lt;/li&gt;
&lt;li&gt;Time zone name for the deployed image (e.g. GMT Standard Time)&lt;/li&gt;
&lt;li&gt;Keyboard locale code for the deployed image (e.g. 0809:00000809) Please see &lt;a href=&#34;https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-input-locales-for-windows-language-packs?view=windows-11&#34;&gt;Microsoft Docs for all the input locales&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Keyboard locale name for the deployed image (e.g. en-GB)&lt;/li&gt;
&lt;li&gt;Windows UI language for the deployed image (e.g. en-GB)&lt;/li&gt;
&lt;li&gt;Windows user language for the deployed image (e.g. en-GB)&lt;/li&gt;
&lt;li&gt;Domain group for MDT Admins (e.g. mdt-admins)&lt;/li&gt;
&lt;li&gt;Domain user for domain join (e.g. djoin)&lt;/li&gt;
&lt;li&gt;Domain password for above user (e.g. p@ssw0rD)&lt;/li&gt;
&lt;li&gt;Domain name for above user (e.g. contoso.com)&lt;/li&gt;
&lt;li&gt;OU for new PC account (e.g. OU=PCs,DC=contoso,DC=com)&lt;/li&gt;
&lt;li&gt;WSUS server name and port (e.g. WSUS-Srv:8530)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;how-to-use&#34;&gt;How to use&lt;/h2&gt;
&lt;p&gt;Create a folder on a local disk and put the script inside it.&lt;/p&gt;
&lt;p&gt;Run From PowerShell:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;[path to script]\MDT-Setup.ps1
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This will run the script, user interaction is required to continue.&lt;/p&gt;
&lt;h2 id=&#34;change-log&#34;&gt;Change Log&lt;/h2&gt;
&lt;h3 id=&#34;2023-12-04-version-231204&#34;&gt;2023-12-04: Version 23.12.04&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added option to create a single deployment share for those who do not want to build a gold image.&lt;/li&gt;
&lt;li&gt;Updated Windows 11 Media Creation Tool link to get version 23H2.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2023-08-04-version-230804&#34;&gt;2023-08-04: Version 23.08.04&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed an issue with the device path of a mounted ISO file being hardcoded. It is now dynamic.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2023-07-02-version-230702&#34;&gt;2023-07-02: Version 23.07.02&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The latest version of the Windows ADK and Win PE ADK add-on are now installed. Please note that x86 boot media is now not available due to the new ADK not supporting the architecture.&lt;/li&gt;
&lt;li&gt;Added fixes for the latest version of Windows ADK from: &lt;a href=&#34;https://metisit.com/blog/microsoft-deployment-toolkit-mdt-configuration-with-unforeseen-challenges&#34;&gt;metisit.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2023-06-23-version-230623&#34;&gt;2023-06-23: Version 23.06.23&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed an issue where the Windows ISO file name was hard coded.&lt;/li&gt;
&lt;li&gt;Reordered the process so all the user interaction is done up front. When user interaction is complete, you will be told to go make coffee.&lt;/li&gt;
&lt;li&gt;Cleaned up the output to be more readable.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-12-02-version-221202&#34;&gt;2022-12-02: Version 22.12.02&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added text notification when there is no update available.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-11-29-version-221129&#34;&gt;2022-11-29: Version 22.11.29&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added option to check for updates to the script.&lt;/li&gt;
&lt;li&gt;Fixed permissions not being set on the build and deployment shares.&lt;/li&gt;
&lt;li&gt;Script now asks for a domain group to be used for MDT Administrators.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-10-18-version-221018&#34;&gt;2022-10-18: Version 22.10.18&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for Windows 10 22H2&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-09-20-version-220920&#34;&gt;2022-09-20: Version 22.09.20&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed option to enter a key to download Windows as it isn&amp;rsquo;t really needed. The provided generic key works just fine.&lt;/li&gt;
&lt;li&gt;Removed option to choose the edition of Windows as it will become the version that the user is licensed for when activation occurs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-08-16-version-220816&#34;&gt;2022-08-16: Version 22.08.16&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added support for Windows 11&lt;/li&gt;
&lt;li&gt;Streamlined some locale options so the user isn&amp;rsquo;t prompted so much for the same information.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-07-26-version-220726&#34;&gt;2022-07-26: Version 22.07.26&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Initial release&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>Microsoft Deployment Toolkit</category>
            
          
            
              <category>Windows Deployment</category>
            
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Office Update Utility - Update 22.07.30</title>
        <link>https://gal.vin/posts/2022/off-uu-v220730/</link>
        <pubDate>Sun, 31 Jul 2022 16:06:07 +0100</pubDate>
        
        <atom:modified>Sun, 31 Jul 2022 16:06:07 +0100</atom:modified>
        <guid>https://gal.vin/posts/2022/off-uu-v220730/</guid>
        <description>Version 22.07.30 Changes:
 Changed how the removal of old update files is done. Old versions will be removed regardless, -Days option has been removed.  Office Update Utility is available from:
 GitHub The Microsoft PowerShell Gallery  For full change log and more information, visit my site.
Support My Work  PayPal  If you have any questions or comments, please leave them below.
-Mike</description>
        <content:encoded>&lt;h2 id=&#34;version-220730&#34;&gt;Version 22.07.30&lt;/h2&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Changed how the removal of old update files is done. Old versions will be removed regardless, -Days option has been removed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Office Update Utility is available from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Office-Update&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Office-Update&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For full change log and more information, &lt;a href=&#34;https://gal.vin/utils/office-update-utility/&#34;&gt;visit my site.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        <media:content url="https://gal.vin//media/util-logos/oou.webp" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>Microsoft 365 Apps</category>
            
          
            
              <category>Microsoft Office</category>
            
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>PowerShell Utilities Update</title>
        <link>https://gal.vin/posts/2022/posh-utilities-update/</link>
        <pubDate>Tue, 14 Jun 2022 22:07:39 +0100</pubDate>
        
        <atom:modified>Tue, 14 Jun 2022 22:07:39 +0100</atom:modified>
        <guid>https://gal.vin/posts/2022/posh-utilities-update/</guid>
        <description>The following Utilities have all received major updates:
Hyper-V Backup Utility
Image Factory Utility
Internet Access Control Utility
Log Manager Utility
Logon Audit Utility
Office Update Utility
On-Prem AD User Creator Utility
Remove MS Store Apps Utility
WSUS Maintenance Utility
Changes  Added checks and balances to help with configuration as I&amp;rsquo;m very aware that the initial configuration can be troublesome. Running the utility manually is a lot more friendly and step-by-step now.</description>
        <content:encoded>&lt;p&gt;The following Utilities have all received major updates:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;Hyper-V Backup Utility&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://gal.vin/utils/image-factory-utility/&#34;&gt;Image Factory Utility&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://gal.vin/utils/internet-access-control-utility/&#34;&gt;Internet Access Control Utility&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://gal.vin/utils/log-manager-utility/&#34;&gt;Log Manager Utility&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://gal.vin/utils/logon-audit-utility/&#34;&gt;Logon Audit Utility&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://gal.vin/utils/office-update-utility/&#34;&gt;Office Update Utility&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://gal.vin/utils/on-prem-ad-user-creator-utility/&#34;&gt;On-Prem AD User Creator Utility&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://gal.vin/utils/remove-ms-store-apps-utility/&#34;&gt;Remove MS Store Apps Utility&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://gal.vin/utils/wsus-maint-utility/&#34;&gt;WSUS Maintenance Utility&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;changes&#34;&gt;Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Added checks and balances to help with configuration as I&amp;rsquo;m very aware that the initial configuration can be troublesome. Running the utility manually is a lot more friendly and step-by-step now.&lt;/li&gt;
&lt;li&gt;Added -Help to give usage instructions in the terminal. Running the script with no options will also trigger the -help switch.&lt;/li&gt;
&lt;li&gt;Cleaned user entered paths so that trailing slashes no longer break things or have otherwise unintended results.&lt;/li&gt;
&lt;li&gt;Added -LogRotate [days] to removed old logs created by the utility.&lt;/li&gt;
&lt;li&gt;Streamlined config report so non configured options are not shown.&lt;/li&gt;
&lt;li&gt;Added donation link to the ASCII banner.&lt;/li&gt;
&lt;li&gt;Cleaned up code, removed unneeded log noise.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Specific changes and fixes are listed on the specific page for the Utility.&lt;/p&gt;
&lt;h2 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h2&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Remove MS Store Apps - Update 22.04.26</title>
        <link>https://gal.vin/posts/2022/rem-store-apps-v220426/</link>
        <pubDate>Mon, 25 Apr 2022 23:48:09 +0100</pubDate>
        
        <atom:modified>Mon, 25 Apr 2022 23:48:09 +0100</atom:modified>
        <guid>https://gal.vin/posts/2022/rem-store-apps-v220426/</guid>
        <description>Version 22.04.26 Changes:
 Added -PCApps switch to list all MS Store apps on the system. Added -UserApps switch to list all MS Store apps installed for the user. Added -Help to give usage instructions in the terminal. Also running the script with no options will also trigger the -help switch. Streamlined config report so non configured options are not shown.  Remove MS Store Apps Utility can also be downloaded from:</description>
        <content:encoded>&lt;h2 id=&#34;version-220426&#34;&gt;Version 22.04.26&lt;/h2&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added -PCApps switch to list all MS Store apps on the system.&lt;/li&gt;
&lt;li&gt;Added -UserApps switch to list all MS Store apps installed for the user.&lt;/li&gt;
&lt;li&gt;Added -Help to give usage instructions in the terminal. Also running the script with no options will also trigger the -help switch.&lt;/li&gt;
&lt;li&gt;Streamlined config report so non configured options are not shown.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Remove MS Store Apps Utility can also be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Remove-MS-Store-Apps&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Remove-Win10-Apps&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/remove-ms-store-apps-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h2&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        <media:content url="https://gal.vin//media/util-logos/rsau.webp" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>Microsoft Store Apps</category>
            
          
            
              <category>PowerShell</category>
            
          
            
              <category>PowerShell Utility</category>
            
          
            
              <category>Windows 10</category>
            
          
            
              <category>Windows 11</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Remove MS Store Apps - Update 22.04.22</title>
        <link>https://gal.vin/posts/2022/rem-store-apps-v220422/</link>
        <pubDate>Sat, 23 Apr 2022 00:15:12 +0100</pubDate>
        
        <atom:modified>Sat, 23 Apr 2022 00:15:12 +0100</atom:modified>
        <guid>https://gal.vin/posts/2022/rem-store-apps-v220422/</guid>
        <description>Version 22.04.22 Changes:
 If the -WimMountPath is not configured by the user then the default Windows temp folder will be used instead. If the -WimMountPath is configured by the user but the path does not exist, it will be created. Added a -LogRotate option to delete logs older than X number of days.  Remove MS Store Apps Utility can also be downloaded from:
 GitHub The Microsoft PowerShell Gallery  See the full documentation available here.</description>
        <content:encoded>&lt;h2 id=&#34;version-220422&#34;&gt;Version 22.04.22&lt;/h2&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If the -WimMountPath is not configured by the user then the default Windows temp folder will be used instead.&lt;/li&gt;
&lt;li&gt;If the -WimMountPath is configured by the user but the path does not exist, it will be created.&lt;/li&gt;
&lt;li&gt;Added a -LogRotate option to delete logs older than X number of days.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Remove MS Store Apps Utility can also be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Remove-MS-Store-Apps&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Remove-Win10-Apps&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/remove-ms-store-apps-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h2&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        <media:content url="https://gal.vin//media/util-logos/rsau.webp" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>Microsoft Store Apps</category>
            
          
            
              <category>PowerShell</category>
            
          
            
              <category>PowerShell Utility</category>
            
          
            
              <category>Windows 10</category>
            
          
            
              <category>Windows 11</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Remove MS Store Apps - Update 22.03.27</title>
        <link>https://gal.vin/posts/2022/rem-store-apps-v220327/</link>
        <pubDate>Sun, 27 Mar 2022 03:50:31 +0100</pubDate>
        
        <atom:modified>Sun, 27 Mar 2022 03:50:31 +0100</atom:modified>
        <guid>https://gal.vin/posts/2022/rem-store-apps-v220327/</guid>
        <description>Version 22.03.27 Small update, the utility now ignores blanks lines in Apps list file.
Remove MS Store Apps Utility can also be downloaded from:
 GitHub The Microsoft PowerShell Gallery  See the full documentation available here.
Support My Work If you would like to support me, please check out the link below.
 PayPal  If you have any questions or comments, please leave them below.
-Mike</description>
        <content:encoded>&lt;h2 id=&#34;version-220327&#34;&gt;Version 22.03.27&lt;/h2&gt;
&lt;p&gt;Small update, the utility now ignores blanks lines in Apps list file.&lt;/p&gt;
&lt;p&gt;Remove MS Store Apps Utility can also be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Remove-MS-Store-Apps&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Remove-Win10-Apps&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/remove-ms-store-apps-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h2&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        <media:content url="https://gal.vin//media/util-logos/rsau.webp" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>Microsoft Store Apps</category>
            
          
            
              <category>PowerShell</category>
            
          
            
              <category>PowerShell Utility</category>
            
          
            
              <category>Windows 10</category>
            
          
            
              <category>Windows 11</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 22.03.26</title>
        <link>https://gal.vin/posts/2022/hv-bu-v220326/</link>
        <pubDate>Sun, 27 Mar 2022 03:13:28 +0100</pubDate>
        
        <atom:modified>Sun, 27 Mar 2022 03:13:28 +0100</atom:modified>
        <guid>https://gal.vin/posts/2022/hv-bu-v220326/</guid>
        <description>Version 22.03.26 Made a small fix to the &amp;lsquo;NoPerms&amp;rsquo; function: The VM will be left in the state it was found. For example, when a VM is found in an offline state, the script will not start the VM once the backup is complete. In the previous version the VM would be started regardless of what state it was in previously.
Hyper-V Backup Utility can be downloaded from:
 GitHub The Microsoft PowerShell Gallery  See the full documentation available here.</description>
        <content:encoded>&lt;h2 id=&#34;version-220326&#34;&gt;Version 22.03.26&lt;/h2&gt;
&lt;p&gt;Made a small fix to the &amp;lsquo;NoPerms&amp;rsquo; function: The VM will be left in the state it was found. For example, when a VM is found in an offline state, the script will not start the VM once the backup is complete. In the previous version the VM would be started regardless of what state it was in previously.&lt;/p&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h2&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        <media:content url="https://gal.vin//media/util-logos/hvbu.webp" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 22.02.08</title>
        <link>https://gal.vin/posts/2022/hv-bu-v220208/</link>
        <pubDate>Wed, 09 Feb 2022 00:30:30 +0000</pubDate>
        
        <atom:modified>Wed, 09 Feb 2022 00:30:30 +0000</atom:modified>
        <guid>https://gal.vin/posts/2022/hv-bu-v220208/</guid>
        <description>Version 22.02.08 Added fix for potential BSOD on Windows Server 2016 Hyper-V host when exporting VMs using VSS. The change to the registry will only happen if Windows Server 2016 is detected as the Hyper-V host and only if the registry value is in the default state. If it has been configured previously no change will be made. Issue #17 on GitHub
Thanks to the person who opened the issue on GitHub.</description>
        <content:encoded>&lt;h2 id=&#34;version-220208&#34;&gt;Version 22.02.08&lt;/h2&gt;
&lt;p&gt;Added fix for potential BSOD on Windows Server 2016 Hyper-V host when exporting VMs using VSS. The change to the registry will only happen if Windows Server 2016 is detected as the Hyper-V host and only if the registry value is in the default state. If it has been configured previously no change will be made. &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/17&#34;&gt;Issue #17 on GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks to the person who opened the issue on GitHub.&lt;/p&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h2&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        <media:content url="https://gal.vin//media/util-logos/hvbu.webp" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 22.01.19</title>
        <link>https://gal.vin/posts/2022/hv-bu-v220119/</link>
        <pubDate>Thu, 20 Jan 2022 13:27:36 +0000</pubDate>
        
        <atom:modified>Thu, 20 Jan 2022 13:27:36 +0000</atom:modified>
        <guid>https://gal.vin/posts/2022/hv-bu-v220119/</guid>
        <description>Flexible Hyper-V Backup Utility This update has substantial under-the-hood changes which may extend the length of time required to backup if you are using the -NoPerms. This is due to the addition of a check for the VM to be in a desired state of &amp;lsquo;off&amp;rsquo; and with a status of &amp;lsquo;Operating normally&amp;rsquo;. In short if a VM is merging disks after a shutdown the script will now wait until that is complete before continuing.</description>
        <content:encoded>&lt;h2 id=&#34;flexible-hyper-v-backup-utility&#34;&gt;Flexible Hyper-V Backup Utility&lt;/h2&gt;
&lt;p&gt;This update has substantial under-the-hood changes which may extend the length of time required to backup if you are using the -NoPerms. This is due to the addition of a check for the VM to be in a desired state of &amp;lsquo;off&amp;rsquo; and with a status of &amp;lsquo;Operating normally&amp;rsquo;. In short if a VM is merging disks after a shutdown the script will now wait until that is complete before continuing. This is due to &amp;lsquo;merging disks&amp;rsquo; being a &amp;lsquo;status&amp;rsquo; flag and not a &amp;lsquo;state&amp;rsquo; flag in Hyper-V.&lt;/p&gt;
&lt;p&gt;Additional checks have been put in place to ensure that a backup has succeeded before continuing with any removal of old files. If an error is encountered the utility will move on to the next VM.&lt;/p&gt;
&lt;p&gt;Finally, when using a VMs list file if there were empty lines the utility would attempted to backup a VM with nothing as the name. This could also lead to entire directories being deleted in error. The list file is now &amp;ldquo;cleaned&amp;rdquo; of empty lines on load. With this change and the above changes data loss should be less likely now. This utility is supposed to save data not remove it. :)&lt;/p&gt;
&lt;p&gt;Many thanks to people who opened issues in GitHub and helped me make this tool more robust.&lt;/p&gt;
&lt;h2 id=&#34;2022-01-20-version-220119&#34;&gt;2022-01-20: Version 22.01.19&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Added additional checks for success or failure in the backup, copy/compression process. If it fails none of the previous backups should be removed.&lt;/li&gt;
&lt;li&gt;When using -NoPerms the utility now waits for disk merging to complete before backing up.&lt;/li&gt;
&lt;li&gt;Utility now ignores blank lines in VM list file.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h2&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        <media:content url="https://gal.vin//media/util-logos/hvbu.webp" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Image Factory Utility - Update 21.12.02</title>
        <link>https://gal.vin/posts/2021/imgfac-v211202/</link>
        <pubDate>Thu, 02 Dec 2021 16:17:17 +0000</pubDate>
        
        <atom:modified>Thu, 02 Dec 2021 16:17:17 +0000</atom:modified>
        <guid>https://gal.vin/posts/2021/imgfac-v211202/</guid>
        <description>Automate Creation of WIM Files This is the initial release of a new version of my Image Factory Utility with support for Oracle Virtual Box. I&amp;rsquo;ve tested it myself, but there may be issues on other setups, so I&amp;rsquo;d be interested in hearing if anyone has problems when using Virtual Box.
2021-12-02: Version 21.12.01  Added option to use Oracle Virtual Box instead of Hyper-V. Configured logs path now is created, if it does not exist.</description>
        <content:encoded>&lt;h3 id=&#34;automate-creation-of-wim-files&#34;&gt;Automate Creation of WIM Files&lt;/h3&gt;
&lt;p&gt;This is the initial release of a new version of my Image Factory Utility with support for Oracle Virtual Box. I&amp;rsquo;ve tested it myself, but there may be issues on other setups, so I&amp;rsquo;d be interested in hearing if anyone has problems when using Virtual Box.&lt;/p&gt;
&lt;h3 id=&#34;2021-12-02-version-211201&#34;&gt;2021-12-02: Version 21.12.01&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added option to use Oracle Virtual Box instead of Hyper-V.&lt;/li&gt;
&lt;li&gt;Configured logs path now is created, if it does not exist.&lt;/li&gt;
&lt;li&gt;Added OS version info.&lt;/li&gt;
&lt;li&gt;Added an option to specify the Port for SMTP communication.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Image Factory Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Image-Factory&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Image-Factory&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/image-factory-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h3&gt;
&lt;p&gt;Please consider supporting my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support with a one-time payment using &lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>On-Prem AD User Creator Utility - Update 21.09.20</title>
        <link>https://gal.vin/posts/2021/aducu-v210920/</link>
        <pubDate>Tue, 21 Sep 2021 02:13:45 +0100</pubDate>
        
        <atom:modified>Tue, 21 Sep 2021 02:13:45 +0100</atom:modified>
        <guid>https://gal.vin/posts/2021/aducu-v210920/</guid>
        <description>Configurable Script for Creating On-Prem Active Directory User Accounts I&amp;rsquo;ve completely re-written this utility to make it easier and simpler to use. You can now configure multiple groups for the users to be added to on creation and the sam account names are generated randomly from the names list CSV file.
The utility is intended to create a lot of users very quickly. By default usernames are first name and a three digit number and passwords are also generated randomly by the script.</description>
        <content:encoded>&lt;h3 id=&#34;configurable-script-for-creating-on-prem-active-directory-user-accounts&#34;&gt;Configurable Script for Creating On-Prem Active Directory User Accounts&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve completely re-written this utility to make it easier and simpler to use. You can now configure multiple groups for the users to be added to on creation and the sam account names are generated randomly from the names list CSV file.&lt;br /&gt;
The utility is intended to create a lot of users very quickly. By default usernames are first name and a three digit number and passwords are also generated randomly by the script. If your environment has different requirements, edits will be needed to the code.&lt;/p&gt;
&lt;h3 id=&#34;change-log&#34;&gt;Change Log&lt;/h3&gt;
&lt;h3 id=&#34;2021-09-20-version-210920&#34;&gt;2021-09-20: Version 21.09.20&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added code to make sure sam account name will never be more than 19 characters, due to the default sam account name length being 20 characters.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-09-15-version-210915&#34;&gt;2021-09-15: Version 21.09.15&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Completely rewritten to streamline the user creation process.&lt;/li&gt;
&lt;li&gt;User passwords are now randomly generated.&lt;/li&gt;
&lt;li&gt;Added option to add users to multiple groups.&lt;/li&gt;
&lt;li&gt;Utility will find groups based on the AD name. No more having to specify the whole DN.&lt;/li&gt;
&lt;li&gt;Added ASCII banner art when run in the console.&lt;/li&gt;
&lt;li&gt;Added option to disable the ASCII banner art.&lt;/li&gt;
&lt;li&gt;Added an option to specify the Port for SMTP communication.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;download&#34;&gt;Download&lt;/h3&gt;
&lt;p&gt;On-Prem AD User Creator Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/On-Prem-AD-User-Creator-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/on-prem-ad-user-creator-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h3&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 21.08.10</title>
        <link>https://gal.vin/posts/2021/hv-bu-v210810/</link>
        <pubDate>Tue, 10 Aug 2021 16:13:11 +0100</pubDate>
        
        <atom:modified>Tue, 10 Aug 2021 16:13:11 +0100</atom:modified>
        <guid>https://gal.vin/posts/2021/hv-bu-v210810/</guid>
        <description>Flexible Hyper-V Backup Utility I&amp;rsquo;ve (finally) added the option to specify the port for the SMTP server. If not configured it will use the default of port 25.
2021-08-10: Version 21.08.10  Added an option to specify the Port for SMTP communication.  Hyper-V Backup Utility can be downloaded from:
 The Microsoft PowerShell Gallery GitHub  See the full documentation available here.
Support My Work If you would like to support me, please check out the link below.</description>
        <content:encoded>&lt;h3 id=&#34;flexible-hyper-v-backup-utility&#34;&gt;Flexible Hyper-V Backup Utility&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve (finally) added the option to specify the port for the SMTP server. If not configured it will use the default of port 25.&lt;/p&gt;
&lt;h3 id=&#34;2021-08-10-version-210810&#34;&gt;2021-08-10: Version 21.08.10&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added an option to specify the Port for SMTP communication.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h3&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 21.07.02</title>
        <link>https://gal.vin/posts/2021/hv-bu-v210703/</link>
        <pubDate>Sat, 03 Jul 2021 10:30:26 +0100</pubDate>
        
        <atom:modified>Sat, 03 Jul 2021 10:30:26 +0100</atom:modified>
        <guid>https://gal.vin/posts/2021/hv-bu-v210703/</guid>
        <description>Flexible Hyper-V Backup Utility Since implementing support for 7-Zip it has added a whole load of additional possibilities to test for. This has created some difficulties for me, however I have been hard at work and have believe I&amp;rsquo;ve tackled the problem by introducing a formal testing process (and mostly automated it) in order to test some popular possible configs. You should be able to use any option that 7-zip supports, although currently the only options I&amp;rsquo;ve tested fully are &amp;lsquo;-t&amp;rsquo; archive type, &amp;lsquo;-p&amp;rsquo; password and &amp;lsquo;-v&amp;rsquo; split files.</description>
        <content:encoded>&lt;h3 id=&#34;flexible-hyper-v-backup-utility&#34;&gt;Flexible Hyper-V Backup Utility&lt;/h3&gt;
&lt;p&gt;Since implementing support for 7-Zip it has added a whole load of additional possibilities to test for. This has created some difficulties for me, however I have been hard at work and have believe I&amp;rsquo;ve tackled the problem by introducing a formal testing process (and mostly automated it) in order to test some popular possible configs. You should be able to use any option that 7-zip supports, although currently the only options I&amp;rsquo;ve tested fully are &amp;lsquo;-t&amp;rsquo; archive type, &amp;lsquo;-p&amp;rsquo; password and &amp;lsquo;-v&amp;rsquo; split files.&lt;/p&gt;
&lt;p&gt;As always if you encounter any problems, please reach out to me at the links below and I&amp;rsquo;ll provide support.&lt;/p&gt;
&lt;h3 id=&#34;2021-07-02-version-210702&#34;&gt;2021-07-02: Version 21.07.02&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed many bugs introduced with implementing more 7-zip options. 7-zip options I&amp;rsquo;ve tested fully are &amp;lsquo;-t&amp;rsquo; archive type, &amp;lsquo;-p&amp;rsquo; password and &amp;lsquo;-v&amp;rsquo; split files.&lt;/li&gt;
&lt;li&gt;Implemented and automated a formal testing process.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h3&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Image Factory Utility - Update 21.06.22</title>
        <link>https://gal.vin/posts/2021/imgfac-v210622/</link>
        <pubDate>Tue, 22 Jun 2021 23:01:05 +0100</pubDate>
        
        <atom:modified>Tue, 22 Jun 2021 23:01:05 +0100</atom:modified>
        <guid>https://gal.vin/posts/2021/imgfac-v210622/</guid>
        <description>Automate Creation of WIM Files Just a small update to this utility. Some tidying up of code and added a progression bar so you can see at a glance how far through the list of TS ID&amp;rsquo;s the script is.
2021-06-22: Version 21.06.22  Added a progression bar display. Changed a variable to prevent conflicts with future PowerShell versions.  Image Factory Utility can be downloaded from:
 The Microsoft PowerShell Gallery GitHub  See the full documentation available here.</description>
        <content:encoded>&lt;h3 id=&#34;automate-creation-of-wim-files&#34;&gt;Automate Creation of WIM Files&lt;/h3&gt;
&lt;p&gt;Just a small update to this utility. Some tidying up of code and added a progression bar so you can see at a glance how far through the list of TS ID&amp;rsquo;s the script is.&lt;/p&gt;
&lt;h3 id=&#34;2021-06-22-version-210622&#34;&gt;2021-06-22: Version 21.06.22&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added a progression bar display.&lt;/li&gt;
&lt;li&gt;Changed a variable to prevent conflicts with future PowerShell versions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Image Factory Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Image-Factory&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Image-Factory&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/image-factory-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h3&gt;
&lt;p&gt;Please consider supporting my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support with a one-time payment using &lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 21.06.14</title>
        <link>https://gal.vin/posts/2021/hv-bu-v210614/</link>
        <pubDate>Mon, 14 Jun 2021 22:28:51 +0100</pubDate>
        
        <atom:modified>Mon, 14 Jun 2021 22:28:51 +0100</atom:modified>
        <guid>https://gal.vin/posts/2021/hv-bu-v210614/</guid>
        <description>Flexible Hyper-V Backup Utility Just a small update to add the ability to use any 7-zip command line option with the utility.
2021-06-14: Version 21.06.14  Replaced -Sz* specific options with -SzOptions which will support any option that 7-zip supports.  Hyper-V Backup Utility can be downloaded from:
 The Microsoft PowerShell Gallery GitHub  See the full documentation available here.
Support My Work If you would like to support me, please check out the link below.</description>
        <content:encoded>&lt;h3 id=&#34;flexible-hyper-v-backup-utility&#34;&gt;Flexible Hyper-V Backup Utility&lt;/h3&gt;
&lt;p&gt;Just a small update to add the ability to use any 7-zip command line option with the utility.&lt;/p&gt;
&lt;h3 id=&#34;2021-06-14-version-210614&#34;&gt;2021-06-14: Version 21.06.14&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Replaced -Sz* specific options with -SzOptions which will support any option that 7-zip supports.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h3&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 21.06.02</title>
        <link>https://gal.vin/posts/2021/hv-bu-v210602/</link>
        <pubDate>Wed, 02 Jun 2021 12:35:58 +0100</pubDate>
        
        <atom:modified>Wed, 02 Jun 2021 12:35:58 +0100</atom:modified>
        <guid>https://gal.vin/posts/2021/hv-bu-v210602/</guid>
        <description>Flexible Hyper-V Backup Utility A bug fix update. When using archive types other than zip, the backup files were not being moved from the working directory to the final backup location. Thanks to @gabfot1 on Twitter for the bug report.
2021-06-02: Version 21.06.02  Fixed an error where file types which are not .zip were not being moved from the working directory to the final backup location.  Hyper-V Backup Utility can be downloaded from:</description>
        <content:encoded>&lt;h3 id=&#34;flexible-hyper-v-backup-utility&#34;&gt;Flexible Hyper-V Backup Utility&lt;/h3&gt;
&lt;p&gt;A bug fix update. When using archive types other than zip, the backup files were not being moved from the working directory to the final backup location. Thanks to @gabfot1 on Twitter for the bug report.&lt;/p&gt;
&lt;h3 id=&#34;2021-06-02-version-210602&#34;&gt;2021-06-02: Version 21.06.02&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed an error where file types which are not .zip were not being moved from the working directory to the final backup location.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h3&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 21.05.30</title>
        <link>https://gal.vin/posts/2021/hv-bu-v210530/</link>
        <pubDate>Sun, 30 May 2021 18:59:30 +0100</pubDate>
        
        <atom:modified>Sun, 30 May 2021 18:59:30 +0100</atom:modified>
        <guid>https://gal.vin/posts/2021/hv-bu-v210530/</guid>
        <description>Flexible Hyper-V Backup Utility Another substantial update. I&amp;rsquo;ve added the ability to support 7-Zip&amp;rsquo;s split file function and due to wanting to support for 7-Zip&amp;rsquo;s other file formats I&amp;rsquo;ve had to make the difficult decision to alter how the configuration switches are handled. This means that this updated script may not be a simple drop in replacement if you are using a previous version with 7-Zip features.
The biggest change is that when using 7-Zip features you will need to add an additional hyphen &amp;lsquo;-&amp;rsquo; to the configuration.</description>
        <content:encoded>&lt;h3 id=&#34;flexible-hyper-v-backup-utility&#34;&gt;Flexible Hyper-V Backup Utility&lt;/h3&gt;
&lt;p&gt;Another substantial update. I&amp;rsquo;ve added the ability to support 7-Zip&amp;rsquo;s split file function and due to wanting to support for 7-Zip&amp;rsquo;s other file formats I&amp;rsquo;ve had to make the difficult decision to alter how the configuration switches are handled. This means that this updated script may not be a simple drop in replacement if you are using a previous version with 7-Zip features.&lt;/p&gt;
&lt;p&gt;The biggest change is that when using 7-Zip features you will need to add an additional hyphen &amp;lsquo;-&amp;rsquo; to the configuration. For example, to configure the number of threads that 7-Zip uses for compression you will now need to enter &lt;code&gt;-SzThreads -mmt4&lt;/code&gt; otherwise the script will throw an error.&lt;/p&gt;
&lt;h3 id=&#34;2021-07-13-version-210530&#34;&gt;2021-07-13: Version 21.05.30&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added additional 7-Zip options. -SzSplit to split archives into configuration volumes.&lt;/li&gt;
&lt;li&gt;Changed existing switches for 7-Zip options. Users must now add an additional hyphen &amp;lsquo;-&amp;rsquo; for 7-Zip options. This has been done to better support features that 7-Zip supports.&lt;/li&gt;
&lt;li&gt;Changed how old files are removed. Users should take extra care if they are storing non back-up files in the backup location. This has been done so that 7-Zip&amp;rsquo;s split function can be supported.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;support-my-work&#34;&gt;Support My Work&lt;/h3&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Log Manager Utility - Update 20.07.27</title>
        <link>https://gal.vin/posts/old/log-manager-utility-update-20-07-27/</link>
        <pubDate>Thu, 30 Jul 2020 17:59:52 +0000</pubDate>
        
        <atom:modified>Thu, 30 Jul 2020 17:59:52 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/log-manager-utility-update-20-07-27/</guid>
        <description>Flexible clean up and backup of log files Just a small update to add the improved error capturing and reporting that I&amp;rsquo;ve also put in the Hyper-V Backup Utility.
2020-07-30: Version 20.07.27  Added improved error handling and reporting.  Log Manager Utility can also be downloaded from:
 The Microsoft PowerShell Gallery GitHub  See the full documentation available here.
If you would like to support me, please check out the link below.</description>
        <content:encoded>&lt;h3 id=&#34;flexible-clean-up-and-backup-of-log-files&#34;&gt;Flexible clean up and backup of log files&lt;/h3&gt;
&lt;p&gt;Just a small update to add the improved error capturing and reporting that I&amp;rsquo;ve also put in the Hyper-V Backup Utility.&lt;/p&gt;
&lt;h3 id=&#34;2020-07-30-version-200727&#34;&gt;2020-07-30: Version 20.07.27&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added improved error handling and reporting.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Log Manager Utility&lt;/em&gt; can also be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Log-Manager&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Log-Manager&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/log-manager-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 20.07.13</title>
        <link>https://gal.vin/posts/old/hyper-v-backup-utility-update/</link>
        <pubDate>Mon, 13 Jul 2020 17:30:05 +0000</pubDate>
        
        <atom:modified>Mon, 13 Jul 2020 17:30:05 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/hyper-v-backup-utility-update/</guid>
        <description>Flexible Hyper-V Backup Utility A substantial update in terms of changes made under the hood, but I&amp;rsquo;ve also added a few new options requested by users. The biggest change is that errors are now handled properly and reported to the user in a reliable manner. All the changes are summarized below.
Version 20.07.13  Added -ShortDate option. This will create backups with only the Year, Month, Day as the file name.</description>
        <content:encoded>&lt;h3 id=&#34;flexible-hyper-v-backup-utility&#34;&gt;Flexible Hyper-V Backup Utility&lt;/h3&gt;
&lt;p&gt;A substantial update in terms of changes made under the hood, but I&amp;rsquo;ve also added a few new options requested by users. The biggest change is that errors are now handled properly and reported to the user in a reliable manner. All the changes are summarized below.&lt;/p&gt;
&lt;h3 id=&#34;version-200713&#34;&gt;Version 20.07.13&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added -ShortDate option. This will create backups with only the Year, Month, Day as the file name.&lt;/li&gt;
&lt;li&gt;Added pass through for 7-Zip options - CPU threads to use and compression level.&lt;/li&gt;
&lt;li&gt;Added proper error handling so errors are properly reported in the console, log and email.&lt;/li&gt;
&lt;li&gt;Bug fixes to create folders when paths are configured without the folders existing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Log Manager Utility - Update 20.03.23</title>
        <link>https://gal.vin/posts/old/log-manager-utility-a-necessary-update/</link>
        <pubDate>Mon, 23 Mar 2020 11:33:38 +0000</pubDate>
        
        <atom:modified>Mon, 23 Mar 2020 11:33:38 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/log-manager-utility-a-necessary-update/</guid>
        <description>Flexible clean up and backup of log files A user reported an issue where wildcards would not work with the -LogsPath switch. This was due to me adding incorrect validation to that option. To fix this I have removed the validation and should now accept wildcards as before. Please accept my apologies for this error, it should have been caught during testing but I missed it. I&amp;rsquo;ll take steps in future to prevent this type of problem from occurring in future.</description>
        <content:encoded>&lt;h3 id=&#34;flexible-clean-up-and-backup-of-log-files&#34;&gt;Flexible clean up and backup of log files&lt;/h3&gt;
&lt;p&gt;A user reported an issue where wildcards would not work with the -LogsPath switch. This was due to me adding incorrect validation to that option. To fix this I have removed the validation and should now accept wildcards as before. Please accept my apologies for this error, it should have been caught during testing but I missed it. I&amp;rsquo;ll take steps in future to prevent this type of problem from occurring in future. Thanks to commenter Daniel who raised this issue.&lt;/p&gt;
&lt;h2 id=&#34;2020-03-23-version-200323&#34;&gt;2020-03-23: Version 20.03.23&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fixed a user reported issue: wildcards in the -LogsPath switch no longer worked. They will now work.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Log Manager Utility&lt;/em&gt; can also be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Log-Manager&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Log-Manager&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/log-manager-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>WSUS Maintenance Utility - Update 20.03.20</title>
        <link>https://gal.vin/posts/old/wsus-maintenance-utility-late-march-update/</link>
        <pubDate>Fri, 20 Mar 2020 17:41:38 +0000</pubDate>
        
        <atom:modified>Fri, 20 Mar 2020 17:41:38 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/wsus-maintenance-utility-late-march-update/</guid>
        <description>Clean up your WSUS I&amp;rsquo;ve overhauled WSUS Maintenance Utility and have added some new features which were long overdue. It also includes all the same improvements that the other refactored utilities have.
2020-03-20: Version 20.03.20  Added code contribution from ideas@habs.homelinux.net. Individual clean-up jobs now run separately. Improved reporting. Made slight improvements to documentation.  WSUS Maintenance Utility can also be downloaded from:
 The Microsoft PowerShell Gallery GitHub  See the full documentation available here.</description>
        <content:encoded>&lt;h3 id=&#34;clean-up-your-wsus&#34;&gt;Clean up your WSUS&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve overhauled WSUS Maintenance Utility and have added some new features which were long overdue. It also includes all the same improvements that the other refactored utilities have.&lt;/p&gt;
&lt;h3 id=&#34;2020-03-20-version-200320&#34;&gt;2020-03-20: Version 20.03.20&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added code contribution from &lt;a href=&#34;mailto:ideas@habs.homelinux.net&#34;&gt;ideas@habs.homelinux.net&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Individual clean-up jobs now run separately.&lt;/li&gt;
&lt;li&gt;Improved reporting.&lt;/li&gt;
&lt;li&gt;Made slight improvements to documentation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;WSUS Maintenance Utility&lt;/em&gt; can also be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Wsus-Maintenance&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/WSUS-Maintenance&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/wsus-maint-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Internet Access Control Utility</title>
        <link>https://gal.vin/utils/internet-access-control-utility/</link>
        <pubDate>Tue, 17 Mar 2020 15:09:05 +0000</pubDate>
        
        <atom:modified>Tue, 17 Mar 2020 15:09:05 +0000</atom:modified>
        <guid>https://gal.vin/utils/internet-access-control-utility/</guid>
        <description>Control Internet access with Windows Firewall Internet Access Control Utility is available from:
 GitHub The Microsoft PowerShell Gallery  Please consider supporting my work:
 Support with a one-time donation using PayPal.  Please report any problems via the &amp;lsquo;issues&amp;rsquo; tab on GitHub.
Thanks
-Mike
Features and Requirements  It requires Windows Firewall to be active. The utility requires at least PowerShell 5.0. This utility has been tested on Windows 11 and Windows 10.</description>
        <content:encoded>&lt;h2 id=&#34;control-internet-access-with-windows-firewall&#34;&gt;Control Internet access with Windows Firewall&lt;/h2&gt;
&lt;p&gt;Internet Access Control Utility is available from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Internet-Access-Control&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Internet-Access-Control&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please consider supporting my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support with a one-time donation using &lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please report any problems via the &amp;lsquo;issues&amp;rsquo; tab on GitHub.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
&lt;h2 id=&#34;features-and-requirements&#34;&gt;Features and Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;It requires Windows Firewall to be active.&lt;/li&gt;
&lt;li&gt;The utility requires at least PowerShell 5.0.&lt;/li&gt;
&lt;li&gt;This utility has been tested on Windows 11 and Windows 10.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Here’s a list of all the command line switches and example configurations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command Line Switch&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;-Disable&lt;/td&gt;
&lt;td&gt;Block the internet. Create the firewall rule to block ports 80 and 443&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Enable&lt;/td&gt;
&lt;td&gt;Allow the internet. Removes the firewall rule created, allowing the ports 80 and 443&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-L&lt;/td&gt;
&lt;td&gt;The path to output the log file to.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-LogRotate&lt;/td&gt;
&lt;td&gt;Remove logs produced by the utility older than X days&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-NoBanner&lt;/td&gt;
&lt;td&gt;Use this option to hide the ASCII art title in the console.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Help&lt;/td&gt;
&lt;td&gt;Display usage information. No arguments also displays help.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;[path\]Internet-Access-Control.ps1 -Disable
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This will create a Windows Firewall rule to block internet access using ports 80 and 443.&lt;/p&gt;
&lt;h2 id=&#34;change-log&#34;&gt;Change Log&lt;/h2&gt;
&lt;h3 id=&#34;2023-04-28-version-230428&#34;&gt;2023-04-28: Version 23.04.28&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Cleaned up the output.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-06-14-version-220530&#34;&gt;2022-06-14: Version 22.05.30&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added checks and balances to help with configuration as I&amp;rsquo;m very aware that the initial configuration can be troublesome. Running the utility manually is a lot more friendly and step-by-step now.&lt;/li&gt;
&lt;li&gt;Added -Help to give usage instructions in the terminal. Running the script with no options will also trigger the -help switch.&lt;/li&gt;
&lt;li&gt;Cleaned user entered paths so that trailing slashes no longer break things or have otherwise unintended results.&lt;/li&gt;
&lt;li&gt;Added -LogRotate [days] to removed old logs created by the utility.&lt;/li&gt;
&lt;li&gt;Streamlined config report so non configured options are not shown.&lt;/li&gt;
&lt;li&gt;Added donation link to the ASCII banner.&lt;/li&gt;
&lt;li&gt;Cleaned up code, removed unneeded log noise.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-12-08-version-211208&#34;&gt;2021-12-08: Version 21.12.08&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Configured logs path now is created, if it does not exist.&lt;/li&gt;
&lt;li&gt;Added OS version info.&lt;/li&gt;
&lt;li&gt;Added Utility version info.&lt;/li&gt;
&lt;li&gt;Added Hostname info.&lt;/li&gt;
&lt;li&gt;Changed a variable to prevent conflicts with future PowerShell versions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-03-18-version-200318-lock&#34;&gt;2020-03-18: Version 20.03.18 &amp;lsquo;Lock&amp;rsquo;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved feedback in the console and log.&lt;/li&gt;
&lt;li&gt;Improved documentation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-03-17-version-200317-lock&#34;&gt;2020-03-17: Version 20.03.17 &amp;lsquo;Lock&amp;rsquo;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added logging.&lt;/li&gt;
&lt;li&gt;Added config report.&lt;/li&gt;
&lt;li&gt;Made available on PowerShell gallery.&lt;/li&gt;
&lt;li&gt;Refactored code.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell</category>
            
          
            
              <category>PowerShell Utility</category>
            
          
            
              <category>Windows 10</category>
            
          
            
              <category>Windows 11</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Remove Win10 Apps Utility - Update 20.03.13</title>
        <link>https://gal.vin/posts/old/remove-win10-apps-utility-major-update/</link>
        <pubDate>Fri, 13 Mar 2020 19:59:28 +0000</pubDate>
        
        <atom:modified>Fri, 13 Mar 2020 19:59:28 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/remove-win10-apps-utility-major-update/</guid>
        <description>Customisable Windows 10 app removal utility I&amp;rsquo;ve refactored my old Remove UWP script and renamed it to bring it in line with my recent utility updates.
Version 20.03.13 ‘Cool’  Refactored code. Backwards compatible. Added logging. Added config report when ran. Added ASCII banner art when run in the console. Added option to disable the ASCII banner art.  Remove Win10 Apps Utility can also be downloaded from:
 The Microsoft PowerShell Gallery GitHub  See the full documentation available here.</description>
        <content:encoded>&lt;h3 id=&#34;customisable-windows-10-app-removal-utility&#34;&gt;Customisable Windows 10 app removal utility&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve refactored my old Remove UWP script and renamed it to bring it in line with my recent utility updates.&lt;/p&gt;
&lt;h3 id=&#34;version-200313-cool&#34;&gt;Version 20.03.13 ‘Cool’&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Refactored code.&lt;/li&gt;
&lt;li&gt;Backwards compatible.&lt;/li&gt;
&lt;li&gt;Added logging.&lt;/li&gt;
&lt;li&gt;Added config report when ran.&lt;/li&gt;
&lt;li&gt;Added ASCII banner art when run in the console.&lt;/li&gt;
&lt;li&gt;Added option to disable the ASCII banner art.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Remove Win10 Apps Utility can also be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Remove-MS-Store-Apps&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Remove-MS-Store-Apps&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/remove-ms-store-apps-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>Microsoft Store Apps</category>
            
          
            
              <category>PowerShell Utility</category>
            
          
            
              <category>Windows 10</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Logon Audit Utility</title>
        <link>https://gal.vin/utils/logon-audit-utility/</link>
        <pubDate>Thu, 12 Mar 2020 16:05:25 +0000</pubDate>
        
        <atom:modified>Thu, 12 Mar 2020 16:05:25 +0000</atom:modified>
        <guid>https://gal.vin/utils/logon-audit-utility/</guid>
        <description>Really simple log on/off auditing utility Logon Audit Utility is available from:
 GitHub The Microsoft PowerShell Gallery  Please consider supporting my work:
 Support with a one-time donation using PayPal.  Please report any problems via the ‘issues’ tab on GitHub.
Thanks
-Mike
Features and Requirements  The utility should be run on a client machine. It is ideally triggered as a logon/logoff script by Group Policy. Any files that the script needs to access should be accessible from a client device.</description>
        <content:encoded>&lt;h2 id=&#34;really-simple-log-onoff-auditing-utility&#34;&gt;Really simple log on/off auditing utility&lt;/h2&gt;
&lt;p&gt;Logon Audit Utility is available from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Logon-Audit&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Logon-Audit&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please consider supporting my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support with a one-time donation using &lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please report any problems via the ‘issues’ tab on GitHub.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
&lt;h2 id=&#34;features-and-requirements&#34;&gt;Features and Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The utility should be run on a client machine.&lt;/li&gt;
&lt;li&gt;It is ideally triggered as a logon/logoff script by Group Policy.&lt;/li&gt;
&lt;li&gt;Any files that the script needs to access should be accessible from a client device.&lt;/li&gt;
&lt;li&gt;It can be used to log to a file, send to a webhook or both.&lt;/li&gt;
&lt;li&gt;The utility requires at least PowerShell 5.0.&lt;/li&gt;
&lt;li&gt;Tested on Windows 11, Windows 10, Windows Server 2022, Windows Server 2019, Windows Server 2016 and Windows Server 2012 R2.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Here’s a list of all the command line switches and example configurations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command Line Switch&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;-Logon&lt;/td&gt;
&lt;td&gt;Use this option to log a log on event.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Logoff&lt;/td&gt;
&lt;td&gt;Use this option to log a log off event.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Webhook&lt;/td&gt;
&lt;td&gt;The txt file containing the URI for a webhook to send the log file to.&lt;/td&gt;
&lt;td&gt;[path]webhook.txt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-L&lt;/td&gt;
&lt;td&gt;The path to output the log file to.&lt;/td&gt;
&lt;td&gt;[path\logs]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Help&lt;/td&gt;
&lt;td&gt;Display usage information. No arguments also displays help.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;[path\]Logon-Audit.ps1 -Logon -L [path]
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The above command will record a logon event for the currently logged on user to the log file and also to Teams.&lt;/p&gt;
&lt;h2 id=&#34;change-log&#34;&gt;Change Log&lt;/h2&gt;
&lt;h3 id=&#34;2023-04-28-version-230428&#34;&gt;2023-04-28: Version 23.04.28&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Changed the -Teams switch to -Webhook to better represent it&amp;rsquo;s function.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-06-14-version-220530&#34;&gt;2022-06-14: Version 22.05.30&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added checks and balances to help with configuration as I&amp;rsquo;m very aware that the initial configuration can be troublesome. Running the utility manually is a lot more friendly and step-by-step now.&lt;/li&gt;
&lt;li&gt;Added -Help to give usage instructions in the terminal. Running the script with no options will also trigger the -help switch.&lt;/li&gt;
&lt;li&gt;Cleaned user entered paths so that trailing slashes no longer break things or have otherwise unintended results.&lt;/li&gt;
&lt;li&gt;Added -LogRotate [days] to removed old logs created by the utility.&lt;/li&gt;
&lt;li&gt;Streamlined config report so non configured options are not shown.&lt;/li&gt;
&lt;li&gt;Added donation link to the ASCII banner.&lt;/li&gt;
&lt;li&gt;Cleaned up code, removed unneeded log noise.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-12-08-version-211208&#34;&gt;2021-12-08: Version 21.12.08&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Configured logs path now is created, if it does not exist.&lt;/li&gt;
&lt;li&gt;Added OS version info.&lt;/li&gt;
&lt;li&gt;Added Utility version info.&lt;/li&gt;
&lt;li&gt;Added Hostname info.&lt;/li&gt;
&lt;li&gt;Changed a variable to prevent conflicts with future PowerShell versions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-03-12-version-200312-chick&#34;&gt;2020-03-12: Version 20.03.12 &amp;lsquo;Chick&amp;rsquo;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added option to send an event to Microsoft Teams.&lt;/li&gt;
&lt;li&gt;Refactored code.&lt;/li&gt;
&lt;li&gt;Fully backwards compatible.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2019-09-28-v10&#34;&gt;2019-09-28 v1.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Initial public release.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Log Manager Utility - Update 20.03.11</title>
        <link>https://gal.vin/posts/old/log-manager-utility-a-minor-update-but-an-important-one/</link>
        <pubDate>Wed, 11 Mar 2020 12:43:18 +0000</pubDate>
        
        <atom:modified>Wed, 11 Mar 2020 12:43:18 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/log-manager-utility-a-minor-update-but-an-important-one/</guid>
        <description>Flexible clean up and backup of log files This is a minor update to my Log Manager Utility - there was a switch alias which was conflicting with a variable and preventing the utility from running correctly. The previous command line switch of -LogPath is now -LogsPath.
Version 20.03.11 &amp;lsquo;Cow&amp;rsquo;  The previous command line switch of -LogPath is now -LogsPath. This fixes an issue with a duplicate variable and switch alias preventing utility from running currently.</description>
        <content:encoded>&lt;h3 id=&#34;flexible-clean-up-and-backup-of-log-files&#34;&gt;Flexible clean up and backup of log files&lt;/h3&gt;
&lt;p&gt;This is a minor update to my Log Manager Utility - there was a switch alias which was conflicting with a variable and preventing the utility from running correctly. The previous command line switch of -LogPath is now -LogsPath.&lt;/p&gt;
&lt;h3 id=&#34;version-200311-cow&#34;&gt;Version 20.03.11 &amp;lsquo;Cow&amp;rsquo;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The previous command line switch of -LogPath is now -LogsPath. This fixes an issue with a duplicate variable and switch alias preventing utility from running currently.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Log Manager Utility&lt;/em&gt; can also be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Log-Manager&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Log-Manager&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/log-manager-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Log Manager Utility - Update 20.03.06</title>
        <link>https://gal.vin/posts/old/log-manager-utility-major-update/</link>
        <pubDate>Mon, 09 Mar 2020 14:13:07 +0000</pubDate>
        
        <atom:modified>Mon, 09 Mar 2020 14:13:07 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/log-manager-utility-major-update/</guid>
        <description>Flexible clean up and backup of log files I&amp;rsquo;ve completed a lengthy and much needed overhaul of Log Manager Utility. I&amp;rsquo;ve added a few new features including one suggested from a user. Please be aware that this new version is not backwards compatible with the previous versions and you will need to reconfigure it before use.
2020-03-09: Version 20.03.06 &amp;lsquo;Fish&amp;rsquo;  Added custom name for zip file based on user feedback.</description>
        <content:encoded>&lt;h3 id=&#34;flexible-clean-up-and-backup-of-log-files&#34;&gt;Flexible clean up and backup of log files&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve completed a lengthy and much needed overhaul of Log Manager Utility. I&amp;rsquo;ve added a few new features including one suggested from a user. Please be aware that this new version is not backwards compatible with the previous versions and you will need to reconfigure it before use.&lt;/p&gt;
&lt;h3 id=&#34;2020-03-09-version-200306-fish&#34;&gt;2020-03-09: Version 20.03.06 &amp;lsquo;Fish&amp;rsquo;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added custom name for zip file based on user feedback.&lt;/li&gt;
&lt;li&gt;Added option to use 7-zip for zip file backup.&lt;/li&gt;
&lt;li&gt;Added time to keep backups for.&lt;/li&gt;
&lt;li&gt;Added config report.&lt;/li&gt;
&lt;li&gt;Added ASCII banner art when run in the console.&lt;/li&gt;
&lt;li&gt;Added option to disable the ASCII banner art.&lt;/li&gt;
&lt;li&gt;Refactored code.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Log Manager Utility&lt;/em&gt; can also be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Log-Manager&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Log-Manager&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/log-manager-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>WSUS Maintenance Utility - Update 20.03.03</title>
        <link>https://gal.vin/posts/old/wsus-maintenance-utility-major-update/</link>
        <pubDate>Thu, 05 Mar 2020 18:48:44 +0000</pubDate>
        
        <atom:modified>Thu, 05 Mar 2020 18:48:44 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/wsus-maintenance-utility-major-update/</guid>
        <description>Clean up your WSUS
I&amp;rsquo;ve overhauled WSUS Maintenance Utility and have added some new features which were long overdue. It also includes all the same improvements that the other refactored utilities have.
2020-03-05: Version 20.03.03 ‘Burger’  Added SSL option for connecting to the WSUS server. Made the -Port switch optional. If it is not specified the default port is used. If -WsusSsl is specified, the default port for SSL is used.</description>
        <content:encoded>&lt;p&gt;&lt;em&gt;Clean up your WSUS&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve overhauled WSUS Maintenance Utility and have added some new features which were long overdue. It also includes all the same improvements that the other refactored utilities have.&lt;/p&gt;
&lt;h3 id=&#34;2020-03-05-version-200303-burger&#34;&gt;2020-03-05: Version 20.03.03 ‘Burger’&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added SSL option for connecting to the WSUS server.&lt;/li&gt;
&lt;li&gt;Made the -Port switch optional. If it is not specified the default port is used. If -WsusSsl is specified, the default port for SSL is used.&lt;/li&gt;
&lt;li&gt;Added config report.&lt;/li&gt;
&lt;li&gt;Added ASCII banner art when run in the console.&lt;/li&gt;
&lt;li&gt;Added option to disable the ASCII banner art.&lt;/li&gt;
&lt;li&gt;Refactored code.&lt;/li&gt;
&lt;li&gt;Fully backwards compatible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;WSUS Maintenance Utility&lt;/em&gt; can also be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Wsus-Maintenance&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/WSUS-Maintenance&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/wsus-maint-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Office Update Utility - Update 20.03.01</title>
        <link>https://gal.vin/posts/old/office-update-utility-major-update/</link>
        <pubDate>Tue, 03 Mar 2020 15:19:21 +0000</pubDate>
        
        <atom:modified>Tue, 03 Mar 2020 15:19:21 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/office-update-utility-major-update/</guid>
        <description>Office Update Manager for 365/2019 I&amp;rsquo;ve overhauled Office Update Utility and have improved the reporting. It also includes all the same improvements that the other refactored utilities have.
2020-03-03: Version 20.03.01 &amp;lsquo;Crosshair&amp;rsquo; New features:
 Refactored code. Fully backwards compatible. Added ASCII banner art when run in the console. Added option to disable the ASCII banner art. Config report matches design of Image Factory Utility.  Office Update Utility can be downloaded from:</description>
        <content:encoded>&lt;h3 id=&#34;office-update-manager-for-3652019&#34;&gt;Office Update Manager for 365/2019&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve overhauled Office Update Utility and have improved the reporting. It also includes all the same improvements that the other refactored utilities have.&lt;/p&gt;
&lt;h3 id=&#34;2020-03-03-version-200301-crosshair&#34;&gt;2020-03-03: Version 20.03.01 &amp;lsquo;Crosshair&amp;rsquo;&lt;/h3&gt;
&lt;p&gt;New features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Refactored code.&lt;/li&gt;
&lt;li&gt;Fully backwards compatible.&lt;/li&gt;
&lt;li&gt;Added ASCII banner art when run in the console.&lt;/li&gt;
&lt;li&gt;Added option to disable the ASCII banner art.&lt;/li&gt;
&lt;li&gt;Config report matches design of Image Factory Utility.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Office Update Utility&lt;/em&gt; can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Office-Update&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Office-Update&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/office-update-utility/&#34;&gt;available here.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>Microsoft 365 Apps</category>
            
          
            
              <category>Microsoft Office</category>
            
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 20.02.28</title>
        <link>https://gal.vin/posts/old/hyper-v-backup-utility-a-minor-update/</link>
        <pubDate>Fri, 28 Feb 2020 15:10:25 +0000</pubDate>
        
        <atom:modified>Fri, 28 Feb 2020 15:10:25 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/hyper-v-backup-utility-a-minor-update/</guid>
        <description>Flexible Hyper-V Backup Utility Just a minor update to fix a non-critical issue with the previous version and to bring it in line with the recent update of the Image Factory Utility.
2020-02-28: Version 20.02.28 ‘Artifact’  Fixed e-mail report extra line breaks in Outlook 365, Version 2001. Config report matches design of Image Factory Utility. Improved and simplified code.  Hyper-V Backup Utility can be downloaded from:
 The Microsoft PowerShell Gallery GitHub  See the full documentation available here.</description>
        <content:encoded>&lt;h3 id=&#34;flexible-hyper-v-backup-utility&#34;&gt;Flexible Hyper-V Backup Utility&lt;/h3&gt;
&lt;p&gt;Just a minor update to fix a non-critical issue with the previous version and to bring it in line with the recent update of the &lt;a href=&#34;https://gal.vin/utils/image-factory-utility/&#34;&gt;Image Factory Utility&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;2020-02-28-version-200228-artifact&#34;&gt;2020-02-28: Version 20.02.28 ‘Artifact’&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed e-mail report extra line breaks in Outlook 365, Version 2001.&lt;/li&gt;
&lt;li&gt;Config report matches design of Image Factory Utility.&lt;/li&gt;
&lt;li&gt;Improved and simplified code.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Image Factory Utility - Update 20.02.24</title>
        <link>https://gal.vin/posts/old/image-factory-utility-major-update/</link>
        <pubDate>Thu, 27 Feb 2020 18:31:05 +0000</pubDate>
        
        <atom:modified>Thu, 27 Feb 2020 18:31:05 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/image-factory-utility-major-update/</guid>
        <description>Automate Creation of WIM Files I&amp;rsquo;ve just completed testing the new Image Factory Utility. It&amp;rsquo;s been completely overhauled and has some small new features added.
2020-02-27: Version 20.02.24 ‘Robot’ New features:
 Refactored code. Fully backwards compatible. Added ASCII banner art when run in the console. Added option to disable the ASCII banner art.  Image Factory Utility can also be downloaded from:
 The Microsoft PowerShell Gallery GitHub  See the full documentation available here.</description>
        <content:encoded>&lt;h3 id=&#34;automate-creation-of-wim-files&#34;&gt;Automate Creation of WIM Files&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve just completed testing the new Image Factory Utility. It&amp;rsquo;s been completely overhauled and has some small new features added.&lt;/p&gt;
&lt;h3 id=&#34;2020-02-27-version-200224-robot&#34;&gt;2020-02-27: Version 20.02.24 ‘Robot’&lt;/h3&gt;
&lt;p&gt;New features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Refactored code.&lt;/li&gt;
&lt;li&gt;Fully backwards compatible.&lt;/li&gt;
&lt;li&gt;Added ASCII banner art when run in the console.&lt;/li&gt;
&lt;li&gt;Added option to disable the ASCII banner art.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Image Factory Utility&lt;/em&gt; can also be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Image-Factory&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Image-Factory&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/image-factory-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility - Update 20.02.14</title>
        <link>https://gal.vin/posts/old/hyper-v-backup-utility-major-update/</link>
        <pubDate>Tue, 18 Feb 2020 10:32:44 +0000</pubDate>
        
        <atom:modified>Tue, 18 Feb 2020 10:32:44 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/hyper-v-backup-utility-major-update/</guid>
        <description>Flexible Hyper-V Backup Utility I&amp;rsquo;ve spent the past week away from home, and so I&amp;rsquo;ve been working on refactoring my Hyper-V Backup Utility and adding new features requested by users.
Version 20.02.14 ‘Valentine’ Current known issues:
 The e-mail report has extra line breaks in Outlook 365, Version 2001.  New features:
 Refactored code. Fully backwards compatible. Added option to use a working directory to stage backups before moving them to final backup location.</description>
        <content:encoded>&lt;h3 id=&#34;flexible-hyper-v-backup-utility&#34;&gt;Flexible Hyper-V Backup Utility&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve spent the past week away from home, and so I&amp;rsquo;ve been working on refactoring my Hyper-V Backup Utility and adding new features requested by users.&lt;/p&gt;
&lt;p&gt;Version 20.02.14 ‘Valentine’ Current known issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The e-mail report has extra line breaks in Outlook 365, Version 2001.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;New features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Refactored code.&lt;/li&gt;
&lt;li&gt;Fully backwards compatible.&lt;/li&gt;
&lt;li&gt;Added option to use a working directory to stage backups before moving them to final backup location.&lt;/li&gt;
&lt;li&gt;Added option to use 7-Zip for backup compression.&lt;/li&gt;
&lt;li&gt;Added ASCII banner art when run in the console.&lt;/li&gt;
&lt;li&gt;Added option to disable the ASCII banner art.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hyper-V Backup Utility can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See the full documentation &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you would like to support me, please check out the link below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Remove MS Store Apps Utility</title>
        <link>https://gal.vin/utils/remove-ms-store-apps-utility/</link>
        <pubDate>Wed, 04 Dec 2019 15:25:17 +0000</pubDate>
        
        <atom:modified>Wed, 04 Dec 2019 15:25:17 +0000</atom:modified>
        <guid>https://gal.vin/utils/remove-ms-store-apps-utility/</guid>
        <description>Customisable Windows 10/11 Microsoft Store App removal utility, previously known as Remove-Win10-Apps Remove MS Store Apps Utility is available from:
 GitHub The Microsoft PowerShell Gallery  Please consider supporting my work:
 Support with a one-time donation using PayPal.  Please report any problems via the ‘issues’ tab on GitHub.
Thanks
-Mike
Features and Requirements  Remove specified apps for the current logged on user. Remove specified apps from the system for all users.</description>
        <content:encoded>&lt;h2 id=&#34;customisable-windows-1011-microsoft-store-app-removal-utility-previously-known-as-remove-win10-apps&#34;&gt;Customisable Windows 10/11 Microsoft Store App removal utility, previously known as Remove-Win10-Apps&lt;/h2&gt;
&lt;p&gt;Remove MS Store Apps Utility is available from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Remove-MS-Store-Apps&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Remove-MS-Store-Apps&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please consider supporting my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support with a one-time donation using &lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please report any problems via the ‘issues’ tab on GitHub.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
&lt;h2 id=&#34;features-and-requirements&#34;&gt;Features and Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Remove specified apps for the current logged on user.&lt;/li&gt;
&lt;li&gt;Remove specified apps from the system for all users.&lt;/li&gt;
&lt;li&gt;Can be used for imaging and OS deployment, as well as individual user.&lt;/li&gt;
&lt;li&gt;Can be used on an offline Windows image.&lt;/li&gt;
&lt;li&gt;Requires a text file with a list of the apps to remove.&lt;/li&gt;
&lt;li&gt;Tested on Windows 10 and Windows 11.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;how-to-get-a-list-of-apps-to-remove&#34;&gt;How to get a list of apps to remove&lt;/h2&gt;
&lt;p&gt;To create a text file with a list of the apps to remove, run the following and copy and paste the app names you wish to remove into a txt file and save it.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Remove-MS&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-Store-Apps&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ps1&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-PCApps&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;To get a list of apps that are installed for the current user, use this command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Remove-MS&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-Store-Apps&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ps1&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-UserApps&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;how-to-find-the-index-number-of-the-image-in-the-wim-file&#34;&gt;How to find the index number of the image in the wim file&lt;/h2&gt;
&lt;p&gt;Run the following command to find out how many images are present in the wim file:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Get-WindowsImage&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ImagePath&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\]&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;install&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;wim&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Format-Table&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Property&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ImageIndex&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ImageName&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;app-names-table&#34;&gt;App Names Table&lt;/h2&gt;
&lt;p&gt;Here is a table of app names in PowerShell and what they relate to in Windows.&lt;/p&gt;
&lt;h3 id=&#34;windows-11-apps&#34;&gt;Windows 11 Apps&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;PowerShell Display Name&lt;/th&gt;
&lt;th&gt;App name&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Clipchamp.Clipchamp&lt;/td&gt;
&lt;td&gt;Clipchamp&lt;/td&gt;
&lt;td&gt;New in 22H2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.549981C3F5F10&lt;/td&gt;
&lt;td&gt;Cortana&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.BingNews&lt;/td&gt;
&lt;td&gt;Microsoft News&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.BingWeather&lt;/td&gt;
&lt;td&gt;Weather&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.DesktopAppInstaller&lt;/td&gt;
&lt;td&gt;winget&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.GamingApp&lt;/td&gt;
&lt;td&gt;Xbox&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.GetHelp&lt;/td&gt;
&lt;td&gt;Get Help&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.Getstarted&lt;/td&gt;
&lt;td&gt;Tips&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.HEIFImageExtension&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.HEVCVideoExtension&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;New in 22H2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.MicrosoftEdge.Stable&lt;/td&gt;
&lt;td&gt;Microsoft Edge&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.MicrosoftOfficeHub&lt;/td&gt;
&lt;td&gt;Office&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.MicrosoftSolitaireCollection&lt;/td&gt;
&lt;td&gt;Microsoft Solitaire Collection&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.MicrosoftStickyNotes&lt;/td&gt;
&lt;td&gt;Sticky Notes&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.Paint&lt;/td&gt;
&lt;td&gt;Paint&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.People&lt;/td&gt;
&lt;td&gt;People&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.PowerAutomateDesktop&lt;/td&gt;
&lt;td&gt;Power Automate&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.RawImageExtension&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;New in 22H2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.ScreenSketch&lt;/td&gt;
&lt;td&gt;Snip &amp;amp; Sketch&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.SecHealthUI&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.StorePurchaseApp&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.Todos&lt;/td&gt;
&lt;td&gt;Microsoft To Do&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.VCLibs.140.00&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.VP9VideoExtensions&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WebMediaExtensions&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WebpImageExtension&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.Windows.Photos&lt;/td&gt;
&lt;td&gt;(2) &amp;ldquo;Photos&amp;rdquo; and &amp;ldquo;Video editor&amp;rdquo;&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsAlarms&lt;/td&gt;
&lt;td&gt;Alarms &amp;amp; Clock&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsCalculator&lt;/td&gt;
&lt;td&gt;Calculator&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsCamera&lt;/td&gt;
&lt;td&gt;Camera&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;microsoft.windowscommunicationsapps&lt;/td&gt;
&lt;td&gt;(2) &amp;ldquo;Calendar&amp;rdquo; and &amp;ldquo;Mail&amp;rdquo;&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsFeedbackHub&lt;/td&gt;
&lt;td&gt;Feedback Hub&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsMaps&lt;/td&gt;
&lt;td&gt;Maps&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsNotepad&lt;/td&gt;
&lt;td&gt;Notepad&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsSoundRecorder&lt;/td&gt;
&lt;td&gt;Voice Recorder&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsStore&lt;/td&gt;
&lt;td&gt;Microsoft Store&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsTerminal&lt;/td&gt;
&lt;td&gt;Terminal&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.Xbox.TCUI&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.XboxGameOverlay&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.XboxGamingOverlay&lt;/td&gt;
&lt;td&gt;Xbox Game Bar&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.XboxIdentityProvider&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.XboxSpeechToTextOverlay&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.YourPhone&lt;/td&gt;
&lt;td&gt;Your Phone&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.ZuneMusic&lt;/td&gt;
&lt;td&gt;Media Player&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.ZuneVideo&lt;/td&gt;
&lt;td&gt;Films &amp;amp; TV&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MicrosoftCorporationII.QuickAssist&lt;/td&gt;
&lt;td&gt;Quick Assist&lt;/td&gt;
&lt;td&gt;New in 22H2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MicrosoftTeams&lt;/td&gt;
&lt;td&gt;Microsoft Teams&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MicrosoftWindows.Client.WebExperience&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;windows-10-apps&#34;&gt;Windows 10 Apps&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;PowerShell Display Name&lt;/th&gt;
&lt;th&gt;App name&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.549981C3F5F10&lt;/td&gt;
&lt;td&gt;Cortana&lt;/td&gt;
&lt;td&gt;New in 2004&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.BingWeather&lt;/td&gt;
&lt;td&gt;Weather&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.DesktopAppInstaller&lt;/td&gt;
&lt;td&gt;winget&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.GetHelp&lt;/td&gt;
&lt;td&gt;Get Help&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.Getstarted&lt;/td&gt;
&lt;td&gt;Tips&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.HEIFImageExtension&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.Messaging&lt;/td&gt;
&lt;td&gt;Messaging&lt;/td&gt;
&lt;td&gt;Removed in 2004&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.Microsoft3DViewer&lt;/td&gt;
&lt;td&gt;3D Viewer&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.MicrosoftEdge.Stable&lt;/td&gt;
&lt;td&gt;Microsoft Edge&lt;/td&gt;
&lt;td&gt;New in 21H1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.MicrosoftOfficeHub&lt;/td&gt;
&lt;td&gt;Office&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.MicrosoftSolitaireCollection&lt;/td&gt;
&lt;td&gt;Microsoft Solitaire Collection&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.MicrosoftStickyNotes&lt;/td&gt;
&lt;td&gt;Sticky Notes&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.MixedReality.Portal&lt;/td&gt;
&lt;td&gt;Mixed Reality Portal&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.MSPaint&lt;/td&gt;
&lt;td&gt;Paint 3D&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.Office.OneNote&lt;/td&gt;
&lt;td&gt;OneNote&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.OneConnect&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Removed in 2004&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.People&lt;/td&gt;
&lt;td&gt;People&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.Print3D&lt;/td&gt;
&lt;td&gt;Print 3D&lt;/td&gt;
&lt;td&gt;Removed in 2004&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.ScreenSketch&lt;/td&gt;
&lt;td&gt;Snip &amp;amp; Sketch&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.SkypeApp&lt;/td&gt;
&lt;td&gt;Skype&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.StorePurchaseApp&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.VCLibs.140.00&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;New in 2004&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.VP9VideoExtensions&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.Wallet&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WebMediaExtensions&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WebpImageExtension&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.Windows.Photos&lt;/td&gt;
&lt;td&gt;(2) &amp;ldquo;Photos&amp;rdquo; and &amp;ldquo;Video editor&amp;rdquo;&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsAlarms&lt;/td&gt;
&lt;td&gt;Alarms &amp;amp; Clock&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsCalculator&lt;/td&gt;
&lt;td&gt;Calculator&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsCamera&lt;/td&gt;
&lt;td&gt;Camera&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;microsoft.windowscommunicationsapps&lt;/td&gt;
&lt;td&gt;(2) &amp;ldquo;Calendar&amp;rdquo; and &amp;ldquo;Mail&amp;rdquo;&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsFeedbackHub&lt;/td&gt;
&lt;td&gt;Feedback Hub&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsMaps&lt;/td&gt;
&lt;td&gt;Maps&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsSoundRecorder&lt;/td&gt;
&lt;td&gt;Voice Recorder&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.WindowsStore&lt;/td&gt;
&lt;td&gt;Microsoft Store&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.Xbox.TCUI&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.XboxApp&lt;/td&gt;
&lt;td&gt;Xbox Console Companion&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.XboxGameOverlay&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.XboxGamingOverlay&lt;/td&gt;
&lt;td&gt;Xbox Game Bar&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.XboxIdentityProvider&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.XboxSpeechToTextOverlay&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.YourPhone&lt;/td&gt;
&lt;td&gt;Your Phone&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.ZuneMusic&lt;/td&gt;
&lt;td&gt;Groove Music&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft.ZuneVideo&lt;/td&gt;
&lt;td&gt;Films &amp;amp; TV&lt;/td&gt;
&lt;td&gt;No change&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Here’s a list of all the command line switches and example configurations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command Line Switch&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;-List&lt;/td&gt;
&lt;td&gt;The full path to the txt file listing the apps to remove.&lt;/td&gt;
&lt;td&gt;[path]apps.txt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Wim&lt;/td&gt;
&lt;td&gt;The full path to the wim file to remove the apps from.&lt;/td&gt;
&lt;td&gt;[path]install.wim&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-WimIndex&lt;/td&gt;
&lt;td&gt;The index number of the image to operate on.&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-WimMountPath&lt;/td&gt;
&lt;td&gt;The full path to a folder that the wim file should be mounted to. If you do not configure this temp dir will be used.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-PCApps&lt;/td&gt;
&lt;td&gt;List apps that are currently installed on the system.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-UserApps&lt;/td&gt;
&lt;td&gt;List apps that are currently installed for the user.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-L&lt;/td&gt;
&lt;td&gt;The path to output the log file to.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Uno&lt;/td&gt;
&lt;td&gt;Changes the script to remove all apps NOT listed in the apps.txt file.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-PCOnly&lt;/td&gt;
&lt;td&gt;Only remove provisioned apps, does not take any action on the current users apps.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-LogRotate&lt;/td&gt;
&lt;td&gt;Remove logs produced by the utility older than X days&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-NoBanner&lt;/td&gt;
&lt;td&gt;Use this option to hide the ASCII art title in the console.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Help&lt;/td&gt;
&lt;td&gt;Display usage information. No arguments also displays help.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;[path\]Remove-MS-Store-Apps.ps1 -List [path\]apps-to-remove.txt
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This will remove the apps in the txt file from your Windows installation for all users.&lt;/p&gt;
&lt;h2 id=&#34;change-log&#34;&gt;Change Log&lt;/h2&gt;
&lt;h3 id=&#34;2024-11-09-version-241109&#34;&gt;2024-11-09: Version 24.11.09&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new &amp;lsquo;-Uno&amp;rsquo; option which removes ALL apps not in the specified text file. The text file becomes an &amp;ldquo;apps to keep&amp;rdquo; list, instead of an &amp;ldquo;apps to remove&amp;rdquo; list.&lt;/li&gt;
&lt;li&gt;Added new &amp;lsquo;-PCOnly&amp;rsquo; option which removes provisioned apps only. This will leave the apps for the current user untouched.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2023-04-28-version-230428&#34;&gt;2023-04-28: Version 23.04.28&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Minor improvement to update checker. If the internet is not reachable it silently errors out.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2023-04-24-version-230424&#34;&gt;2023-04-24: Version 23.04.24&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added script update checker - shows if an update is available in the log and console.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-06-14-version-220530&#34;&gt;2022-06-14: Version 22.05.30&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added checks and balances to help with configuration as I&amp;rsquo;m very aware that the initial configuration can be troublesome. Running the utility manually is a lot more friendly and step-by-step now.&lt;/li&gt;
&lt;li&gt;Added -Help to give usage instructions in the terminal. Running the script with no options will also trigger the -help switch.&lt;/li&gt;
&lt;li&gt;Cleaned user entered paths so that trailing slashes no longer break things or have otherwise unintended results.&lt;/li&gt;
&lt;li&gt;Added -LogRotate [days] to removed old logs created by the utility.&lt;/li&gt;
&lt;li&gt;Streamlined config report so non configured options are not shown.&lt;/li&gt;
&lt;li&gt;Added donation link to the ASCII banner.&lt;/li&gt;
&lt;li&gt;Cleaned up code, removed unneeded log noise.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-04-26-version-220426&#34;&gt;2022-04-26: Version 22.04.26&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added -PCApps switch to list all MS Store apps on the system.&lt;/li&gt;
&lt;li&gt;Added -UserApps switch to list all MS Store apps installed for the user.&lt;/li&gt;
&lt;li&gt;Added -Help to give usage instructions in the terminal. Also running the script with no options will also trigger the -help switch.&lt;/li&gt;
&lt;li&gt;Streamlined config report so non configured options are not shown.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-04-22-version-220422&#34;&gt;2022-04-22: Version 22.04.22&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;If the -WimMountPath is not configured by the user then the default Windows temp folder will be used instead.&lt;/li&gt;
&lt;li&gt;If the -WimMountPath is configured by the user but the path does not exist, it will be created.&lt;/li&gt;
&lt;li&gt;Added a -LogRotate option to delete logs older than X number of days.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-03-27-version-220327&#34;&gt;2022-03-27: Version 22.03.27&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Utility now ignores blanks lines in Apps list file.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-12-08-version-211208&#34;&gt;2021-12-08: Version 21.12.08&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Configured logs path now is created, if it does not exist.&lt;/li&gt;
&lt;li&gt;Added OS version info.&lt;/li&gt;
&lt;li&gt;Added Utility version info.&lt;/li&gt;
&lt;li&gt;Added Hostname info.&lt;/li&gt;
&lt;li&gt;Changed a variable to prevent conflicts with future PowerShell versions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-09-07-version-070921&#34;&gt;2021-09-07: Version 07.09.21&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added ability to remove apps from offline images.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-03-13-version-200313-cool&#34;&gt;2020-03-13: Version 20.03.13 ‘Cool’&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Refactored code.&lt;/li&gt;
&lt;li&gt;Backwards compatible.&lt;/li&gt;
&lt;li&gt;Added logging.&lt;/li&gt;
&lt;li&gt;Added config report when ran.&lt;/li&gt;
&lt;li&gt;Added ASCII banner art when run in the console.&lt;/li&gt;
&lt;li&gt;Added option to disable the ASCII banner art.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2019-12-03-v20&#34;&gt;2019-12-03 v2.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;First public release.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>Microsoft Store Apps</category>
            
          
            
              <category>PowerShell</category>
            
          
            
              <category>PowerShell Utility</category>
            
          
            
              <category>Windows 10</category>
            
          
            
              <category>Windows 11</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Network Device Status Monitor (NDSM) Update v2.0</title>
        <link>https://gal.vin/posts/old/network-device-status-monitor-ndsm-update-v2-0/</link>
        <pubDate>Wed, 02 Oct 2019 12:34:57 +0000</pubDate>
        
        <atom:modified>Wed, 02 Oct 2019 12:34:57 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/network-device-status-monitor-ndsm-update-v2-0/</guid>
        <description>Download it from GitHub, the Microsoft TechNet Gallery and the PowerShell Gallery.
Big update to Network Device Status Monitor (NDSM) utility.
Changes in 2.0  Added Microsoft Teams as an output location using a webhook. Here&amp;rsquo;s a walkthrough on how to create a webhook for your Teams instance. MS teams is limited to 10 devices. Not sure if it’s a Teams/webhook limit, or my code. Will investigate. Fixed bug where all devices are offline, a phantom device is added to the bottom of the offline list.</description>
        <content:encoded>&lt;p&gt;Download it from &lt;a href=&#34;https://github.com/Digressive/Network-Device-Status-Monitor&#34;&gt;GitHub&lt;/a&gt;, the &lt;a href=&#34;https://gallery.technet.microsoft.com/Network-Device-Status-088f7b00?redir=0&#34;&gt;Microsoft TechNet Gallery&lt;/a&gt; and the &lt;a href=&#34;https://www.powershellgallery.com/packages/NetDev-Status&#34;&gt;PowerShell Gallery&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Big update to Network Device Status Monitor (NDSM) utility.&lt;/p&gt;
&lt;h3 id=&#34;changes-in-20&#34;&gt;Changes in 2.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added Microsoft Teams as an output location using a webhook. &lt;a href=&#34;https://gal.vin/posts/old/microsoft-teams-and-webhooks/&#34;&gt;Here&amp;rsquo;s a walkthrough&lt;/a&gt; on how to create a webhook for your Teams instance.&lt;/li&gt;
&lt;li&gt;MS teams is limited to 10 devices. Not sure if it’s a Teams/webhook limit, or my code. Will investigate.&lt;/li&gt;
&lt;li&gt;Fixed bug where all devices are offline, a phantom device is added to the bottom of the offline list.&lt;/li&gt;
&lt;li&gt;Cleaned up code, removing/not setting variables if they are not needed in the current mode.&lt;/li&gt;
&lt;li&gt;Added console output for when the script is in ‘monitor’ mode.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My original post with the full documentation is &lt;a href=&#34;https://gal.vin/posts/old/network-device-status/&#34;&gt;available here&lt;/a&gt;. If you have any questions or comments, please leave them below. Please consider donating to support my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;using PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thank you!&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>User Logon Auditing</title>
        <link>https://gal.vin/posts/old/quick-posh-user-logon-auditing/</link>
        <pubDate>Sat, 28 Sep 2019 20:17:08 +0000</pubDate>
        
        <atom:modified>Sat, 28 Sep 2019 20:17:08 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/quick-posh-user-logon-auditing/</guid>
        <description>Here&amp;rsquo;s a quick and dirty user logon/logoff auditing script that has been helpful in educational institutions. The script is available to download from GitHub.
Usage Open the Group Policy Object at the top most level of your domain(s) and add the script to the PowerShell scripts area. On log on, add the -logon parameter, and on log off add the -logoff parameter. Create a hidden share somewhere on your network, and give &amp;lsquo;Authenticated Users&amp;rsquo; Full Control share and file permissions.</description>
        <content:encoded>&lt;p&gt;Here&amp;rsquo;s a quick and dirty user logon/logoff auditing script that has been helpful in educational institutions. The script is available to &lt;a href=&#34;https://github.com/Digressive/Logon-Audit&#34;&gt;download from GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;usage&#34;&gt;Usage&lt;/h3&gt;
&lt;p&gt;Open the Group Policy Object at the top most level of your domain(s) and add the script to the PowerShell scripts area. On log on, add the -logon parameter, and on log off add the -logoff parameter. Create a hidden share somewhere on your network, and give &amp;lsquo;Authenticated Users&amp;rsquo; Full Control share and file permissions. Edit the $LogFile variable at the top of the script to the full path of the hidden share, including the name of the log file you wish to create. The log file includes the computer name, domain name, user name, and time and date of the log on or log off event. They are separated by commas should you wish to manipulate the data in Excel.&lt;/p&gt;
&lt;p&gt;If you have any questions or comments, please leave them below. Please consider donating to support my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;using PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thank you!&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Office Update Utility</title>
        <link>https://gal.vin/utils/office-update-utility/</link>
        <pubDate>Sun, 16 Jun 2019 15:00:47 +0000</pubDate>
        
        <atom:modified>Sun, 16 Jun 2019 15:00:47 +0000</atom:modified>
        <guid>https://gal.vin/utils/office-update-utility/</guid>
        <description>Microsoft Office Update Manager Office Update Utility is available from:
 GitHub The Microsoft PowerShell Gallery  Please consider supporting my work:
 Support with a one-time donation using PayPal.  Please report any problems via the &amp;lsquo;issues&amp;rsquo; tab on GitHub.
Thanks
-Mike
Features and Requirements  This utility will check for and download update files for Microsoft Office. It can also remove old update files. This utility requires the Office Deployment Tool a free download available here.</description>
        <content:encoded>&lt;h2 id=&#34;microsoft-office-update-manager&#34;&gt;Microsoft Office Update Manager&lt;/h2&gt;
&lt;p&gt;Office Update Utility is available from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Office-Update&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Office-Update&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please consider supporting my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support with a one-time donation using &lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please report any problems via the &amp;lsquo;issues&amp;rsquo; tab on GitHub.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
&lt;h2 id=&#34;features-and-requirements&#34;&gt;Features and Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;This utility will check for and download update files for Microsoft Office.&lt;/li&gt;
&lt;li&gt;It can also remove old update files.&lt;/li&gt;
&lt;li&gt;This utility requires the Office Deployment Tool &lt;a href=&#34;https://www.microsoft.com/en-us/download/details.aspx?id=49117&#34;&gt;a free download available here.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;This utility requires at least PowerShell 5.0.&lt;/li&gt;
&lt;li&gt;This utility has been tested on Windows 11, Windows 10, Windows Server 2022, Windows Server 2019 and Windows Server 2016.&lt;/li&gt;
&lt;li&gt;The update log can be sent via email and/or webhook.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;folder-structure&#34;&gt;Folder Structure&lt;/h2&gt;
&lt;p&gt;This utility requires a specific folder structure in order to operate, it expects the Office Deployment Tool and the configuration xml file to be in the same folder. Additionally, the source path of the Office installation files in the configuration xml file should be set to the same location. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Office Deployment Tool location: &lt;code&gt;\\server\share\Office-365-x64\setup.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Configuration xml file location: &lt;code&gt;\\server\share\Office-365-x64\config-2019-x64.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Source path in the configuration xml file: &lt;code&gt;\\server\share\Office-365-x64&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This configuration will result in the Office update files being downloaded and stored in: &lt;code&gt;\\server\share\Office-2019-x64\Office\Data&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;generating-a-password-file-for-smtp-authentication&#34;&gt;Generating A Password File For SMTP Authentication&lt;/h2&gt;
&lt;p&gt;The password used for SMTP server authentication must be in an encrypted text file. To generate the password file, run the following command in PowerShell on the computer and logged in with the user that will be running the utility. When you run the command, you will be prompted for a username and password. Enter the username and password you want to use to authenticate to your SMTP server.&lt;/p&gt;
&lt;p&gt;Please note: This is only required if you need to authenticate to the SMTP server when send the log via e-mail.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-Credential&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Password&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;ConvertFrom-SecureString&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Set-Content&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scripts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ps-script-pwd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;txt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After running the commands, you will have a text file containing the encrypted password. When configuring the -Pwd switch enter the path and file name of this file.&lt;/p&gt;
&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Here’s a list of all the command line switches and example configurations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command Line Switch&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;-Office&lt;/td&gt;
&lt;td&gt;The folder containing the Office Deployment Tool (ODT).&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Config&lt;/td&gt;
&lt;td&gt;The name of the configuration xml file for the Office ODT. It must be located in the same folder as the ODT.&lt;/td&gt;
&lt;td&gt;[file name.xml]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Days&lt;/td&gt;
&lt;td&gt;The number of days that you wish to keep old update files for. If you do not configure this option, no old files will be removed.&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-L&lt;/td&gt;
&lt;td&gt;The path to output the log file to.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-LogRotate&lt;/td&gt;
&lt;td&gt;Remove logs produced by the utility older than X days&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-NoBanner&lt;/td&gt;
&lt;td&gt;Use this option to hide the ASCII art title in the console.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Help&lt;/td&gt;
&lt;td&gt;Display usage information. No arguments also displays help.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Webhook&lt;/td&gt;
&lt;td&gt;The txt file containing the URI for a webhook to send the log file to.&lt;/td&gt;
&lt;td&gt;[path]webhook.txt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Subject&lt;/td&gt;
&lt;td&gt;Specify a subject line. If you leave this blank the default subject will be used&lt;/td&gt;
&lt;td&gt;&amp;ldquo;&#39;[Server: Notification]&#39;&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-SendTo&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent to. For multiple address, separate with a comma.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-From&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent from.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Smtp&lt;/td&gt;
&lt;td&gt;The DNS name or IP address of the SMTP server.&lt;/td&gt;
&lt;td&gt;[smtp server address]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Port&lt;/td&gt;
&lt;td&gt;The Port that should be used for the SMTP server. If none is specified then the default of 25 will be used.&lt;/td&gt;
&lt;td&gt;[port number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-User&lt;/td&gt;
&lt;td&gt;The user account to authenticate to the SMTP server.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Pwd&lt;/td&gt;
&lt;td&gt;The txt file containing the encrypted password for SMTP authentication.&lt;/td&gt;
&lt;td&gt;[path]ps-script-pwd.txt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-UseSsl&lt;/td&gt;
&lt;td&gt;Configures the utility to connect to the SMTP server using SSL.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;[path\]Office-Update.ps1 -Office [path\] -Config [file name.xml] -Days [number]
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This will update the office installation files in the specified directory, and delete update files older than X days&lt;/p&gt;
&lt;h2 id=&#34;change-log&#34;&gt;Change Log&lt;/h2&gt;
&lt;h3 id=&#34;2023-04-28-version-230428&#34;&gt;2023-04-28: Version 23.04.28&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Minor improvement to update checker. If the internet is not reachable it silently errors out.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2023-02-07-version-230207&#34;&gt;2023-02-07: Version 23.02.07&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added script update checker - shows if an update is available in the log and console.&lt;/li&gt;
&lt;li&gt;Added webhook option to send log file to.&lt;/li&gt;
&lt;li&gt;Removed SMTP authentication details from the &amp;lsquo;Config&amp;rsquo; report. Now it just shows as &amp;lsquo;configured&amp;rsquo; if SMTP user is configured. To be clear: no passwords were ever shown or stored in plain text.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-07-31-version-220730&#34;&gt;2022-07-31: Version 22.07.30&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Changed how the removal of old files works. Old versions will be removed regardless, -Days option has been removed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-06-22-version-220622&#34;&gt;2022-06-22: Version 22.06.22&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed an issue where If -L [path] not configured then a non fatal error would occur as no log path was specified for the log to be output to.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-06-14-version-220525&#34;&gt;2022-06-14: Version 22.05.25&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new feature: log can now be emailed to multiple addresses.&lt;/li&gt;
&lt;li&gt;Added checks and balances to help with configuration as I&amp;rsquo;m very aware that the initial configuration can be troublesome. Running the utility manually is a lot more friendly and step-by-step now.&lt;/li&gt;
&lt;li&gt;Added -Help to give usage instructions in the terminal. Running the script with no options will also trigger the -help switch.&lt;/li&gt;
&lt;li&gt;Cleaned user entered paths so that trailing slashes no longer break things or have otherwise unintended results.&lt;/li&gt;
&lt;li&gt;Added -LogRotate [days] to removed old logs created by the utility.&lt;/li&gt;
&lt;li&gt;Streamlined config report so non configured options are not shown.&lt;/li&gt;
&lt;li&gt;Added donation link to the ASCII banner.&lt;/li&gt;
&lt;li&gt;Cleaned up code, removed unneeded log noise.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-05-25-version-220525&#34;&gt;2022-05-25: Version 22.05.25&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added -Help to give usage instructions in the terminal. Also running the script with no options will also trigger the -help switch.&lt;/li&gt;
&lt;li&gt;Streamlined config report so non configured options are not shown.&lt;/li&gt;
&lt;li&gt;Added a -LogRotate option to delete logs older than X number of days.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-12-06-version-211206&#34;&gt;2021-12-06: Version 21.12.06&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed problem with Hostname not displaying.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-12-04-version-211204&#34;&gt;2021-12-04: Version 21.12.04&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Configured logs path now is created, if it does not exist.&lt;/li&gt;
&lt;li&gt;Added OS version info.&lt;/li&gt;
&lt;li&gt;Added an option to specify the Port for SMTP communication.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-03-03-version-20200301-crosshair&#34;&gt;2020-03-03: Version 2020.03.01 &amp;lsquo;Crosshair&amp;rsquo;&lt;/h3&gt;
&lt;p&gt;New features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Refactored code.&lt;/li&gt;
&lt;li&gt;Fully backwards compatible.&lt;/li&gt;
&lt;li&gt;Added ASCII banner art when run in the console.&lt;/li&gt;
&lt;li&gt;Added option to disable the ASCII banner art.&lt;/li&gt;
&lt;li&gt;Config report matches design of Image Factory Utility.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2019-09-04-v11&#34;&gt;2019-09-04 v1.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added custom subject line for e-mail.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2019-06-16-v10&#34;&gt;2019-06-16 v1.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Initial release.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>Microsoft 365 Apps</category>
            
          
            
              <category>Microsoft Office</category>
            
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Virtual Machine Backup Utility - Update v4.4</title>
        <link>https://gal.vin/posts/old/hyper-v-virtual-machine-backup-utility-update-v4-4/</link>
        <pubDate>Sun, 26 May 2019 11:24:57 +0000</pubDate>
        
        <atom:modified>Sun, 26 May 2019 11:24:57 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/hyper-v-virtual-machine-backup-utility-update-v4-4/</guid>
        <description>Download it from the Microsoft TechNet Gallery the PowerShell Gallery and GitHub.
Today I&amp;rsquo;ve released a minor update to my Hyper-V Backup Utility. In version 4.4 I&amp;rsquo;ve added more feedback when the script is used interactively. Whether you are running Hyper-V on a Windows 10 desktop or a Windows Server 2016 cluster, this utility can be used to backup your virtual machines. My original post with the full documentation is available here.</description>
        <content:encoded>&lt;p&gt;Download it from the &lt;a href=&#34;https://gallery.technet.microsoft.com/PowerShell-Hyper-V-Backup-7d444752?redir=0&#34;&gt;Microsoft TechNet Gallery&lt;/a&gt; the &lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;PowerShell Gallery&lt;/a&gt; and &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Today I&amp;rsquo;ve released a minor update to my Hyper-V Backup Utility. In version 4.4 I&amp;rsquo;ve added more feedback when the script is used interactively. Whether you are running Hyper-V on a Windows 10 desktop or a Windows Server 2016 cluster, this utility can be used to backup your virtual machines. My original post with the full documentation is &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have any questions or comments, please leave them below. Please consider donating to support my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;using PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thank you!&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Automated WSUS Maintenance Utility - Update v1.7</title>
        <link>https://gal.vin/posts/old/automated-wsus-maintenance-update-v1-7/</link>
        <pubDate>Tue, 23 Apr 2019 13:40:37 +0000</pubDate>
        
        <atom:modified>Tue, 23 Apr 2019 13:40:37 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/automated-wsus-maintenance-update-v1-7/</guid>
        <description>Download it from the Microsoft TechNet Gallery, PowerShell Gallery and GitHub.
I&amp;rsquo;ve released a major update to my Automated WSUS Maintenance utility. If you are using a previous version, please update to this new one.
Fixed in version 1.7:
 The script will now not run the clean-up process twice. The script will now report if the service isn&amp;rsquo;t running before starting.  My original post with the full documentation is available here.</description>
        <content:encoded>&lt;p&gt;Download it from the &lt;a href=&#34;https://gallery.technet.microsoft.com/WSUS-Maintenance-w-logging-d507a15a&#34;&gt;Microsoft TechNet Gallery&lt;/a&gt;, &lt;a href=&#34;https://www.powershellgallery.com/packages/Wsus-Maintenance&#34;&gt;PowerShell Gallery&lt;/a&gt; and &lt;a href=&#34;https://github.com/Digressive/Automated-WSUS-Maintenance&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve released a major update to my Automated WSUS Maintenance utility. If you are using a previous version, please update to this new one.&lt;/p&gt;
&lt;p&gt;Fixed in version 1.7:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The script will now not run the clean-up process twice.&lt;/li&gt;
&lt;li&gt;The script will now report if the service isn&amp;rsquo;t running before starting.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My original post with the full documentation is &lt;a href=&#34;https://gal.vin/utils/wsus-maint-utility/&#34;&gt;available here&lt;/a&gt;. If you have any questions or comments, please leave them below. Please consider donating to support my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;using PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thank you!&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Network Device Status Monitor - Update v1.1</title>
        <link>https://gal.vin/posts/old/network-device-status-monitor-update-v1-1/</link>
        <pubDate>Sat, 23 Feb 2019 11:25:42 +0000</pubDate>
        
        <atom:modified>Sat, 23 Feb 2019 11:25:42 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/network-device-status-monitor-update-v1-1/</guid>
        <description>Download it from GitHub, the Microsoft TechNet Gallery and the PowerShell Gallery.
I&amp;rsquo;ve released a minor update to my Network Device Status Monitor utility. New in 1.1:
 Updated the style of the web page with a cleaner look. Added CSS animations for online devices. The CSS animations do not display when the utility is in &amp;lsquo;report&amp;rsquo; mode. This is configured by omitting the -refresh switch, as I assume that this configuration is used to email the HTML report page rather than monitor continuously.</description>
        <content:encoded>&lt;p&gt;Download it from &lt;a href=&#34;https://github.com/Digressive/Network-Device-Status-Monitor&#34;&gt;GitHub&lt;/a&gt;, the &lt;a href=&#34;https://gallery.technet.microsoft.com/Network-Device-Status-088f7b00?redir=0&#34;&gt;Microsoft TechNet Gallery&lt;/a&gt; and the &lt;a href=&#34;https://www.powershellgallery.com/packages/NetDev-Status/1.1&#34;&gt;PowerShell Gallery&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve released a minor update to my Network Device Status Monitor utility. New in 1.1:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updated the style of the web page with a cleaner look.&lt;/li&gt;
&lt;li&gt;Added CSS animations for online devices.&lt;/li&gt;
&lt;li&gt;The CSS animations do not display when the utility is in &amp;lsquo;report&amp;rsquo; mode. This is configured by omitting the -refresh switch, as I assume that this configuration is used to email the HTML report page rather than monitor continuously.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My original post with the full documentation is &lt;a href=&#34;https://gal.vin/posts/old/network-device-status/&#34;&gt;available here&lt;/a&gt;. If you have any questions or comments, please leave them below. Please consider donating to support my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;using PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thank you!&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Windows Server Status Monitor - Update v1.6</title>
        <link>https://gal.vin/posts/old/windows-server-status-monitor-update-v1-6/</link>
        <pubDate>Sat, 23 Feb 2019 11:17:44 +0000</pubDate>
        
        <atom:modified>Sat, 23 Feb 2019 11:17:44 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/windows-server-status-monitor-update-v1-6/</guid>
        <description>Download it from GitHub, the Microsoft TechNet Gallery and the PowerShell Gallery.
I&amp;rsquo;ve released a minor update to my Windows Server Status Monitor utility.
New in 1.6:
 Updated the style of the web page with a cleaner look. Added CSS animations for online devices. The CSS animations do not display when the utility is in &amp;lsquo;report&amp;rsquo; mode. This is configured by omitting the -refresh switch, as I assume that this configuration is used to email the HTML report page rather than monitor continuously.</description>
        <content:encoded>&lt;p&gt;Download it from &lt;a href=&#34;https://github.com/Digressive/Windows-Server-Status-Monitor&#34;&gt;GitHub&lt;/a&gt;, the &lt;a href=&#34;https://gallery.technet.microsoft.com/Windows-Server-Status-185604a9?redir=0&#34;&gt;Microsoft TechNet Gallery&lt;/a&gt; and the &lt;a href=&#34;https://www.powershellgallery.com/packages/WinServ-Status&#34;&gt;PowerShell Gallery&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve released a minor update to my Windows Server Status Monitor utility.&lt;/p&gt;
&lt;p&gt;New in 1.6:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updated the style of the web page with a cleaner look.&lt;/li&gt;
&lt;li&gt;Added CSS animations for online devices.&lt;/li&gt;
&lt;li&gt;The CSS animations do not display when the utility is in &amp;lsquo;report&amp;rsquo; mode. This is configured by omitting the -refresh switch, as I assume that this configuration is used to email the HTML report page rather than monitor continuously.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My original post with the full documentation is &lt;a href=&#34;https://gal.vin/posts/old/windows-server-status/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have any questions or comments, please leave them below. Please consider donating to support my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;using PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thank you!&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Automated Office 365 Licensing v1.1</title>
        <link>https://gal.vin/posts/old/automated-office-365-licensing/</link>
        <pubDate>Sun, 04 Nov 2018 10:05:10 +0000</pubDate>
        
        <atom:modified>Sun, 04 Nov 2018 10:05:10 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/automated-office-365-licensing/</guid>
        <description>Update 2019-06-16 I recently learned that Office 365 licensing can be managed via Azure Active Directory&amp;rsquo;s group based licensing feature and I have since switched to using this and have retired this script. I&amp;rsquo;ll leave this post and the script itself available here, on the Microsoft TechNet Gallery and GitHub, but I&amp;rsquo;ll not be developing the script any further. For more information on Azure Active Directory group-based licensing please check out Microsoft&amp;rsquo;s documentation here and here to start with.</description>
        <content:encoded>&lt;h2 id=&#34;update-2019-06-16&#34;&gt;Update 2019-06-16&lt;/h2&gt;
&lt;p&gt;I recently learned that Office 365 licensing can be managed via Azure Active Directory&amp;rsquo;s group based licensing feature and I have since switched to using this and have retired this script. I&amp;rsquo;ll leave this post and the script itself available here, on the Microsoft TechNet Gallery and GitHub, but I&amp;rsquo;ll not be developing the script any further. For more information on Azure Active Directory group-based licensing please check out Microsoft&amp;rsquo;s documentation &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/active-directory-licensing-whatis-azure-portal&#34;&gt;here&lt;/a&gt; and &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/licensing-groups-migrate-users&#34;&gt;here&lt;/a&gt; to start with.&lt;/p&gt;
&lt;p&gt;PowerShell script to assign Office 365 license to users in an Active Directory OU structure.&lt;/p&gt;
&lt;p&gt;Please consider donating to support my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can support me with a one-time payment &lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;using PayPal.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
&lt;h2 id=&#34;features-and-requirements&#34;&gt;Features and Requirements&lt;/h2&gt;
&lt;p&gt;This utility will assign a configurable Office 365 license to Active Directory user accounts within an OU or descending OUs. All options are added via command line switches. Options include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Office 365 Global Admin user and password to use.&lt;/li&gt;
&lt;li&gt;The Office 365 license and usage location to assign.&lt;/li&gt;
&lt;li&gt;Organisation Unit which contains to users to license.&lt;/li&gt;
&lt;li&gt;The directory to output a log file to.&lt;/li&gt;
&lt;li&gt;An optional email address to send the log file to.&lt;/li&gt;
&lt;li&gt;This utility requires the MSOnline and Active Directory PowerShell modules to be installed.&lt;/li&gt;
&lt;li&gt;The utility requires at least PowerShell 5.0.&lt;/li&gt;
&lt;li&gt;This utility has been tested running on Windows Server 2016.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;generating-a-password-file-for-smtp-authentication&#34;&gt;Generating A Password File For SMTP Authentication&lt;/h2&gt;
&lt;p&gt;The password used for SMTP server authentication must be in an encrypted text file. To generate the password file, run the following command in PowerShell, on the computer that is going to run the script and logged in with the user that will be running the script. When you run the command you will be prompted for a username and password. Enter the username and password you want to use to authenticate to your SMTP server.&lt;/p&gt;
&lt;p&gt;Please note: This is only required if you need to authenticate to the SMTP server when send the log via e-mail.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-Credential&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Password&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;ConvertFrom-SecureString&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Set-Content&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scripts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ps-script-pwd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;txt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After running the commands, you will have a text file containing the encrypted password. When configuring the -Pwd switch enter the path and file name of this file.&lt;/p&gt;
&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Here’s a list of all the command line switches and example configurations.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-User365
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The Office 365 Admin user to use for the operation.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-Pwd365
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The password for the Office 365 Admin user to use for the operation.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-Lic
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The Office 365 license to apply to your users.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-UseLoc
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The Office 365 usage location to use.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-OU
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The top level OU that contains the users to license in Office 365.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-L
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The path to output the log file to. The file name will be Office-365-Licensing.log&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-Subject
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The email subject that the email should have. Encapsulate with single or double quotes.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-SendTo
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The e-mail address the log should be sent to.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-From
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The e-mail address the log should be sent from.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-Smtp
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The DNS name or IP address of the SMTP server.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-User
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The user account to connect to the SMTP server.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-Pwd
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The txt file containing the encrypted password for the user account.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-UseSsl
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Configures the script to connect to the SMTP server using SSL.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;Office-365-Licensing.ps1 -User365 GAdmin@contosocom.onmicrosoft.com -Pwd365 P@ssw0rd -Lic contosocom:ENTERPRISEPACK -UseLoc GB -OU OU=MyUsers,DC=contoso,DC=com
-L C:\scripts\logs -Subject &amp;#39;Server: O365 Licensing&amp;#39; -SendTo me@contoso.com -From Office-365-licensing@contoso.com -Smtp smtp.outlook.com -User user -Pwd c:\scripts\ps-script-pwd.txt -UseSsl
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This will login to Office 365 with the specified user and assign licenses to the users in the MyUsers OU, and OUs below that. On completion it will e-mail the log file to the specified address with a custom subject line.&lt;/p&gt;
&lt;h2 id=&#34;change-log&#34;&gt;Change Log&lt;/h2&gt;
&lt;h3 id=&#34;2019-09-04-11&#34;&gt;2019-09-04 1.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added custom subject line for e-mail.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2018-04-11-10&#34;&gt;2018-04-11 1.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Initial release.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>Office 365</category>
            
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Virtual Machine Backup Utility - Update v4.3</title>
        <link>https://gal.vin/posts/old/hyper-v-virtual-machine-backup-utility-update-version-4-3/</link>
        <pubDate>Thu, 21 Jun 2018 20:36:37 +0000</pubDate>
        
        <atom:modified>Thu, 21 Jun 2018 20:36:37 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/hyper-v-virtual-machine-backup-utility-update-version-4-3/</guid>
        <description>Download it from the Microsoft TechNet Gallery the PowerShell Gallery and GitHub.
Today I&amp;rsquo;ve released an update to my Hyper-V Backup Utility. In version 4.3 I&amp;rsquo;ve added the ability to specify the Hyper-V Virtual Machines you wish to backup using a TXT file. I&amp;rsquo;ve also improved some of the commenting and cleaned up some of the code. Whether you are running Hyper-V on a Windows 10 desktop or a Windows Server 2016 cluster, this utility can be used to backup your virtual machines.</description>
        <content:encoded>&lt;p&gt;Download it from the &lt;a href=&#34;https://gallery.technet.microsoft.com/PowerShell-Hyper-V-Backup-7d444752?redir=0&#34;&gt;Microsoft TechNet Gallery&lt;/a&gt; the &lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;PowerShell Gallery&lt;/a&gt; and &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Today I&amp;rsquo;ve released an update to my Hyper-V Backup Utility. In version 4.3 I&amp;rsquo;ve added the ability to specify the Hyper-V Virtual Machines you wish to backup using a TXT file. I&amp;rsquo;ve also improved some of the commenting and cleaned up some of the code. Whether you are running Hyper-V on a Windows 10 desktop or a Windows Server 2016 cluster, this utility can be used to backup your virtual machines. My original post with the full documentation is &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;Please consider donating to support my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;using PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thank you!&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Network Device Status Monitor</title>
        <link>https://gal.vin/posts/old/network-device-status/</link>
        <pubDate>Thu, 14 Jun 2018 18:34:10 +0000</pubDate>
        
        <atom:modified>Thu, 14 Jun 2018 18:34:10 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/network-device-status/</guid>
        <description>PowerShell based network attached device monitor Please consider donating to support my work:
 You can support me with a one-time payment using PayPal  Network Device Status Monitor can also be downloaded from:
 The PowerShell Gallery  Please report any problems via the ‘issues’ tab on GitHub.
-Mike
Features and Requirements  The utility can output the network device name and IP address as specified in the CSV file.</description>
        <content:encoded>&lt;h2 id=&#34;powershell-based-network-attached-device-monitor&#34;&gt;PowerShell based network attached device monitor&lt;/h2&gt;
&lt;p&gt;Please consider donating to support my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can support me with a one-time payment &lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;using PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Network Device Status Monitor can also be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/NetDev-Status&#34;&gt;The PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please report any problems via the ‘issues’ tab on GitHub.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
&lt;h2 id=&#34;features-and-requirements&#34;&gt;Features and Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The utility can output the network device name and IP address as specified in the CSV file.&lt;/li&gt;
&lt;li&gt;Online/Offline status of the specified devices will be displayed.&lt;/li&gt;
&lt;li&gt;The utility will display the response time of online network devices.&lt;/li&gt;
&lt;li&gt;The utility can be configured to output the report as either a CSV file or a HTML file.&lt;/li&gt;
&lt;li&gt;The utility can be configured to run in &amp;lsquo;monitor&amp;rsquo; mode or as a one shot report.&lt;/li&gt;
&lt;li&gt;The utility can be configured to email the report, or send offline alerts to Microsoft Teams&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Microsoft Teams output requires an incoming webhook to be setup in your Teams instance. &lt;a href=&#34;https://gal.vin/posts/old/microsoft-teams-and-webhooks/&#34;&gt;Here&amp;rsquo;s a walkthrough&lt;/a&gt; on how to do that. The script has been tested running on Windows 10, Windows Server 2016 and 2019 monitoring network devices with IPv4 addresses.&lt;/p&gt;
&lt;h2 id=&#34;csv-file-structure&#34;&gt;CSV File Structure&lt;/h2&gt;
&lt;p&gt;The structure of the CSV file is as follows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;IP,Name
10.30.1.1,Router
10.30.1.5,NAS
10.30.1.10,Switch 1
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;generating-a-password-file-for-smtp-authentication&#34;&gt;Generating A Password File For SMTP Authentication&lt;/h2&gt;
&lt;p&gt;The password used for SMTP server authentication must be in an encrypted text file. To generate the password file, run the following command in PowerShell, on the computer that is going to run the script and logged in with the user that will be running the script. When you run the command you will be prompted for a username and password. Enter the username and password you want to use to authenticate to your SMTP server.&lt;/p&gt;
&lt;p&gt;Please note: This is only required if you need to authenticate to the SMTP server when send the log via e-mail.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-Credential&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Password&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;ConvertFrom-SecureString&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Set-Content&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scripts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ps-script-pwd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;txt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After running the commands, you will have a text file containing the encrypted password. When configuring the -Pwd switch enter the path and file name of this file.&lt;/p&gt;
&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Here’s a list of all the command line switches and example configurations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command Line Switch&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;-List&lt;/td&gt;
&lt;td&gt;The full path to a CSV file with a list of IP addresses and device names to monitor, separated by a comma.&lt;/td&gt;
&lt;td&gt;[path]networkdevices.csv&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Teams&lt;/td&gt;
&lt;td&gt;The full path to a txt file containing the webhook URL for Teams. If this setting is configured other output settings will be ignored.&lt;/td&gt;
&lt;td&gt;[path]webhook.txt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-FR&lt;/td&gt;
&lt;td&gt;Use this switch to send a full report to Teams. This setting only has an effect when used with the -Teams switch.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-O&lt;/td&gt;
&lt;td&gt;The path where the HTML or CSV report should be output to. The filename will be NetDev-Status-Report.html/csv.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Refresh&lt;/td&gt;
&lt;td&gt;Enable monitoring mode. The number of seconds that she script should wait before running again. The minimum is 300 seconds (5 minutes) and the maximum is 28800 (8 hours). If not configured the script will run once and then exit.&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Light&lt;/td&gt;
&lt;td&gt;Use a light theme for the web page generated. This setting had no effect on a CSV file report.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-csv&lt;/td&gt;
&lt;td&gt;Output a CSV file instead of a HTML file for the report.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Subject&lt;/td&gt;
&lt;td&gt;Specify a subject line. If you leave this blank the default subject will be used&lt;/td&gt;
&lt;td&gt;&amp;ldquo;&#39;[Server: Notification]&#39;&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-SendTo&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent to. For multiple address, separate with a comma.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-From&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent from.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Smtp&lt;/td&gt;
&lt;td&gt;The DNS name or IP address of the SMTP server.&lt;/td&gt;
&lt;td&gt;[smtp server address]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-User&lt;/td&gt;
&lt;td&gt;The user account to authenticate to the SMTP server.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Pwd&lt;/td&gt;
&lt;td&gt;The txt file containing the encrypted password for SMTP authentication.&lt;/td&gt;
&lt;td&gt;[path]ps-script-pwd.txt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-UseSsl&lt;/td&gt;
&lt;td&gt;Configures the utility to connect to the SMTP server using SSL.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;example-configuration&#34;&gt;Example Configuration&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;NetDev-Status.ps1 -List C:\foo\networkdevices.csv -O C:\foo -Refresh 300 -Light
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Using this example config, the script will execute using the list of network devices and output a html report called NetDev-Status-Report.htm to C:\foo. The status of the network devices will refresh every 5 minutes, and the web page will have a light theme instead of a dark theme.&lt;/p&gt;
&lt;h2 id=&#34;change-log&#34;&gt;Change Log&lt;/h2&gt;
&lt;h3 id=&#34;2019-10-02-v20&#34;&gt;2019-10-02 v2.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added Microsoft Teams as an output location, for either offline alerts, or a &amp;lsquo;full&amp;rsquo; report.&lt;/li&gt;
&lt;li&gt;MS teams is limited to 10 devices. Not sure if it&amp;rsquo;s a Teams/webhook limit, or my code. Will investigate.&lt;/li&gt;
&lt;li&gt;Fixed bug where all devices are offline, a phantom device is added to the bottom of the offline list.&lt;/li&gt;
&lt;li&gt;Cleaned up code, removing/not setting variables if they are not needed in the current mode.&lt;/li&gt;
&lt;li&gt;Added console output for when the script is in &amp;lsquo;monitor&amp;rsquo; mode.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2019-09-04-v12&#34;&gt;2019-09-04 v1.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added custom subject line for email.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2019-02-23-v11&#34;&gt;2019-02-23 v1.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Updated the style of the web page with a cleaner look.&lt;/li&gt;
&lt;li&gt;Added &amp;lsquo;online&amp;rsquo; CSS animation when the web page is in monitor mode - this is configured by using the refresh switch. It will not display when in report mode (no refresh switch).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2018-06-13-v10&#34;&gt;2018-06-13 v1.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;First public release.&lt;/li&gt;
&lt;li&gt;Based off Windows Server Status Monitor version 1.5 code.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Windows Server Status Monitor - Update v1.5</title>
        <link>https://gal.vin/posts/old/windows-server-status-monitor-update-15/</link>
        <pubDate>Sun, 10 Jun 2018 12:47:58 +0000</pubDate>
        
        <atom:modified>Sun, 10 Jun 2018 12:47:58 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/windows-server-status-monitor-update-15/</guid>
        <description>Download it from the PowerShell Gallery and GitHub.
23/02/2019 Update: Version 1.6 has now been released, you can check out the new features on the announcement post here.
I&amp;rsquo;ve released an update to my Windows Server Status Monitor utility.
In version 1.5 there are two new features:
 A light theme for the report page. An option to export the monitoring data to a CSV file.  Whether you only have a few servers or a hundred, this utility can be used to monitor them and alert you about problems.</description>
        <content:encoded>&lt;p&gt;&lt;img src=&#34;https://gal.vin/media/wssm-light-dark-theme.webp&#34; alt=&#34;Light and Dark Theme&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Download it from the &lt;a href=&#34;https://www.powershellgallery.com/packages/WinServ-Status&#34;&gt;PowerShell Gallery&lt;/a&gt; and &lt;a href=&#34;https://github.com/Digressive/Windows-Server-Status-Monitor&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;23/02/2019 Update: Version 1.6 has now been released, you can check out the new features on the &lt;a href=&#34;https://gal.vin/posts/old/windows-server-status-monitor-update-v1-6/&#34;&gt;announcement post here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve released an update to my Windows Server Status Monitor utility.&lt;/p&gt;
&lt;p&gt;In version 1.5 there are two new features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A light theme for the report page.&lt;/li&gt;
&lt;li&gt;An option to export the monitoring data to a CSV file.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Whether you only have a few servers or a hundred, this utility can be used to monitor them and alert you about problems. My original post with the full documentation is &lt;a href=&#34;https://gal.vin/posts/old/windows-server-status/&#34;&gt;available here&lt;/a&gt;. If you have any questions or comments, please leave them below. Please consider donating to support my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;using PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thank you!&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Windows Server Status Monitor - Update v1.4</title>
        <link>https://gal.vin/posts/old/windows-server-status-monitor-update-14/</link>
        <pubDate>Thu, 24 May 2018 21:09:31 +0000</pubDate>
        
        <atom:modified>Thu, 24 May 2018 21:09:31 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/windows-server-status-monitor-update-14/</guid>
        <description>Download it from the Microsoft TechNet Gallery the PowerShell Gallery and GitHub.
2019-02-23 Update: Version 1.6 has now been released, you can check out the new features on the announcement post here. Today I&amp;rsquo;ve released an update to my Windows Server Status Monitor PowerShell script. Version 1.4 brings a few updates:
 Offline servers will always be at the top of the page. Servers are sorted alphabetically, regardless of what order they are specified in the TXT file.</description>
        <content:encoded>&lt;p&gt;Download it from the &lt;a href=&#34;https://gallery.technet.microsoft.com/Windows-Server-Status-185604a9?redir=0&#34;&gt;Microsoft TechNet Gallery&lt;/a&gt; the &lt;a href=&#34;https://www.powershellgallery.com/packages/WinServ-Status&#34;&gt;PowerShell Gallery&lt;/a&gt; and &lt;a href=&#34;https://github.com/Digressive/Windows-Server-Status-Monitor&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;2019-02-23 Update: Version 1.6 has now been released, you can check out the new features on the &lt;a href=&#34;https://gal.vin/posts/old/windows-server-status-monitor-update-v1-6/&#34;&gt;announcement post here&lt;/a&gt;. Today I&amp;rsquo;ve released an update to my Windows Server Status Monitor PowerShell script. Version 1.4 brings a few updates:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Offline servers will always be at the top of the page.&lt;/li&gt;
&lt;li&gt;Servers are sorted alphabetically, regardless of what order they are specified in the TXT file.&lt;/li&gt;
&lt;li&gt;The script can now be run in monitor mode or a one time report mode.&lt;/li&gt;
&lt;li&gt;The monitor mode will produce a configurable, auto refreshing web page that you can use as a live status monitor.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Whether you only have a few servers or a hundred, this utility can be used to monitor them and alert you about problems. My original post with the full documentation is &lt;a href=&#34;https://gal.vin/posts/old/windows-server-status/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have any questions or comments, please leave them below. Please consider donating to support my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;using PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thank you!&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Virtual Machine Backup Utility - Update v4.1</title>
        <link>https://gal.vin/posts/old/hyper-v-backup-utility-update-41/</link>
        <pubDate>Sat, 03 Mar 2018 21:43:41 +0000</pubDate>
        
        <atom:modified>Sat, 03 Mar 2018 21:43:41 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/hyper-v-backup-utility-update-41/</guid>
        <description>Download it from the Microsoft TechNet Gallery the PowerShell Gallery and GitHub.
Today I&amp;rsquo;ve released an update to my Hyper-V Backup Utility PowerShell script. Version 4.1 adds zip file creation and the ability to keep a history of Virtual Machine backups. These new features are included along with the ability to backup Virtual Machines using the built-in Hyper-V export function, meaning that the VMs do not need to be shutdown. However if the Hyper-V host lacks the permissions necessary to perform the export, it can be configured to shutdown the Virtual Machines and backup through a file-based copy operation.</description>
        <content:encoded>&lt;p&gt;Download it from the &lt;a href=&#34;https://gallery.technet.microsoft.com/PowerShell-Hyper-V-Backup-7d444752?redir=0&#34;&gt;Microsoft TechNet Gallery&lt;/a&gt; the &lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;PowerShell Gallery&lt;/a&gt; and &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Today I&amp;rsquo;ve released an update to my Hyper-V Backup Utility PowerShell script. Version 4.1 adds zip file creation and the ability to keep a history of Virtual Machine backups. These new features are included along with the ability to backup Virtual Machines using the built-in Hyper-V export function, meaning that the VMs do not need to be shutdown. However if the Hyper-V host lacks the permissions necessary to perform the export, it can be configured to shutdown the Virtual Machines and backup through a file-based copy operation. Whether you are running Hyper-V on a Windows 10 desktop or a Windows Server 2016 cluster, this utility can be used to backup your virtual machines. My original post with the full documentation is &lt;a href=&#34;https://gal.vin/utils/hyperv-backup-utility/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;Please consider donating to support my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;using PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thank you!&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Hyper-V Backup Utility</title>
        <link>https://gal.vin/utils/hyperv-backup-utility/</link>
        <pubDate>Mon, 18 Sep 2017 20:25:26 +0000</pubDate>
        
        <atom:modified>Mon, 18 Sep 2017 20:25:26 +0000</atom:modified>
        <guid>https://gal.vin/utils/hyperv-backup-utility/</guid>
        <description>Flexible Hyper-V Backup Utility Hyper-V Backup Utility is available from:
 GitHub The Microsoft PowerShell Gallery  Please consider supporting my work:
 Support with a one-time donation using PayPal.  Please report any problems via the &amp;lsquo;issues&amp;rsquo; tab on GitHub.
Thanks
-Mike
Features and Requirements  Designed to be run on a Hyper-V host. The Hyper-V host must have the Hyper-V management PowerShell modules installed. Can be used to backup VMs to a device which the Hyper-V host does not have permission to run a regular export to.</description>
        <content:encoded>&lt;h2 id=&#34;flexible-hyper-v-backup-utility&#34;&gt;Flexible Hyper-V Backup Utility&lt;/h2&gt;
&lt;p&gt;Hyper-V Backup Utility is available from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Hyper-V-Backup&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please consider supporting my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support with a one-time donation using &lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please report any problems via the &amp;lsquo;issues&amp;rsquo; tab on GitHub.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
&lt;h2 id=&#34;features-and-requirements&#34;&gt;Features and Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Designed to be run on a Hyper-V host.&lt;/li&gt;
&lt;li&gt;The Hyper-V host must have the Hyper-V management PowerShell modules installed.&lt;/li&gt;
&lt;li&gt;Can be used to backup VMs to a device which the Hyper-V host does not have permission to run a regular export to.&lt;/li&gt;
&lt;li&gt;Supports Hyper-V hosts in a clustered configuration.&lt;/li&gt;
&lt;li&gt;The utility requires at least Windows PowerShell 5.0.&lt;/li&gt;
&lt;li&gt;Tested on Windows 11, Windows 10, Windows Server 2022, Windows Server 2019 and Windows Server 2016.&lt;/li&gt;
&lt;li&gt;The backup log can be sent via email and/or webhook.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;smb-share-support&#34;&gt;SMB share support&lt;/h2&gt;
&lt;p&gt;An SMB share can be used as a backup location by specifying the UNC path (\\server\share) with the -BackupTo option. Please note that you must use either a local working directory (-Wd path) or the -NoPerms option if your SMB share host and Hyper-V host are not members of an Active Directory domain. Hyper-V cannot perform export VMs to a network share without the Hyper-V host having permissions to the share which are possible when using Windows servers and Active Directory and not available with a NAS appliance such as TrueNAS, QNAP or Synology.&lt;/p&gt;
&lt;h2 id=&#34;when-to-use-the--noperms-option&#34;&gt;When to use the -NoPerms option&lt;/h2&gt;
&lt;p&gt;The -NoPerms switch is intended as a workaround when used in an environment where the Hyper-V host cannot be given the required permissions to run a regular export to a remote device such as a NAS device. To copy all the files necessary for a complete backup, the VM must be in an offline state for the operation to be completed. Therefore the script will put the VM in a &amp;lsquo;Saved&amp;rsquo; state (if it is running) so the files can be copied. In previous versions the VM would be shutdown but this is a faster and safer method as the VM does not require any integrations to be put in a saved state.&lt;/p&gt;
&lt;p&gt;Hyper-V’s export operation requires that the computer account in Active Directory have access to the location where the exports are being stored. When a NAS is intended to be used as an export location, Hyper-V will not be able to complete the operation as the computer account cannot be given access to the share on the NAS.&lt;/p&gt;
&lt;h2 id=&#34;7-zip-support&#34;&gt;7-Zip support&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve implemented support for 7-Zip into the script. You should be able to use any option that 7-zip supports, although currently the only options I&amp;rsquo;ve tested fully are &amp;lsquo;-t&amp;rsquo; archive type, &amp;lsquo;-p&amp;rsquo; password and &amp;lsquo;-v&amp;rsquo; split files.&lt;/p&gt;
&lt;h2 id=&#34;generating-a-credentials-file-for-smtp-authentication&#34;&gt;Generating A Credentials File For SMTP Authentication&lt;/h2&gt;
&lt;p&gt;The password used for SMTP server authentication must be in an encrypted text file. To generate the password file, run the command below in PowerShell on the same computer and logged in with the user that will be running the utility. When you run the command, you will be prompted for a username and password. Enter the username and password you want to use to authenticate to your SMTP server.&lt;/p&gt;
&lt;p&gt;Please note: This is only required if you need to authenticate to the SMTP server when sending the log via e-mail.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\]&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Hyper-V-Backup&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ps1&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-MakeCreds&lt;/span&gt; &lt;span class=&#34;no&#34;&gt;[filename.txt]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After running the commands, you will have a text file containing the encrypted password. When configuring the -Pwd switch enter the path and file name of this file.&lt;/p&gt;
&lt;h2 id=&#34;restoring-a-virtual-machine-from-backup&#34;&gt;Restoring a virtual machine from backup&lt;/h2&gt;
&lt;p&gt;The easiest and quickest way to restore a Virtual Machine that has been backed up using this script is to use Hyper-V&amp;rsquo;s native import function.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Copy the backup of the VM you want to restore to a location on the VM host server that the VM should run from. If the backup is compressed, uncompress the file.&lt;/li&gt;
&lt;li&gt;In the Hyper-V Manager, right-click on the VM host and select &amp;lsquo;Import Virtual Machine&amp;rsquo;.&lt;/li&gt;
&lt;li&gt;Browse to the location of the VM backup folder and click Next.&lt;/li&gt;
&lt;li&gt;Select the VM you want to restore.&lt;/li&gt;
&lt;li&gt;Select &amp;lsquo;Register the virtual machine in-place&amp;rsquo; option.&lt;/li&gt;
&lt;li&gt;The VM will be registered in Hyper-V and available for use.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Here’s a list of all the command line switches and example configurations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command Line Switch&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;-BackupTo&lt;/td&gt;
&lt;td&gt;The path the virtual machines should be backed up to. Each VM will have its own folder inside this location. This can be an SMB share but you must also use either -Wd or -NoPerms.&lt;/td&gt;
&lt;td&gt;[path] or [\\server\path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-SMBUsr&lt;/td&gt;
&lt;td&gt;Enter the domain and user required to access the SMB share. Use only if required.&lt;/td&gt;
&lt;td&gt;domain\user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-SMBPwd&lt;/td&gt;
&lt;td&gt;Enter the password for the above account required to access the SMB share. Use only if required.&lt;/td&gt;
&lt;td&gt;password&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-AllVms&lt;/td&gt;
&lt;td&gt;If this option is configured all VMs will be backed up.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Prefix&lt;/td&gt;
&lt;td&gt;Use this option to specify VM names beginning with the string specified to backup.&lt;/td&gt;
&lt;td&gt;[string]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-List&lt;/td&gt;
&lt;td&gt;Enter the path to a txt file with a list of Hyper-V VM names to backup. If this option, -Prefix and -AllVms are not configured, all running VMs will be backed up.&lt;/td&gt;
&lt;td&gt;[path\vms.txt]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-CaptureState&lt;/td&gt;
&lt;td&gt;Enter a method to use when exporting the VM. If this option is not configured, the default method will be used.&lt;/td&gt;
&lt;td&gt;CaptureCrashConsistentState, CaptureSavedState, CaptureDataConsistentState&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Wd&lt;/td&gt;
&lt;td&gt;The path to the working directory to use for the backup before copying it to the final backup directory. Use a directory on local fast media to improve performance.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-NoPerms&lt;/td&gt;
&lt;td&gt;Configures the utility to shut down running VMs to do the file-copy based backup instead of using the Hyper-V export function.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Keep&lt;/td&gt;
&lt;td&gt;Instructs the utility to keep a specified number of days worth of backups. VM backups older than the number of days specified will be deleted.&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Compress&lt;/td&gt;
&lt;td&gt;This option will create a zip file of each Hyper-V VM backup.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Sz&lt;/td&gt;
&lt;td&gt;Configure the utility to use 7-Zip to compress the VM backups. 7-Zip must be installed in the default location &lt;code&gt;$env:ProgramFiles&lt;/code&gt; if it is not found, Windows compression will be used.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-SzOptions&lt;/td&gt;
&lt;td&gt;Use this switch to configure options for 7-Zip. The switches must be comma separated.&lt;/td&gt;
&lt;td&gt;&amp;ldquo;&#39;-t7z,-v2G,-ppassword&#39;&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-ShortDate&lt;/td&gt;
&lt;td&gt;Configure the script to use only the Year, Month and Day in backup filenames.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-LowDisk&lt;/td&gt;
&lt;td&gt;Remove old backups before new ones are created. For low disk space situations.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-L&lt;/td&gt;
&lt;td&gt;The path to output the log file to.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-LogRotate&lt;/td&gt;
&lt;td&gt;Remove logs produced by the utility older than X days&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-NoBanner&lt;/td&gt;
&lt;td&gt;Use this option to hide the ASCII art title in the console.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Help&lt;/td&gt;
&lt;td&gt;Display usage information. No arguments also displays help.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-ProgCheck&lt;/td&gt;
&lt;td&gt;Send notifications (email or webhook) after each VM is backed up.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-OptimiseVHD&lt;/td&gt;
&lt;td&gt;Optimise the VHDs and make them smaller before copy. Must be used with -NoPerms option.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Webhook&lt;/td&gt;
&lt;td&gt;The txt file containing the URI for a webhook to send the log file to.&lt;/td&gt;
&lt;td&gt;[path\webhook.txt]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Subject&lt;/td&gt;
&lt;td&gt;Specify a subject line. If you leave this blank the default subject will be used&lt;/td&gt;
&lt;td&gt;&amp;ldquo;&#39;[Server: Notification]&#39;&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-SendTo&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent to. For multiple address, separate with a comma.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-From&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent from.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Smtp&lt;/td&gt;
&lt;td&gt;The DNS name or IP address of the SMTP server.&lt;/td&gt;
&lt;td&gt;[smtp server address]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Port&lt;/td&gt;
&lt;td&gt;The Port that should be used for the SMTP server. If none is specified then the default of 25 will be used.&lt;/td&gt;
&lt;td&gt;[port number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-User&lt;/td&gt;
&lt;td&gt;The user account to authenticate to the SMTP server.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Pwd&lt;/td&gt;
&lt;td&gt;The txt file containing the encrypted password for SMTP authentication.&lt;/td&gt;
&lt;td&gt;[path\ps-script-pwd.txt]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-UseSsl&lt;/td&gt;
&lt;td&gt;Configures the utility to connect to the SMTP server using SSL.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-MakeCreds&lt;/td&gt;
&lt;td&gt;Use this option to create a credentials file for SMTP authentication. The file will be created in the same directory as the script.&lt;/td&gt;
&lt;td&gt;[filename.txt]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;how-to-use&#34;&gt;How to use&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;[path\]Hyper-V-Backup.ps1 -BackupTo [path]
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This will backup all the VMs running to the backup location specified.&lt;/p&gt;
&lt;h2 id=&#34;change-log&#34;&gt;Change Log&lt;/h2&gt;
&lt;h3 id=&#34;2024-08-29-version-240829&#34;&gt;2024-08-29: Version 24.08.29&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added Sponsorship information to the projects Github.&lt;/li&gt;
&lt;li&gt;Added SMB Authentication, based on work from &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/pull/37&#34;&gt;PR 37&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Added -MakeCreds option to help in creation of SMTP authentication file.&lt;/li&gt;
&lt;li&gt;Added -AllVms option to specify the backing up of all VMs on a Hyper-V server without the need for a list file.&lt;/li&gt;
&lt;li&gt;Added -Prefix option to backup all VMs beginning with the string specified.&lt;/li&gt;
&lt;li&gt;Added more information about Hyper-V&amp;rsquo;s export limitations to the documentation and in app help.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2024-05-11-version-240511&#34;&gt;2024-05-11: Version 24.05.11&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed an issue where backup success would be reported when using a working directory and the final destination directory for the backup didn&amp;rsquo;t have enough disk space. From &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/27&#34;&gt;Issue 27&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2024-03-21-version-240321&#34;&gt;2024-03-21: Version 24.03.21&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added -CaptureState option for the user to specify the method that Export-VM uses to capture the state of the VM whilst running. From &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/34&#34;&gt;Issue 34&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2024-03-18-version-240318&#34;&gt;2024-03-18: Version 24.03.18&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added fix for verifying password protected 7-Zip archives from &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/33&#34;&gt;Issue 33&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2024-03-08-version-240308&#34;&gt;2024-03-08: Version 24.03.08&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed 7-Zip split files getting renamed and not keeping file extensions when short dates are used.&lt;/li&gt;
&lt;li&gt;Added a verify operation for 7-Zip created archives as per &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/33&#34;&gt;Issue 33&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fixed an issue where failed backups where also listed as successful.&lt;/li&gt;
&lt;li&gt;Overhauled the backup success/fail checks. They now work a lot more reliably.&lt;/li&gt;
&lt;li&gt;Added check for the work dir/backup dir to exist before trying to remove as this caused a script error.&lt;/li&gt;
&lt;li&gt;Cleaned up console and log file output.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2023-09-05-version-230905&#34;&gt;2023-09-05: Version 23.09.05&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new features from &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/28&#34;&gt;Issue 28&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Added -ProgCheck option. With this option set, notifications will be sent after each VM is backup is finished.&lt;/li&gt;
&lt;li&gt;Added backup time duration to the script output.&lt;/li&gt;
&lt;li&gt;Added -OptimiseVHD option to shrink the size of the VHDs. Can only be used the the -NoPerms option as the VM must be offline to optimise the VHDs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;del&gt;### 2023-07-25: Version 23.07.25&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;~~* Changed strings that check for VM state to numerical values to help with non-english systems. Thanks to &amp;lsquo;mannyagre&amp;rsquo; for the suggestion.~~&lt;/p&gt;
&lt;h3 id=&#34;2023-04-28-version-230428&#34;&gt;2023-04-28: Version 23.04.28&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Minor improvement to update checker. If the internet is not reachable it silently errors out.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2023-02-18-version-230218&#34;&gt;2023-02-18: Version 23.02.18&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed specific SMTP config info from config report. &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/24&#34;&gt;Issue 24&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Added a &amp;ldquo;simple auth edition&amp;rdquo; version of the script. &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/25&#34;&gt;Issue 25&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2023-02-07-version-230207&#34;&gt;2023-02-07: Version 23.02.07&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed SMTP authentication details from the &amp;lsquo;Config&amp;rsquo; report. Now it just shows as &amp;lsquo;configured&amp;rsquo; if SMTP user is configured. To be clear: no passwords were ever shown or stored in plain text.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2023-01-09-version-230109&#34;&gt;2023-01-09: Version 23.01.09&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added script update checker - shows if an update is available in the log and console.&lt;/li&gt;
&lt;li&gt;Added VM restore instructions to readme.md.&lt;/li&gt;
&lt;li&gt;Added &amp;ldquo;low disk space&amp;rdquo; mode. -LowDisk switch deletes previous backup files and folders before backup for systems with low disk space.&lt;/li&gt;
&lt;li&gt;Added webhook option to send log file to.&lt;/li&gt;
&lt;li&gt;Lot&amp;rsquo;s of refactored code using functions. Simpler, easier to manage. Long overdue.&lt;/li&gt;
&lt;li&gt;Fixed bug that started VMs that were shutdown.&lt;/li&gt;
&lt;li&gt;Changed &amp;ldquo;VM not running&amp;rdquo; from an error state to an informational state.&lt;/li&gt;
&lt;li&gt;Changed &amp;ldquo;Backup Success&amp;rdquo; to a success state (green text in console).&lt;/li&gt;
&lt;li&gt;Changed -NoPerms so that VMs are now saved instead of shutdown (safer, faster, does not require Hyper-V integrations)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-06-22-version-220622&#34;&gt;2022-06-22: Version 22.06.22&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed an issue with the code checking for OS version too late.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-06-18-version-220618&#34;&gt;2022-06-18: Version 22.06.18&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed Get-Service check outputting to console.&lt;/li&gt;
&lt;li&gt;Fixed backup success/fail counter not working with -NoPerms switch.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-06-17-version-220617&#34;&gt;2022-06-17: Version 22.06.17&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed an issue with Windows Server 2012 R2 when checking for the Hyper-V service to be installed and running.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-06-14-version-220611&#34;&gt;2022-06-14: Version 22.06.11&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/19&#34;&gt;Issue 19 on GitHub&lt;/a&gt; - All Virtual Hard Disk folders should now be called &amp;ldquo;Virtual Hard Disks&amp;rdquo; and not some with the name &amp;ldquo;VHD&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Fixed &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/20&#34;&gt;Issue 20 on GitHub&lt;/a&gt; - If -L [path] not configured then a non fatal error would occur as no log path was specified for the log to be output to.&lt;/li&gt;
&lt;li&gt;Fixed an issue where a VM would not be backed up if it were in the state &amp;ldquo;saved&amp;rdquo; and was present in the user configured VM list text file.&lt;/li&gt;
&lt;li&gt;Added user feedback - make backup success or fail clear in the log and console.&lt;/li&gt;
&lt;li&gt;Added user feedback - add &amp;ldquo;VMs backed up x/x&amp;rdquo; to email subject for clear success/fail visibility.&lt;/li&gt;
&lt;li&gt;Added user feedback - Log can now be emailed to multiple addresses.&lt;/li&gt;
&lt;li&gt;Added checks and balances to help with configuration as I&amp;rsquo;m very aware that the initial configuration can be troublesome. Running the utility manually is a lot more friendly and step-by-step now.&lt;/li&gt;
&lt;li&gt;Added -Help to give usage instructions in the terminal. Running the script with no options will also trigger the -help switch.&lt;/li&gt;
&lt;li&gt;Cleaned user entered paths so that trailing slashes no longer break things or have otherwise unintended results.&lt;/li&gt;
&lt;li&gt;Added -LogRotate [days] to removed old logs created by the utility.&lt;/li&gt;
&lt;li&gt;Streamlined config report so non configured options are not shown.&lt;/li&gt;
&lt;li&gt;Added donation link to the ASCII banner.&lt;/li&gt;
&lt;li&gt;Cleaned up code, removed unneeded log noise.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-03-27-version-220326&#34;&gt;2022-03-27: Version 22.03.26&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Made a small fix to the &amp;lsquo;NoPerms&amp;rsquo; function: The VM will be left in the state it was found. For example, when a VM is found in an offline state, the script will not start the VM once the backup is complete. In the previous version the VM would be started regardless of what state it was in previously.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-02-08-version-220208&#34;&gt;2022-02-08: Version 22.02.08&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added fix for potential BSOD on Windows Server 2016 Hyper-V host when exporting VMs using VSS. The change to the registry will only happen if Windows Server 2016 is detected as the Hyper-V host and only if the registry value is in the default state. If it has been configured previously no change will be made. &lt;a href=&#34;https://github.com/Digressive/HyperV-Backup-Utility/issues/17&#34;&gt;Issue 17 on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-01-20-version-220119&#34;&gt;2022-01-20: Version 22.01.19&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;When using -NoPerms the utility now waits for disk merging to complete before backing up.&lt;/li&gt;
&lt;li&gt;Utility now ignores blanks lines in VM list file.&lt;/li&gt;
&lt;li&gt;Added checks for success or failure in the backup, copy/compression process. If it fails none of the previous backups should be removed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-12-28-version-211228&#34;&gt;2021-12-28: Version 21.12.28&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Put checks in place so if a VM fails to backup the old backup for that VM is not removed and the error is logged.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-11-12-version-211109&#34;&gt;2021-11-12: Version 21.11.09&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added more logging info, clearer formatting.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-11-05-version-211105&#34;&gt;2021-11-05: Version 21.11.05&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed an error when moving compressed backup files from a working directory.&lt;/li&gt;
&lt;li&gt;Configured logs path now is created, if it does not exist.&lt;/li&gt;
&lt;li&gt;Added OS version info.&lt;/li&gt;
&lt;li&gt;Improved log output, added more information for each stage of the backup.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-08-10-version-210810&#34;&gt;2021-08-10: Version 21.08.10&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added an option to specify the Port for SMTP communication.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-07-02-version-210702&#34;&gt;2021-07-02: Version 21.07.02&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed many bugs introduced with implementing more 7-zip options. 7-zip options I&amp;rsquo;ve tested fully are &amp;lsquo;-t&amp;rsquo; archive type, &amp;lsquo;-p&amp;rsquo; password and &amp;lsquo;-v&amp;rsquo; split files.&lt;/li&gt;
&lt;li&gt;Implemented and automated a formal testing process.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-06-14-version-210614&#34;&gt;2021-06-14: Version 21.06.14&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Replaced -Sz* specific options with -SzOptions which will support any option that 7-zip supports.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-06-02-version-210602&#34;&gt;2021-06-02: Version 21.06.02&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed an error where file types which are not .zip were not being moved from the working directory to the final backup location.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-05-30-version-210530&#34;&gt;2021-05-30: Version 21.05.30&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added additional 7-Zip options. -SzSplit to split archives into configuration volumes.&lt;/li&gt;
&lt;li&gt;Changed existing switches for 7-Zip options. Users must now add an additional hyphen &amp;lsquo;-&amp;rsquo; for 7-Zip options. This has been done to better support features that 7-Zip supports.&lt;/li&gt;
&lt;li&gt;Changed how old files are removed. Users should take extra care if they are storing non back-up files in the backup location. This has been done so that 7-Zip&amp;rsquo;s split function can be supported.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-07-13-version-200713&#34;&gt;2020-07-13: Version 20.07.13&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added -ShortDate option. This will create backups with only the Year, Month, Day as the file name.&lt;/li&gt;
&lt;li&gt;Added pass through for 7-Zip options - CPU threads to use and compression level.&lt;/li&gt;
&lt;li&gt;Added proper error handling so errors are properly reported in the console, log and email.&lt;/li&gt;
&lt;li&gt;Bug fixes to create folders when paths are configured without the folders existing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-02-28-version-200228-artifact&#34;&gt;2020-02-28: Version 20.02.28 ‘Artifact’&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed e-mail report extra line breaks in Outlook 365, Version 2001.&lt;/li&gt;
&lt;li&gt;Config report matches design of Image Factory Utility.&lt;/li&gt;
&lt;li&gt;Improved and simplified code.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-02-18-version-20200214-valentine&#34;&gt;2020-02-18: Version 2020.02.14 ‘Valentine’&lt;/h3&gt;
&lt;p&gt;Current known issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;E-mail report has extra line breaks in Outlook 365, Version 2001.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;New features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Refactored code.&lt;/li&gt;
&lt;li&gt;Fully backwards compatible.&lt;/li&gt;
&lt;li&gt;Added option to use a working directory to stage backups before moving them to final backup location.&lt;/li&gt;
&lt;li&gt;Added option to use 7-Zip for backup compression.&lt;/li&gt;
&lt;li&gt;Added ASCII banner art when run in the console.&lt;/li&gt;
&lt;li&gt;Added option to disable the ASCII banner art.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2019-09-04-v45&#34;&gt;2019-09-04 v4.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added custom subject line for e-mail.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2019-05-26-v44&#34;&gt;2019-05-26 v4.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added more feedback when the script is used interactively.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2018-06-21-v43&#34;&gt;2018-06-21 v4.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added the ability to specify the VMs to be backed up using a txt file.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2018-03-04-v42&#34;&gt;2018-03-04 v4.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved logging slightly to be clearer about which VM&amp;rsquo;s previous backups are being deleted.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2018-03-03-v41&#34;&gt;2018-03-03 v4.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added option to compress the VM backups to a zip file. This option will remove the original VM backup.&lt;/li&gt;
&lt;li&gt;Added option to keep a configurable number of days’ worth of backups, so you can keep a history/archive of previous backups. Every effort has been taken to only remove backup files or folders generated by this utility.&lt;/li&gt;
&lt;li&gt;Changed the script so that when backup is complete, the VM backup folders/zip files will be have the time and date append to them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2018-01-15-v40&#34;&gt;2018-01-15 v4.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The backup script no longer creates a folder named after the Host server. The VM backups are placed in the root of the specified backup location.&lt;/li&gt;
&lt;li&gt;Fixed a small issue with logging where the script completes the backup process, then states incorrectly &amp;ldquo;there are no VMs to backup&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2018-01-12-v39&#34;&gt;2018-01-12 v3.9&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed a small bug that occurred when there were no VMs to backup, the script incorrectly logged an error in exporting the VMs. It now states that that are no VMs to backup.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2018-01-12-v38&#34;&gt;2018-01-12 v3.8&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The script has been tested performing backups of Virtual Machines running on a Hyper-V cluster.&lt;/li&gt;
&lt;li&gt;Minor update to documentation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-10-16-v37&#34;&gt;2017-10-16 v3.7&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Changed SMTP authentication to require an encrypted password file.&lt;/li&gt;
&lt;li&gt;Added instructions on how to generate an encrypted password file.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-10-07-v36&#34;&gt;2017-10-07 v3.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added necessary information to add the script to the PowerShell Gallery.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-09-18-v35&#34;&gt;2017-09-18 v3.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved the log output to be easier to read.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-07-22-v34&#34;&gt;2017-07-22 v3.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved commenting on the code for documentation purposes.&lt;/li&gt;
&lt;li&gt;Added authentication and SSL options for e-mail notification.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-05-20-v33&#34;&gt;2017-05-20 v3.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added configuration via command line switches.&lt;/li&gt;
&lt;li&gt;Added option to perform regular online export if destination allows it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-04-24-minor-update&#34;&gt;2017-04-24 Minor Update&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Cleaned up the formatting and commented sections of the script.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-04-21-minor-update&#34;&gt;2017-04-21 Minor Update&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added the ability to email the log file when the script completes.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>On-Prem AD User Creator Utility</title>
        <link>https://gal.vin/utils/on-prem-ad-user-creator-utility/</link>
        <pubDate>Wed, 13 Sep 2017 19:00:25 +0000</pubDate>
        
        <atom:modified>Wed, 13 Sep 2017 19:00:25 +0000</atom:modified>
        <guid>https://gal.vin/utils/on-prem-ad-user-creator-utility/</guid>
        <description>Configurable Script For Creating On-Prem Active Directory User Accounts On-Prem AD User Creator Utility is available from:
 GitHub  Please consider supporting my work:
 Support with a one-time donation using PayPal.  Please report any problems via the &amp;lsquo;issues&amp;rsquo; tab on GitHub.
Thanks
-Mike
Features and Requirements  Requires the Active Directory PowerShell module be installed. Requires A CSV file containing the FirstName and LastName of each user to create.</description>
        <content:encoded>&lt;h2 id=&#34;configurable-script-for-creating-on-prem-active-directory-user-accounts&#34;&gt;Configurable Script For Creating On-Prem Active Directory User Accounts&lt;/h2&gt;
&lt;p&gt;On-Prem AD User Creator Utility is available from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/On-Prem-AD-User-Creator-Utility&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please consider supporting my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support with a one-time donation using &lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please report any problems via the &amp;lsquo;issues&amp;rsquo; tab on GitHub.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
&lt;h2 id=&#34;features-and-requirements&#34;&gt;Features and Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Requires the Active Directory PowerShell module be installed.&lt;/li&gt;
&lt;li&gt;Requires A CSV file containing the FirstName and LastName of each user to create.&lt;/li&gt;
&lt;li&gt;Configurable list of groups to add new users to.&lt;/li&gt;
&lt;li&gt;Randomly generated passwords for each user.&lt;/li&gt;
&lt;li&gt;User names are generated from first name &amp;amp; a 3 digit random number.&lt;/li&gt;
&lt;li&gt;The utility requires at least PowerShell 5.0.&lt;/li&gt;
&lt;li&gt;Tested on Windows 11, Windows 10, Windows Server 2022, Windows Server 2019, Windows Server 2016.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;generating-a-password-file-for-smtp-authentication&#34;&gt;Generating A Password File For SMTP Authentication&lt;/h2&gt;
&lt;p&gt;The password used for SMTP server authentication must be in an encrypted text file. To generate the password file, run the following command in PowerShell on the computer and logged in with the user that will be running the utility. When you run the command, you will be prompted for a username and password. Enter the username and password you want to use to authenticate to your SMTP server.&lt;/p&gt;
&lt;p&gt;Please note: This is only required if you need to authenticate to the SMTP server when send the log via e-mail.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-Credential&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Password&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;ConvertFrom-SecureString&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Set-Content&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scripts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ps-script-pwd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;txt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After running the commands, you will have a text file containing the encrypted password. When configuring the -Pwd switch enter the path and file name of this file.&lt;/p&gt;
&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Here’s a list of all the command line switches and example configurations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command Line Switch&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;-CSV&lt;/td&gt;
&lt;td&gt;The path of the csv file containing the user info. Please see the users-example.csv file for how to structure your own file.&lt;/td&gt;
&lt;td&gt;[path]user-list.csv&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-OU&lt;/td&gt;
&lt;td&gt;The Organizational Unit to create the users in. If none is configured the default Computers OU will be used.&lt;/td&gt;
&lt;td&gt;&amp;lsquo;OU=User_Accounts,DC=contoso,DC=com&amp;rsquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-UPN&lt;/td&gt;
&lt;td&gt;The Universal Principal Name the users should be configured with. If none is configured the forest name will be used.&lt;/td&gt;
&lt;td&gt;[contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-HomeLetter&lt;/td&gt;
&lt;td&gt;The drive letter to use for the home drive path.&lt;/td&gt;
&lt;td&gt;[drive letter]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-HomePath&lt;/td&gt;
&lt;td&gt;The path where the location of the home drive should reside.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Groups&lt;/td&gt;
&lt;td&gt;The name of the group(s) separated by a comma that all the new users should be a member of.&lt;/td&gt;
&lt;td&gt;[UserGroup1,UserGroup2]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-L&lt;/td&gt;
&lt;td&gt;The path to output the log file to.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-LogRotate&lt;/td&gt;
&lt;td&gt;Remove logs produced by the utility older than X days&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-NoBanner&lt;/td&gt;
&lt;td&gt;Use this option to hide the ASCII art title in the console.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Help&lt;/td&gt;
&lt;td&gt;Display usage information. No arguments also displays help.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Subject&lt;/td&gt;
&lt;td&gt;Specify a subject line. If you leave this blank the default subject will be used&lt;/td&gt;
&lt;td&gt;&amp;ldquo;&#39;[Server: Notification]&#39;&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-SendTo&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent to. For multiple address, separate with a comma.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-From&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent from.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Smtp&lt;/td&gt;
&lt;td&gt;The DNS name or IP address of the SMTP server.&lt;/td&gt;
&lt;td&gt;[smtp server address]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Port&lt;/td&gt;
&lt;td&gt;The Port that should be used for the SMTP server. If none is specified then the default of 25 will be used.&lt;/td&gt;
&lt;td&gt;[port number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-User&lt;/td&gt;
&lt;td&gt;The user account to authenticate to the SMTP server.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Pwd&lt;/td&gt;
&lt;td&gt;The txt file containing the encrypted password for SMTP authentication.&lt;/td&gt;
&lt;td&gt;[path]ps-script-pwd.txt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-UseSsl&lt;/td&gt;
&lt;td&gt;Configures the utility to connect to the SMTP server using SSL.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;[path\]On-Prem-AD-User-Creator.ps1 -csv [path\]user-list.csv
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This will create new users from the names in the csv file. The user objects will be created in the &amp;lsquo;Computers&amp;rsquo; builtin OU.&lt;/p&gt;
&lt;h2 id=&#34;change-log&#34;&gt;Change Log&lt;/h2&gt;
&lt;h3 id=&#34;2023-04-28-version-230428&#34;&gt;2023-04-28: Version 23.04.28&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed specific SMTP config info from config report.&lt;/li&gt;
&lt;li&gt;Added script update checker - shows if an update is available in the log and console. If the internet is not reachable it silently errors out.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-06-14-version-220606&#34;&gt;2022-06-14: Version 22.06.06&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new feature: log can now be emailed to multiple addresses.&lt;/li&gt;
&lt;li&gt;Added checks and balances to help with configuration as I&amp;rsquo;m very aware that the initial configuration can be troublesome. Running the utility manually is a lot more friendly and step-by-step now.&lt;/li&gt;
&lt;li&gt;Added -Help to give usage instructions in the terminal. Running the script with no options will also trigger the -help switch.&lt;/li&gt;
&lt;li&gt;Cleaned user entered paths so that trailing slashes no longer break things or have otherwise unintended results.&lt;/li&gt;
&lt;li&gt;Added -LogRotate [days] to removed old logs created by the utility.&lt;/li&gt;
&lt;li&gt;Streamlined config report so non configured options are not shown.&lt;/li&gt;
&lt;li&gt;Added donation link to the ASCII banner.&lt;/li&gt;
&lt;li&gt;Cleaned up code, removed unneeded log noise.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-12-08-version-211208&#34;&gt;2021-12-08: Version 21.12.08&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Configured logs path now is created, if it does not exist.&lt;/li&gt;
&lt;li&gt;Added OS version info.&lt;/li&gt;
&lt;li&gt;Added Utility version info.&lt;/li&gt;
&lt;li&gt;Added Hostname info.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-09-20-version-210920&#34;&gt;2021-09-20: Version 21.09.20&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added code to make sure sam account name will never be more than 19 characters, due to the default sam account name length being 20 characters.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-09-15-version-210915&#34;&gt;2021-09-15: Version 21.09.15&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Completely rewritten to streamline the user creation process.&lt;/li&gt;
&lt;li&gt;User passwords are now randomly generated.&lt;/li&gt;
&lt;li&gt;Added option to add users to multiple groups.&lt;/li&gt;
&lt;li&gt;Utility will find groups based on the AD name. No more having to specify the whole DN.&lt;/li&gt;
&lt;li&gt;Added ASCII banner art when run in the console.&lt;/li&gt;
&lt;li&gt;Added option to disable the ASCII banner art.&lt;/li&gt;
&lt;li&gt;Added an option to specify the Port for SMTP communication.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2019-09-04-v16&#34;&gt;2019-09-04 v1.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added custom subject line for e-mail.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-10-16-v15&#34;&gt;2017-10-16 v1.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Changed SMTP authentication to require an encrypted password file.&lt;/li&gt;
&lt;li&gt;Added instructions on how to generate an encrypted password file.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-10-07-v14&#34;&gt;2017-10-07 v1.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added necessary information to add the script to the PowerShell Gallery.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-09-13-v13&#34;&gt;2017-09-13 v1.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added check for existence of user before attempting to create user.&lt;/li&gt;
&lt;li&gt;Improved logging to handle the above change.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-07-22-v12&#34;&gt;2017-07-22 v1.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved code commenting for documentation purposes.&lt;/li&gt;
&lt;li&gt;Added authentication and SSL options for e-mail notification.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>Active Directory</category>
            
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>WSUS Maintenance Utility</title>
        <link>https://gal.vin/utils/wsus-maint-utility/</link>
        <pubDate>Mon, 28 Aug 2017 20:15:22 +0000</pubDate>
        
        <atom:modified>Mon, 28 Aug 2017 20:15:22 +0000</atom:modified>
        <guid>https://gal.vin/utils/wsus-maint-utility/</guid>
        <description>Clean up WSUS WSUS Maintenance Utility is available from:
 GitHub The Microsoft PowerShell Gallery  Please consider supporting my work:
 Support with a one-time donation using PayPal.  Please report any problems via the &amp;lsquo;issues&amp;rsquo; tab on GitHub.
Thanks
-Mike
Features and Requirements  It&amp;rsquo;s designed to run either on a WSUS server itself or can be run from a remote machine. The computer that is running the utility must have the WSUS management PowerShell modules installed.</description>
        <content:encoded>&lt;h2 id=&#34;clean-up-wsus&#34;&gt;Clean up WSUS&lt;/h2&gt;
&lt;p&gt;WSUS Maintenance Utility is available from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/WSUS-Maintenance&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Wsus-Maintenance&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please consider supporting my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support with a one-time donation using &lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please report any problems via the &amp;lsquo;issues&amp;rsquo; tab on GitHub.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
&lt;h2 id=&#34;features-and-requirements&#34;&gt;Features and Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;It&amp;rsquo;s designed to run either on a WSUS server itself or can be run from a remote machine.&lt;/li&gt;
&lt;li&gt;The computer that is running the utility must have the WSUS management PowerShell modules installed.&lt;/li&gt;
&lt;li&gt;The utility requires at least PowerShell 5.0&lt;/li&gt;
&lt;li&gt;This utility has been tested on Windows 11, Windows 10, Windows Server 2022, Windows Server 2019, Windows Server 2016.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;generating-a-password-file-for-smtp-authentication&#34;&gt;Generating A Password File For SMTP Authentication&lt;/h2&gt;
&lt;p&gt;The password used for SMTP server authentication must be in an encrypted text file. To generate the password file, run the following command in PowerShell on the computer and logged in with the user that will be running the utility. When you run the command, you will be prompted for a username and password. Enter the username and password you want to use to authenticate to your SMTP server.&lt;/p&gt;
&lt;p&gt;Please note: This is only required if you need to authenticate to the SMTP server when send the log via e-mail.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-Credential&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Password&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;ConvertFrom-SecureString&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Set-Content&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scripts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ps-script-pwd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;txt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After running the commands, you will have a text file containing the encrypted password. When configuring the -Pwd switch enter the path and file name of this file.&lt;/p&gt;
&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Here’s a list of all the command line switches and example configurations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command Line Switch&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;-Run&lt;/td&gt;
&lt;td&gt;Run the maintenance routine on the local computer.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Server&lt;/td&gt;
&lt;td&gt;The WSUS server to run the maintenance routine on.&lt;/td&gt;
&lt;td&gt;[server name]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Port&lt;/td&gt;
&lt;td&gt;The port WSUS is running on the server. If you do not configure this, the default port will be used.&lt;/td&gt;
&lt;td&gt;[port number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-WsusSsl&lt;/td&gt;
&lt;td&gt;Use this option if your WSUS server uses SSL. If you do not configure the port using the above, then the default SSL port will be used.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-L&lt;/td&gt;
&lt;td&gt;The path to output the log file to.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-LogRotate&lt;/td&gt;
&lt;td&gt;Remove logs produced by the utility older than X days&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-NoBanner&lt;/td&gt;
&lt;td&gt;Use this option to hide the ASCII art title in the console.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Help&lt;/td&gt;
&lt;td&gt;Display usage information. No arguments also displays help.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Webhook&lt;/td&gt;
&lt;td&gt;The txt file containing the URI for a webhook to send the log file to.&lt;/td&gt;
&lt;td&gt;[path]webhook.txt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Subject&lt;/td&gt;
&lt;td&gt;Specify a subject line. If you leave this blank the default subject will be used&lt;/td&gt;
&lt;td&gt;&amp;ldquo;&#39;[Server: Notification]&#39;&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-SendTo&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent to. For multiple address, separate with a comma.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-From&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent from.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Smtp&lt;/td&gt;
&lt;td&gt;The DNS name or IP address of the SMTP server.&lt;/td&gt;
&lt;td&gt;[smtp server address]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-SmtpPort&lt;/td&gt;
&lt;td&gt;The Port that should be used for the SMTP server. If none is specified then the default of 25 will be used.&lt;/td&gt;
&lt;td&gt;[port number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-User&lt;/td&gt;
&lt;td&gt;The user account to authenticate to the SMTP server.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Pwd&lt;/td&gt;
&lt;td&gt;The txt file containing the encrypted password for SMTP authentication.&lt;/td&gt;
&lt;td&gt;[path]ps-script-pwd.txt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-UseSsl&lt;/td&gt;
&lt;td&gt;Configures the utility to connect to the SMTP server using SSL.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;[path\]Wsus-Maintenance.ps1 -Run
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This will run the maintenance jobs on the local server&lt;/p&gt;
&lt;h2 id=&#34;change-log&#34;&gt;Change Log&lt;/h2&gt;
&lt;h3 id=&#34;2023-04-28-version-230428&#34;&gt;2023-04-28: Version 23.04.28&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Minor improvement to update checker. If the internet is not reachable it silently errors out.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2023-03-21-version-230321&#34;&gt;2023-03-21: Version 23.03.21&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed specific SMTP config info from config report.&lt;/li&gt;
&lt;li&gt;Added script update checker - shows if an update is available in the log and console.&lt;/li&gt;
&lt;li&gt;Added webhook option to send log file to.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-06-18-version-220618&#34;&gt;2022-06-18: Version 22.06.18&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed Get-Service check outputting to console.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-06-14-version-220528&#34;&gt;2022-06-14: Version 22.05.28&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new feature: log can now be emailed to multiple addresses.&lt;/li&gt;
&lt;li&gt;Added checks and balances to help with configuration as I&amp;rsquo;m very aware that the initial configuration can be troublesome. Running the utility manually is a lot more friendly and step-by-step now.&lt;/li&gt;
&lt;li&gt;Added -Help to give usage instructions in the terminal. Running the script with no options will also trigger the -help switch.&lt;/li&gt;
&lt;li&gt;Cleaned user entered paths so that trailing slashes no longer break things or have otherwise unintended results.&lt;/li&gt;
&lt;li&gt;Added -LogRotate [days] to removed old logs created by the utility.&lt;/li&gt;
&lt;li&gt;Streamlined config report so non configured options are not shown.&lt;/li&gt;
&lt;li&gt;Added donation link to the ASCII banner.&lt;/li&gt;
&lt;li&gt;Cleaned up code, removed unneeded log noise.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-12-08-version-211208&#34;&gt;2021-12-08: Version 21.12.08&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Configured logs path now is created, if it does not exist.&lt;/li&gt;
&lt;li&gt;Added OS version info.&lt;/li&gt;
&lt;li&gt;Added Utility version info.&lt;/li&gt;
&lt;li&gt;Added Hostname info.&lt;/li&gt;
&lt;li&gt;Added an option to specify the Port for SMTP communication.&lt;/li&gt;
&lt;li&gt;Changed a variable to prevent conflicts with future PowerShell versions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-03-20-version-200320&#34;&gt;2020-03-20: Version 20.03.20&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added code contribution from &lt;a href=&#34;mailto:ideas@habs.homelinux.net&#34;&gt;ideas@habs.homelinux.net&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Individual clean-up jobs now run separately.&lt;/li&gt;
&lt;li&gt;Improved reporting.&lt;/li&gt;
&lt;li&gt;Made slight improvements to documentation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-03-05-version-200303-burger&#34;&gt;2020-03-05: Version 20.03.03 ‘Burger’&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added SSL option for connecting to the WSUS server.&lt;/li&gt;
&lt;li&gt;Made the -Port switch optional. If it is not specified, the default port is used. If -WsusSsl is specified, the default port for SSL is used.&lt;/li&gt;
&lt;li&gt;Added config report.&lt;/li&gt;
&lt;li&gt;Added ASCII banner art when run in the console.&lt;/li&gt;
&lt;li&gt;Added option to disable the ASCII banner art.&lt;/li&gt;
&lt;li&gt;Refactored code.&lt;/li&gt;
&lt;li&gt;Fully backwards compatible.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2019-09-04-v18&#34;&gt;2019-09-04 v1.8&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added custom subject line for e-mail.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2019-04-23-v17&#34;&gt;2019-04-23 v1.7&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The script will now not run the clean up process twice.&lt;/li&gt;
&lt;li&gt;The script will now report if the service isn&amp;rsquo;t running before starting.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-10-16-v16&#34;&gt;2017-10-16 v1.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Changed SMTP authentication to require an encrypted password file.&lt;/li&gt;
&lt;li&gt;Added instructions on how to generate an encrypted password file.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-10-07-v15&#34;&gt;2017-10-07 v1.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added necessary information to add the script to the PowerShell Gallery.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-09-25-v14&#34;&gt;2017-09-25 v1.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Cleaned up formatting, minor changes to code for efficiency.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-08-11-v13&#34;&gt;2017-08-11 v1.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved, cleaner logging. The log file is no longer produced from PowerShell&amp;rsquo;s Transcript function.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-07-22-v12&#34;&gt;2017-07-22 v1.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved commenting on the code for documentation purposes.&lt;/li&gt;
&lt;li&gt;Added authentication and SSL options for e-mail notification.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-05-22-v11&#34;&gt;2017-05-22 v1.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added configuration via command line switches.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Image Factory Utility</title>
        <link>https://gal.vin/utils/image-factory-utility/</link>
        <pubDate>Sat, 26 Aug 2017 11:30:52 +0000</pubDate>
        
        <atom:modified>Sat, 26 Aug 2017 11:30:52 +0000</atom:modified>
        <guid>https://gal.vin/utils/image-factory-utility/</guid>
        <description>Automate Creation of WIM Files Image Factory Utility is available from:
 GitHub The Microsoft PowerShell Gallery  Please consider supporting my work:
 Support with a one-time donation using PayPal.  Please report any problems via the ‘issues’ tab on GitHub.
Thanks
-Mike
Features and Requirements  This utility is designed to run on a computer with Microsoft Deployment Toolkit installed. The computer must have either the Hyper-V management PowerShell modules installed, or Virtual Box.</description>
        <content:encoded>&lt;h2 id=&#34;automate-creation-of-wim-files&#34;&gt;Automate Creation of WIM Files&lt;/h2&gt;
&lt;p&gt;Image Factory Utility is available from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Image-Factory&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Image-Factory&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please consider supporting my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support with a one-time donation using &lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please report any problems via the ‘issues’ tab on GitHub.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
&lt;h2 id=&#34;features-and-requirements&#34;&gt;Features and Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;This utility is designed to run on a computer with Microsoft Deployment Toolkit installed.&lt;/li&gt;
&lt;li&gt;The computer must have either the Hyper-V management PowerShell modules installed, or Virtual Box.&lt;/li&gt;
&lt;li&gt;The primary function of this utility is to automate the creation of wim files from MDT task sequences.&lt;/li&gt;
&lt;li&gt;The utility requires at least PowerShell 5.0.&lt;/li&gt;
&lt;li&gt;This utility has been tested on Windows 11, Windows 10, Windows Server 2019, Windows Server 2016 and Windows Server 2012 R2.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;virtual-box-support&#34;&gt;Virtual Box Support&lt;/h2&gt;
&lt;p&gt;This utility expects Oracle Virtual Box to be installed in the default location of: &lt;code&gt;C:\Program Files\Oracle\VirtualBox&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;important-information&#34;&gt;Important Information&lt;/h2&gt;
&lt;p&gt;The utility will make changes to your customsettings.ini file, although it will make a backup first. These changes are necessary so that the build process runs automated. Depending on your environment, you may need to make additional changes to your customsettings.ini.&lt;/p&gt;
&lt;h2 id=&#34;separating-your-build-and-deployment-shares&#34;&gt;Separating your build and deployment shares&lt;/h2&gt;
&lt;p&gt;I would recommend running with a separate build share so that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Image Factory Utility doesn&amp;rsquo;t tie up the main deployment share whilst running.&lt;/li&gt;
&lt;li&gt;The build environment can be configured separately.&lt;/li&gt;
&lt;li&gt;The boot media for the build share can be configured to automatically log into the deployment environment.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here are the settings you&amp;rsquo;ll need to add to your Bootstrap.ini to automatically log into the build share. Don&amp;rsquo;t forget to update your build share in MDT and regenerate the boot images.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;[Settings]
Priority=Default

[Default]
DeployRoot=[path\]BuildShare$
UserDomain=contoso.com
UserID=mdt_admin
UserPassword=P@ssw0rd
SkipBDDWelcome=YES
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;generating-a-password-file-for-smtp-authentication&#34;&gt;Generating A Password File For SMTP Authentication&lt;/h2&gt;
&lt;p&gt;The password used for SMTP server authentication must be in an encrypted text file. To generate the password file, run the following command in PowerShell on the computer and logged in with the user that will be running the utility. When you run the command, you will be prompted for a username and password. Enter the username and password you want to use to authenticate to your SMTP server.&lt;/p&gt;
&lt;p&gt;Please note: This is only required if you need to authenticate to the SMTP server when send the log via e-mail.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-Credential&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Password&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;ConvertFrom-SecureString&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Set-Content&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scripts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ps-script-pwd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;txt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After running the commands, you will have a text file containing the encrypted password. When configuring the -Pwd switch enter the path and file name of this file.&lt;/p&gt;
&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Here’s a list of all the command line switches and example configurations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command Line Switch&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;-Build&lt;/td&gt;
&lt;td&gt;Location of the build share. It can be the same as the deployment share, and it can be a local or UNC path.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Deploy&lt;/td&gt;
&lt;td&gt;Location of the deployment share. It can be the same as the deployment share, and it can be a local or UNC path.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Vh&lt;/td&gt;
&lt;td&gt;Hyper-V Only - Name of the Hyper-V host if remote. If not set it will default to local.&lt;/td&gt;
&lt;td&gt;[hostname]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Vhd&lt;/td&gt;
&lt;td&gt;The path to store the virtual hard disk file(s). If using a remote Hyper-V server the path should be relative for that server.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Boot&lt;/td&gt;
&lt;td&gt;The path to the iso file to boot from. If using a remote Hyper-V server the path should be relative for that server.&lt;/td&gt;
&lt;td&gt;[path]LiteTouchPE_x64.iso&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Vnic&lt;/td&gt;
&lt;td&gt;Hyper-V Only - Name of the virtual switch that the VM should use to communicate.&lt;/td&gt;
&lt;td&gt;&amp;ldquo;&amp;lsquo;virtual NIC name&amp;rsquo;&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Ts&lt;/td&gt;
&lt;td&gt;The comma-separated list of task sequence ID&amp;rsquo;s to build.&lt;/td&gt;
&lt;td&gt;[W11-21H2,W10-21H2]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-VBox&lt;/td&gt;
&lt;td&gt;Use this switch to use Oracle Virtual Box instead of Hyper-V&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Compat&lt;/td&gt;
&lt;td&gt;Legacy Hyper-V Only - Use this switch if the Hyper-V host is Windows Server 2012 R2 and the script is running on Windows 10 or Windows Server 2016/2019. This loads the older version of the Hyper-V module, so it can manage WS2012 R2 Hyper-V VMs.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Remote&lt;/td&gt;
&lt;td&gt;Hyper-V Only - Use this switch if the Hyper-V server is a remote device.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-L&lt;/td&gt;
&lt;td&gt;The path to output the log file to.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-LogRotate&lt;/td&gt;
&lt;td&gt;Remove logs produced by the utility older than X days&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-NoBanner&lt;/td&gt;
&lt;td&gt;Use this option to hide the ASCII art title in the console.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Help&lt;/td&gt;
&lt;td&gt;Display usage information. No arguments also displays help.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-ProgCheck&lt;/td&gt;
&lt;td&gt;Send notifications (email or webhook) after each Task Sequence is processed.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Subject&lt;/td&gt;
&lt;td&gt;Specify a subject line. If you leave this blank the default subject will be used&lt;/td&gt;
&lt;td&gt;&amp;ldquo;&#39;[Server: Notification]&#39;&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-SendTo&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent to. For multiple address, separate with a comma.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-From&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent from.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Smtp&lt;/td&gt;
&lt;td&gt;The DNS name or IP address of the SMTP server.&lt;/td&gt;
&lt;td&gt;[smtp server address]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Port&lt;/td&gt;
&lt;td&gt;The Port that should be used for the SMTP server. If none is specified then the default of 25 will be used.&lt;/td&gt;
&lt;td&gt;[port number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-User&lt;/td&gt;
&lt;td&gt;The user account to authenticate to the SMTP server.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Pwd&lt;/td&gt;
&lt;td&gt;The txt file containing the encrypted password for SMTP authentication.&lt;/td&gt;
&lt;td&gt;[path]ps-script-pwd.txt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-UseSsl&lt;/td&gt;
&lt;td&gt;Configures the utility to connect to the SMTP server using SSL.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;[path\]Image-Factory.ps1 -Build [path\] -Deploy [path\] -Boot [path\]LiteTouchPE_x64.iso -Vnic [virtual NIC name] -Ts W11-21H2,W10-21H2
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This will use Hyper-V VMs on the local machine to build wim files from the task sequences W11-21H2 and W10-21H2. The wim files will be imported to the deployment share specified.&lt;/p&gt;
&lt;h2 id=&#34;change-log&#34;&gt;Change Log&lt;/h2&gt;
&lt;h3 id=&#34;2023-09-01-version-230901&#34;&gt;2023-09-01: Version 23.09.01&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added -ProgCheck option. With this option set, notifications will be sent after each Task Sequence is processed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2023-04-28-version-230428&#34;&gt;2023-04-28: Version 23.04.28&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Removed specific SMTP config info from config report.&lt;/li&gt;
&lt;li&gt;Added script update checker - shows if an update is available in the log and console. If the internet is not reachable it silently errors out.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-06-18-version-220618&#34;&gt;2022-06-18: Version 22.06.18&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed Get-Service check outputting to console.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-06-17-version-220617&#34;&gt;2022-06-17: Version 22.06.17&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed an issue with Windows Server 2012 R2 when checking for the Hyper-V service to be installed and running.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2022-06-14-version-220607&#34;&gt;2022-06-14: Version 22.06.07&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new feature: log can now be emailed to multiple addresses.&lt;/li&gt;
&lt;li&gt;Added checks and balances to help with configuration as I&amp;rsquo;m very aware that the initial configuration can be troublesome. Running the utility manually is a lot more friendly and step-by-step now.&lt;/li&gt;
&lt;li&gt;Added -Help to give usage instructions in the terminal. Running the script with no options will also trigger the -help switch.&lt;/li&gt;
&lt;li&gt;Cleaned user entered paths so that trailing slashes no longer break things or have otherwise unintended results.&lt;/li&gt;
&lt;li&gt;Added -LogRotate [days] to removed old logs created by the utility.&lt;/li&gt;
&lt;li&gt;Streamlined config report so non configured options are not shown.&lt;/li&gt;
&lt;li&gt;Added donation link to the ASCII banner.&lt;/li&gt;
&lt;li&gt;Cleaned up code, removed unneeded log noise.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-12-02-version-211201&#34;&gt;2021-12-02: Version 21.12.01&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added option to use Oracle Virtual Box instead of Hyper-V.&lt;/li&gt;
&lt;li&gt;Configured logs path now is created, if it does not exist.&lt;/li&gt;
&lt;li&gt;Added OS version info.&lt;/li&gt;
&lt;li&gt;Added an option to specify the Port for SMTP communication.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-06-22-version-210622&#34;&gt;2021-06-22: Version 21.06.22&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added a progression bar display.&lt;/li&gt;
&lt;li&gt;Changed a variable to prevent conflicts with future PowerShell versions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-02-27-version-200224-robot&#34;&gt;2020-02-27: Version 20.02.24 ‘Robot’&lt;/h3&gt;
&lt;p&gt;New features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Refactored code.&lt;/li&gt;
&lt;li&gt;Fully backwards compatible.&lt;/li&gt;
&lt;li&gt;Added ASCII banner art when run in the console.&lt;/li&gt;
&lt;li&gt;Added option to disable the ASCII banner art.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2019-09-04-v29&#34;&gt;2019-09-04 v2.9&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added custom subject line for e-mail.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2018-12-17-v28&#34;&gt;2018-12-17 v2.8&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The script will now set automatic checkpoints to &amp;lsquo;disabled&amp;rsquo; on the VM&amp;rsquo;s. This is to help with VM disk management and clean up.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-10-16-v27&#34;&gt;2017-10-16 v2.7&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Changed SMTP authentication to require an encrypted password file.&lt;/li&gt;
&lt;li&gt;Added instructions on how to generate an encrypted password file.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-10-09-v26&#34;&gt;2017-10-09 v2.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added necessary information to add the script to the PowerShell Gallery.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-09-18-v25&#34;&gt;2017-09-18 v2.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added a sanity check of the MDT deployment share. The script now checks for an existing CustomSettings-backup.ini file. If it exists, it reports that the deployment share is not clean.&lt;/li&gt;
&lt;li&gt;Added extra line breaks when editing the CustomSettings.ini as previously it was adding the required configuration on the last line of the ini file and causing the deployment to fail. Many thanks to Twitter user &lt;a href=&#34;https://twitter.com/thestardawg&#34;&gt;@thestardawg&lt;/a&gt; for reporting this bug.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-08-26-v24&#34;&gt;2017-08-26 v2.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved logging so that the log file and console output is now more readable.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-07-22-v23&#34;&gt;2017-07-22 v2.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved commenting on the code for documentation purposes.&lt;/li&gt;
&lt;li&gt;Added authentication and SSL options for e-mail notification.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-05-11-v22&#34;&gt;2017-05-11 v2.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added command line configuration options so the script itself does not need to be edited.&lt;/li&gt;
&lt;li&gt;Added code to manage the Virtual Machines without the need for extra configuration options.&lt;/li&gt;
&lt;li&gt;Removed some unnecessary extra configuration options and variables.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-04-25-v21&#34;&gt;2017-04-25 v2.1&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve added logging to the script and the ability to email the log on completion. I&amp;rsquo;ve also added a variable to configure the Virtual Switch that the VM&amp;rsquo;s Network Adaptor should use. This was an oversight on the previous version.&lt;/p&gt;
&lt;h3 id=&#34;2017-04-17-minor-update&#34;&gt;2017-04-17 Minor update&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve added hour and minutes to the WIM file creation name as I have been running multiple images of the same Task Sequence within a day and needed some extra data to prevent the image from over writing the previous one. I&amp;rsquo;ve also made another script, using this one as a base so I can generate VMs to test the deployment of the captured images after I&amp;rsquo;ve manually renamed them in MDT and added to the task sequences. The VMs are named after the Task Sequence ID and do not delete after the Task Sequence completes.&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>Oracle Virtual Box</category>
            
          
            
              <category>Hyper-V</category>
            
          
            
              <category>Microsoft Deployment Toolkit</category>
            
          
            
              <category>PowerShell Utility</category>
            
          
            
              <category>Windows Desktop</category>
            
          
            
              <category>Windows Server</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Windows Server Status Monitor</title>
        <link>https://gal.vin/posts/old/windows-server-status/</link>
        <pubDate>Fri, 28 Jul 2017 22:36:52 +0000</pubDate>
        
        <atom:modified>Fri, 28 Jul 2017 22:36:52 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/windows-server-status/</guid>
        <description>PowerShell based Windows Server monitor I wanted to create a lightweight and easy to setup server status monitor. It needed to highlight any metrics that were outside of a customisable threshold visually and be able to e-mail the report or run continuously. Based on a script from Bhavik Solanki (on TechNet) and with some help from my good friend, and software developer Dan Price, we created WinServ-Status, now known as Windows Server Status Monitor.</description>
        <content:encoded>&lt;h2 id=&#34;powershell-based-windows-server-monitor&#34;&gt;PowerShell based Windows Server monitor&lt;/h2&gt;
&lt;p&gt;I wanted to create a lightweight and easy to setup server status monitor. It needed to highlight any metrics that were outside of a customisable threshold visually and be able to e-mail the report or run continuously. Based &lt;a href=&#34;https://gallery.technet.microsoft.com/scriptcenter/Get-Ping-status-along-with-bd579238&#34;&gt;on a script from Bhavik Solanki (on TechNet)&lt;/a&gt; and with some help from my good friend, and software developer &lt;a href=&#34;https://twitter.com/Therezin&#34;&gt;Dan Price&lt;/a&gt;, we created WinServ-Status, now known as Windows Server Status Monitor.&lt;/p&gt;
&lt;p&gt;Please consider donating to support my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can support me with a one-time payment &lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;using PayPal.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Windows Server Status Monitor can also be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/WinServ-Status&#34;&gt;The PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please report any problems via the ‘issues’ tab on GitHub.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
&lt;h2 id=&#34;features-and-requirements&#34;&gt;Features and Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The utility will display the server name, uptime, CPU, memory and storage information, online status.&lt;/li&gt;
&lt;li&gt;The utility can be configured with a customisable alerts for the CPU, memory and storage.&lt;/li&gt;
&lt;li&gt;The utility can display the results as either a CSV file or a HTML file.&lt;/li&gt;
&lt;li&gt;The utility can be configured to monitor continuously, or run once.&lt;/li&gt;
&lt;li&gt;The utility can be configured to e-mail the results.&lt;/li&gt;
&lt;li&gt;This utility has been tested running on Windows 10 and Windows Server 2016, monitoring PCs and Servers running Windows 10, Windows Server 2016, Windows Server 2012 R2, and Windows Server 2008 R2.&lt;/li&gt;
&lt;li&gt;The utility must be run as a user with administrator-level privileges to the systems it is monitoring.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;generating-a-password-file-for-smtp-authentication&#34;&gt;Generating A Password File For SMTP Authentication&lt;/h2&gt;
&lt;p&gt;The password used for SMTP server authentication must be in an encrypted text file. To generate the password file, run the following command in PowerShell, on the computer that is going to run the script and logged in with the user that will be running the script. When you run the command you will be prompted for a username and password. Enter the username and password you want to use to authenticate to your SMTP server.&lt;/p&gt;
&lt;p&gt;Please note: This is only required if you need to authenticate to the SMTP server when send the log via e-mail.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-Credential&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Password&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;ConvertFrom-SecureString&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Set-Content&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scripts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ps-script-pwd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;txt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After running the commands, you will have a text file containing the encrypted password. When configuring the -Pwd switch enter the path and file name of this file.&lt;/p&gt;
&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Here’s a list of all the command line switches and example configurations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command Line Switch&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;-List&lt;/td&gt;
&lt;td&gt;The path to a TXT file containing the NetBIOS names of the servers you wish to check.&lt;/td&gt;
&lt;td&gt;[path]servers.txt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-O&lt;/td&gt;
&lt;td&gt;The path where the report file will be output to.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-DiskAlert&lt;/td&gt;
&lt;td&gt;The percentage of disk usage that should cause the disk space alert to be raised.&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-CpuAlert&lt;/td&gt;
&lt;td&gt;The percentage of CPU usage that should cause the CPU alert to be raised.&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-MemAlert&lt;/td&gt;
&lt;td&gt;The percentage of memory usage that should cause the memory alert to be raised.&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Refresh&lt;/td&gt;
&lt;td&gt;The number of seconds that she script should wait before running again. The minimum is 300 seconds (5 minutes) and the maximum is 28800 (8 hours). If not configured the script will run once and then exit.&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Light&lt;/td&gt;
&lt;td&gt;Configure the HTML results file to have a light theme.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-csv&lt;/td&gt;
&lt;td&gt;Export a CSV file, instead of a HTML file.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Subject&lt;/td&gt;
&lt;td&gt;Specify a subject line. If you leave this blank the default subject will be used&lt;/td&gt;
&lt;td&gt;&amp;ldquo;&#39;[Server: Notification]&#39;&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-SendTo&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent to. For multiple address, separate with a comma.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-From&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent from.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Smtp&lt;/td&gt;
&lt;td&gt;The DNS name or IP address of the SMTP server.&lt;/td&gt;
&lt;td&gt;[smtp server address]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-User&lt;/td&gt;
&lt;td&gt;The user account to authenticate to the SMTP server.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Pwd&lt;/td&gt;
&lt;td&gt;The txt file containing the encrypted password for SMTP authentication.&lt;/td&gt;
&lt;td&gt;[path]ps-script-pwd.txt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-UseSsl&lt;/td&gt;
&lt;td&gt;Configures the utility to connect to the SMTP server using SSL.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;WinServ-Status.ps1 -List C:\foo\servers.txt -O C:\foo -DiskAlert 90 -CpuAlert 95 -MemAlert 85 -Refresh 300 -Light
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Using the switches above the script will execute using the list of servers and output a HTML report to C:\foo. The disk usage alert will highlight at 90% usage for any one drive, the CPU usage alert will highlight at 95% usage, and the memory usage alert will highlight at 85% usage. The status of the servers will refresh every 5 minutes, and the HTML file will have a light theme instead of a dark theme.&lt;/p&gt;
&lt;h2 id=&#34;change-log&#34;&gt;Change Log&lt;/h2&gt;
&lt;h3 id=&#34;2019-09-04-v17&#34;&gt;2019-09-04 v1.7&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added custom subject line for e-mail.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2019-02-23-v16&#34;&gt;2019-02-23 v1.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Updated the style of the web page with a cleaner look.&lt;/li&gt;
&lt;li&gt;Added &amp;lsquo;online&amp;rsquo; CSS animation when the web page is in monitor mode - this is configured by using the refresh switch. It will not display when in report mode (no refresh switch).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2018-06-10-v15&#34;&gt;2018-06-10 v1.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added light theme for the web page.&lt;/li&gt;
&lt;li&gt;Added ability to export a CSV file instead of a web page.&lt;/li&gt;
&lt;li&gt;Improved the Offline visual effect on the web page.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2018-05-24-v14&#34;&gt;2018-05-24 v1.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Servers are now sorted alphabetically, regardless of how they are entered in the text file.&lt;/li&gt;
&lt;li&gt;Offline servers are automatically shuffled to the top of the report.&lt;/li&gt;
&lt;li&gt;Added validation for the command line parameters.&lt;/li&gt;
&lt;li&gt;Removed IP addresses, and table headers to make room for more information.&lt;/li&gt;
&lt;li&gt;Due to removing table headers, added component name to CPU and RAM usage columns.&lt;/li&gt;
&lt;li&gt;Added new effect using CSS animation for offline servers.&lt;/li&gt;
&lt;li&gt;Added different shade of black for alternate table rows.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-10-16-v13&#34;&gt;2017-10-16 v1.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Changed SMTP authentication to require an encrypted password file.&lt;/li&gt;
&lt;li&gt;Added instructions on how to generate an encrypted password file.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-10-09-v12&#34;&gt;2017-10-09 v1.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added necessary information to add the script to the PowerShell Gallery.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2018-09-27-v11&#34;&gt;2018-09-27 v1.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added capability for the script to run and monitor server status continuously.&lt;/li&gt;
&lt;li&gt;Added icons to warning and error states to assist in at-a-glace reporting.&lt;/li&gt;
&lt;li&gt;Added memory and CPU usage.&lt;/li&gt;
&lt;li&gt;Added warning thresholds for memory and CPU usage.&lt;/li&gt;
&lt;li&gt;Changed disk usage reporting from &amp;ldquo;percent free&amp;rdquo; to actual disk usage to match the added CPU and memory usage.&lt;/li&gt;
&lt;li&gt;Changed the warning threshold to of disk usage to match the change.&lt;/li&gt;
&lt;li&gt;Changed the visual style of the report.&lt;/li&gt;
&lt;li&gt;Changed visual style of warnings and errors.&lt;/li&gt;
&lt;li&gt;Changed code formatting for readability.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-07-28-v10&#34;&gt;2017-07-28 v1.0&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;First public release.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Log Manager Utility</title>
        <link>https://gal.vin/utils/log-manager-utility/</link>
        <pubDate>Tue, 13 Jun 2017 18:26:14 +0000</pubDate>
        
        <atom:modified>Tue, 13 Jun 2017 18:26:14 +0000</atom:modified>
        <guid>https://gal.vin/utils/log-manager-utility/</guid>
        <description>Flexible clean up and backup of log files For full change log and more information, visit my site.
Log Manager Utility is available from:
 GitHub The Microsoft PowerShell Gallery  Please consider supporting my work:
 Support with a one-time donation using PayPal.  Please report any problems via the &amp;lsquo;issues&amp;rsquo; tab on GitHub.
Thanks
-Mike
Features and Requirements  The utility will delete files and folders older than X days.</description>
        <content:encoded>&lt;h2 id=&#34;flexible-clean-up-and-backup-of-log-files&#34;&gt;Flexible clean up and backup of log files&lt;/h2&gt;
&lt;p&gt;For full change log and more information, &lt;a href=&#34;https://gal.vin/utils/log-manager-utility/&#34;&gt;visit my site.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Log Manager Utility is available from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Digressive/Log-Manager&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.powershellgallery.com/packages/Log-Manager&#34;&gt;The Microsoft PowerShell Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please consider supporting my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support with a one-time donation using &lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;PayPal&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please report any problems via the &amp;lsquo;issues&amp;rsquo; tab on GitHub.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br /&gt;
-Mike&lt;/p&gt;
&lt;h2 id=&#34;features-and-requirements&#34;&gt;Features and Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The utility will delete files and folders older than X days.&lt;/li&gt;
&lt;li&gt;It can also backup files and folders older than X days to another location.&lt;/li&gt;
&lt;li&gt;It can also compress backups as a zip file.&lt;/li&gt;
&lt;li&gt;The utility requires at least PowerShell 5.0&lt;/li&gt;
&lt;li&gt;This utility has been tested on Windows 11, Windows 10, Windows Server 2022, Windows Server 2019, Windows Server 2016 and Windows Server 2012 R2.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;generating-a-password-file-for-smtp-authentication&#34;&gt;Generating A Password File For SMTP Authentication&lt;/h2&gt;
&lt;p&gt;The password used for SMTP server authentication must be in an encrypted text file. To generate the password file, run the following command in PowerShell on the computer and logged in with the user that will be running the utility. When you run the command, you will be prompted for a username and password. Enter the username and password you want to use to authenticate to your SMTP server.&lt;/p&gt;
&lt;p&gt;Please note: This is only required if you need to authenticate to the SMTP server when send the log via e-mail.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-Credential&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Password&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;ConvertFrom-SecureString&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Set-Content&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scripts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ps-script-pwd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;txt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After running the commands, you will have a text file containing the encrypted password. When configuring the -Pwd switch enter the path and file name of this file.&lt;/p&gt;
&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Here’s a list of all the command line switches and example configurations.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command Line Switch&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;-LogsPath&lt;/td&gt;
&lt;td&gt;The path that contains the logs that the utility should process.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-LogKeep&lt;/td&gt;
&lt;td&gt;Use this option to specify how long to keep logs for. Logs older than the number of days specified will be deleted.&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-BackupTo&lt;/td&gt;
&lt;td&gt;The path the logs should be backed up to. A folder will be created inside this location. If this option is not used, backup will not be performed.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-BacKeep&lt;/td&gt;
&lt;td&gt;Use this option to specify how long to keep the backups. Backups older than the number of days specified will be deleted.&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Wd&lt;/td&gt;
&lt;td&gt;Specify a &amp;lsquo;working directory&amp;rsquo; for the creation of the zip file.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Compress&lt;/td&gt;
&lt;td&gt;This option will create a zip file of the log files.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Sz&lt;/td&gt;
&lt;td&gt;Configure the utility to use 7-Zip to compress the backups. 7-Zip must be installed in the default location &lt;code&gt;$env:ProgramFiles&lt;/code&gt; if it is not found, Windows compression will be used.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-ZipName&lt;/td&gt;
&lt;td&gt;Use this to name the zip file as you wish - the time and date will be appended to this name.&lt;/td&gt;
&lt;td&gt;&amp;ldquo;&amp;lsquo;IIS Logs&amp;rsquo;&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-L&lt;/td&gt;
&lt;td&gt;The path to output the log file to.&lt;/td&gt;
&lt;td&gt;[path]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-LogRotate&lt;/td&gt;
&lt;td&gt;Remove logs produced by the utility older than X days&lt;/td&gt;
&lt;td&gt;[number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-NoBanner&lt;/td&gt;
&lt;td&gt;Use this option to hide the ASCII art title in the console.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Help&lt;/td&gt;
&lt;td&gt;Display usage information. No arguments also displays help.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Subject&lt;/td&gt;
&lt;td&gt;Specify a subject line. If you leave this blank the default subject will be used&lt;/td&gt;
&lt;td&gt;&amp;ldquo;&#39;[Server: Notification]&#39;&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-SendTo&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent to. For multiple address, separate with a comma.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-From&lt;/td&gt;
&lt;td&gt;The e-mail address the log should be sent from.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Smtp&lt;/td&gt;
&lt;td&gt;The DNS name or IP address of the SMTP server.&lt;/td&gt;
&lt;td&gt;[smtp server address]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Port&lt;/td&gt;
&lt;td&gt;The Port that should be used for the SMTP server. If none is specified then the default of 25 will be used.&lt;/td&gt;
&lt;td&gt;[port number]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-User&lt;/td&gt;
&lt;td&gt;The user account to authenticate to the SMTP server.&lt;/td&gt;
&lt;td&gt;[example@contoso.com]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-Pwd&lt;/td&gt;
&lt;td&gt;The txt file containing the encrypted password for SMTP authentication.&lt;/td&gt;
&lt;td&gt;[path\ps-script-pwd.txt]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-UseSsl&lt;/td&gt;
&lt;td&gt;Configures the utility to connect to the SMTP server using SSL.&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;[path\]Log-Manager.ps1 -LogsPath [path\] -LogKeep [number] -BackupTo [path\]
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This will backup and remove logs in the path specified older than X days.&lt;/p&gt;
&lt;h2 id=&#34;change-log&#34;&gt;Change Log&lt;/h2&gt;
&lt;h3 id=&#34;2022-06-14-version-220601&#34;&gt;2022-06-14: Version 22.06.01&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added new feature: log can now be emailed to multiple addresses.&lt;/li&gt;
&lt;li&gt;Added checks and balances to help with configuration as I&amp;rsquo;m very aware that the initial configuration can be troublesome. Running the utility manually is a lot more friendly and step-by-step now.&lt;/li&gt;
&lt;li&gt;Added -Help to give usage instructions in the terminal. Running the script with no options will also trigger the -help switch.&lt;/li&gt;
&lt;li&gt;Cleaned user entered paths so that trailing slashes no longer break things or have otherwise unintended results.&lt;/li&gt;
&lt;li&gt;Added -LogRotate [days] to removed old logs created by the utility.&lt;/li&gt;
&lt;li&gt;Streamlined config report so non configured options are not shown.&lt;/li&gt;
&lt;li&gt;Added donation link to the ASCII banner.&lt;/li&gt;
&lt;li&gt;Cleaned up code, removed unneeded log noise.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-12-09-version-211209&#34;&gt;2021-12-09: Version 21.12.09&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Moved config output so user can see it even if there&amp;rsquo;s no files to process.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2021-12-08-version-211208&#34;&gt;2021-12-08: Version 21.12.08&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Configured logs path now is created, if it does not exist.&lt;/li&gt;
&lt;li&gt;Added OS version info.&lt;/li&gt;
&lt;li&gt;Added Utility version info.&lt;/li&gt;
&lt;li&gt;Added Hostname info.&lt;/li&gt;
&lt;li&gt;Added an option to specify the Port for SMTP communication.&lt;/li&gt;
&lt;li&gt;Changed a variable to prevent conflicts with future PowerShell versions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-07-30-version-200727&#34;&gt;2020-07-30: Version 20.07.27&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added improved error handling and reporting.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-07-21-version-200721&#34;&gt;2020-07-21: Version 20.07.21&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed error when using script without a log output configured.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-03-23-version-200323&#34;&gt;2020-03-23: Version 20.03.23&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed a user reported issue: wildcards in the -LogsPath switch no longer worked. They will now work.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-03-11-version-200311-cow&#34;&gt;2020-03-11: Version 20.03.11 &amp;lsquo;Cow&amp;rsquo;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The previous command line switch of -LogPath is now -LogsPath. This fixes an issue with a duplicate variable and switch alias preventing utility from running currently.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2020-03-09-version-200306-fish&#34;&gt;2020-03-09: Version 20.03.06 &amp;lsquo;Fish&amp;rsquo;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added custom name for zip file based on user feedback.&lt;/li&gt;
&lt;li&gt;Added option to use 7-zip for zip file backup.&lt;/li&gt;
&lt;li&gt;Added time to keep backups for.&lt;/li&gt;
&lt;li&gt;Added config report.&lt;/li&gt;
&lt;li&gt;Added ASCII banner art when run in the console.&lt;/li&gt;
&lt;li&gt;Added option to disable the ASCII banner art.&lt;/li&gt;
&lt;li&gt;Refactored code.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2019-09-04-v18&#34;&gt;2019-09-04 v1.8&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added custom subject line for e-mail.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-10-16-v17&#34;&gt;2017-10-16 v1.7&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Changed SMTP authentication to require an encrypted password file.&lt;/li&gt;
&lt;li&gt;Added instructions on how to generate an encrypted password file.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-10-09-v16&#34;&gt;2017-10-09 v1.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added necessary information to add the script to the PowerShell Gallery.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-09-20-v15&#34;&gt;2017-09-20 v1.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved log output to be more legible.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-06-21-v14&#34;&gt;2017-06-21 v1.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved commenting on the code for documentation purposes.&lt;/li&gt;
&lt;li&gt;Added authentication and SSL options for e-mail notification.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-06-13-v13&#34;&gt;2017-06-13 v1.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;First public release.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Auto Create Exchange Mailboxes v1.8</title>
        <link>https://gal.vin/posts/old/powershell-create-mailboxes/</link>
        <pubDate>Wed, 07 Jun 2017 19:58:29 +0000</pubDate>
        
        <atom:modified>Wed, 07 Jun 2017 19:58:29 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/powershell-create-mailboxes/</guid>
        <description>I needed to write a PowerShell utility to create Exchange mailboxes for new users in Active Directory. The utility needed to create the mailboxes, use different databases, retention policies, and take users from several Organisational Units along with users in child OUs. This utility is available to download from the Microsoft TechNet Gallery, PowerShell Gallery and GitHub.
If you have any questions or comments, please leave them below.
Please consider donating to support my work:</description>
        <content:encoded>&lt;p&gt;I needed to write a PowerShell utility to create Exchange mailboxes for new users in Active Directory. The utility needed to create the mailboxes, use different databases, retention policies, and take users from several Organisational Units along with users in child OUs. This utility is available to download from the &lt;a href=&#34;https://gallery.technet.microsoft.com/scriptcenter/Create-Exchange-Mailboxes-3b54f12c?redir=0&#34;&gt;Microsoft TechNet Gallery&lt;/a&gt;, &lt;a href=&#34;https://www.powershellgallery.com/packages/Create-Mailboxes&#34;&gt;PowerShell Gallery&lt;/a&gt; and &lt;a href=&#34;https://github.com/Digressive/Auto-Create-Exchange-Mailboxes&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;Please consider donating to support my work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.paypal.me/digressive&#34;&gt;using PayPal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;-Mike&lt;/p&gt;
&lt;h2 id=&#34;features-and-requirements&#34;&gt;Features and Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;This script is designed to be run locally on an Exchange Server.&lt;/li&gt;
&lt;li&gt;The Exchange Server management tools must be installed.&lt;/li&gt;
&lt;li&gt;The Active Directory management tools must be installed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This script has been tested on Windows Server 2016 with Exchange 2016, Windows Server 2012 R2 with Exchange 2013, and Windows Server 2008 R2 with Exchange 2010.&lt;/p&gt;
&lt;h2 id=&#34;the--file-parameter-and-why-it-matters&#34;&gt;The -file Parameter And Why It Matters&lt;/h2&gt;
&lt;p&gt;When running a PowerShell script from the command prompt or as a Scheduled Task without the -file parameter, any user defined parameters which contain spaces, must be surrounded by &amp;lsquo;single quotes&amp;rsquo; as using &amp;ldquo;double quotes&amp;rdquo; results in the script not seeing the parameter as a complete string. When running a PowerShell script with the -file parameter, the &amp;ldquo;double quotes&amp;rdquo; work as expected. Cue &amp;ldquo;The More You Know&amp;rdquo; GIF. With this in mind, when running the script please use the -file parameter and surround any database &amp;amp; retention policy friendly names &amp;ldquo;double quotes&amp;rdquo; if they have spaces. Also the Distinguished Name for the OU you wish to query for users should be surrounded by &amp;ldquo;double quotes&amp;rdquo; because PowerShell will remove the comma&amp;rsquo;s from the string.&lt;/p&gt;
&lt;h2 id=&#34;generating-a-password-file-for-smtp-authentication&#34;&gt;Generating A Password File For SMTP Authentication&lt;/h2&gt;
&lt;p&gt;The password used for SMTP server authentication must be in an encrypted text file. To generate the password file, run the following command in PowerShell, on the computer that is going to run the script and logged in with the user that will be running the script. When you run the command you will be prompted for a username and password. Enter the username and password you want to use to authenticate to your SMTP server.&lt;/p&gt;
&lt;p&gt;Please note: This is only required if you need to authenticate to the SMTP server when send the log via e-mail.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-Credential&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$creds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Password&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;ConvertFrom-SecureString&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Set-Content&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scripts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ps-script-pwd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;txt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After running the commands, you will have a text file containing the encrypted password. When configuring the -Pwd switch enter the path and file name of this file.&lt;/p&gt;
&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Here’s a list of all the command line switches and example configurations.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-OU
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The AD Organisational Unit (including child OUs) that contains the users to create Exchange Mailboxes for.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-Datab
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The Exchange database to create the mailboxes in. If you do not configure a Database, the smallest database will be used.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-RP
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The retention policy that should be applied to the users.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-Compat
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Use this switch if you are using Exchange 2010.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-L
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The path to output the log file to. The file name will be &amp;ldquo;Create-Mailboxes.log&amp;rdquo;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-Subject
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The email subject that the email should have. Encapsulate with single or double quotes.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-SendTo
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The e-mail address the log should be sent to.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-From
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The from address the log should be sent from.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-Smtp
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The DNS name or IP address of the SMTP server.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-User
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The user account to connect to the SMTP server.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-Pwd
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The txt file containing the encrypted password for the user account.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;-UseSsl
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Connect to the SMTP server using SSL.&lt;/p&gt;
&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;Create-Mailboxes.ps1 -Ou &amp;#34;OU=NewUsers,OU=Dept,DC=contoso,DC=com&amp;#34; -Datab &amp;#34;Mail DB 2&amp;#34; -Rp &amp;#34;1-Month-Deleted-Items&amp;#34; -L C:\scripts\logs -Subject &amp;#39;Server: Created Mailboxes&amp;#39; -Sendto me@contoso.com -From Exch01@contoso.com -Smtp smtp-mail.outlook.com -User Exch01@contoso.com -Pwd P@ssw0rd -UseSsl
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This will create mailboxes for users that do not already have one in the OU NewUsers and all child OUs. It will create the mailbox using Mail DB 2 and apply the retention policy &amp;ldquo;1-Month-Deleted-Items&amp;rdquo;. If you do not configure a database, the smallest database will be used. A log will be output to C:\scripts\logs and e-mailed with a custom subject line, using a secure connection.&lt;/p&gt;
&lt;h2 id=&#34;change-log&#34;&gt;Change Log&lt;/h2&gt;
&lt;h3 id=&#34;2019-09-04-v18&#34;&gt;2019-09-04 v1.8&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added custom subject line for e-mail.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2018-01-13-v17&#34;&gt;2018-01-13 v1.7&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed an issue where the script would not load the Exchange PowerShell snap-in and PowerShell would unexpectedly quit.&lt;/li&gt;
&lt;li&gt;Added the capability for the script to create mailboxes in the smallest database available.&lt;/li&gt;
&lt;li&gt;The ability to configure a specific database if required remains.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-10-16-v16&#34;&gt;2017-10-16 v1.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Changed SMTP authentication to require an encrypted password file.&lt;/li&gt;
&lt;li&gt;Added instructions on how to generate an encrypted password file.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-10-07-v15&#34;&gt;2017-10-07 v1.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added necessary information to add the script to the PowerShell Gallery.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-09-27-v14&#34;&gt;2017-09-27 v1.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added improved, cleaned logging. Log output is no longer handled by PowerShell&amp;rsquo;s Transcript functionality.&lt;/li&gt;
&lt;li&gt;Cleaned up code formatting.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2017-07-22-v13&#34;&gt;2017-07-22 v1.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved commenting on the code for documentation purposes.&lt;/li&gt;
&lt;li&gt;Added authentication and SSL options for e-mail notification.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>Exchange Server</category>
            
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      
      <item>
        <title>Fully Automated Image Factory for Microsoft Deployment Toolkit</title>
        <link>https://gal.vin/posts/old/image-factory-v20/</link>
        <pubDate>Tue, 28 Mar 2017 20:31:05 +0000</pubDate>
        
        <atom:modified>Tue, 28 Mar 2017 20:31:05 +0000</atom:modified>
        <guid>https://gal.vin/posts/old/image-factory-v20/</guid>
        <description>UPDATE: This post is old and intended as a walk through on how my original script was put together for those wishing to learn PowerShell. For the finished, up-to-date script please check out this post and you can download the script from my Microsoft TechNet profile.
Recently I&amp;rsquo;ve been looking into automating my image build process further using PowerShell to create an Image Factory of sorts. There are other similar scripts that I&amp;rsquo;ve found online, but I like the relatively simple and straightforward method I&amp;rsquo;ve developed below.</description>
        <content:encoded>&lt;p&gt;UPDATE: This post is old and intended as a walk through on how my original script was put together for those wishing to learn PowerShell. For the finished, up-to-date script please &lt;a href=&#34;https://gal.vin/utils/image-factory-utility/&#34;&gt;check out this post&lt;/a&gt; and you can download the script from &lt;a href=&#34;https://gallery.technet.microsoft.com/PowerShell-Image-Factory-d6c133b9?redir=0&#34;&gt;my Microsoft TechNet profile&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Recently I&amp;rsquo;ve been looking into automating my image build process further using PowerShell to create an Image Factory of sorts. There are other similar scripts that I&amp;rsquo;ve found online, but I like the relatively simple and straightforward method I&amp;rsquo;ve developed below. If like me you&amp;rsquo;re looking to automate your image build process so that you can have a fully up-to-date image library after patch Tuesday each month, then this may be for you. I&amp;rsquo;m moving the change log and updates &lt;a href=&#34;https://gal.vin/utils/image-factory-utility/&#34;&gt;to this page&lt;/a&gt;, as this post is more about the script itself and how I put it together.&lt;/p&gt;
&lt;h3 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h3&gt;
&lt;p&gt;To use this script you&amp;rsquo;ll need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Windows 10/Windows Server 2016/Windows 8.1/Windows Server 2012 R2 Hyper-V host&lt;/li&gt;
&lt;li&gt;Microsoft Deployment Toolkit installed&lt;/li&gt;
&lt;li&gt;Separate Build and Deployment shares&lt;/li&gt;
&lt;li&gt;Fully automated reference image build Task Sequences&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It&amp;rsquo;s helpful to run the script on the same computer that has Microsoft Deployment Toolkit installed - although the shares do not have to be on this computer. For example, I run this script on my workstation which has MDT installed but the Build/Deployment shares are on a remote server. The Hyper-V host can be either a remote server or the computer that the script is being run on.&lt;/p&gt;
&lt;p&gt;I use the current time and date to name VHDs, WIM files and so on to avoid naming conflicts and files getting overwritten. If you do not have separate Build/Deployment MDT shares, the script &lt;em&gt;can&lt;/em&gt; be tweaked to run with this set up, but you will not be able to deploy devices whilst the script is running. Similarly, if you do have separate shares, this script effectively takes over the Build share for the duration of it&amp;rsquo;s run. This is to automate the running of the Task Sequences by making the necessary changes to the CustomSettings.ini file of the Build share. Your Build share should be configured as below so that the process is completely automated. If slightly different settings are needed for your environment then the script can be tweaked to make those changes, but it&amp;rsquo;s important to remember that the purpose of building an image using Hyper-V is so that the image is as &amp;ldquo;clean&amp;rdquo; as it can be, containing only the most general data needed. If drivers are required, they should be a part of the deployment process. If you have any queries about making changes, please leave a comment.&lt;/p&gt;
&lt;p&gt;My Build share CustomSettings.ini. Please note: it&amp;rsquo;s important to have at least one blank line at the very end.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;[Settings]
Priority=Model, Default, SetOSD
Properties=OSDPrefix

[Virtual Machine]
DriverGroup001=Virtual Machine Driver
SelectionProfile=nothing
OSDPrefix=VM

[Default]
_SMSTSORGNAME=Mike Galvin | Build Share
_SMSTSPackageName=%TaskSequenceName%
UserDataLocation=NONE
DoCapture=YES
ComputerBackupLocation=\\wds01\buildshare$\Captures
BackupFile=%TaskSequenceID%_#year(date) &amp;amp; &amp;#34;-&amp;#34; &amp;amp; month(date) &amp;amp; &amp;#34;-&amp;#34; &amp;amp; day(date) &amp;amp; &amp;#34;-&amp;#34; &amp;amp; hour(time) &amp;amp; &amp;#34;-&amp;#34; &amp;amp; minute(time)#.wim
OSInstall=Y
TimeZoneName=GMT Standard Time
KeyboardLocale=0809:00000809
UILanguage=en-GB
UserLocale=en-GB
KeyboardLocale=en-GB
BitsPerPel=32
VRefresh=60
XResolution=1
YResolution=1
WSUSServer=http://wsus01:8530
SkipAdminPassword=YES
SkipCapture=YES
SkipRoles=YES
SkipProductKey=YES
SkipUserData=YES
SkipComputerBackup=YES
SkipBitLocker=YES
SkipLocaleSelection=YES
SkipTimeZone=YES
SkipDomainMembership=YES
SkipSummary=YES
SkipFinalSummary=YES
FinishAction=SHUTDOWN
EventService=http://wds01:9800
SLShare=\\wds01\buildshare$\Logs

OSDComputerName=%OSDPrefix%-%TaskSequenceID%
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Once you have your Build share CustomSettings.ini configured, you&amp;rsquo;ll need to have an up to date LiteTouch_x64.iso generated and placed on the computer you are using for Hyper-V. The LiteTouch_x64.iso can be found under BuildShare\Boot\LiteTouchPE_x64.iso. You can also use a LiteTouch_x86.iso if needed. Of course we can&amp;rsquo;t forget about the BootStrap.ini settings either. For automated log in, it should look something like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;[Settings]
Priority=Default

[Default]
DeployRoot=\\WDS01\BuildShare$
UserDomain=FQDN.domain.co.uk
UserID=mdt\admin
UserPassword=p@ssw0rd
SkipBDDWelcome=YES
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The script below will require some configuration for your environment, but when configured it will take a list of Task Sequence IDs, generate VMs for them, boot the VMs into the Task Sequence, run the Task Sequence to completion, capture the WIM, then import the WIMs into the Deploy share, ready for you to test and deploy them.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;85
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;86
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;87
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;88
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;89
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;90
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;c&#34;&gt;# -------------------------------------------&lt;/span&gt;
&lt;span class=&#34;c&#34;&gt;# Script: image-factory_v2-1.ps1&lt;/span&gt;
&lt;span class=&#34;c&#34;&gt;# Version: 2.1&lt;/span&gt;
&lt;span class=&#34;c&#34;&gt;# Author: Mike Galvin &lt;/span&gt;
&lt;span class=&#34;c&#34;&gt;# Date: 24/04/2017&lt;/span&gt;
&lt;span class=&#34;c&#34;&gt;# -------------------------------------------&lt;/span&gt;
&lt;span class=&#34;c&#34;&gt;##Set MDT Custom Settings.ini location&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;\\wds01\BuildShare$\Control&amp;#34;&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##List Task Sequence IDs to run&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$tsid&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;REF-W101607&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;REF-WS2016-STD&amp;#34;&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Log file location&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$log&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;E:\imagefactory.log&amp;#34;&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Configure Hyper-V&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$vmhost&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;vs01&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$vhdpath&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;G:\Hyper-V\VHD&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$vhdremotepath&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;\\$vmhost\g$\Hyper-V\VHD&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$bootmedia&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;E:\iso\LiteTouchPE_x64-build.iso&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$vmnic&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;v-NIC&amp;#34;&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Configure MDT&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$mdt&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;C:\Program Files\Microsoft Deployment Toolkit\bin\MicrosoftDeploymentToolkit.psd1&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$mdtpath&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;\\wds01\DeploymentShare$&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$captures&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;\\wds01\BuildShare$\Captures&amp;#34;&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Configure mail for log file&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$toaddress&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;it@contoso.com&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$fromaddress&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;image-factory@contoso.com&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$subject&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Image Factory Log&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$mailserver&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;mail.contoso.com&amp;#34;&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Start Log Start-Transcript&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$log&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Import old Hyper V Module for WS2012R2&lt;/span&gt;
&lt;span class=&#34;nb&#34;&gt;Import-Module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;C:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Windows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;System32&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WindowsPowerShell&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;v1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Modules&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Hyper-V&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Hyper-V&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;psd1&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Import MDT Module&lt;/span&gt;
&lt;span class=&#34;nb&#34;&gt;Import-Module&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$mdt&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;

&lt;span class=&#34;k&#34;&gt;ForEach&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$id&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$tsid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
    &lt;span class=&#34;c&#34;&gt;##Setup MDT Custom Settings for VM&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Copy-Item&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings-backup&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Start-Sleep&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-s&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;5&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Add-Content&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;TaskSequenceID=$id&amp;#34;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Add-Content&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;SkipTaskSequence=YES&amp;#34;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Add-Content&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;SkipComputerName=YES&amp;#34;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;Get-Content&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;OSDComputerName=%OSDPrefix%-%TaskSequenceID%&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;;OSDComputerName=%OSDPrefix%-%TaskSequenceID%&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Set-Content&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    
    &lt;span class=&#34;c&#34;&gt;##Create VM&lt;/span&gt;
    &lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;build-{0:yyyy-MM-dd-HH-mm}&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-f&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;get-date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;New-VM&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-name&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-MemoryStartupBytes&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;4096MB&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-BootDevice&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;CD &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-Generation&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-NewVHDPath&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vhdpath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;vhdx&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-NewVHDSizeBytes&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;130048MB&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-SwitchName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmnic&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ComputerName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmhost&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Set-VM&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ProcessorCount&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;2&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-StaticMemory&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ComputerName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmhost&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Set-VMDvdDrive&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-VMName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ControllerNumber&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ControllerLocation&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Path&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$bootmedia&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ComputerName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmhost&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Start-VM&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ComputerName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmhost&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    
    &lt;span class=&#34;c&#34;&gt;##Wait for VM to stop&lt;/span&gt;
    &lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;get-vm&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-name&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ComputerName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmhost&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;state&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-ne&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;Off&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;start-sleep&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-s&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;5&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
    
    &lt;span class=&#34;c&#34;&gt;##Remove VM&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Remove-VM&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ComputerName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmhost&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Force&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Remove-Item&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vhdremotepath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;vhdx&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    
    &lt;span class=&#34;c&#34;&gt;##Reset MDT Custom Settings&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Remove-Item&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Move-Item&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings-backup&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Start-Sleep&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-s&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;5&lt;/span&gt;
&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Connect to MDT Production&lt;/span&gt;
&lt;span class=&#34;nb&#34;&gt;New-PSDrive&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Name&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;DS002&amp;#34;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-PSProvider&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MDTProvider&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Root&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$mdtpath&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Get files&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$wims&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-ChildItem&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$captures&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\*.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;wim&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Import the Captured REF Image into MDT Production&lt;/span&gt;

&lt;span class=&#34;k&#34;&gt;ForEach&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$file&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$wims&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Import-MDTOperatingSystem&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-path&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;DS002:\\Operating Systems&amp;#34;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-SourceFile&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$file&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-DestinationFolder&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Name&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Remove Captured WIMs&lt;/span&gt;
&lt;span class=&#34;nb&#34;&gt;Remove-Item&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$captures&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\*.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;wim&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Stop Log&lt;/span&gt;
&lt;span class=&#34;nb&#34;&gt;Stop-Transcript&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Send Mail&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$body&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-Content&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Path&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$log&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Out-String&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Send-MailMessage&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-To&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$toaddress&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-From&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$fromaddress&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Subject&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$subject&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Body&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$body&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-SmtpServer&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$mailserver&lt;/span&gt;
&lt;span class=&#34;c&#34;&gt;##END&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Let&amp;rsquo;s go through each section of the script.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;c&#34;&gt;##Set MDT Custom Settings.ini location&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;\\wds01\BuildShare$\Control&amp;#34;&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##List Task Sequence IDs to run&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$tsid&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;REF-W101607&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;REF-WS2016-STD&amp;#34;&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Log file location&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$log&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;E:\imagefactory.log&amp;#34;&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Configure Hyper-V&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$vmhost&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;vs01&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$vhdpath&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;G:\Hyper-V\VHD&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$vhdremotepath&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;\\$vmhost\g$\Hyper-V\VHD&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$bootmedia&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;E:\iso\LiteTouchPE_x64-build.iso&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$vmnic&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;v-NIC&amp;#34;&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Configure MDT&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$mdt&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;C:\Program Files\Microsoft Deployment Toolkit\bin\MicrosoftDeploymentToolkit.psd1&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$mdtpath&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;\\wds01\DeploymentShare$&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$captures&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;\\wds01\BuildShare$\Captures&amp;#34;&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Configure mail for log file&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$toaddress&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;it@contoso.com&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$fromaddress&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;image-factory@contoso.com&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$subject&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Image Factory Log&amp;#34;&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$mailserver&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;mail.contoso.com&amp;#34;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This is where all the configuration of the script is. Here you set the locations of all the resources needed. First, set the location of the Custom Settings.ini file in the MDT share that is being used for the building of the images. Then list the Task Sequence IDs for all the Task Sequences that need to be run.&lt;/p&gt;
&lt;p&gt;New for v2.1 of the script, you can set a log file for the script to output to, and optionally email it when the script completes. This does not replace MDT&amp;rsquo;s logging for the Task Sequences, that should still be enabled, this is logging just for the script.&lt;/p&gt;
&lt;p&gt;Next up is the configuration of the resources for the VMs. The configuration of the Hyper-V $vhdpath and $bootmedia variables are the local paths that Hyper-V uses. For example, if you&amp;rsquo;re running the script on your admin PC and using a remote Hyper-V host, then the $vhdpath would be the local disk on the remote server. The $vhdremotepath is regardless of where the script is running from, the UNC path of the location of the VHD location.&lt;/p&gt;
&lt;p&gt;Added in v2.1 of the script is a variable to configure the Virtual Switch for the Network Adaptor to use. Previously this had to be configured lower down in the script and was an oversight. Here, I&amp;rsquo;ve corrected this.&lt;/p&gt;
&lt;p&gt;The MDT share locations are self explanatory, the $mdt variable is the location of the MDT PowerShell module needed later on in the script - MDT should be installed on the device that this script is running on.&lt;/p&gt;
&lt;p&gt;Added in v2.1 is the configuration for emailing the log file when the script completes.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;c&#34;&gt;##Import old Hyper V Module for backquards compatibility&lt;/span&gt;
&lt;span class=&#34;nb&#34;&gt;Import-Module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;C:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Windows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;System32&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WindowsPowerShell&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;v1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Modules&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Hyper-V&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Hyper-V&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;psd1&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This line is for backwards compatibility with previous versions of Hyper-V older than the device running the script. For example: if the device running the script is Windows 10 and the Hyper-V host is a remote server running Windows Server 2012 R2, then this line should be enabled. If the Hyper-V host is running the same version of Windows as the device running the script then you can leave this line commented out.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;k&#34;&gt;ForEach&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$id&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$tsid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
    &lt;span class=&#34;c&#34;&gt;##Setup MDT Custom Settings for VM&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Copy-Item&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt;
    &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings-backup&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Start-Sleep&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-s&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;5&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Add-Content&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;TaskSequenceID=$id&amp;#34;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Add-Content&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;SkipTaskSequence=YES&amp;#34;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    &lt;span class=&#34;nb&#34;&gt;Add-Content&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;SkipComputerName=YES&amp;#34;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
    &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;Get-Content&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;OSDComputerName=%OSDPrefix%-%TaskSequenceID%&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;;OSDComputerName=%OSDPrefix%-%TaskSequenceID%&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Set-Content&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$csini&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CustomSettings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ini&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Now the script is going to go through each Task Sequence ID that has been configured and run the image build process, one at a time. Here the CustomSettings.ini file is backed up and edited so that the VMs will boot automatically into each Task Sequence.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;c&#34;&gt;##Create VM&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;build-{0:yyyy-MM-dd-HH-mm}&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-f&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;get-date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;span class=&#34;nb&#34;&gt;New-VM&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-name&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-MemoryStartupBytes&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;4096MB&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-BootDevice&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;CD &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-Generation&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-NewVHDPath&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vhdpath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;vhdx&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-NewVHDSizeBytes&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;130048MB&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-SwitchName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmnic&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ComputerName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmhost&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
&lt;span class=&#34;nb&#34;&gt;Set-VM&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ProcessorCount&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;2&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-StaticMemory&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ComputerName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmhost&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
&lt;span class=&#34;nb&#34;&gt;Set-VMDvdDrive&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-VMName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ControllerNumber&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ControllerLocation&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Path&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$bootmedia&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ComputerName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmhost&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
&lt;span class=&#34;nb&#34;&gt;Start-VM&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ComputerName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmhost&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Wait for VM to stop&lt;/span&gt;
&lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;get-vm&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-name&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ComputerName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmhost&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;state&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-ne&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;Off&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;start-sleep&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-s&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;5&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Remove VM&lt;/span&gt;
&lt;span class=&#34;nb&#34;&gt;Remove-VM&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ComputerName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmhost&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Force&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Remove-Item&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vhdremotepath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$vmname&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;vhdx&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This is the creation, start up and deletion of the VMs. When the VM starts it will auto boot from the LiteTouch_x64-build.iso, auto login to the Build share and run the configured task sequence. It will use an automatically generated computer name, install the applications specified, run Windows Update from WSUS, then capture the image and finally shutdown, then the script removes the VM and it&amp;rsquo;s VHD file.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;c&#34;&gt;##Connect to MDT Production&lt;/span&gt;
&lt;span class=&#34;nb&#34;&gt;New-PSDrive&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Name&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;DS002&amp;#34;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-PSProvider&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MDTProvider&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Root&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$mdtpath&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;
&lt;span class=&#34;c&#34;&gt;##Get files&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$wims&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-ChildItem&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$captures&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\*.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;wim&lt;/span&gt;
&lt;span class=&#34;c&#34;&gt;##Import the Captured REF Image into MDT Production&lt;/span&gt;
&lt;span class=&#34;k&#34;&gt;ForEach&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$file&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$wims&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Import-MDTOperatingSystem&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-path&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;DS002:\\Operating Systems&amp;#34;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-SourceFile&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$file&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-DestinationFolder&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Name&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Remove Captured WIMs&lt;/span&gt;
&lt;span class=&#34;nb&#34;&gt;Remove-Item&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$captures&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\*.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;wim&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Verbose&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Stop Log&lt;/span&gt;
&lt;span class=&#34;nb&#34;&gt;Stop-Transcript&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;##Send Mail&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;$body&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-Content&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Path&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$log&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Out-String&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Send-MailMessage&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-To&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$toaddress&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-From&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$fromaddress&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Subject&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$subject&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Body&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$body&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-SmtpServer&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$mailserver&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Here the script connects to MDT, imports all the WIMs in the Capture folder to the Operating Systems folder on the Deploy share then deletes the source capture files.&lt;/p&gt;
&lt;p&gt;Added in v2.1 the logging is stopped and then emailed to an address of your choice.&lt;/p&gt;
&lt;p&gt;After the script has run to completion, you should have all the specified Task Sequences&#39; WIMs imported into your Deploy share ready to be tested and deployed - they will have a long name as per usual with importing custom images. I actually tried to automate this part of the process as well, so new Task Sequences would be created for the new images, but alas, I hit a few road blocks. I figured that it wasn&amp;rsquo;t the end of the world and I would still like to test the images before making them widely available.&lt;/p&gt;
&lt;p&gt;This has been a big post and I know that this script is largely dependant on a lot of factors which could be very unique to your circumstances. It may be hard work to fully automate your process but I believe it&amp;rsquo;s worth it. My team and I have been enjoying coming into the office to fresh images in the morning, instead of having to remember to manually set them off.&lt;/p&gt;
&lt;p&gt;I take great care to test my ideas and make sure my articles are accurate before posting, however mistakes do slip through sometimes.&lt;/p&gt;
&lt;p&gt;If you have any questions or comments, please leave them below.&lt;/p&gt;
&lt;p&gt;-Mike&lt;/p&gt;
</content:encoded>
        
        
        
        
        
          
            
              <category>PowerShell Utility</category>
            
          
        
        
        
      </item>
      

    
  </channel>
</rss>