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
$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”.

Out-GridView

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.

Cheers!

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.

d938020wth20comfort20rf-t20ruimtethermostaat

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:

WTH-WinterSummer

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):

WTH-ChangeParameters

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

Cheers!

Hyper-V RemoteFX doesn’t work with Shielded VMs

Cause

Recently I replaced my workstation and that was a perfect time to rebuild my home lab. After I got green lights from my employer to install the all new Windows 10 Creators Update, I also installed Hyper-V and started to build servers in my lab. I was playing around with Shielding, Virtual TPM and SecureBoot until I found out that RemoteFX didn’t work anymore. I added the RemoteFX adapter to a VM with shielding enabled, but saw in the Hyper-V Settings menu that “0 virtual machines are currently using this GPU”. I first thought about updating my drivers, but I realized that I was playing around with some new features. After disabling Shielding for this VM, RemoteFX started to work!

Continue reading

How to use a Soundbar without Audio from Television

Recently I bought a new soundbar for my Samsung television. I connected it with TOSLINK/SPDIF (digital audio) to my Samsung television. I didn’t like using the second remote control of the soundbar, so I used the “Learn” functionality from Yamaha to ‘learn’ the volume and power functions of my Samsung remote control. After a quick setup I found out that – of course – when you use the television remote to control the volume, both the television and soundbar will adjust to this. My Samsung television lacks the possibility to turn the audio off while still using the volume buttons.

After brainstorming I found a nice workaround for this. Just connect a headphone jack into the headphone output of the television. You can use the headphone jack of your old in-ears if you want. Now your television should think that you’re listening through the headphones instead of the television audio which will:

  • Enable you to control the volume of the television (and the soundbar – because of the ‘Learn’ functionality)
  • Audio will go through the soundbar and through the headphone jack.

This was a great workaround for me. Hope this helps you too.

Cheers.