Azure Runbook – Tags

Please see the detailed steps to configure it:


  1. Go to your Azure Portal and click on Virtual Machines.
  2. Select the Virtual Machine that you need to start/stop.


  1. Select Tags and then you add a name and a value for the tag. For example, Name: Start Value:

7:00AM and click save, then add another tag to stop, for example, Name: Stop  Value: 5:00PM. Add the same Tags to all the computers you want to Start/Stop.





  1. Copy the tag names and values in one note, you will need that information to configure the runbook.
  2. Go to your Automation Account.





  1. Click on Runbooks Gallery. If filter window appears just click ok.



7. Click on “Shutdown/Start VMs by tag”




  1. Click on “Import”.



  1. Type a Name to the Runbook and click ok:


  1. Click on “Edit”:


11. Click on “Publish” and then click on “yes”


12. Click on “Schedule”


  1. Click on Schedule, Create a new schedule, type a name and then configure the schedule as following image, you can make it recurring and selecting Week you can select only the desired days to start the VMs.
  2. Click on “Create” (Screenshot on next page)



15. Click on “Parameters and run settings”

16. Add the Tag Name and Tag Value that you already added to the VM to Start. Example: TagName: Start TagValue:7:00AM.

17. Shutdown: if you select False then the VM will Start. If you select True the VM will stop.

  1. Click OK.




19. Click “OK” again

The runbook is now created and It will start all the VMs that are tagged with the name and value you selected.

Now you just need to create the runbook to stop the VMs at desire time.

To create the runbook to stop the VM you just need to follow the same steps, but using the Tag Name and Value that you defined to Stop, for example: Tag Name: Stop  Value: 5:00PM and Shutdown: True to stop the VM.

The advantage of use these runbooks is that if you need to add more VMs to start and stop, you just need to add the Tag Name and Value to the desired VM and it will be automatically added to the runbook scope.



Azure Storage options

While I wanted to write about different storage options in Azure, I came across below article and I dont think I can do a better job at explaining this. So here you go

There are several advantages to using Azure storage irrespective of type. Azure storage is easily scalable, extremely flexible and relatively low in cost depending on the options you choose.

There are 4 types of storage in Azure, namely:

  • File
  • Blob
  • Queue
  • Table

For the traditional DBA, this might be a little confusing. In this article, I will explain the different types of storage and when each of them should be used.

,,,,,,,,Click below to read more


SharePoint CU install

Recently I had to upgrade SharePoint 2013 servers with September 2016 CU. Before we start talking anything about this make sure you have SharePoint 2013 SP1 is installed as this is a prerequisite for this CU.

September 2016 CU build number is 15.0.4859.1000. It fixed the issues described in the below articles.



If you are on track to make your SharePoint hybrid then I would highly recommend updating your farm with this CU as it has all the goodies required for a fast track hybrid install.


Always check the current  SP/CU status before you start patching Sharepoint. I found that our server DB configuration was no compatible so had to fix that before moving forward. Below is a common error you might see at central admin->upgrade and migration -> DB upgrade status.

error: SharePoint 2013 Database is in compatibility range and upgrade is recommended

To Fix this issue, lunch SP management shell with farm admin account and run

” psconfig.exe -cmd upgrade -inplace b2b -wait ”  Remember that this is a b2b upgrade and not a v2v. Which means if you are upgrading from one version of SP to other you will use ” psconfig.exe -cmd upgrade -inplace v2v -wait”. For RTM upgrades you will use b2b.

Before you take any other step MAKE SURE YOU HAVE ALL THE BACKUPS. In case CU messes something on the server there is no way to roll back. You have to rely on your backups only. Snapshots are life savers.

CU upgrade is a two-step process. First you run the CU exe and then you run the SharePoint configuration wizard. 

Now that your current farm is all set we are ready to run the upgrade. Download the CU files on to your server from KB3118279

You need to download the files on all the servers in the farm. SharePoint CU should be installed on all the servers in the farm. Of course, you would not worry about the DB server at this point. The recommended order is to run on the server where the central admin is installed, then all other app servers and then all the WFE servers. I was able to proceed in this order with no issues. Once you copy over all the files, run the EXE.  This will take a while maybe an hour or more. After installation is done then check status at upgrade and migration->check product and patch installation status. If there are no errors then you are good to move to other servers. Repeat the process on all other servers. After this process is done on all other servers then you are good to run configuration wizard. I use power shell for this. Get back to APP server where central admin is installed and run “ . “psconfig.exe -cmd upgrade -inplace b2b -wait”   .

If you run the confi upgrade without wait you might see ” Unable to create a Service Connection Point in the current Active Directory domain. ” error and upgrade will fail. In most places Network admins may not want to keep track of the SharePoint installation packages and you can just skip that part. But if you do keep then below steps may help

Start ADSI Edit on your domain controller. Expand System, Right click in the white area then choose New > Object…Create a container, Type the container name Microsoft SharePoint Products and press Finish, Run SharePoint Configuration Wizard again.

You have to run with on all the servers. Now go to upgrade and migration -> review DB status. Also, do “check upgrade status” and hopefully you will see a success message.






Permission error

Error : PermissionMask check failed. asking for 0x00000005, have 0x2000011001

One of our SharePoint 2010 sites started throwing an error with correlation ID. This site has multiple user permissions.

The issue started occurring after a routine windows maintenance. so I figured this should not have happened due to code or DB issues. ULS logs also pointed out there was an issue with space but when I checked all the drives had enough free space. Though there was enough free space I did delete some old files as I have seen before in VM’s with SAM storage there could be some drive corruption and though it shows free space you will not be able to write any files to it. It did not help.

Next thing was to look into the error above. I googled it and read some articles talking about app pool permissions so I checked to make sure app pool account was good. This account was not changed since the site was created and it was active.

Next, I restarted the app pool which will recycle the IIS cache and that did the trick.

The site was up and running.


Thank you



Before any major release, it is fun to create excitement among users. It will also encourage users to look forward to the new product. Recently I used a timer to keep up the excitement of a new site we were going to release. I have used SharePoint script editor webpart and embedded this script which will show a timer countdown on your page.

<b>New release in</b>

TargetDate = “02/01/2018 5:00 PM”;
BackColor = “#e1e2e3”;
ForeColor = “navy”;
CountActive = true;
CountStepper = -1;
LeadingZero = true;
DisplayFormat = “%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.”;
FinishMessage = “It is finally here!”;


















Single user mode issue

Sometimes ,mostly because you did something , your DB is stuck in a single user mode and you cannot connect to it anymore.

Below steps can help if you don’t know which user is connected to the DB.

SELECT request_session_id FROM sys.dm_tran_locks
WHERE resource_database_id = DB_ID(‘YourDatabase’)

It will return the process connected to the DB with PID
Then kill all process that use your database with following query:

KILL spid

Then run following query to change to multi user mode.

USE Master