Deploy Jenkins quiet mode using Powershell

$path = “<local computer path\>"
$setup = "Jenkins.msi"
$program = $path + $setup
Start-Process -FilePath $program -ArgumentList "/quiet"

This script is tested on Jenkins build 1.646 and works perfect.


Running MSTest as 64 bit

Do you know the MsTest.exe is 32 bit by default. MS is yet to come up with 64 bit version of this exe, to run the tests in 64 bit mode.

Found the following steps in one of the useful post on Stackoverflow:

1.Backup mstest.exe and run CorFlags.exe MSTest.exe /32BIT- /Force to remove the 32-bit flag
2.Run your tests with /noisolation: MSTest.exe /testcontainer: /resultsfile: /noisolation

Tried validate the 3 step from post on my windows 7 machine but could not be validated so skipping that.

VSTS get a glimpse Series-1

Hi all. It’s been a good 2 years since TFS services online were made available by Microsoft. So much has changed since then in and around the world as well as in the TFS services online features.

So I thought to again visit the portal and get a glimpse of what all are now available? Writing this blog which is a 10 post series covering all the major features available as on 20 Jan 2016.

By the way 2 weeks back Microsoft renamed it from VSO to VSTS (Visual Studio Team Services). To me this new name make the right step. The On-premise version can continue to be called as TFS.

Time to Explore VSTS……………

As a first step i used a new login account and got the URL for my portal as:

As soon as you open this URL, following contents are presented to you in browser: On the left bottom is a link to create a new project, so click ‘New’.

Fill the details required to create a new project. This include Project name, Description, Template type and Version control (TFVC or GIT)

It may take a while for VSTS to create a project for you.


Once the project is created you land on the following page:

To start with we will explore the ‘Manage Work’ option first. Below is the screen I got after I clicked ‘Manage Work’ option.

In my next post of this series I will start exploring these links one by one starting with ‘New work item’ section ( at the bottom centre)

Stay tuned!

Visual Studio 2015 Known issues and Bugs

As a .Net developer Visual studio is a must tool for all us. I was keen to find the list of all possible known issues/ bugs and possible work around in 2015.

Here is the path:

Assumed that it lists the issues/ bugs and possible work around for all the releases of 2015.

So next time when you face a problem in Visual studio 2015, do visit this link and possibly you will find the solution.



if you found it useful, do Like it please 🙂

What is DSC?

DSC stands for Desired State Configuration. Its a declarative language that works on top of PowerShell.

DSC was introdcured in Powershell 4.0.

It can do system configuration, software deployment, Configuration validation, enforce compliance activities for you.

Not only the Windows O/s configuration DSC can do the Linux machine configurations for you. Further more these configuration may be used in conjunction with Automation frameworks like Chef, puppet, azure etc..



‘Value Area’ new field on WI’s in TFS 2015

A new “Value Area” field to all work items has been introduced in TFS 2015, that appears on a backlog, that is: Epics, Features, and (depending on your process template), the field also appears on Product Backlog Items, User Stories, and Requirements.

The Value area has two values:

a) Business

b) Architectural

The default selected value would be Business for all Epics, Features, and Stories.

To create an Architectural Epic, Feature, or Story, set the value to Architectural.

With this functionality, now you can also define Architectural Epics, which in turn break down into Architectural Features and Stories, allowing you to track your architectural roadmap across your organization.

New Bottle Old Wine: Shell Context Menu

Life became very easy long back when windows offered Context menu on its shell objects like Files, Folders etc… Generally IContextMenu and IShellExtInt are used along with COM implementation to get the context menu functionality. However Registry entry can also be used to achieve this.

@=”Open Command Window Here”

@=”cmd.exe /k \”cd %L\””   are 2 very useful registry entries to attach new ‘Open Command Window Here’ command with all Folders.


Similarly  to achieve something on text Files,

[HKEY_CLASSES_ROOT\txtfile\shell\<My Command Text>\command]

But what if you wanted the files command to work on selected set of files only OR say only on a particular file like XYZ.Txt only?

[HKEY_CLASSES_ROOT\.txt\shell\<My Command Text>]

this entry in registry will work on xyz.txt file only.. 

Programming is interesting!!


Verify .Net Version ‘Updates’ installed on any Machine

Sometimes we need to verify what all updates for .Net version exist on my computer. This is required because fixes of known issues are put in by Microsoft in these.


We have 2 ways to see these updates list:

a) Looking into the registry (Manual)

b) programmatic identify and list them

The Path to look these in Registry is  HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Updates

Dotnet Version Updates

Under this you will find .Net Version folders and under each such folders you will find subfolders one each for Updates name <KBXXXXXXX>…


You can also list these updates using a C# program:

using System;
using Microsoft.Win32;

public class GetUpdateHistory
public static void Main()
using (RegistryKey baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(@”SOFTWARE\Microsoft\Updates”))
foreach (string baseKeyName in baseKey.GetSubKeyNames())
if (baseKeyName.Contains(“.NET Framework”) || baseKeyName.StartsWith(“KB”) || baseKeyName.Contains(“.NETFramework”))

using (RegistryKey updateKey = baseKey.OpenSubKey(baseKeyName))
string name = (string)updateKey.GetValue(“PackageName”, “”);
Console.WriteLine(baseKeyName + ” ” + name);
foreach (string kbKeyName in updateKey.GetSubKeyNames())
using (RegistryKey kbKey = updateKey.OpenSubKey(kbKeyName))
name = (string)kbKey.GetValue(“PackageName”, “”);
Console.WriteLine(” ” + kbKeyName + ” ” + name);

if (kbKey.SubKeyCount > 0)
foreach (string sbKeyName in kbKey.GetSubKeyNames())
using (RegistryKey sbSubKey = kbKey.OpenSubKey(sbKeyName))
name = (string)sbSubKey.GetValue(“PackageName”, “”);
if (name == “”)
name = (string)sbSubKey.GetValue(“Description”, “”);
Console.WriteLine(” ” + sbKeyName + ” ” + name);



The output of this code would be

Dotnet Version Updates names  by Code


Unattended TFS server installation?

Is it possible to deploy Farm based TFS Server deployment?

Answer is Yes, you can do the Basic, Standard or even advanced setup installation and configuration of TFS unattended.

look for tfsconfig command for details. This exe is available at :

C:\Program Files\Microsoft Team Foundation Server X.0\Tools\

X is your TFS version number. For example for TFS 2013 it would be 12.

The whole installation and deployment is very quick.

You get the complete control over options to configure something similar you do using wizard.


Cool feature and very – very handy for TFS Admin..