Beiträge von
Marcel Meurer

Expertenwissen von Marcel Meurer

| |

Enumerating Azure AD administrative accounts with PowerShell

Users can have different administrative roles in Azure Ad. Azure Portal can show these roles and members. Sometimes it can be favorable to get roles and members in a PowerShell object list.

To logon into your Azure AD tenant use:

Where xxx is your tenant id. The -TenantId is optional. But if your account member of different Azure ADs you can select the right one.

After login in with your credential you can show the different roles with:


Using PSCustomObject helps to build a list/array of custom objects to save all roles and users.

| |

Deploying a custom OMS Log Analytics Workspace via GitHub – Avoid problems with ARM templates

Azure is “my” cloud with a lot of platform services allowing user, programmers and DevOps building powerful and scalable solutions. One of my favorite ones is Azure OMS Log Analytics – a big data platform with a great query language and professional dashboards.

In the past I build a custom agent to collect data from Microsoft RDS and Citrix environment to provide a deep insight into the user experiences and resource usage

| |

Monitoring End-User Computing Environments with Azure OMS LogAnalytics with „Deploy to Azure“

Several months ago, I built a solution focused on monitoring the user experiences on remote desktop environments based on Citrix XenApp, XenDesktop and Microsoft RDS. Particularly RDS/RDP was imported because there is no solution from Microsoft.

End user computing environments are complex and not easy to monitor. The most common monitoring solutions are focused on typical server parameters like CPU and memory consumption, free disk space and so on. But administrators need more insight into the parameters responsible for the user experience like bandwidth,

| |

Deallocate an Azure VM from itself

In these days I’m dealing with the automation of starting and stopping Azure virtual machines. I do this to avoid unnecessary costs for customers running Citrix or RDS workers on Azure. I translated a piece of my work into a PowerShell script to de-allocate the VM on which it is running.

Azure Instance Metadata Service

To get information about the running VM I use Azure Instance Metadata Service ( This information contains the public ip address,

| |

How to use http delete, put, head, connections, connect with an Azure Web App

I often use Azure Web Apps to deploy tools and programs running serverlessly. A few weeks ago, I deployed an MVC web site with a controller to handle file uploads to an Azure Storage Account. For the client site I used jquery-FileUpload, which also allows to trigger a controller to delete a file. If a user tries to delete a file, jquery-FileUpload triggers the controller with the http-request method “DELETE”.

In my local environment this worked as expected but nothing happened in my Azure Web App deployment.

| |

OneDrive PowerShell Module – New Version with Improved Authentication

A few months ago, I wrote a PowerShell module to access OneDrive. I got a lot of feedback from the community – thanks for that.

This week I published a newer version to including new features and bugfixes. These are the main improvements:

Bug fixes:

  • Filename and paths containing special characters like ‘=’, ‘$’, etc. are now handled correctly
  • Enumeration of folders with a file count >200 is now working


  • Get-ODAuthentication now supports a “code” based-authentication including refresh of the authentication with a refresh token.
| |

Updated: Azure Log Analytics Agent for Citrix and Microsoft RDS – Version

Over the last year I built a solution to monitor Citrix and RDS environment focused to the user behavior. The agent is focused on events, performance consumption, network activities and more regarding each user’s IT experiences. Workers in this context are Windows Remote Desktop Server, XenApp Servers and of course Windows Client VDI’s (XenDesktop) – in a cloud, on-premises or hybrid.

An important point is: There is no other infrastructure needed: No SQL server,

| |

Deploy a node.js script in seconds to an Azure Web App with git and run it server-less

Deploy a node.js script in seconds to an Azure Web App with git and run it server-less

In customer projects, I sometimes develop small applications to collect and process data from different data sources or to offer a web interface. In any case, I try to avoid rolling out a VM to run these apps. I strictly prefer using Platform-as-a-Service and it works nearly 100% if I use an Azure Web App or Azure Functions.

| |

Preventing administrative users to change critical network settings in an Azure hub-spoke topology

An Azure hub-spoke topology enables a company to use infrastructure as a service without losing control of the network flow. This is particularly important if you have business users with their own subscription (which I support) and the services in this spoke needs access to on-premises resources via a vpn gateway (e.g. site-2-site vpn).

To prevent the business users from changing the network settings in the prepared spoke subscriptions, it’s necessary to give them the right role in Azure.

| |

Verwenden des OneDrive PowerShell Moduls aus der PowerShell Gallery für den Zugriff auf OneDrive per Kommandozeile

Ich habe ein PowerShell Modul geschrieben, mit dem per Kommandozeile mit OneDrive gearbeitet werden kann. Das Modul verwendet die dokumentiert OneDrive API ( Wenn PowerShellGet bereits auf dem Rechner installiert ist, lässt sich das OneDrive Modul mit einem Befehl laden und installieren:

Install-Module -Name OneDrive -Scope CurrentUser

Ebenso lässt sich das Modul mit dem gleichen Befehl aktualisieren (bitte -force anhängen). Falls PowerShellGet aktuell nicht vorhanden ist, lässt sich dies hier nachholen: – „Get Started“.