Windows Autopilot – Configure OneDrive from OOBE?!

Windows AutoPilot OneDriveRecently Microsoft introduced Windows Autopilot. This is a feature where you can register your corporate devices and where users can use their internet connection to sign in with their Azure AD credentials. The device is automatically enrolled with MDM like Intune and will receive apps and policies from there. According to Microsoft’s recent blog post and instruction video, a user needs to insert their WiFi password as the device will get the configuration from MDM and is already enrolled, without having the option to change the MDM provider or enroll the device as a personal device. The device really becomes a corporate-owned device. This looks a bit like the Apple Device Enrollment Program. One of the interesting parts of that instruction video, is that it looks like OneDrive can be pre-configured from OOBE as well:


I hope that Microsoft will further expand the possibilities of this service. What I would like to see is that the device can cache/download applications and settings from Intune during the factory imaging process. This ensures that applications, policies and settings are pre-loaded on a device and don’t need to be downloaded anymore. This will dramatically decrease network bandwidth and deployment time.

Azure AD Domain Services now available from the Azure Portal!

Today I found out that Azure AD Domain Services is available from the new Azure Portal! The documentation is still based on using the old portal. Now you can finally use Azure Resource Manager for the VNET and deployment. Creating your first Azure AD Domain Services instance will take quite some time but is really easy to configure. Specify the DNS name of the domain, a resource group, a VNET with subnet and a subscription and you’re good to go. Enjoy this feature in the new Portal!


Avanade announces new Microsoft Azure Stack solution

Last Tuesday Avanade announced the new Avanade Azure Stack Solution. Avanade delivers this solution from client site, at remote locations or hosted in Avanade’s own datacenters. Azure Stack is an extension of Azure to on-premises locations. People tend to forget that Azure Stack is not just a replacement of your physical servers running a hypervisor like Hyper-V. It’s a true hybrid cloud solution. You get features like Disaster Recovery with instant fail-over, Platform as a Service (PaaS) capabilities, Load Balancing, the new Portal experience and so on. I’m really excited to tell you more about this great solution.

Continue reading

Why I’m not buying the new iPad 2017

iPad 2017Would you buy a new television when only the CPU is slightly faster, but the screen quality is worse? Would you buy a new phone, when it’s only slightly faster than the old model? Well, that’s the position I’m currently in. Last year I wanted to buy a new iPad. I was looking for an iPad around the iPad Air 2 price range. It’s just for home-use like Netflix, Spotify and HomeKit, so I’m absolutely not a Pro user. I didn’t want to buy a device that was released 2 years ago. You know Apple is probably working on a refresh. And you want to keep the device as long as possible, so a refresh will give you a new update-cycle. So you wait for that new model to get launched. A colleague was in the same boat just like me, so we waited for next year to come.

Continue reading

PowerShell – How to Create an Array with PSObject

As I told you before in my previous blog post, I was asked to build an interactive PowerShell script for creating Virtual Machines in Azure. In this blog post, I want to show you how I’ve created a report (or array) within PowerShell that:

  • Visualize the to-be-created objects to the user
  • Allows PowerShell to get the data of that array to create Virtual Machines. This makes sure that you have a consistent view of what PowerShell will create for you. See it as an order overview before you buy something online.

Let’s imagine I have all the Virtual Machines that I want to create in $VMs. This can be an import of a CSV, or maybe I’ve asked the user for details with “Read-Host” or Out-GridView. When you import a CSV, the content will already be organized in an array. But with this code, you can easily add more content to it and combine both data from a CSV and from the script. For example, a randomized password or the first available IP address in a subnet in Azure. My end goal is to have a nice overview of all the needed Virtual Machines in $Report, which I can later use to make those VMs. With the code below, you will create a PSObject for every VM in the $VMs variable. After the PSObject has been created, it will append to the $Report variable. With “$Report = @()” you ask PowerShell to create an empty array. See it as an empty table that you could later use to add content to it. After the deployment has succeeded or failed, you can add the status to $VM.DeploymentStatus.

# Set report variable
$Report = @()

Foreach ($VM in $VMs) {
    $PSObject = New-Object PSObject -Property @{
        DeploymentName          = $VM.resourceGroupName + "-" + (Get-Date -Format "yyyyMMdd-hh-mm-ss")
        VMName                  = $VM.vmName
        Location                = $VM.resourceGroupLocation
        ResourceGroupName       = $VM.resourceGroupName
        AdminPassword           = $VM.adminPassword
        VMSize                  = $VM.vmSize
        VirtualNetwork          = $VM.virtualNetwork
        VirtualNetworkRG        = $VM.virtualNetwork.ResourceGroupName
        SubnetName              = $VM.subnetName
        IPAddress               = $VM.ipAddress
        OperatingSystem         = $VM.operatingSystem
        DeploymentStatus        = $Null
    $Report += $PSObject

# Show the report

# Or show it in Table Format
# $Report | Format-Table

The above example is by far the easiest way to create a nice array for me.

Thanks for reading. Hope you find it useful too.

PowerShell – Using Out-GridView to Select a Parameter

Last week I was asked to build an interactive PowerShell script for creating Virtual Machines in Azure. In this blog post, I want to share an easy way to prompt a user for a selection.

# Select Azure subscription
$AzureSubscription = (Get-AzureRmSubscription | Out-GridView -Title "Choose your Azure subscription and click OK." -PassThru)
Write-Output "Switching to Azure subscription: $($AzureSubscription.Name)"
$AzureSubscriptionInfo = Select-AzureRmSubscription -SubscriptionId $AzureSubscription.Id

This uses Out-GridView to display the contents of the “Get-AzureRmSubscription” Cmdlet and asks the user to make a selection. The user is able to sort and filter the contents within the grid and the user will be informed of the decision by using “Write-Output”.


Let’s say it’s not the most elegant way to ask a user to select a value because it’s a pop-up and because of the small “OK” and “Cancel” buttons, but this PowerShell script was developed for IT Administrators. The benefit is that it’s easy to use with out-of-the-box code, instead of using custom modules.

That’s it for now, hope you find it useful.


WTH Thermostat – Error Code A2.2

The underfloor heating and cooling system of my apartment is managed by a WTH thermostat. Last week had temperatures of 30+ °C, which is why I wanted to switch from heating to cooling the floor of my apartment. Somehow the instructions in the manual didn’t work for me and ended up with error code A2.2. Of course – an error code that’s not described in the manual. Below is an image of the WTH D9380 rF-t thermostat I have.


I was advised to call the company that implemented the underfloor heating and cooling system, but hey.. “I’m a tech guy!”. I found out that there is another icon for winter and summer configuration:


Both icons where not visible on my display, just like the example above. I had to dig into the configuration to change the P01 parameter from 0 to 1. You can do that with the following steps (Dutch):


I know this post was not about IT, but hopefully I can help some people struggling with the same issue.