<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>PowerShell on Anything About IT</title><link>https://www.verboon.info/tags/powershell/</link><description>Recent content in PowerShell on Anything About IT</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 26 Aug 2021 19:01:10 +0000</lastBuildDate><atom:link href="https://www.verboon.info/tags/powershell/index.xml" rel="self" type="application/rss+xml"/><item><title>Deploying Windows 11 in minutes with AutomatedLab</title><link>https://www.verboon.info/2021/08/deploying-windows-11-in-minutes-with-automatedlab/</link><pubDate>Thu, 26 Aug 2021 19:01:10 +0000</pubDate><guid>https://www.verboon.info/2021/08/deploying-windows-11-in-minutes-with-automatedlab/</guid><description>&lt;p&gt;In this blog post I am going to show you how you can quickly (in 5 minutes) deploy Windows 11 in Hyper-V using the AutomatedLab PowerShell module. In fact the process is no different than when deploying other Windows operating systems, but just in case you haven&amp;rsquo;t heard of AutomatedLab yet and plan to install Windows 11 in a VM, this might be a good opportunity to get familiar with it.&lt;/p&gt;</description></item><item><title>Defender ATP Advanced hunting with TI from URLhaus</title><link>https://www.verboon.info/2020/06/defender-atp-advanced-hunting-with-ti-from-urlhaus/</link><pubDate>Sun, 21 Jun 2020 14:57:47 +0000</pubDate><guid>https://www.verboon.info/2020/06/defender-atp-advanced-hunting-with-ti-from-urlhaus/</guid><description>&lt;p&gt;Hello everyone, in today&amp;rsquo;s article we are going to take look at how we can use Threat Intelligence (TI) data from URLhaus with Microsoft Defender ATP advanced hunting.&lt;/p&gt;
&lt;h1 id="urlhaus"&gt;URLhaus&lt;/h1&gt;
&lt;p&gt;URLhaus is a project from abuse.ch with the goal of sharing malicious URLs that are being used for malware distribution. &lt;a href="https://urlhaus.abuse.ch/"&gt;https://urlhaus.abuse.ch/&lt;/a&gt; The project provides several ways to find and retrieve information about malware URLs.&lt;/p&gt;
&lt;p&gt;You can browse the URL database interactively through &lt;a href="https://urlhaus.abuse.ch/browse/"&gt;https://urlhaus.abuse.ch/browse/&lt;/a&gt;
 &lt;img src="images/062120_1454_DefenderATP1.png" alt=""&gt;

&lt;/p&gt;</description></item><item><title>Windows 10 2004 - What is new in the Windows Security App</title><link>https://www.verboon.info/2020/05/windows-10-2004-what-is-new-in-the-windows-security-app/</link><pubDate>Thu, 21 May 2020 13:10:05 +0000</pubDate><guid>https://www.verboon.info/2020/05/windows-10-2004-what-is-new-in-the-windows-security-app/</guid><description>&lt;p&gt;When all goes well, Microsoft will soon release the next version of Windows 10 aka as Windows 10 2004. I am an active Windows Insider user and noticed a few little changes within the Windows 10 Security App that I think are worth sharing.

 &lt;img src="images/052120_1307_Windows10201.png" alt=""&gt;

&lt;/p&gt;
&lt;p&gt;I used the following Windows 10 builds to identify changes, new features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows 10, 1909, Version 10.0.18363.836&lt;/li&gt;
&lt;li&gt;Windows 10, 2004, Version 10.0.19628.1&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="windows-security-app-icon"&gt;Windows Security App Icon&lt;/h1&gt;
&lt;p&gt;First thing you will notice is that there is a new tray icon.
&lt;em&gt;&lt;strong&gt;Windows 10 – 1909&lt;/strong&gt;&lt;/em&gt;
 &lt;img src="images/052120_1307_Windows10202.png" alt=""&gt;

&lt;em&gt;&lt;strong&gt;Windows 10 - 2004&lt;/strong&gt;&lt;/em&gt;
 &lt;img src="images/052120_1307_Windows10203.png" alt=""&gt;

&lt;/p&gt;</description></item><item><title>Importing GPO Security Baselines with PowerShell</title><link>https://www.verboon.info/2019/10/importing-gpo-security-baselines-with-powershell/</link><pubDate>Mon, 07 Oct 2019 19:00:42 +0000</pubDate><guid>https://www.verboon.info/2019/10/importing-gpo-security-baselines-with-powershell/</guid><description>&lt;p&gt;Okay there’s this rule , if you do something manually for the third time, it’s about time to think of automating it. Here’s a script that I created to create Group Policy Objects and import the security baseline settings. The script will work with any security baseline that is provided with Group Policy backups e.g. Microsoft Security baseline, CIS, NSA.&lt;/p&gt;
&lt;p&gt;Let me show you this with an example:&lt;/p&gt;
&lt;p&gt;First download the latest Microsoft Security baseline which is included in the Microsoft Security Compliance Toolkit. &lt;a href="https://www.microsoft.com/en-us/download/details.aspx?id=55319"&gt;https://www.microsoft.com/en-us/download/details.aspx?id=55319&lt;/a&gt; there download Windows 10 Version 1903 and Windows Server Version 1903 Security Baseline - Sept2019Update.zip and Office365-ProPlus-Sept2019-FINAL.zip (or just the latest versions available).&lt;/p&gt;</description></item><item><title>Extract ConfigMgr Script Status Results with PowerShell</title><link>https://www.verboon.info/2019/09/extract-configmgr-script-status-results-with-powershell/</link><pubDate>Mon, 09 Sep 2019 18:18:44 +0000</pubDate><guid>https://www.verboon.info/2019/09/extract-configmgr-script-status-results-with-powershell/</guid><description>&lt;p&gt;
 &lt;img src="images/wlEmoticon-smile.png" alt="Smile"&gt;

&lt;/p&gt;
&lt;p&gt;During a recent customer engagement I had to collect the size of user profiles across a large number of devices. I was first thinking of using a script that would collect the information we need, store it into a custom WMI table and then collect the data using ConfigMgr hardware inventory, but since we only needed a one time snapshot of this information I decided against that idea. The next option would be to go old school and run the script through Group Policy processing and store the results in a central location, but hey it’s 2019, no more logon scripts please And then the idea came up to run the script on the target clients via ConfigMgr.&lt;/p&gt;</description></item><item><title>Collecting NetTcpConnection and Process information with PowerShell</title><link>https://www.verboon.info/2018/02/collecting-nettcpconnection-and-process-information-with-powershell/</link><pubDate>Thu, 08 Feb 2018 14:28:19 +0000</pubDate><guid>https://www.verboon.info/2018/02/collecting-nettcpconnection-and-process-information-with-powershell/</guid><description>&lt;p&gt;if you need information on active TCP connections, you probably start with the &lt;a href="https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/netstat"&gt;netstat&lt;/a&gt; command When using the -b or -o parameter netstat will also list the executable involved in creating the process respectively the owing Process ID.&lt;/p&gt;
&lt;p&gt;The output then looks as following.&lt;/p&gt;
&lt;p&gt;
 &lt;img src="images/020818_1424_CollectingN1.png" alt=""&gt;

&lt;/p&gt;
&lt;p&gt;In PowerShell we can use &lt;a href="https://docs.microsoft.com/en-us/powershell/module/nettcpip/get-nettcpconnection?view=win10-ps"&gt;Get-NetTCPConnection&lt;/a&gt; to retrieve TCP connection information.&lt;/p&gt;
&lt;p&gt;
 &lt;img src="images/020818_1424_CollectingN2.png" alt=""&gt;

&lt;/p&gt;
&lt;p&gt;When suspecting that something malicious is running on a device, I look at the TCP connections and want to know more about the executable that owns the process. I am also interested in who&amp;rsquo;s owning the domain and where it&amp;rsquo;s geographically located. And so another cmdlet was born. &lt;strong&gt;Get-NetConnectionDetails&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Automating CIS-CAT Pro with PowerShell</title><link>https://www.verboon.info/2018/02/ciscatpowershell/</link><pubDate>Tue, 06 Feb 2018 20:34:49 +0000</pubDate><guid>https://www.verboon.info/2018/02/ciscatpowershell/</guid><description>&lt;p&gt;CIS-CAT stands for Center for internet Security Configuration Assessment Tool. The CIS-CAT tool is used to perform configuration and vulnerability assessments. The Pro version is only available to CIS members, however if you want to try out the software, you can download the CIS-CAT Lite version from here: &lt;a href="https://www.cisecurity.org/introducing-cis-cat-lite/"&gt;https://www.cisecurity.org/introducing-cis-cat-lite/&lt;/a&gt; Note that the Lite version does not include the command line interface, so you won&amp;rsquo;t be able to use the automation described in this blog post. But you&amp;rsquo;re still welcome to continue reading this blog post. An overview of the CIS-CAT Pro can be found here: &lt;a href="https://www.cisecurity.org/cybersecurity-tools/cis-cat-pro/"&gt;https://www.cisecurity.org/cybersecurity-tools/cis-cat-pro/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Exploring Microsoft Security Update information with PowerShell</title><link>https://www.verboon.info/2017/12/exploring-microsoft-security-update-information-with-powershell/</link><pubDate>Fri, 29 Dec 2017 13:36:30 +0000</pubDate><guid>https://www.verboon.info/2017/12/exploring-microsoft-security-update-information-with-powershell/</guid><description>&lt;p&gt;Nowadays regular deployment of security updates is a must, whether at home or within the enterprise. If you are responsible to keep systems up to date you deploy the latest updates as soon as possible.  But it is equally important to understand the vulnerabilities being addressed by these updates.&lt;/p&gt;
&lt;p&gt;The Microsoft Security Update Guide allows you to find detailed information about security updates. Go to &lt;a href="https://portal.msrc.microsoft.com/en-us/"&gt;https://portal.msrc.microsoft.com/en-us/&lt;/a&gt; and select “Go to the security update Guide”&lt;/p&gt;</description></item><item><title>How to check if Control Flow Guard is enabled</title><link>https://www.verboon.info/2017/07/how-to-check-if-control-flow-guard-is-enabled/</link><pubDate>Sat, 29 Jul 2017 10:53:56 +0000</pubDate><guid>https://www.verboon.info/2017/07/how-to-check-if-control-flow-guard-is-enabled/</guid><description>&lt;p&gt;How to check if Control Flow Guard is enabledControl Flow Guard helps mitigate exploits that are based on flow between code locations in memory. Control Flow Guard (CFG) is a mitigation that requires no configuration within the operating system, but instead is built into software when it’s compiled. So how to check if an Application is Control Flow Guard is enabled? For my own testing purposes I created two executables one called ConsoleApplication1.exe that has CFG enabled and ConsoleApplication1_NO_CFG.exe. One way to find out whether a running application has CFG enabled is to use the sysinternals process explorer utility. &lt;a href="images/clip_image002-1.png"&gt;

 &lt;img src="images/clip_image002_thumb-1.png" alt="clip_image002"&gt;


&lt;/a&gt;If you have Visual Studio installed, the you can use dumpbin.exe with the /HEADERS flag, then look for the DLL characteristics section.&lt;a href="images/clip_image004-1.png"&gt;

 &lt;img src="images/clip_image004_thumb-1.png" alt="clip_image004"&gt;


&lt;/a&gt;Another nice utility I found is &lt;a href="http://bytepointer.com/tools/index.htm#pelook"&gt;PELook&lt;/a&gt; from bytepointer.com &lt;a href="images/clip_image006-1.png"&gt;

 &lt;img src="images/clip_image006_thumb-1.png" alt="clip_image006"&gt;


&lt;/a&gt;Now while the above described methods are fine to look at an individual application, what if we wanted to scan an entire system with software installed? Use PowerShell!Luckily, I didn’t have to do all the work from scratch. I found the Get-PESecurity module from Eric Gruber on GitHub &lt;a href="https://github.com/NetSPI/PESecurity/blob/master/Get-PESecurity.psm1"&gt;here&lt;/a&gt;. The Get-PESecurity module checks if a Windows binary has been compiled with ASLR, DEP, SafeSEH, StrongNaming and Authenticode. But it didn’t show the Control Flow Guard information. After I familiarized myself a little bit with the &lt;a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms680547(v=vs.85).aspx#the_load_configuration_structure__image_only_"&gt;PE format specification&lt;/a&gt; on MSDN I learned that the information whether an image supports Control Flow Guard is stored in the DLLCharacteristics constant “GUARD_CF” with a value of 0x4000. So I extended the Get-PESecurity module here and there to add support for CFG. &lt;a href="images/clip_image008-1.png"&gt;

 &lt;img src="images/clip_image008_thumb-1.png" alt="clip_image008"&gt;


&lt;/a&gt;&lt;a href="images/clip_image010-1.png"&gt;

 &lt;img src="images/clip_image010_thumb-1.png" alt="clip_image010"&gt;


&lt;/a&gt;You can find my forked version of the Get-PESecurity PowerShell module which includes support for CFG here: &lt;a href="https://github.com/alexverboon/PESecurity"&gt;https://github.com/alexverboon/PESecurity&lt;/a&gt;If your company has in-house software developers encourage them to compile their applications with Control Flow Guard enabled. &lt;a href="images/clip_image012-1.png"&gt;

 &lt;img src="images/clip_image012_thumb-1.png" alt="clip_image012"&gt;


&lt;/a&gt;Additional resources I found while exploring CFG&lt;a href="https://msdn.microsoft.com/en-us/library/windows/desktop/mt637065(v=vs.85).aspx"&gt;https://msdn.microsoft.com/en-us/library/windows/desktop/mt637065(v=vs.85).aspx&lt;/a&gt;&lt;a href="http://sjc1-te-ftp.trendmicro.com/assets/wp/exploring-control-flow-guard-in-windows10.pdf"&gt;http://sjc1-te-ftp.trendmicro.com/assets/wp/exploring-control-flow-guard-in-windows10.pdf&lt;/a&gt;&lt;a href="https://docs.microsoft.com/en-us/windows/threat-protection/overview-of-threat-mitigations-in-windows-10"&gt;https://docs.microsoft.com/en-us/windows/threat-protection/overview-of-threat-mitigations-in-windows-10&lt;/a&gt;&lt;a href="https://lucasg.github.io/2017/02/05/Control-Flow-Guard"&gt;https://lucasg.github.io/2017/02/05/Control-Flow-Guard&lt;/a&gt;&lt;a href="https://github.com/NetSPI/PESecurity"&gt;https://github.com/NetSPI/PESecurity&lt;/a&gt;&lt;a href="https://blog.trailofbits.com/2016/12/27/lets-talk-about-cfi-microsoft-edition"&gt;https://blog.trailofbits.com/2016/12/27/lets-talk-about-cfi-microsoft-edition&lt;/a&gt;&lt;a href="https://blogs.technet.microsoft.com/askpfeplat/2017/04/24/windows-10-memory-protection-features"&gt;https://blogs.technet.microsoft.com/askpfeplat/2017/04/24/windows-10-memory-protection-features&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Creating and Managing Azure Storage Tables with PowerShell</title><link>https://www.verboon.info/2017/07/creating-and-managing-azure-storage-tables-with-powershell/</link><pubDate>Sat, 01 Jul 2017 23:36:39 +0000</pubDate><guid>https://www.verboon.info/2017/07/creating-and-managing-azure-storage-tables-with-powershell/</guid><description>&lt;p&gt;Today’s mission was to get more familiar with Azure Storage Tables and to manage them with PowerShell. On GitHub I found the &lt;a href="https://github.com/tyconsulting/AzureTableEntity-PowerShell-Module"&gt;AzureTableEntity module&lt;/a&gt; from Tao Yang. Below are a number of code snippets I used to get my hands dirty with Azure Storage tables and the module.&lt;/p&gt;
&lt;p&gt;Install the Module&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Install-Module -Name AzureTableEntity
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Next we create an Azure Resource Group and an Azure Storage Account&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Create ResourceGroup&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$Location&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;Westeurope&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_ResourceGroup&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;rg_CompComputerInventory&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;New-AzureRmResourceGroup&lt;/span&gt; -Name &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_ResourceGroup&lt;/span&gt; -Location &lt;span style="color:#8be9fd;font-style:italic"&gt;$Location&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Create StorageAccount&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$SkuName&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;Standard_LRS&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_StorageAccountName&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;sacomputerinventory&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;New-AzureRmStorageAccount&lt;/span&gt; -ResourceGroupName &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_ResourceGroup&lt;/span&gt; -Name &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_StorageAccountName&lt;/span&gt; -SkuName &lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$SkuName&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt; -Location &lt;span style="color:#8be9fd;font-style:italic"&gt;$Location&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;We will need the Storage Account key later so let’s get that one as well.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Retrieve the first StorageAccountAccessKey&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$StorageAccount&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-AzureRmStorageAccount&lt;/span&gt; -ResourceGroupName &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_ResourceGroup&lt;/span&gt; -Name &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_StorageAccountName&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$StorageAccountAccessKey&lt;/span&gt; = (&lt;span style="color:#8be9fd;font-style:italic"&gt;Get-AzureRmStorageAccountKey&lt;/span&gt; -ResourceGroupName &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_ResourceGroup&lt;/span&gt; -Name &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_StorageAccountName&lt;/span&gt;).Value[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Next we create a new Table with the name “Computerinventory”
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#Create Table&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$TableName&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;ComputerInventory&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$context&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;New-AzureStorageContext&lt;/span&gt; -StorageAccountName &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_StorageAccountName&lt;/span&gt; -StorageAccountKey &lt;span style="color:#8be9fd;font-style:italic"&gt;$StorageAccountAccessKey&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;New-AzureStorageTable&lt;/span&gt; -Name &lt;span style="color:#8be9fd;font-style:italic"&gt;$TableName&lt;/span&gt; -Context &lt;span style="color:#8be9fd;font-style:italic"&gt;$context&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Now that we have the table created, we can &lt;span style="color:#8be9fd;font-style:italic"&gt;start &lt;/span&gt;adding data to it, let’s &lt;span style="color:#8be9fd;font-style:italic"&gt;start &lt;/span&gt;with adding just one row first.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Add one entry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;     &lt;span style="color:#8be9fd;font-style:italic"&gt;$data&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;@&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;     RowKey = ([guid]::NewGuid().tostring())
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;     PartitionKey = &lt;span style="color:#f1fa8c"&gt;&amp;#34;Inventory&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;     ComputerName = &lt;span style="color:#f1fa8c"&gt;&amp;#34;Computer000001&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;     Location = &lt;span style="color:#f1fa8c"&gt;&amp;#34;Amsterdam&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;     dtDate = [datetime]::UtcNow
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;     }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;New-AzureTableEntity&lt;/span&gt; -StorageAccountName &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_StorageAccountName&lt;/span&gt; -StorageAccountAccessKey &lt;span style="color:#8be9fd;font-style:italic"&gt;$StorageAccountAccessKey&lt;/span&gt; -TableName &lt;span style="color:#8be9fd;font-style:italic"&gt;$TableName&lt;/span&gt; -Verbose -Entities &lt;span style="color:#8be9fd;font-style:italic"&gt;$data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Let’s take a look what’s &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; the table now
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$querystring&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;(PartitionKey eq &amp;#39;Inventory&amp;#39;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-AzureTableEntity&lt;/span&gt; -TableName &lt;span style="color:#8be9fd;font-style:italic"&gt;$tableName&lt;/span&gt; -StorageAccountName &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_StorageAccountName&lt;/span&gt; -StorageAccountAccessKey &lt;span style="color:#8be9fd;font-style:italic"&gt;$StorageAccountAccessKey&lt;/span&gt;  -QueryString &lt;span style="color:#8be9fd;font-style:italic"&gt;$querystring&lt;/span&gt; -ConvertDateTimeFields &lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt; -GetAll &lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt; -Verbose
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;![image](images/image_thumb.png)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Next let’s add some more data to it, the below code creates some random computer inventory data.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Generate some demo data for PC inventory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;   &lt;span style="color:#8be9fd;font-style:italic"&gt;$locations&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;@&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;Amsterdam&amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;Paris&amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;Stockholm&amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;London&amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;New York&amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;Seatle&amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;Singapure&amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;Hong Kong&amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;The Hague&amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;Barcelona&amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;Madrid&amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;Stockholm&amp;#34;&lt;/span&gt;,&lt;span style="color:#f1fa8c"&gt;&amp;#34;Rome&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;     &lt;span style="color:#8be9fd;font-style:italic"&gt;$data&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;@&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;     &lt;span style="color:#8be9fd;font-style:italic"&gt;$count&lt;/span&gt; = &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;      &lt;span style="color:#ff79c6"&gt;While&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$count&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-le&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;100&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;         &lt;span style="color:#8be9fd;font-style:italic"&gt;$obj&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;@&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;             RowKey = ([guid]::NewGuid().tostring())
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;             PartitionKey = &lt;span style="color:#f1fa8c"&gt;&amp;#34;Inventory&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;             ComputerName = &lt;span style="color:#f1fa8c"&gt;&amp;#34;Computer&amp;#34;&lt;/span&gt; + &lt;span style="color:#8be9fd;font-style:italic"&gt;$count&lt;/span&gt;.ToString(&lt;span style="color:#f1fa8c"&gt;&amp;#34;000000&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;             Location = (&lt;span style="color:#8be9fd;font-style:italic"&gt;$locations&lt;/span&gt;)[(&lt;span style="color:#8be9fd;font-style:italic"&gt;Get-Random&lt;/span&gt; -Minimum &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt; -Maximum &lt;span style="color:#8be9fd;font-style:italic"&gt;$locations&lt;/span&gt;.Count )]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;             dtDate = [datetime]::UtcNow
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;         }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;         &lt;span style="color:#8be9fd;font-style:italic"&gt;$data&lt;/span&gt; += (&lt;span style="color:#8be9fd;font-style:italic"&gt;New-Object&lt;/span&gt; -TypeName PSCustomObject -Property &lt;span style="color:#8be9fd;font-style:italic"&gt;$obj&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;         &lt;span style="color:#8be9fd;font-style:italic"&gt;$count&lt;/span&gt;++
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;     }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Add rows to Azure Storage Table&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;New-AzureTableEntity&lt;/span&gt; -StorageAccountName &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_StorageAccountName&lt;/span&gt; -StorageAccountAccessKey &lt;span style="color:#8be9fd;font-style:italic"&gt;$StorageAccountAccessKey&lt;/span&gt; -TableName &lt;span style="color:#8be9fd;font-style:italic"&gt;$TableName&lt;/span&gt; -Verbose -Entities &lt;span style="color:#8be9fd;font-style:italic"&gt;$data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;If&lt;/span&gt; all went fine, we should now have all the data &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; the table.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$querystring&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;(PartitionKey eq &amp;#39;Inventory&amp;#39;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-AzureTableEntity&lt;/span&gt; -TableName &lt;span style="color:#8be9fd;font-style:italic"&gt;$tableName&lt;/span&gt; -StorageAccountName &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_StorageAccountName&lt;/span&gt; -StorageAccountAccessKey &lt;span style="color:#8be9fd;font-style:italic"&gt;$StorageAccountAccessKey&lt;/span&gt;  -QueryString &lt;span style="color:#8be9fd;font-style:italic"&gt;$querystring&lt;/span&gt; -ConvertDateTimeFields &lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt; -GetAll &lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt; -Verbose
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt;.Count
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Group-Object&lt;/span&gt; Location
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;We now have &lt;span style="color:#bd93f9"&gt;100&lt;/span&gt; records &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; the table, with “**&lt;span style="color:#bd93f9"&gt;11&lt;/span&gt;**” computers located &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; Amsterdam
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;![image](images/image_thumb-&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;.png)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Now let’s look at Computer000001
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$querystring&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;(ComputerName eq &amp;#39;Computer000001&amp;#39;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-AzureTableEntity&lt;/span&gt; -TableName &lt;span style="color:#8be9fd;font-style:italic"&gt;$tableName&lt;/span&gt; -StorageAccountName &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_StorageAccountName&lt;/span&gt; -StorageAccountAccessKey &lt;span style="color:#8be9fd;font-style:italic"&gt;$StorageAccountAccessKey&lt;/span&gt;  -QueryString &lt;span style="color:#8be9fd;font-style:italic"&gt;$querystring&lt;/span&gt; -ConvertDateTimeFields &lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt; -GetAll &lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt; -Verbose
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;![image](images/image_thumb-&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;.png)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;It’s located &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; Amsterdam. Now let’s have a look at how to update a record, let’s say we want to change it to “Rotterdam”
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$NewLoczation&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;Rotterdam&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$data&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;@&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PartitionKey = &lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt;.PartitionKey
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;RowKey       = &lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt;.RowKey
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Location = &lt;span style="color:#8be9fd;font-style:italic"&gt;$NewLoczation&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ComputerName = &lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt;.ComputerName
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dtDate = &lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt;.dtDate
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;Update-AzureTableEntity&lt;/span&gt; -StorageAccountName &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_StorageAccountName&lt;/span&gt; -StorageAccountAccessKey &lt;span style="color:#8be9fd;font-style:italic"&gt;$StorageAccountAccessKey&lt;/span&gt; -TableName &lt;span style="color:#8be9fd;font-style:italic"&gt;$TableName&lt;/span&gt; -Entities &lt;span style="color:#8be9fd;font-style:italic"&gt;$data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Let&lt;span style="color:#f1fa8c"&gt;&amp;#39;s retrieve the record again.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$querystring = &amp;#34;(ComputerName eq &amp;#39;&lt;/span&gt;Computer000001&lt;span style="color:#f1fa8c"&gt;&amp;#39;)&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$result = Get-AzureTableEntity -TableName $tableName -StorageAccountName $ComputerInventory_StorageAccountName -StorageAccountAccessKey $StorageAccountAccessKey  -QueryString $querystring -ConvertDateTimeFields $true -GetAll $true -Verbose
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;$result
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;and there we go, it&amp;#39;&lt;/span&gt;s now registered &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; Rotterdam.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;![image](images/image_thumb-&lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;.png)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Let’s query the entire database again.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$querystring&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;(PartitionKey eq &amp;#39;Inventory&amp;#39;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-AzureTableEntity&lt;/span&gt; -TableName &lt;span style="color:#8be9fd;font-style:italic"&gt;$tableName&lt;/span&gt; -StorageAccountName &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_StorageAccountName&lt;/span&gt; -StorageAccountAccessKey &lt;span style="color:#8be9fd;font-style:italic"&gt;$StorageAccountAccessKey&lt;/span&gt;  -QueryString &lt;span style="color:#8be9fd;font-style:italic"&gt;$querystring&lt;/span&gt; -ConvertDateTimeFields &lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt; -GetAll &lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt; -Verbose
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt;.Count
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Group-Object&lt;/span&gt; Location
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;![image](images/image_thumb-&lt;span style="color:#bd93f9"&gt;4&lt;/span&gt;.png)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;and &lt;span style="color:#ff79c6"&gt;finally&lt;/span&gt;, let’s remove the Computer000001
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;I query the information again, as i will &lt;span style="color:#8be9fd;font-style:italic"&gt;re-use&lt;/span&gt; the &lt;span style="color:#ff79c6"&gt;return&lt;/span&gt; values to build the remove properties.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$querystring&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;(ComputerName eq &amp;#39;Computer000001&amp;#39;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-AzureTableEntity&lt;/span&gt; -TableName &lt;span style="color:#8be9fd;font-style:italic"&gt;$tableName&lt;/span&gt; -StorageAccountName &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_StorageAccountName&lt;/span&gt; -StorageAccountAccessKey &lt;span style="color:#8be9fd;font-style:italic"&gt;$StorageAccountAccessKey&lt;/span&gt;  -QueryString &lt;span style="color:#8be9fd;font-style:italic"&gt;$querystring&lt;/span&gt; -ConvertDateTimeFields &lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt; -GetAll &lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt; -Verbose
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$Remove&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;@&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PartitionKey = &lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt;.PartitionKey
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;RowKey = &lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt;.RowKey
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Computername = &lt;span style="color:#8be9fd;font-style:italic"&gt;$result&lt;/span&gt;.ComputerName
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;Remove-AzureTableEntity&lt;/span&gt; -StorageAccountName &lt;span style="color:#8be9fd;font-style:italic"&gt;$ComputerInventory_StorageAccountName&lt;/span&gt; -StorageAccountAccessKey &lt;span style="color:#8be9fd;font-style:italic"&gt;$StorageAccountAccessKey&lt;/span&gt; -TableName &lt;span style="color:#8be9fd;font-style:italic"&gt;$TableName&lt;/span&gt; -Entities &lt;span style="color:#8be9fd;font-style:italic"&gt;$Remove&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;</description></item><item><title>ConfigMgr Client Policy Settings - Get-CMclientpolicysettings</title><link>https://www.verboon.info/2017/03/configmgr-client-policy-settings-get-cmclientpolicysettings/</link><pubDate>Sat, 04 Mar 2017 13:04:23 +0000</pubDate><guid>https://www.verboon.info/2017/03/configmgr-client-policy-settings-get-cmclientpolicysettings/</guid><description>&lt;p&gt;Here’s a function i wrote recently to retrieve the ConfigMgr Client Policy settings. To use the function you must have the &lt;a href="https://www.microsoft.com/en-us/download/details.aspx?id=46681"&gt;System Center Configuration Manager Cmdlet library&lt;/a&gt; installed.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Retrieve Azure Virtual Machine Size information with PowerShell</title><link>https://www.verboon.info/2017/02/retrieve-azure-virtual-machine-size-information-with-powershell/</link><pubDate>Tue, 07 Feb 2017 19:46:07 +0000</pubDate><guid>https://www.verboon.info/2017/02/retrieve-azure-virtual-machine-size-information-with-powershell/</guid><description>&lt;p&gt;One important topic to consider when deploying virtual machines in Azure is the &lt;a href="https://azure.microsoft.com/en-us/pricing/details/cloud-services/"&gt;size&lt;/a&gt; of the virtual machine as this affects the pricing, but beware that not only virtual machine sizing has a pricing impact other factors like &lt;a href="https://azure.microsoft.com/en-us/pricing/details/storage/disks/"&gt;storage&lt;/a&gt; and optional features like &lt;a href="https://azure.microsoft.com/en-in/pricing/details/ip-addresses/"&gt;IP address options&lt;/a&gt; add to the costs as well.&lt;/p&gt;
&lt;p&gt;A good starting point to get an understanding of virtual machine costs is the Azure pricing calculator: &lt;a href="https://azure.microsoft.com/en-in/pricing/calculator/"&gt;https://azure.microsoft.com/en-in/pricing/calculator/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
 &lt;img src="https://i1.wp.com/www.verboon.info/wp-content/uploads/Retrieve-Azure-Virtual-Machine-Size-info_11B7A/image.png" alt="image"&gt;

&lt;/p&gt;
&lt;p&gt;Be aware that when selecting SSD disks, storage costs will be noticeable higher than when using HDD disks. To get a better understanding of the available Azure virtual machine sizes I strongly recommend to the read the following documentation:&lt;/p&gt;</description></item><item><title>Download and Install the Windows Assessment and Deployment Kit with PowerShell</title><link>https://www.verboon.info/2017/02/download-and-install-the-windows-assessment-and-deployment-kit-with-powershell/</link><pubDate>Tue, 07 Feb 2017 16:22:42 +0000</pubDate><guid>https://www.verboon.info/2017/02/download-and-install-the-windows-assessment-and-deployment-kit-with-powershell/</guid><description>&lt;p&gt;Back in June 2012 I posted the &lt;a href="https://www.verboon.info/2012/06/automated-download-and-installation-for-the-windows-assessment-and-deployment-kit-adk/"&gt;Automated download and Installation for the Windows Assessment and Deployment kit&lt;/a&gt; article. Not a lot has changed since then,i.e. you still need to first download the sources before you can install them. Nevertheless since using batch scripts isn’t really state of the art anymore these days,I decided to rewrite the script in PowerShell.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Downlload source from &lt;a href="https://github.com/alexverboon/posh/blob/master/Windows10/ADKSetup/Setup-ADK.ps1"&gt;GitHub&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Select-MyAzureRmSubscription</title><link>https://www.verboon.info/2017/02/select-myazurermsubscription/</link><pubDate>Tue, 07 Feb 2017 15:08:07 +0000</pubDate><guid>https://www.verboon.info/2017/02/select-myazurermsubscription/</guid><description>&lt;p&gt;I have multiple Azure subscriptions linked to my account, so anytime I connect to Azure in PowerShell I have to make sure i am working in the right context. To simplify this I wrote a little helper function called Select-MyAzureRmSubscription.&lt;/p&gt;
&lt;p&gt;
 &lt;img src="https://i1.wp.com/www.verboon.info/wp-content/uploads/Select-MyAzureSubscription_DD91/image.png" alt="image"&gt;

&lt;/p&gt;
&lt;p&gt;After entering the -SubscriptionName parameter the script enumerates alll the subscriptions I have access to and generates a dynamic parameter option.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Script location on GitHub: &lt;a href="https://github.com/alexverboon/posh/blob/master/Azure/Utilities/select-MyAzureRmSubscription.ps1"&gt;https://github.com/alexverboon/posh/blob/master/Azure/Utilities/select-MyAzureRmSubscription.ps1&lt;/a&gt;&lt;/p&gt;</description></item><item><title>PowerShell Script - Get-MsolUserInformation</title><link>https://www.verboon.info/2016/12/powershell-script-get-msoluserinformation/</link><pubDate>Sun, 18 Dec 2016 18:27:57 +0000</pubDate><guid>https://www.verboon.info/2016/12/powershell-script-get-msoluserinformation/</guid><description>&lt;p&gt;The Get-MsolUserInformation cmdlet provides an easy way to retrieve all users that are a member or guest and/or are registered in Azure Directory or Active Directory.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>PowerShell Script - Get-WinBuildInfo</title><link>https://www.verboon.info/2016/11/powershell-script-get-winbuildinfo/</link><pubDate>Sat, 12 Nov 2016 16:19:36 +0000</pubDate><guid>https://www.verboon.info/2016/11/powershell-script-get-winbuildinfo/</guid><description>&lt;p&gt;Here’s a script I wrote that retrieves all the Windows 10 build information, including Insider level when enabled.&lt;/p&gt;
&lt;p&gt;
 &lt;img src="images/ss1_thumb.png" alt="ss1"&gt;

&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And here’s a list of sites that provide information about the builds, releases, version numbers etc.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://changewindows.org/platform/desktop"&gt;http://changewindows.org/platform/desktop&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://buildfeed.net/"&gt;https://buildfeed.net/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://technet.microsoft.com/en-us/windows/release-info.aspx"&gt;https://technet.microsoft.com/en-us/windows/release-info.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://support.microsoft.com/en-us/help/12387/windows-10-update-history?ocid=client_wu"&gt;https://support.microsoft.com/en-us/help/12387/windows-10-update-history?ocid=client_wu&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Windows 10 Upgrade Analytics &amp;ndash; Notes and PowerShell snippets</title><link>https://www.verboon.info/2016/10/windows-10-upgrade-analytics-notes-and-powershell-snippets/</link><pubDate>Mon, 03 Oct 2016 22:55:04 +0000</pubDate><guid>https://www.verboon.info/2016/10/windows-10-upgrade-analytics-notes-and-powershell-snippets/</guid><description>&lt;p&gt;I am considering using the Windows 10 upgrade analytics for our Windows 10 project that we’ve just started just recently. Below you find some random notes and references I have gathered during my exploration journey.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Upgrade Analytics Blog&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Here is where you find the latest information from the Upgrade Analytics team: &lt;a href="https://blogs.technet.microsoft.com/upgradeanalytics/"&gt;https://blogs.technet.microsoft.com/upgradeanalytics/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Upgrade Analytics on TechNet&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Information about the Architecture, deployment techniques, prerequisites and more can be found here: &lt;a href="https://technet.microsoft.com/en-us/itpro/windows/deploy/manage-windows-upgrades-with-upgrade-analytics"&gt;https://technet.microsoft.com/en-us/itpro/windows/deploy/manage-windows-upgrades-with-upgrade-analytics&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you have concerns about data privacy, this document describes in detail what data is being collected and send to Microsoft &lt;a href="https://go.microsoft.com/fwlink/?LinkID=822965"&gt;Windows 7, Windows 8, and Windows 8.1 appraiser telemetry events and fields&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Clean up unused Azure Resources with PowerShell</title><link>https://www.verboon.info/2016/10/clean-up-unused-azure-resources-with-powershell/</link><pubDate>Sun, 02 Oct 2016 00:25:26 +0000</pubDate><guid>https://www.verboon.info/2016/10/clean-up-unused-azure-resources-with-powershell/</guid><description>&lt;p&gt;Today when I opened my Azure portal I had a little surprise. The monthly MSDN subscription credit was much lower as I expected it to be. Did I eventually forget to turn off a virtual machine? Curious to find out where the cost had come from, I drilled into the subscription details and noticed that the higher costs had come from the Premium storage that I had used recently to deploy a virtual machine using an SSD disk  instead of a HDD disk. But still it wasn’t clear why just that one virtual machine would be that expensive, so i drilled into the premier storage account and noticed that there were several orphaned VHD disks there. A clean up was required.&lt;/p&gt;</description></item><item><title>PowerShell script to run the Windows App Certification Kit</title><link>https://www.verboon.info/2016/09/powershell-script-to-run-the-windows-app-certification-kit/</link><pubDate>Sat, 24 Sep 2016 19:18:21 +0000</pubDate><guid>https://www.verboon.info/2016/09/powershell-script-to-run-the-windows-app-certification-kit/</guid><description>&lt;p&gt;The Windows App Certification Kit is an easy to use tool to check whether an application has potential compatibility issues when running on Windows 10.  The tool can be executed in GUI mode and in command line mode. I wrote a PowerShell script that runs the Windows App Certification Kit in a more or less automated way.&lt;/p&gt;
&lt;p&gt;I say more or less, because the application installation process of the application itself might still prompt for input. Also the final report generation of the App Cert Tool itself requires manual interaction that i was unable to suppress. , Nevertheless I hope you find the script useful and saves you a bit of time when testing applications.&lt;/p&gt;</description></item><item><title>PowerShell Script - Get-IscMSSecBulletinInfo</title><link>https://www.verboon.info/2016/04/powershell-script-get-iscmssecbulletininfo/</link><pubDate>Wed, 06 Apr 2016 22:03:52 +0000</pubDate><guid>https://www.verboon.info/2016/04/powershell-script-get-iscmssecbulletininfo/</guid><description>&lt;p&gt;Hey there, the &lt;a href="https://isc.sans.edu/about.html"&gt;Internet Storm Center&lt;/a&gt; recently extended their Rest API with some &lt;a href="https://isc.sans.edu/forums/diary/New+Features+for+Microsoft+Patch+Data/20911/"&gt;features for Microsoft Patch Data&lt;/a&gt;. So where there is a REST API, there’s an opportunity for a PowerShell Script.  The Get-IscMSSecBulletinInfo can be found here: &lt;a href="https://github.com/alexverboon/posh/blob/master/Security/Get-IscMSSecBulletinInfo.ps1"&gt;https://github.com/alexverboon/posh/blob/master/Security/Get-IscMSSecBulletinInfo.ps1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
 &lt;img src="images/image_thumb.png" alt="image"&gt;

&lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;
&lt;p&gt;/Alex&lt;/p&gt;</description></item><item><title>The System Center Configuration Manager Cmdlet Library</title><link>https://www.verboon.info/2015/06/the-system-center-configuration-manager-cmdlet-library/</link><pubDate>Wed, 17 Jun 2015 18:21:01 +0000</pubDate><guid>https://www.verboon.info/2015/06/the-system-center-configuration-manager-cmdlet-library/</guid><description>&lt;p&gt;Hey there, usually when I post something I try to post something new, something that ideally hasn’t been posted before. Today, I’ll make an exception.  This becasue when recently speaking to others dealing with ConfigMgr I noticed that not everyone is aware yet that back in April the ConfigMgr team &lt;a href="http://blogs.technet.com/b/configmgrteam/archive/2015/04/17/now-available-microsoft-system-center-configuration-manager-cmdlet-library.aspx"&gt;released&lt;/a&gt; the &lt;strong&gt;System Center Configuation Manager CmdLet Library&lt;/strong&gt;. So i believe it’s worth to spread the word again.&lt;/p&gt;
&lt;p&gt;So here we go:&lt;/p&gt;</description></item><item><title>Group Policy Settings in Windows 10 Build 10.0.10130</title><link>https://www.verboon.info/2015/06/group-policy-settings-in-windows-10-build-10-0-10130/</link><pubDate>Fri, 05 Jun 2015 12:25:54 +0000</pubDate><guid>https://www.verboon.info/2015/06/group-policy-settings-in-windows-10-build-10-0-10130/</guid><description>&lt;p&gt;Windows 10 build 10.0.10130 brought a couple more new Group Policy settings, here they are:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; **Location** **Setting** **Description** Computer Configuration 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Administrative Templates &lt;br&gt;
Windows Components &lt;br&gt;
Windows Update Defer Upgrade If you enable this policy setting, in Pro and Enterprise SKUs you can defer upgrades till the next upgrade period (at least a few months). &lt;br&gt;
     
If you do not have it set you will receive upgrades once they are available that will be installed as part of your update policies.&lt;/p&gt;</description></item><item><title>How to solve &amp;ldquo;The RPC server is unavailable&amp;rdquo; when loading the ConfigMgr PowerShell Module</title><link>https://www.verboon.info/2014/10/how-to-solve-the-rpc-server-is-unavailable-when-loading-the-configmgr-powershell-module/</link><pubDate>Wed, 29 Oct 2014 17:03:43 +0000</pubDate><guid>https://www.verboon.info/2014/10/how-to-solve-the-rpc-server-is-unavailable-when-loading-the-configmgr-powershell-module/</guid><description>&lt;p&gt;Since a few weeks, I received the below error message when importing the ConfigMgr module in PowerShell, but everything I ran afterwards worked fine, so I kept ignoring it for a while. &lt;a href="images/image4.png"&gt;

 &lt;img src="images/image_thumb4.png" alt="image"&gt;


&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But now it was about time to get rid of this annoying message. My friend Claude Henchoz gave me a hint a while ago that helped me solve the issue. Looking at the error message more closely, I noticed the name of our old meanwhile decommissioned POC environment for ConfigMgr 2012 R2.&lt;/p&gt;</description></item><item><title>Use PowerShell to find all collections where the specified device has a membership</title><link>https://www.verboon.info/2014/10/use-powershell-to-find-all-collections-where-the-specified-device-has-a-membership/</link><pubDate>Tue, 14 Oct 2014 18:44:28 +0000</pubDate><guid>https://www.verboon.info/2014/10/use-powershell-to-find-all-collections-where-the-specified-device-has-a-membership/</guid><description>&lt;p&gt;Yesterday I deployed a computer with ConfigMgr and then wondered why it got certain software installed. And so another script was born.&lt;/p&gt;
&lt;p&gt;The Get-CMCollectionOfDevice command retrieves all collections where the specified device has a membership&lt;/p&gt;
&lt;p&gt;
 &lt;img src="images/image_thumb1.png" alt="image"&gt;

&lt;/p&gt;
&lt;p&gt;The Script can be downloaded from &lt;a href="https://gallery.technet.microsoft.com/Get-CMCollectionOfDevice-13a130b3"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;&amp;lt;#
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;SYNOPSIS&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Get-CMCollectionOfDevice retrieves all collections where the specified device has a membership
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;DESCRIPTION&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; The Get-CMCollectionOfDevice retrieves all collections where the specified device has a membership
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.PARAMETER Computer
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; The name of the computer device
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Example: Client01
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.PARAMETER SiteCode
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; The Configuration Manager Site Code
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Example: PRI
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.PARAMETER SiteServer
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; The computer name of the Configuration Manager Site Server
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Example: Contoso-01
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;EXAMPLE&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Get-CMCollectionOfDevice -Computer Client01
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; CollectionID Name Commnent LastRefreshTime 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; ------------ ---- -------- --------------- 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; SMS00001 All Systems All Systems 14.10.2014 14:25:57 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; SMSDM003 All Desktop and Server Cli... All Desktop and Server Cli... 14.10.2014 14:30:02 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; PR100011 ALL Contoso Workstation Lim. Limiting collection used f... 14.10.2014 16:37:53 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; PR100014 Zurich Location Zuerich 14.10.2014 14:45:53 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; The above command lists all collections where computer Client01 is a member of. The default
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; parameter values for SiteCode and SiteServer defined in the script are used. 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;EXAMPLE&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Get-CMCollectionOfDevice -Computer Client01 -SiteCode PRI -SiteServer Contoso-01
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; The above command lists all collections where computer Client01 is a member of within the
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Configuration Manager site PRI connecting to Site Server Contoso-01
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;NOTES&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Version 1.0 , Alex Verboon
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Credits to Kaido Järvemets and David O&amp;#39;Brien for the code snippets
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;function&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-CMCollectionOfDevice&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#8be9fd;font-style:italic"&gt;CmdletBinding&lt;/span&gt;()]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [OutputType([int])]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;Param&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# Computername&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#8be9fd;font-style:italic"&gt;Parameter&lt;/span&gt;(&lt;span style="color:#50fa7b"&gt;Mandatory&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;ValueFromPipelineByPropertyName&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;Position&lt;/span&gt;=&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;)]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [String]&lt;span style="color:#8be9fd;font-style:italic"&gt;$Computer&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# ConfigMgr SiteCode&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#8be9fd;font-style:italic"&gt;Parameter&lt;/span&gt;(&lt;span style="color:#50fa7b"&gt;Mandatory&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$false&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;ValueFromPipelineByPropertyName&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;Position&lt;/span&gt;=&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;)]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [String]&lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteCode&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;PRI&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# ConfigMgr SiteServer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#8be9fd;font-style:italic"&gt;Parameter&lt;/span&gt;(&lt;span style="color:#50fa7b"&gt;Mandatory&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$false&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;ValueFromPipelineByPropertyName&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;Position&lt;/span&gt;=&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;)]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [String]&lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteServer&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;contoso-01.corp.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; )
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;Begin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [string] &lt;span style="color:#8be9fd;font-style:italic"&gt;$Namespace&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;root\SMS\site_&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteCode&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;Process&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$si&lt;/span&gt;=&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Write-Progress&lt;/span&gt; -Activity &lt;span style="color:#f1fa8c"&gt;&amp;#34;Retrieving ResourceID for computer &lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$computer&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt; -Status &lt;span style="color:#f1fa8c"&gt;&amp;#34;Retrieving data&amp;#34;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$ResIDQuery&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-WmiObject&lt;/span&gt; -ComputerName &lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteServer&lt;/span&gt; -Namespace &lt;span style="color:#8be9fd;font-style:italic"&gt;$Namespace&lt;/span&gt; -Class &lt;span style="color:#f1fa8c"&gt;&amp;#34;SMS_R_SYSTEM&amp;#34;&lt;/span&gt; -Filter &lt;span style="color:#f1fa8c"&gt;&amp;#34;Name=&amp;#39;&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$Computer&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;If&lt;/span&gt; ([string]::IsNullOrEmpty(&lt;span style="color:#8be9fd;font-style:italic"&gt;$ResIDQuery&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Write-Output&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;System &lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$Computer&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; does not exist in Site &lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteCode&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;Else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$Collections&lt;/span&gt; = (&lt;span style="color:#8be9fd;font-style:italic"&gt;Get-WmiObject&lt;/span&gt; -ComputerName &lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteServer&lt;/span&gt; -Class sms_fullcollectionmembership -Namespace &lt;span style="color:#8be9fd;font-style:italic"&gt;$Namespace&lt;/span&gt; -Filter &lt;span style="color:#f1fa8c"&gt;&amp;#34;ResourceID = &amp;#39;&lt;/span&gt;$(&lt;span style="color:#8be9fd;font-style:italic"&gt;$ResIDQuery&lt;/span&gt;.ResourceId)&lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$colcount&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$Collections&lt;/span&gt;.Count
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$devicecollections&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;@&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;ForEach&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$res&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$collections&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$colid&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$res&lt;/span&gt;.CollectionID
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Write-Progress&lt;/span&gt; -Activity &lt;span style="color:#f1fa8c"&gt;&amp;#34;Processing &lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$si&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; / &lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$colcount&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt; -Status &lt;span style="color:#f1fa8c"&gt;&amp;#34;Retrieving Collection data&amp;#34;&lt;/span&gt; -PercentComplete ((&lt;span style="color:#8be9fd;font-style:italic"&gt;$si&lt;/span&gt; / &lt;span style="color:#8be9fd;font-style:italic"&gt;$colcount&lt;/span&gt;) * &lt;span style="color:#bd93f9"&gt;100&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$collectioninfo&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-WmiObject&lt;/span&gt; -ComputerName &lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteServer&lt;/span&gt; -Namespace &lt;span style="color:#8be9fd;font-style:italic"&gt;$Namespace&lt;/span&gt; -Class &lt;span style="color:#f1fa8c"&gt;&amp;#34;SMS_Collection&amp;#34;&lt;/span&gt; -Filter &lt;span style="color:#f1fa8c"&gt;&amp;#34;CollectionID=&amp;#39;&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$colid&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;New-Object&lt;/span&gt; -TypeName PSObject
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;CollectionID&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$collectioninfo&lt;/span&gt;.CollectionID
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Name&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$collectioninfo&lt;/span&gt;.Name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Commnent&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$collectioninfo&lt;/span&gt;.Comment
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;LastRefreshTime&amp;#34;&lt;/span&gt; -Value ([Management.ManagementDateTimeConverter]::ToDateTime(&lt;span style="color:#8be9fd;font-style:italic"&gt;$collectioninfo&lt;/span&gt;.LastRefreshTime))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$devicecollections&lt;/span&gt; += &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$si&lt;/span&gt;++
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;} &lt;span style="color:#6272a4"&gt;# end check system exists&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;End&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$devicecollections&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>PowerShell Script - Get-CMInstalledSoftware</title><link>https://www.verboon.info/2014/08/powershell-script-get-cminstalledsoftware/</link><pubDate>Fri, 08 Aug 2014 19:23:05 +0000</pubDate><guid>https://www.verboon.info/2014/08/powershell-script-get-cminstalledsoftware/</guid><description>&lt;p&gt;ConfigMgr 2012 comes with a lot of build-in reports, but often it just does not contain all the information I want. Creating a custom report takes more time than just writing a script.&lt;/p&gt;
&lt;p&gt;The Get-CMInstalledSoftware script retrieves all computers that have the specified software installed. Like it? Get your copy of the script from &lt;a href="http://gallery.technet.microsoft.com/scriptcenter/Get-CMInstalledSoftware-97daddd8"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;&amp;lt;#
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;Synopsis&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Get all computers that have the specified software installed
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;DESCRIPTION&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Get-CMInstalledSoftware retrieves all computers where the specified software is installed on. 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; The function queries SMS_G_System_INSTALLED_SOFTWARE which contains both 32 and 64 bit software
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; installations.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; The following information is collected
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Computername,OperatingSystemNameandVersion InstallDate, InstalledLocation, Productname, ProductVersion
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Publisher, UninstallString
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;EXAMPLE&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Get-CMInstalledSoftware -ProductName &amp;#34;Client Center for Configuration Manager%&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Computername : Client01
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; OperatingSystemNameandVersion : Microsoft Windows NT Workstation 6.1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Productname : Client Center for Configuration Manager 2012
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; ProductVersion : 1.0.1.0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Publisher : Zander Tools
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; InstallDate : Friday, 1. August 2014 00:00:00
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; InstalledLocation : C:\Program Files\Client Center for Configuration Manager 2012\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; UninstallString : MsiExec.exe /X{B299EE26-A664-42A2-8D4E-6BF005EB5E75}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.PARAMETER -ProductName
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; The Name of the Software. Use % before or after the productname as a wildcard. 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;Function&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-CMInstalledSoftware&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#8be9fd;font-style:italic"&gt;CmdletBinding&lt;/span&gt;()]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [OutputType([int])]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;Param&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# Software Product Name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#8be9fd;font-style:italic"&gt;Parameter&lt;/span&gt;(&lt;span style="color:#50fa7b"&gt;Mandatory&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;ValueFromPipelineByPropertyName&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;Position&lt;/span&gt;=&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;)]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$ProductName&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#8be9fd;font-style:italic"&gt;Parameter&lt;/span&gt;(&lt;span style="color:#50fa7b"&gt;Mandatory&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$false&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;ValueFromPipelineByPropertyName&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;Position&lt;/span&gt;=&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;)]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteCode&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;SR1&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#8be9fd;font-style:italic"&gt;Parameter&lt;/span&gt;(&lt;span style="color:#50fa7b"&gt;Mandatory&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$false&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;ValueFromPipelineByPropertyName&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;Position&lt;/span&gt;=&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;)]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteServer&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;chrv0300.corp.gwpnet.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; )
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;Begin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [string] &lt;span style="color:#8be9fd;font-style:italic"&gt;$Namespace&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;root\SMS\site_&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteCode&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;Process&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$arsw&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-WmiObject&lt;/span&gt; -Namespace &lt;span style="color:#8be9fd;font-style:italic"&gt;$Namespace&lt;/span&gt; -ComputerName &lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteServer&lt;/span&gt; -Query &lt;span style="color:#f1fa8c"&gt;&amp;#34;SELECT * FROM SMS_G_System_INSTALLED_SOFTWARE where ProductName like &amp;#39;&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$ProductName&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#34;&lt;/span&gt; &lt;span style="color:#6272a4"&gt;# and ProductVersion = &amp;#39;11.0.61030.0&amp;#39;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$clientswithsw&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;@&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;ForEach&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$res&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$arsw&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$CMResource&lt;/span&gt; = (&lt;span style="color:#8be9fd;font-style:italic"&gt;Get-WmiObject&lt;/span&gt; -Namespace &lt;span style="color:#8be9fd;font-style:italic"&gt;$Namespace&lt;/span&gt; -ComputerName &lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteServer&lt;/span&gt; -Query &lt;span style="color:#f1fa8c"&gt;&amp;#34;SELECT Name, ResourceID,Active, SMSUniqueIdentifier,OperatingSystemNameandVersion FROM SMS_R_SYSTEM WHERE ResourceID = &amp;#39;&lt;/span&gt;$(&lt;span style="color:#8be9fd;font-style:italic"&gt;$res&lt;/span&gt;.ResourceID)&lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;New-Object&lt;/span&gt; -TypeName PSObject
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Computername&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$cmresource&lt;/span&gt;.Name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;OperatingSystemNameandVersion&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$cmresource&lt;/span&gt;.OperatingSystemNameandVersion
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Productname&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$res&lt;/span&gt;.ProductName
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;ProductVersion&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$res&lt;/span&gt;.ProductVersion
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Publisher&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$res&lt;/span&gt;.Publisher
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;InstallDate&amp;#34;&lt;/span&gt; -Value ([Management.ManagementDateTimeConverter]::ToDateTime(&lt;span style="color:#8be9fd;font-style:italic"&gt;$res&lt;/span&gt;.InstallDate).DateTime)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;InstalledLocation&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$res&lt;/span&gt;.InstalledLocation
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;UninstallString&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$res&lt;/span&gt;.UninstallString
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$clientswithsw&lt;/span&gt; += &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;End&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$clientswithsw&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;</description></item><item><title>ConfigMgr - PowerShell Script to list Image Binary Delta Replication Setting</title><link>https://www.verboon.info/2014/05/configmgr-powershell-script-to-list-image-binary-delta-replication-setting/</link><pubDate>Sun, 18 May 2014 22:15:09 +0000</pubDate><guid>https://www.verboon.info/2014/05/configmgr-powershell-script-to-list-image-binary-delta-replication-setting/</guid><description>&lt;p&gt;Here’s a script that lists all Boot and Operating system images stored within Configuration Manager and shows whether the Binary Delta Replication Setting is enabled or not.&lt;/p&gt;
&lt;p&gt;
 &lt;img src="images/SNAGHTML3132c3_thumb.png" alt="SNAGHTML3132c3"&gt;

&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;&amp;lt;#
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;Synopsis&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; List Binary Delta Replication Setting for ConfigMgr Boot and Operating System images
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;DESCRIPTION&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; This cmdlet Lists ConfigMgr the Boot image and Operating System image Binary Delta Replication Setting
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;EXAMPLE&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;EXAMPLE&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Another example of how to use this cmdlet
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;NOTES&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; #http://msdn.microsoft.com/en-us/library/hh948196.aspx
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Version 1.0 by Alex Verboon
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;function&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-CMImgBDRSetting&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#8be9fd;font-style:italic"&gt;CmdletBinding&lt;/span&gt;()]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;Param&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# Param1 help description&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#8be9fd;font-style:italic"&gt;Parameter&lt;/span&gt;(&lt;span style="color:#50fa7b"&gt;Mandatory&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;ValueFromPipelineByPropertyName&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;Position&lt;/span&gt;=&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;)]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteCode&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#8be9fd;font-style:italic"&gt;Parameter&lt;/span&gt;(&lt;span style="color:#50fa7b"&gt;Mandatory&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;ValueFromPipelineByPropertyName&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#50fa7b"&gt;Position&lt;/span&gt;=&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;)]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteServer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; )
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;Begin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [string] &lt;span style="color:#8be9fd;font-style:italic"&gt;$Namespace&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;root\SMS\site_&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteCode&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$allImages&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-WmiObject&lt;/span&gt; -Namespace &lt;span style="color:#8be9fd;font-style:italic"&gt;$Namespace&lt;/span&gt; -ComputerName &lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteServer&lt;/span&gt; -Query &lt;span style="color:#f1fa8c"&gt;&amp;#34;SELECT Name, Description, Version,PkgFlags, PackageType FROM SMS_PackageBaseclass Where PackageType = &amp;#39;258&amp;#39; OR PackageType = &amp;#39;257&amp;#39; &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$USE_BINARY_DELTA_REP&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;0x04000000&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;Process&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$bdr_images&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;@&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;ForEach&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$img&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$allImages&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;New-Object&lt;/span&gt; -TypeName PSObject
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Name&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$img&lt;/span&gt;.Name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Version&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$img&lt;/span&gt;.Version
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Description&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$img&lt;/span&gt;.Description
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Binary_Delta_Rep&amp;#34;&lt;/span&gt; -Value (&lt;span style="color:#8be9fd;font-style:italic"&gt;$ubdr&lt;/span&gt; = &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt;(&lt;span style="color:#8be9fd;font-style:italic"&gt;$img&lt;/span&gt;.PkgFlags &lt;span style="color:#ff79c6"&gt;-band&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$USE_BINARY_DELTA_REP&lt;/span&gt;) {&lt;span style="color:#f1fa8c"&gt;&amp;#34;Enabled&amp;#34;&lt;/span&gt;} &lt;span style="color:#ff79c6"&gt;Else&lt;/span&gt; {&lt;span style="color:#f1fa8c"&gt;&amp;#34;Disabled&amp;#34;&lt;/span&gt;})
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$bdr_images&lt;/span&gt; += &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;End&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$bdr_images&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Sort-Object&lt;/span&gt; Name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>PowerShell Script - List Scheduled Tasks</title><link>https://www.verboon.info/2014/04/powershell-script-list-scheduled-tasks/</link><pubDate>Mon, 28 Apr 2014 14:43:55 +0000</pubDate><guid>https://www.verboon.info/2014/04/powershell-script-list-scheduled-tasks/</guid><description>&lt;p&gt;Here’s a simple script I put together to list the scheduled tasks including the description, status and whether the task is set to hidden or not. When deploying a new operating system I find it important to understand what scheduled tasks are enabled to run, as sometimes there might be some potential to improvie the systems performance by disabling those you feel are not needed in your environment.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$schtasks&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;@&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$st&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-ScheduledTask&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;ForEach&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$SchTask&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$st&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;New-Object&lt;/span&gt; -TypeName PSObject
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;TaskName&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$SchTask&lt;/span&gt;.TaskName
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Description&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$SchTask&lt;/span&gt;.Description
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;State&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$SchTask&lt;/span&gt;.State
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Hidden&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$SchTask&lt;/span&gt;.Settings.Hidden
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$schtasks&lt;/span&gt; += &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$schtasks&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Sort-Object&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;Hidden&amp;#34;&lt;/span&gt; -Descending | &lt;span style="color:#8be9fd;font-style:italic"&gt;Format-list&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Within the Scheduled Tasks UI, by default you will not see the contents of Tasks that are set to hidden. But this can be enabled. Open the Task Scheduler with taskschd.msc and within the View Menu select “Show Hidden Tasks”.&lt;/p&gt;</description></item><item><title>Managing Windows Defender / System Center Endpoint Security with PowerShell</title><link>https://www.verboon.info/2014/04/managing-windows-defender-system-center-endpoint-security-with-powershell/</link><pubDate>Tue, 08 Apr 2014 13:17:21 +0000</pubDate><guid>https://www.verboon.info/2014/04/managing-windows-defender-system-center-endpoint-security-with-powershell/</guid><description>&lt;p&gt;I just read a blog post from Ed Wilson (Scripting Guy) about &lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2013/10/26/weekend-scripter-use-powershell-to-configure-windows-defender-preferences.aspx"&gt;Use PowerShell to Configure Windows Defender Preferences&lt;/a&gt; and wondered if there’s more here. And yes there is. If you have a default insallation of Windows 8 and have defender enabled or work in an enterprise environment and use Configuration Manager with the  System Center Endpoint Security agent deployed on your clients then you the below listed cmdlets available.&lt;/p&gt;
&lt;h1 id="windows-defender"&gt;Windows Defender&lt;/h1&gt;
&lt;p&gt;To get a list of all available Defender cmdlets just run the following command within a powershell console&lt;/p&gt;</description></item><item><title>How to export third-party driver packages using PowerShell</title><link>https://www.verboon.info/2014/04/how-to-export-third-party-driver-packages-using-powershell/</link><pubDate>Fri, 04 Apr 2014 19:43:09 +0000</pubDate><guid>https://www.verboon.info/2014/04/how-to-export-third-party-driver-packages-using-powershell/</guid><description>&lt;p&gt;Windows 8.1 Update introduces a new cmdlet that allows you to export third-party drivers that are located within the driver store of a Windows client.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$ExpDrv&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;Export-WindowsDriver&lt;/span&gt; -Online -Destination c:\temp\3rdpartydrivers 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;The result, all drivers exported into the provided destination directory
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;![&lt;span style="color:#bd93f9"&gt;2014&lt;/span&gt;-&lt;span style="color:#bd93f9"&gt;04&lt;/span&gt;-04_21h36_47](images/&lt;span style="color:#bd93f9"&gt;2014&lt;/span&gt;-&lt;span style="color:#bd93f9"&gt;04&lt;/span&gt;-04_21h36_47_thumb.png)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Now we have a whole bunch of folders, but what drivers did we actually export?
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$ExpDrv&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Select-Object&lt;/span&gt; ClassName, ProviderName, Date, Version | &lt;span style="color:#8be9fd;font-style:italic"&gt;Sort-Object&lt;/span&gt; ClassName
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;
 &lt;img src="images/2014-04-04_21h40_00_thumb.png" alt="2014-04-04_21h40_00"&gt;

&lt;/p&gt;</description></item><item><title>PowerShell - Get latest Microsoft KB information</title><link>https://www.verboon.info/2013/12/powershell-get-latest-microsoft-kb-information/</link><pubDate>Tue, 17 Dec 2013 00:36:24 +0000</pubDate><guid>https://www.verboon.info/2013/12/powershell-get-latest-microsoft-kb-information/</guid><description>&lt;p&gt;I frequently visit kbupdate.info which is a great resource for finding latest KB updates, but still you have to manually click through the various lists. Now that I am learning PowerShell anyway, i thought i’ll give myself another task to further improve my PowerShell skills. So here we go, below you find a script that retrieves the latest KB update information for various products and displays them on screen so that I can quickly browse through them and directly launch the article of interest in Internet Explorer.&lt;/p&gt;</description></item><item><title>PowerShell - How to qukckly access the Azure Management Portal</title><link>https://www.verboon.info/2013/12/powershell-how-to-qukckly-access-the-azure-management-portal/</link><pubDate>Mon, 09 Dec 2013 23:42:33 +0000</pubDate><guid>https://www.verboon.info/2013/12/powershell-how-to-qukckly-access-the-azure-management-portal/</guid><description>&lt;p&gt;Whenever I worked with Azure, first thing i usualy did was fire a web search to get the url for the Azure Management portal. I know I could bookmark it……..it’s just that I already have way too many bookmarks. But today I discovered a nice cmdlet in PowerShell called &lt;a href="http://msdn.microsoft.com/en-us/library/dn408543.aspx#feedback"&gt;&lt;strong&gt;Show-AzurePortal&lt;/strong&gt;&lt;/a&gt;** **which gets you automatically to the right place.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Show-AzurePortal
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;
 &lt;img src="images/2013-12-10_00h38_30_thumb.png" alt="2013-12-10_00h38_30"&gt;

&lt;/p&gt;
&lt;p&gt;Note: You must install the Azure PowerShell cmdlets. &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj156055.aspx"&gt;http://msdn.microsoft.com/en-us/library/windowsazure/jj156055.aspx&lt;/a&gt;&lt;/p&gt;</description></item><item><title>PowerShell Desired State Configuration - My first experiences</title><link>https://www.verboon.info/2013/11/powershell-desire-state-configuration-my-first-experiences/</link><pubDate>Sat, 16 Nov 2013 20:44:28 +0000</pubDate><guid>https://www.verboon.info/2013/11/powershell-desire-state-configuration-my-first-experiences/</guid><description>&lt;p&gt;During the past weeks I have been reading and listening about PowerShell Desired State Configuration a new feature introduced with PowerShell 4.0 which ships with Windows 8.1 and Server 2012R2 but is also available for Windows 7 SP1 and Server 2008 R2 as part of the &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=40855"&gt;Windows Management Framework 4.0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To keep things simple at first, I have only focused at running DSC on a local client and only used two &lt;a href="http://technet.microsoft.com/en-us/library/dn249921.aspx"&gt;built-in configuration resources&lt;/a&gt;. What i wanted to achieve was not only to get a DSC running, but also understand how things work.&lt;/p&gt;</description></item><item><title>PowerShell Script - Are we running as Admin?</title><link>https://www.verboon.info/2013/11/powershell-script-are-we-running-as-admin/</link><pubDate>Fri, 08 Nov 2013 20:19:16 +0000</pubDate><guid>https://www.verboon.info/2013/11/powershell-script-are-we-running-as-admin/</guid><description>&lt;p&gt;While exploring some of the new cmdlets that come with Windows 8.1 I came across &lt;a href="http://technet.microsoft.com/en-us/library/dn372891.aspx"&gt;Test-NetConnection&lt;/a&gt;. and noticed that it has a property called IsAdmin. When running the cmdlet in an elevated PowerShell session the property returns True otherwise False. So I put together a very simple script to check whether we are running as admin or not.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;&amp;lt;#
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;Synopsis&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Checks if we run as administrator
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;DESCRIPTION&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; This script uses the Test-NetConnection cmdlet that contains a IsAdmin Property to check if we ar running as admin
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;EXAMPLE&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Check-Admin.ps1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$AmIAdmin&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;Test-NetConnection&lt;/span&gt; localhost 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$AmIAdmin&lt;/span&gt;.IsAdmin &lt;span style="color:#ff79c6"&gt;-eq&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;True&amp;#34;&lt;/span&gt;) {&lt;span style="color:#8be9fd;font-style:italic"&gt;write-host&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;Running as Admin&amp;#34;&lt;/span&gt;} &lt;span style="color:#ff79c6"&gt;Else&lt;/span&gt; {&lt;span style="color:#8be9fd;font-style:italic"&gt;write-host&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;NOT Running as Admin&amp;#34;&lt;/span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Other (and probably more reliable) ways to determine whether we are running as admin are described &lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2011/05/11/check-for-admin-credentials-in-a-powershell-script.aspx"&gt;here&lt;/a&gt; by Ed Wilson and &lt;a href="http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/09/23/a-self-elevating-powershell-script.aspx"&gt;here&lt;/a&gt; by Ben Armstrong.&lt;/p&gt;</description></item><item><title>ConfigMgr PowerShell Script to check if Application or Program is allowed to run in TS without being deployed</title><link>https://www.verboon.info/2013/11/configmgr-powershell-script-to-check-if-application-or-program-is-allowed-to-run-in-ts-without-being-deployed/</link><pubDate>Thu, 07 Nov 2013 23:54:46 +0000</pubDate><guid>https://www.verboon.info/2013/11/configmgr-powershell-script-to-check-if-application-or-program-is-allowed-to-run-in-ts-without-being-deployed/</guid><description>&lt;p&gt;Kind of a long title for a blog post, but I could not come up with something shorter to describe the content of this blog post. The below script shows the status of the “&lt;strong&gt;Allow this Application / program to be installed from the Application / program install task sequence action without being deployed”&lt;/strong&gt; setting.&lt;/p&gt;
&lt;p&gt;
 &lt;img src="images/image_thumb.png" alt="image"&gt;

&lt;/p&gt;
&lt;p&gt;
 &lt;img src="images/image_thumb1.png" alt="image"&gt;

&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;&amp;lt;#
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;Synopsis&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Get Application and Package - Program information regarding Task Sequence support
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;DESCRIPTION&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; The script checks all applications and packages if they are allowed to be installed from a TS without being deployed
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;EXAMPLE&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Get-TSInstallEnabled -Site Lab
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;NOTES&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Version 1.0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Written by Alex Verboon
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#8be9fd;font-style:italic"&gt;CmdletBinding&lt;/span&gt;()]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;param&lt;/span&gt;( 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# ConfigMgr Site&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#8be9fd;font-style:italic"&gt;Parameter&lt;/span&gt;(&lt;span style="color:#50fa7b"&gt;Mandatory&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt;, &lt;span style="color:#50fa7b"&gt;ValueFromPipeline&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt;)]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [String[]] &lt;span style="color:#8be9fd;font-style:italic"&gt;$Site&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; )
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$Site&lt;/span&gt;.Length &lt;span style="color:#ff79c6"&gt;-eq&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; { 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;Throw&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;ConfigMgr Site code required&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;Else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteCode&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$Site&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;function&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-TSInstallEnabled&lt;/span&gt; ()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Check that youre not running X64&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; ([Environment]::Is64BitProcess &lt;span style="color:#ff79c6"&gt;-eq&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$True&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; { 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;Throw&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;Need to run at a X86 PowershellPrompt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Load ConfigMgr module if it isn&amp;#39;t loaded already&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; (&lt;span style="color:#ff79c6"&gt;-not&lt;/span&gt;(&lt;span style="color:#8be9fd;font-style:italic"&gt;Get-Module&lt;/span&gt; -name ConfigurationManager))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; { 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Import-Module&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$Env:SMS_ADMIN_UI_PATH&lt;/span&gt;.Substring(&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;,&lt;span style="color:#8be9fd;font-style:italic"&gt;$Env:SMS_ADMIN_UI_PATH&lt;/span&gt;.Length-&lt;span style="color:#bd93f9"&gt;5&lt;/span&gt;) + &lt;span style="color:#f1fa8c"&gt;&amp;#39;\ConfigurationManager.psd1&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Change to site&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;Push-Location&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;Set-Location&lt;/span&gt; ${SiteCode}:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;function&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-AppTSInfo&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$Apps&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;@&lt;/span&gt;() 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;foreach&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$Application&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-CMApplication&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$AppMgmt&lt;/span&gt; = ([xml][/xml]&lt;span style="color:#8be9fd;font-style:italic"&gt;$Application&lt;/span&gt;.SDMPackageXML).AppMgmtDigest
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$AppName&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$AppMgmt&lt;/span&gt;.Application.DisplayInfo.FirstChild.Title
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$AllowTs&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$AppMgmt&lt;/span&gt;.Application.AutoInstall
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;New-Object&lt;/span&gt; -TypeName PSObject
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Application Name&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$Appname&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$AllowTs&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-ne&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;) {&lt;span style="color:#8be9fd;font-style:italic"&gt;$AllowTs&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Allowed TS Install&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$AllowTs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$Apps&lt;/span&gt; += &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$Apps&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Function&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-PackageTSInfo&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$Progs&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;@&lt;/span&gt;() 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;foreach&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$Prog&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-CMProgram&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$ProgName&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$Prog&lt;/span&gt;.ProgramName
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$PackageName&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$prog&lt;/span&gt;.PackageName
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$AllowTs&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$Prog&lt;/span&gt;.ProgramFlags &lt;span style="color:#ff79c6"&gt;-band&lt;/span&gt; [math]::pow(&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;New-Object&lt;/span&gt; -TypeName PSObject
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Program Name&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$ProgName&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Package Name&amp;#34;&lt;/span&gt; -value &lt;span style="color:#8be9fd;font-style:italic"&gt;$Packagename&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$AllowTs&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-ne&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;) {&lt;span style="color:#8be9fd;font-style:italic"&gt;$AllowTs&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;} &lt;span style="color:#ff79c6"&gt;Else&lt;/span&gt; {&lt;span style="color:#8be9fd;font-style:italic"&gt;$AllowTs&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name &lt;span style="color:#f1fa8c"&gt;&amp;#34;Allowed TS Install&amp;#34;&lt;/span&gt; -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$AllowTs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$Progs&lt;/span&gt; += &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$progs&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;Get-AppTSInfo&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Format-Table&lt;/span&gt; -AutoSize 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;Get-PackageTSInfo&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Format-Table&lt;/span&gt; -AutoSize 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;Pop-Location&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;Get-TSInstallEnabled&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Additional Information&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>PowerShell Script to detect ConfigMgr Task Sequence unfriendly Software Updates</title><link>https://www.verboon.info/2013/11/powershell-script-to-detect-configmgr-task-sequence-unfriendly-software-updates/</link><pubDate>Tue, 05 Nov 2013 23:58:55 +0000</pubDate><guid>https://www.verboon.info/2013/11/powershell-script-to-detect-configmgr-task-sequence-unfriendly-software-updates/</guid><description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: 15 Une 2014 - Added &lt;a href="http://support.microsoft.com/kb/2965788"&gt;KB2965788&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you’re dealing with ConfigMgr and OS Deployment task sequences you’re probably aware of the KB article recently published by Microsoft called “&lt;a href="http://support.microsoft.com/kb/2894518"&gt;Task sequence fails in Configuration Manager if software updates require multiple restarts&lt;/a&gt;”.&lt;/p&gt;
&lt;p&gt;Let’s hope the list of KBs causing this issue isn’t going to grow too much over time, in any case we’ve decided that we would continue to review the article whenever we add new patches to our infrastructure. To simplify the task of checking whether one of the affected KBs has slipped into a software update group, I created the below script.&lt;/p&gt;</description></item><item><title>PowerShell Script - Get-ComputerGeolocation</title><link>https://www.verboon.info/2013/10/powershell-script-get-computergeolocation/</link><pubDate>Sun, 27 Oct 2013 13:35:01 +0000</pubDate><guid>https://www.verboon.info/2013/10/powershell-script-get-computergeolocation/</guid><description>&lt;p&gt;&lt;strong&gt;28-OCT-2013 Update&lt;/strong&gt;: I have updated the script to retry when the status of the location provider is in initializing mode.&lt;/p&gt;
&lt;p&gt;The below script uses the Windows Location provider and the Google Geocoding API to retrieve the geographical location of the computer. The accuracy of the information retrieved depends on the source used to determine the location which are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wi-Fi triangulation&lt;/li&gt;
&lt;li&gt;IP address resolution&lt;/li&gt;
&lt;li&gt;Cell phone tower triangulation&lt;/li&gt;
&lt;li&gt;Global Position System (GPS)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Windows automatically uses the best source, so when accessing the Windows Location provider you don’t need to tell it which source to use.&lt;/p&gt;</description></item><item><title>ConfigMgr - PowerShell Script to collect remote log files</title><link>https://www.verboon.info/2013/10/configmgr-powershell-script-to-collect-remote-log-files/</link><pubDate>Sun, 13 Oct 2013 14:35:41 +0000</pubDate><guid>https://www.verboon.info/2013/10/configmgr-powershell-script-to-collect-remote-log-files/</guid><description>&lt;p&gt;Looking at a client’s ConfigMgr Agent log files is inevitable when managing a Configuration Manager infrastructure. If you are working within a local area network only, then you will most likely just connect to the remote systems configuration manager log folder and drag and drop the appropriate log files into CMTrace.exe. But if your clients are distributed across a WAN network with slow network links opening the log file from a remote location is probably not the most efficient way for analyzing the log files content. And because troubleshooting typically requires looking at multiple log files you finally end up copying multiple log files or just the whole log folder to your client to open them locally.&lt;/p&gt;</description></item><item><title>List ConfigMgr Software Update Group members with PowerShell</title><link>https://www.verboon.info/2013/09/list-configmgr-software-update-group-members-with-powershell/</link><pubDate>Sun, 22 Sep 2013 20:47:18 +0000</pubDate><guid>https://www.verboon.info/2013/09/list-configmgr-software-update-group-members-with-powershell/</guid><description>&lt;p&gt;The below script allows you to select a Configuration Manager software update group and then lists the software updates that are assigned to it.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;&amp;lt;#
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;Synopsis&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Lists assigned software updates in a configuration manager 2012 software update group
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;DESCRIPTION&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Lists all assigned software updates in a configuration manager 2012 software update group that is selected 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; from the list of available update groups or provided as a command line option
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;EXAMPLE&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Get-UpdateGroupcontent.ps1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;.&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;EXAMPLE&lt;/span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt; Get-UpdateGroupcontent.ps1 -UpdateGroup &amp;#34;Win7x64_12_11_15&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#8be9fd;font-style:italic"&gt;CmdletBinding&lt;/span&gt;()]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;param&lt;/span&gt;(
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# Software Update Group&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#8be9fd;font-style:italic"&gt;Parameter&lt;/span&gt;(&lt;span style="color:#50fa7b"&gt;Mandatory&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$false&lt;/span&gt;, &lt;span style="color:#50fa7b"&gt;ValueFromPipeline&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;$true&lt;/span&gt;)]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [String] &lt;span style="color:#8be9fd;font-style:italic"&gt;$UpdateGroup&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; )
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$SiteCode&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;POC&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;Function&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-UpdateGroupcontent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Check that youre not running X64&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; ([Environment]::Is64BitProcess &lt;span style="color:#ff79c6"&gt;-eq&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$True&lt;/span&gt;) 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; { &lt;span style="color:#ff79c6"&gt;Throw&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;Need to run at a X86 PowershellPrompt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Load ConfigMgr module if it isn&amp;#39;t loaded already&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; (&lt;span style="color:#ff79c6"&gt;-not&lt;/span&gt;(&lt;span style="color:#8be9fd;font-style:italic"&gt;Get-Module&lt;/span&gt; -name ConfigurationManager)) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Import-Module&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$Env:SMS_ADMIN_UI_PATH&lt;/span&gt;.Substring(&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;,&lt;span style="color:#8be9fd;font-style:italic"&gt;$Env:SMS_ADMIN_UI_PATH&lt;/span&gt;.Length-&lt;span style="color:#bd93f9"&gt;5&lt;/span&gt;) + &lt;span style="color:#f1fa8c"&gt;&amp;#39;\ConfigurationManager.psd1&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Change to site&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Push-Location&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Set-Location&lt;/span&gt; ${SiteCode}:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#Set-CMQueryResultMaximum -Maximum 5000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$UpdateGroup&lt;/span&gt;.Length &lt;span style="color:#ff79c6"&gt;-eq&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$UpdateGroup&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-CMSoftwareUpdateGroup&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Select-Object&lt;/span&gt; LocalizedDisplayName | &lt;span style="color:#8be9fd;font-style:italic"&gt;Out-GridView&lt;/span&gt; -Title &lt;span style="color:#f1fa8c"&gt;&amp;#34;Select the Software Update Group &amp;#34;&lt;/span&gt; -PassThru 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;Else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$UpdateGroup&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;Get-CMSoftwareUpdateGroup&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Where-Object&lt;/span&gt; {&lt;span style="color:#8be9fd;font-style:italic"&gt;$_&lt;/span&gt;.LocalizedDisplayName &lt;span style="color:#ff79c6"&gt;-like&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;$(&lt;span style="color:#8be9fd;font-style:italic"&gt;$UpdateGroup&lt;/span&gt;)&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;} | &lt;span style="color:#8be9fd;font-style:italic"&gt;Select-Object&lt;/span&gt; LocalizedDisplayName 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$info&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;@&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;ForEach&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$item&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$UpdateGroup&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;Write-host&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;Processing Software Update Group&amp;#34;&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$&lt;/span&gt;(&lt;span style="color:#8be9fd;font-style:italic"&gt;$item&lt;/span&gt;.LocalizedDisplayName)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;forEach&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;$item1&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; (&lt;span style="color:#8be9fd;font-style:italic"&gt;Get-CMSoftwareUpdate&lt;/span&gt; -UpdateGroupName &lt;span style="color:#8be9fd;font-style:italic"&gt;$&lt;/span&gt;(&lt;span style="color:#8be9fd;font-style:italic"&gt;$item&lt;/span&gt;.LocalizedDisplayName)))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;New-Object&lt;/span&gt; -TypeName PSObject
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;#$object | Add-Member -MemberType NoteProperty -Name UpdateGroup -Value $item.LocalizedDisplayName&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name ArticleID -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$item1&lt;/span&gt;.ArticleID
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name BulletinID -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$item1&lt;/span&gt;.BulletinID
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Add-Member&lt;/span&gt; -MemberType NoteProperty -Name Title -Value &lt;span style="color:#8be9fd;font-style:italic"&gt;$item1&lt;/span&gt;.LocalizedDisplayName
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$info&lt;/span&gt; += &lt;span style="color:#8be9fd;font-style:italic"&gt;$object&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$Title&lt;/span&gt; = &lt;span style="color:#f1fa8c"&gt;&amp;#34;Total assigned software updates in &amp;#34;&lt;/span&gt; + &lt;span style="color:#8be9fd;font-style:italic"&gt;$item&lt;/span&gt;.LocalizedDisplayName + &lt;span style="color:#f1fa8c"&gt;&amp;#34; = &amp;#34;&lt;/span&gt; + &lt;span style="color:#8be9fd;font-style:italic"&gt;$info&lt;/span&gt;.count
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$info&lt;/span&gt; | &lt;span style="color:#8be9fd;font-style:italic"&gt;Out-GridView&lt;/span&gt; -Title &lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$Title&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# -----------------------------------------------------------------------------------------------------*&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Get the list of software updates in the selected update group&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;Get-UpdateGroupcontent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Windows 8.1 Command Prompt or PowerShell</title><link>https://www.verboon.info/2013/09/windows-8-1-command-prompt-or-powershell/</link><pubDate>Mon, 09 Sep 2013 22:38:04 +0000</pubDate><guid>https://www.verboon.info/2013/09/windows-8-1-command-prompt-or-powershell/</guid><description>&lt;p&gt;If you have used the Windows 8.1 preview build, you will have noticed that the X-Menu by default had PowerShell enabled instead of the Command Prompt.. However within the RTM release of Windows 8.1 Microsoft changed this, so now the command prompt is the default again as it was in Windows 8.&lt;/p&gt;
&lt;p&gt;
 &lt;img src="images/image_thumb1.png" alt="image"&gt;

&lt;/p&gt;
&lt;p&gt;To change the default back to PowerShell open the Taskbar and Navigation Properties and enable “&lt;em&gt;Replace Command Prompt with Windows PowerShell in the menu when I right click the lower left corner or press Win +X&lt;/em&gt;”&lt;/p&gt;</description></item><item><title>How to configure system volume with PowerShell</title><link>https://www.verboon.info/2013/05/how-to-configure-system-volume-with-powershell/</link><pubDate>Wed, 29 May 2013 16:53:47 +0000</pubDate><guid>https://www.verboon.info/2013/05/how-to-configure-system-volume-with-powershell/</guid><description>&lt;p&gt;Back in 2011 I wrote a blog post on &lt;a href="https://www.verboon.info/index.php/2011/01/mute-windows-system-volume/"&gt;how to mute Windows System Volume&lt;/a&gt; programmatically.  This week I found another approach on GitHub using PowerShell.&lt;/p&gt;
&lt;p&gt;The PowerShell Module &lt;a href="https://github.com/cdhunt/WindowsAudioDevice-Powershell-Cmdlet"&gt;WindowsAudioDevice-Powershell-Cmdlet&lt;/a&gt;** **provides a number of cmdlets to control the Windows System volume.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Get-DefaultAudioDevice&lt;/li&gt;
&lt;li&gt;Get-AudioDeviceList&lt;/li&gt;
&lt;li&gt;Set-DefaultAudioDevice [-Index] &lt;Int&gt;&lt;/li&gt;
&lt;li&gt;Set-DefaultAudioDevice [-Name] &lt;String&gt;&lt;/li&gt;
&lt;li&gt;Set-DefaultAudioDevice [-InputObject] &lt;AudioDevice&gt;&lt;/li&gt;
&lt;li&gt;Set-DefaultAudioDeviceVolume -Volume &lt;float&gt;&lt;/li&gt;
&lt;li&gt;Get-DefaultAudioDeviceVolume&lt;/li&gt;
&lt;li&gt;Set-DefaultAudioDeviceMute&lt;/li&gt;
&lt;li&gt;Write-DefaultAudioDeviceValue [-StreamValue&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I wrote the below PowerShell script to solve a request to set the system volume to mute.&lt;/p&gt;</description></item><item><title>Tip: PowerShell Script to create Shutdown/Restart/Logoff Windows 8 Tile for the Start menu</title><link>https://www.verboon.info/2013/05/tip-powershell-script-to-create-shutdownrestartlogoff-windows-8-tile-for-the-start-menu/</link><pubDate>Fri, 17 May 2013 13:52:36 +0000</pubDate><guid>https://www.verboon.info/2013/05/tip-powershell-script-to-create-shutdownrestartlogoff-windows-8-tile-for-the-start-menu/</guid><description>&lt;p&gt;A PowerShell script shows how to create a Shutdown, Restart or Logoff Windows 8 tile for the Start menu.&lt;/p&gt;
&lt;p&gt;
 &lt;img src="http://i1.gallery.technet.s-msft.com/scriptcenter/create-a-shutdownrestartlog-37c8111d/image/file/70255/1/image011.png" alt=""&gt;

&lt;/p&gt;
&lt;p&gt;
 &lt;img src="http://i1.gallery.technet.s-msft.com/scriptcenter/create-a-shutdownrestartlog-37c8111d/image/file/70257/1/image015.png" alt=""&gt;

&lt;/p&gt;
&lt;p&gt;Script source and documentation can be downloaded from &lt;a href="http://win8shutdown.codeplex.com/"&gt;here&lt;/a&gt;&lt;/p&gt;</description></item><item><title>How to check the status of BIOS &amp; UEFI &amp; Secure Boot with PowerShell</title><link>https://www.verboon.info/2013/01/how-to-check-the-status-of-bios-uefi-secure-boot-with-powershell/</link><pubDate>Fri, 11 Jan 2013 14:22:06 +0000</pubDate><guid>https://www.verboon.info/2013/01/how-to-check-the-status-of-bios-uefi-secure-boot-with-powershell/</guid><description>&lt;p&gt;During the past weeks I spend a bit of time deploying Windows 8 to UEFI enabled clients. With PowerShell 3.0 on Windows 8 you will find some &lt;a href="http://technet.microsoft.com/en-us/library/jj603042.aspx"&gt;new cmdlets&lt;/a&gt; that provide information about the status of your system’s BIOS/UEFI/Secure boot configuration.&lt;/p&gt;
&lt;p&gt;The below table shows the return values depending on whether the system’s firmware is using BIOS, UEFI and if Secure boot is enabled or not.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;pre&gt;&lt;code&gt; **BIOS / UEFI Setup**

 BIOS

 UEFI with CSM

 UEFI native

 Secure boot enabled

 UEFI native

 Secure boot

 disabled


 **PowerShell Command**

 Result

 Confirm-SecureBootUEFI

 Cmdlet not supported on this platform

 False

 True

 False

 Get-SecureBootUEFI –Name SetupMode

 Cmdlet not supported on this platform

 1

 0

 1

 Get-SecureBootUEFI –Name SecureBoot

 Cmdlet not supported on this platform

 0

 1

 0

 Executing any of these cmdlets on a Windows 8 system that uses BIOS generates an error. 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The return value of the SetupMode variable tells us if the system is operating in Setup mode or in UserMode meaning that the platform key is enrolled. (For more details read the Firmware/OS Key Exchange: creating trust relationships chapter within the UEFI Specification that can be found &lt;a href="http://www.uefi.org/specs/"&gt;here&lt;/a&gt;)&lt;/p&gt;</description></item><item><title>Windows Services, what changed from Windows 7 to Windows 8</title><link>https://www.verboon.info/2012/04/windows-services-what-changed-from-windows-7-to-windows-8/</link><pubDate>Thu, 19 Apr 2012 20:02:48 +0000</pubDate><guid>https://www.verboon.info/2012/04/windows-services-what-changed-from-windows-7-to-windows-8/</guid><description>&lt;p&gt;Nearly 3 years ago I wrote a blog post about the &lt;a href="https://www.verboon.info/index.php/2009/04/windows-services-what-changed-from-vista-to-windows7-part1/"&gt;Windows Services changes between Windows Vista and Windows 7&lt;/a&gt;. Assuming that we won’t see any big changes with regard to Services when Windows 8 will be released I repeated the exercise by looking at what has changed between Windows 7 Enterprise and the Windows 8 Consumer Preview Build.&lt;/p&gt;
&lt;p&gt;To obtain the services data from each system, i executed the following PowerShell command:&lt;/p&gt;</description></item><item><title>Microsoft releases DaRT 8 Beta</title><link>https://www.verboon.info/2012/03/microsoft-releases-dart-8-beta/</link><pubDate>Thu, 29 Mar 2012 06:20:32 +0000</pubDate><guid>https://www.verboon.info/2012/03/microsoft-releases-dart-8-beta/</guid><description>&lt;p&gt;Microsoft has released a Beta for DaRT 8. You find more details in the articles listed below. I’ve only been looking at it shortly, but here’s what I liked most:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;DaRT 8 now comes with full PowerShell support and some of the cmdlets added can also be used beyond DaRT.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A complete new version of the DaRT image build wizard.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;UEFI support&lt;/p&gt;
&lt;p&gt;MDOP: DaRTing to the Future&lt;/p&gt;
&lt;p&gt;&lt;a href="http://windowsteamblog.com/windows/b/business/archive/2012/03/28/mdop-darting-to-the-future.aspx"&gt;http://windowsteamblog.com/windows/b/business/archive/2012/03/28/mdop-darting-to-the-future.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Microsoft DaRT 8 Beta Q&amp;amp;A&lt;/p&gt;</description></item><item><title>Retrieve Group Policy size in SYSVOL folder with PowerShell</title><link>https://www.verboon.info/2011/01/retrieve-group-policy-size-in-sysvol-folder-with-powershell/</link><pubDate>Mon, 24 Jan 2011 18:07:28 +0000</pubDate><guid>https://www.verboon.info/2011/01/retrieve-group-policy-size-in-sysvol-folder-with-powershell/</guid><description>&lt;p&gt;Needless to say that there are quite some benefits in using a central store for Group Policies, one of them is that you can prevent the so-called SYSVOL bloat. A good description of the SYSVOL bloat is described &lt;a href="http://blogs.technet.com/b/askds/archive/2009/12/09/windows-7-windows-server-2008-r2-and-the-group-policy-central-store.aspx"&gt;here&lt;/a&gt;. So how much size do my GPOs currently consume within the SYSVOL folder? I asked myself that question a few days ago and ended up with let’s say my first version of the &lt;strong&gt;GetGPOSize&lt;/strong&gt; PowerShell script.&lt;/p&gt;</description></item><item><title>Creating Group Policy Objects with PowerShell</title><link>https://www.verboon.info/2010/10/creating-group-policy-objects-with-powershell/</link><pubDate>Sat, 16 Oct 2010 16:52:03 +0000</pubDate><guid>https://www.verboon.info/2010/10/creating-group-policy-objects-with-powershell/</guid><description>&lt;p&gt;In my previous post I wrote about how to &lt;a href="https://www.verboon.info/index.php/2010/10/creating-group-policy-reports-with-powershell/"&gt;create Group Policy reports&lt;/a&gt; using the Group Policy PowerShell CmdLets. Today I want to share with you my first hands-on experiences with creating a Group Policy using PowerShell.&lt;/p&gt;
&lt;p&gt;But first, why would one use PowerShell to create Group Policies? Well here are a few use cases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;You are a Consultant and always start your Group Policy Implementation with a set of GPOs including your best practice settings.&lt;/p&gt;</description></item><item><title>Creating Group Policy Reports with PowerShell</title><link>https://www.verboon.info/2010/10/creating-group-policy-reports-with-powershell/</link><pubDate>Sun, 03 Oct 2010 19:14:43 +0000</pubDate><guid>https://www.verboon.info/2010/10/creating-group-policy-reports-with-powershell/</guid><description>&lt;p&gt;I’ve had this on my “must do some hands on” list for months, finally found some time to play a bit with the new &lt;a href="http://technet.microsoft.com/en-us/library/ee461027.aspx"&gt;PowerShell Group Policy CmdLets&lt;/a&gt; that where introduced with Windows 7. For today i decided to work with the &lt;a href="http://technet.microsoft.com/en-us/library/ee461059.aspx"&gt;Get-GPO&lt;/a&gt; and the &lt;a href="http://technet.microsoft.com/en-us/library/ee461057.aspx"&gt;Get-GPOReport&lt;/a&gt; CmdLets.&lt;/p&gt;
&lt;p&gt;The Get-GPO CmdLet allows you to list one or all GPOs that exist in a domain. If you know the name and want to know when it was last modified, simply type Get-GPO &lt;Group Policy Name&gt;&lt;/p&gt;</description></item></channel></rss>