Automating CIS-CAT Pro with PowerShell

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: Note that the Lite version does not include the command line interface, so you won’t be able to use the automation described in this blog post. Read More …

Retrieving Windows Defender ATP query API data with PowerShell

I am currently working on some automation around Windows Defender, so started to look at the Windows Defender Advanced Threat Protection query API. Note that this API is still in preview. I wrote two functions for this. Connect-WindowsATP is used to get an access token. Note that you will need to first register the API in Azure Directory so that you get an Application ID that you have to include at the top of the Read More …

Exploring Microsoft Security Update information with PowerShell

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. The Microsoft Security Update Guide allows you to find detailed information about security updates. Go to and select “Go to the security update Guide” Next Read More …

PowerShell script Update-PoshModule

With nowadays rapid development and release cycles it’s a good practice to regularly check whether you have the latest available module versions installed. Using native PowerShell cmdlets you would first list the module installed locally and then search for the latest module online. When you have several modules installed, this becomes a laborious task. So I wrote a cmdlet that does all this work for me and you if you like. The Update-PoshModule cmdlet can Read More …

Creating and Managing Azure Storage Tables with PowerShell

Today’s mission was to get more familiar with Azure Storage Tables and to manage them with PowerShell. On GitHub I found the AzureTableEntity module from Tao Yang. Below are a number of code snippets I used to get my hands dirty with Azure Storage tables and the module. Install the Module

Next we create an Azure Resource Group and an Azure Storage Account

We will need the Storage Account key later so let’s Read More …

Retrieving Office 365 roadmap information with PowerShell

Here’s a small cmdlet I wrote today to pull the Office 365 roadmap information with PowerShell.


ConfigMgr Client Policy Settings – Get-CMclientpolicysettings

Here’s a function i wrote recently to retrieve the ConfigMgr Client Policy settings. To use the function you must have the System Center Configuration Manager Cmdlet library installed.


Retrieve Azure Virtual Machine Size information with PowerShell

One important topic to consider when deploying virtual machines in Azure is the size of the virtual machine as this affects the pricing, but beware that not only virtual machine sizing has a pricing impact other factors like storage and optional features like IP address options add to the costs as well. A good starting point to get an understanding of virtual machine costs is the Azure pricing calculator: Be aware that when selecting Read More …

Download and Install the Windows Assessment and Deployment Kit with PowerShell

Back in June 2012 I posted the Automated download and Installation for the Windows Assessment and Deployment kit 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.

Downlload source from GitHub


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. After entering the -SubscriptionName parameter the script enumerates alll the subscriptions I have access to and generates a dynamic parameter option.

Script location on GitHub: