Identify VM’s running status in Azure Resource Manager

Unlike classic model, there is no direct cmdlet to know the status for virtual machine provisioned using resource manager model. We can use the following commands to know the status of a particular virtual machine:

$resourceGroupName = "sharepointvms"
$vmName = "indspstd01"
$vmStatuses = $(Get-AzureRmVM -ResourceGroupName $resourceGroupName -VMName $vmName -Status).Statuses
foreach($vmStatus in $vmStatuses){
 if($vmStatus.Code -ne "ProvisioningState/succeeded")
 Write-Output "$vmName status is `"$($vmStatus.displaystatus)`""

Replace the value of …Continue Reading

Creating an user account named administrator in Azure VM

We all know that while creating a virtual machine in Microsoft Azure (whether in classic or resource manager portal), it won’t allow to create an administrative user account named as ‘administrator’ at the time of provisioning. Not that its a good practice anyway and security pro’s have been advising to not create it from a long time. However some old legacy applications might not work if it does not exist. So once the virtual machine is provisioned, you can go ahead and create it fine using local users and groups console (or you can use shortcut lusrmgr.msc).  …Continue Reading

Configure Azure Automation hybrid runbook workers and run hybrid runbooks

Azure automation is Microsoft cloud based workflow engine that can be used to run workflows in Azure. It started out its life as engine to operate against azure resources. However with time it gained the capability to run against on-premises resources as well by introduction of new feature called hybrid runbook workers.

You can think of hybrid runbook workers as one or more servers (think high availability) in your on-premise datacenter that can act on behalf of runbooks located in azure cloud. It has the capability to execute a runbook (known as hybrid runbook) which can be as simple as PowerShell script or as complex as a PowerShell workflow can be. So you can use it to to orchestrate complex, repetitive, or time-consuming tasks for your on-premise servers. …Continue Reading

Configuring and Securing credentials in PowerShell

Automation is great. However most of the time, while doing certain tasks, you need to use a different set of credentials then the current logged on user. You can put direct password in plain text inside script but this is not a best practice or recommended one. After all, passwords are safe only if they are kept secret. Writing them in clear text inside script defies the overall purpose. So we’ll see how to avoid this scenario. Let’s start with basics first.

We can get user credential by using cmdlet Get-Credential and storing them inside a variable …Continue Reading

Enable PowerShell remoting on Azure RM virtual machines

PowerShell remoting is useful to manage virtual machines using PowerShell. When you create a virtual machine in the classic azure model, a winrm endpoint is automatically configured and can be used to manage virtual machines. You’ll just need to import ssl on your local machine and connect to the remoting session. However, same is not created if you create a virtual machine in the resource manager model. So if you try to connect using PowerShell remoting for azure rm vm, you’ll see …Continue Reading