Tribute to my Powerful #India using PowerShell & .NET code
Happy Independence Day to all Indians across the globe!!

Tribute to my Powerful #India using PowerShell & .NET code
Happy Independence Day to all Indians across the globe!!

२६ नोव्हेंबर १९४९ रोजी बाबासाहेबांनी या देशाला संविधान अर्पण केले होते. त्यामुळेच हा आजचा दिन संविधान दिन म्हणून पाळण्यात येतो. त्यानिमित्ताने काल कुटुंबीय आणि मित्रपरिवरासोबत काही विचार मांडले. तेच आज इथे व्यक्त करत आहे.
खात्रीपूर्वक सांगतो की तुम्ही हे शब्द मनुस्मृती आणि संविधान आधीही ऐकले असतील.
कदाचित गेल्या चार ते पाच वर्षात तर जवळ जवळ रोज एकदातरी कानावर पडले असतीलच.
तेवढ्याच खात्रीने सांगतो की इतक्या वर्षात ऐकूनही आपण दोन्हींमधील एकातही खोलवर जायचा प्रयत्न केला नसेल.
मि तुम्हाला दोष देणार नाही, मिसुद्धा आपल्यातील एक आहे.
मध्यंतरी संविधान वाचायला घेतलं तेव्हा काही अजून समजून घेणं मला महत्वाचं वाटलं. त्यात मनुस्मृती चा संदर्भ येणं स्वाभाविक होतं.
आता दोन क्षण थांबुन विचार करा की इतक्या वर्षात का गरज भासली नाही? करून बघा तर…
एक संभावना अशी असेल की संविधान खरंच एवढं महान आहे आणि तेच स्वतंत्र भारताच सर्वात मोठं यश आहे. बाकी जे काही देशाने कमावलं आणि साध्य केलं ते संविधानाच्या पायावरच.
माझ्या मते हे खरं आहे, तुमचे विचार वेगळे असू शकतात आणि त्यात काही गैर नाही.
पण जगात परिपूर्ण अस काहीच नसतं, असं समजुया की काही त्रुटी असतील ज्या त्याकाळात समजायच्या राहून गेल्या असतील.
किंवा कदाचित असंही असेल की इतक्या वर्षात ह्या दोन मनुस्मृती विरुद्ध संविधान टोकांच्या संघर्षाची झळ तुमच्या दारात आली नाही किंवा आधीच्या सामाजिक सलोख्याने (तोही सहज मिळवला नव्हता), पुरोगामी नेत्यांनी, समाजकारण्यानी आणि राजकारणी लोकांनी ती झळ समाजात खोलवर पसरु दिली नाही.
कदाचित आताही ही झळ तुमच्या जवळ नसेल आली आणि देव करो येऊ नये…
पण स्वतःला विचारा की तुम्हाला ही झळ पोचणार नाही ह्याची तरी खात्री देता येईल का तुम्हाला?
कारण सध्या आजूबाजूला एवढं जात पात, धर्म, मंदिर, मस्जिद, धर्मसंस्था आणि त्यांच्या ठेकेदारांनी पसरवलेले विष वाढत चाललं आहे की ह्याच्या विळख्यात आपण कधी फसून जाऊ हे कदाचित जाणीव पण होणार नाही. हे थोडं नकारात्मक वाटेल
पण शाळेत आणि शाळेबाहेर जे काही शिकलो त्यातला एक धडा कधीच विसरणार नाही “भारत माझा देश आहे, सारे भारतीय माझे बांधव आहेत…” अश्या माझ्या बांधवांशी माझे मतभेद असू शकतात पण मनभेद ठेऊ नयेत.
इथेच खरी संविधानाची खरी शिकवण आणि ताकद समोर येते. विविधतेने नटलेल्या ह्या देशात मनुवादी विचारांनी बऱ्याच अमानवीय रूढी आणि परंपरा लादल्या होत्या. त्यात भर ब्रिटिश लोकांनी त्याच विविधतेवर घाला घालून देशावर राज्य तर केलंच पण पुढील अनेक पिढ्या देश त्यांतच गुरफटत राहील ह्याची व्यवस्था करून गेले. बरं ते तर परकीय होते त्यांनी त्यांचा स्वार्थ बघितला. इथे आपल्याच धर्तीवर असेच विविधेतच्या मुलभूत पायावर घाला घालुन काही मोजकेच लोक संपन्न होत गेले आणि त्याचेच प्रयत्न वारंवार होतात. जरा नजर फिरवुन बघा कोण आहेत हे लोक, कुठुन येतात हे विचार?
उत्तर नाही मिळालं तर हा फक्त 12 मिनिटांचा ( https://youtu.be/t1Epmn_aZ0I ) BBC Hindi मजकुर ऐका आणि मग हाच प्रश्न परत स्वतःला विचारा कदाचित उत्तर मिळेल.
त्याच बरोबर संविधान किती सर्वोच्च महत्वाचं आहे हे पण जाणीव होईल. त्याचं रक्षण करणं हे तर त्याहून जास्त महत्वाचं काम आहे.
ह्यात कोण एका जात, उपजात, धर्म, पंथ, पक्ष किंवा संघटनेला दोषी मानणं पण चुकीचं ठरेल. देशाचं नशीब की इथे शाहू, फुले आणि आंबेडकर यासारखे थोर लोक जन्माला येऊन गेले, त्यांच्या कामाने निदान बऱ्याच जातीयवादी रूढी मोडीत निघाल्या आणि देश पुढे सरकला.
पक्ष्यांच्या बाबतीत बोलावं तर गेल्या काही दशकात कमी अधिक प्रमाणात सगळ्या प्रमुख पक्षांनी संविधानाची पायमल्ली केली आहे. त्यातले काही संविधान तळागाळातील लोकांपर्यंत पोचवण्यात आणि समाजवण्यात अपयशी ठरले आणि त्यातले काही तर उघडपणे संविधान बदलणे, जाळणे आणि मनुस्मृती लागू करणे ह्याचा आग्रह खुलेआम आणि छुप्या रीतीने पण करतात.
हे कोण आहेत हे तुम्हाला चांगलं ठाऊक आहे अशी मि अपेक्षा करतो.
ह्या विचारांना आणि त्याचं समर्थन करणाऱ्या लोकांना बळ मिळू न देने हिच सर्वात पहिली गरज आहे संविधान रक्षणाची.
आता हळु हळु देशात निवडणुकीचे वारे वाहू लागतील, डोळे आणि कान उघडे ठेऊन लक्ष राहू द्या की कोण संविधानाची साथ ठेऊन बोलतंय.
कोण फक्त जुन्या रूढी परंपरा, पोकळ देशप्रेम, राष्ट्रवाद, पुतळे, प्रतिके, नामांतर, धर्मरक्षण ह्याच गाणं गातय
आणि
कोण सर्वशिक्षण, मूलभूत आरोग्य सुविधा, शेतकरी आणि त्यांचे खरे प्रश्न सोडवणे, रोजगाराच्या समस्या सोडवणे, धार्मिक सलोखा आणि शांतता ह्या पायावर राबवलेला सामाजिक आणि आर्थिक विकास साधण्याचा ध्यास दाखवतंय.
अश्या प्रकारचं समाजकारणातून राजकारण करणाऱ्या लोकांना बळ देणं ही सुद्धा संविधान रक्षणासाठी महत्वाचं योगदान होईल.
अजूनही बरंच काही करता येऊ शकेल, स्वतःला संविधानाप्रति थोडं जागरूक करा, समजलेलं इतरांना समजवून देण्याचा प्रयत्न करा आणि काहीच नाही जमलं तर इतरांना सर्वप्रथम मानवतेच्या नजेरतून बघणं कधीच सोडू नका, बाकी जात धर्म प्रांत देश हे सगळं नंतर ठेवा. बरंच काही लिहिता येईल, बऱ्याच लोकांनी लिहिलं सुध्दा आहे तेव्हा तूर्तास मि इथेच थांबतो.
पटलं तर अभिप्राय कळवा.
🇮🇳 सर्वप्रथम स्वातंत्रदिनाच्या हार्दिक शुभेच्छा 💐 🇮🇳 Happy Independence Day 💐
स्वातंत्र आणि विकास
Independence and WEkas
आपल्या संविधानाची सुरुवात एका महत्वपूर्ण वाक्याने होते WE THE PEOPLE आणि ह्यातला WE हा मला ठळक नमूद करावासा वाटतो.
लवकरच देशात निवडणुकेचे वातावरण तापायला लागेल. गेल्या 70 वर्षात सर्वच राजकीय पक्षांनी विकास (VIKAS) ह्या मुलभूत गरजेचं राजकारण करत स्वतःचा विकास करून घेतला. आणि आजही ह्याच मुद्द्यावर तुम्हा आम्हाला भुलवल जात.
गेल्या काही वर्षात ह्यात एक गोष्टीची प्रकर्षाने भर जाणवते. ति म्हणजे इंग्रजानी घातलेल्या पायांड्याची divide and rule. बरेच राजकिय आणि निमराजकीय संघटना लोकांना लोकांपासून तोडण्याचा (धर्मावरून, जातीपाती वरून, समाजवरून, खाण्यावरून, कपडे घालण्यावरून आणि बरीच अशी विविधता जि आपल्या देशाची खरी ताकत हाती, आहे आणि राहिली पाहिजे) प्रयत्न करताना दिसत आहेत आणि हे सगळं चालतं एका शब्दांमागे तो म्हणजे विकास (VIKAS).
मि तुम्हाला विनम्र आठवण करून देतो आहे की…
तेव्हा VIkasachi भाषा करत तुम्हाला फसवण्याऱ्या राजकारण्यापासून सावध रहा.
स्वतःमध्ये WEkasachi जाणीव जिवंत राहू देत, ति तुमच्या आजूबाजूला पसरवा, त्यासाठी तुम्ही लोकांना प्रेरणा द्या आणि उज्ज्वल भारतासाठी तुमचा हातभार लावा.
त्यासाठी देव आपणा सर्वाना सद्बुद्धी आणि लागणार बळ देवो हि देवाकडे माझी प्रार्थना.
मला असं वाटतं समाज म्हणजे…
समजलं तर खरंच सोपं आहे… पटतंय का?
I am sure there will be many like me who are in the process of mastering data science skills. Some might be thinking about picking this area for learning and possible future career options.
In the last 3 years of my Data Science journey, I came across many online resources. The ones which helped me during my learning are quietly sitting in my favorites/bookmarks. I thought it will be a good idea to start some posts to share my experience on self-taught data scientist. Its stiff learning curve specially if you don’t enjoy data also not so much interested into statistics or learning programming languages like Python or R. But it isn’t IMPOSSIBLE either. All you need is commitment to learn, experiences from people who pursued data science learning and some motivation along the way. I am still in the process of documenting my personal journey, hoping that it may help someone. On that note, till I write that post, I would like to share the discussion Can I become a self-taught data scientist? Hope it gives some idea to aspirants and may be some motivation too.
If you have already begun the journey I am sure you will be overwhelmed with various concepts and terms which one needs to be comfortably aware till you reach a your confidence level on overall data science topics. For someone like that having a data science glossary handy will definitely help revise and revisit during preparations. I came across following 2 resources and would like to share here with my readers,
And if you have fairly understood data science topics and wondering how the real process or projects can look like? The please do check out this Azure Machine Learning documentation on What is the Team Data Science Process?. I have come across many links, documents, papers on practical usage however this one is really well structured and yet simple to get the overall picture clear. In the future blog I will try to share other references appropriately.
My intent [ hopefully a new year resolution 🙂 ] is to begin sharing my thoughts on Data Science as regularly & frequently as I can. Having said that’s it for now. Stay tuned to my blog if you are interested learning my experiences with data science and related topics.
From Wikipedia,
Visual Studio Code is a source code editor developed by Microsoft for Windows, Linux and MacOS.
It includes support for debugging, embedded Git control, syntax highlighting, intelligent code completion, snippets, and code refactoring.
It is also customizable, so users can change the editor’s theme, keyboard shortcuts, and preferences.
It is free and open-source,although the official download is under a proprietary license.
Read more at https://code.visualstudio.com/docs
VS Code extensions let you add languages, debuggers, tools, add new features and themes to your installation to support your development workflow and experience.
Visual Studio Code has support for almost every major programming language.
You can find extensions to install using the Extensions View.
You can install extensions the ones you like, and disable extensions you don’t want to use all the time.
It’s already available on Windows, Linux and MacOS. So even if you move between environments and type of operating systems you can still get the same VS Code experience.
To make it even seemless it would be good if you can get the extensions also available when you move between different machines. Like the way you get your roaming profile and desktop experience on Windows operating system.
There are few extensions available to solve this problem. The two prominently found on marketplace are,
I wanted to try something simple as I often create virtual machines for testing, training labs.
I have already automated the VS Code silent install using PowerShell Remoting. To extend that effort, I wanted to install extensions as well, so that once my virtual machine(s) is/are ready I can start using VS Code with same experience as my physical laptop.
I added following lines of code which using VS Code command line and PowerShell remoing command (Invoke-Command)
# Setting up credentials for remote session on VMs from Host Machine. $hostCredential = New-Object PSCredential("MachineName\Administrator", ('mypassword' | ConvertTo-SecureString -AsPlainText -Force)) # Find the Visual Studio Code Extensions Installed and store in variable $vscodeExtensions = code --list-extensions # Install Desired Visual Studio Code Extensions # Using foreach to iterate through list of extensions in $vscodeExtensions. # Using Invoke-Command installs the extension on remote computer. Invoke-Command -AsJob -ScriptBlock { foreach ($vce in $using:vsccodeExtensions){ code --install-extension $vce } } -ComputerName MachineName -Credential $hostCredential -Verbose # Verify Visual Studio Code Extensions are installed on remote machine Invoke-Command -ScriptBlock {code --list-extensions} -ComputerName MachineName -Credential $hostCredential -Verbose
Notes:
Invoke-Command -AsJob -ScriptBlock {
foreach ($vce in $using:vsccodeExtensions){
code --uninstall-extension $vce
}
} -ComputerName MachineName -Credential $hostCredential -Verbose
Thats’s it for now. Thanks for reading!!!
“How do I stay in touch with PowerShell practice?”
Yes, this is one question is surely asked in all my PowerShell batches.
It’s obvious that people get overwhelmed with capabilities of PowerShell and wonder how do I keep practising. The biggest question is where do I start?
Well!!! PowerShell can answer that, PowerShell can solve that for you with following steps,
Lets try to understand more about the solution.

Different PowerShell Profiles
To create a profile for the current user in the current Windows PowerShell host application, use the following command:
if (!(test-path $profile)) {
new-item -type file -path $profile -force
}
You can use either of the following options at PowerShell prompt
notepad $profile
opens profile file in notepad to edit.
ISE $profile
opens profile file in PowerShell ISE (Integrated Scripting Environment) to edit.
help about_* |
ForEach-Object{
if (($_.Split())[0] -match 'about_'){
($_.Split())[0]
}
} |
Select-Object @{n='name';e={$_}} |
Get-Random |
Get-Help -ShowWindow
The above code will execute every time you open PowerShell.
Technically, - It pulls all the about topics - Filters empty line and header row - From the output and just get the topic name as about_[topic] string - Get-Random picks a random about_topic and passes to Get-Help - Get-Help opens a topic in new window.
Food for thought: If you want to plan focused learning in every week, then you can extend the code. Have a starting and ending date. At the launch check if current dates falls in First, Second or Third week or more. Depending on that Get a random topic from the focused bucket.
i.e. Below command will select one command randomly from module NetAdapter. This was you can focus only on commands from selected module/area of learning.
Get-Command -Module NetAdapter | Get-Random | Select-Object Name
*Replace the Select-Object with Get-Help and you will get the help file.
That’s it for now.
If you like this tip do share your feedback. If you try this and find valuable, then do write me to with your experience.
All the best and enjoy PowerShell Scripting!!!
My previous post Unattended Ubuntu 16.04 Setup Using PowerShell was about building Ubuntu Server Virtual Machine completely in unattended mode on Hyper-V. To do that we need at least a server operating system ISO file of particular Ubuntu version. I wanted to plug this script/functions in earlier script however to keep it simple, I didn’t do that. I will try to merge these script soon to come up one single script later.
In this post, I will share how to get a particular Ubuntu ISO file using PowerShell script. You can download the complete script from my github repository.
This script has 4 functions as listed below,
Since I have explained functions in script manual, I will just talk briefly about them here. For more information please refer the script documentation.
Get-AvailableUbuntuVersions – This is main function which gets called after running the script. This function reads http://releases.ubuntu.com/ and extracts the available version details. It then presents the available version to user and let user select from it.Using the choice of user it then calls Get-UbuntuDownloadUrl to build/identify the download URL for the selected version.
Get-UbuntuDownloadUrl – Generate the download URL. Based on the ubuntu version selected by user, this function generates the download URL for the iso and MD5SUMS file. Before exiting it calls the Save-UbuntuISO to start the download.
Save-UbuntuISO – Download the ISO file. This function gets called from inside Get-UbuntuDownloadUrl with 2 parameters download link and target location to save file locally. It uses BITS module to initiate, monitor and close the download of ISO file. Since the BITS job is set to Asynchronous this function will keep track of the progress of the job and ensure BITs transfer is resumed appropriately in case of failures.
Test-Checkum – Check the MD5Sum of the downloaded file. Once the download is complete, It gets the input parameters (sourceMD5SumsFileURL, sourcefile, targetFile) from Save-UbuntuISO for the iso file which is getting downloaded. It checks if the checksum matches and gives appropriate status message back to user.
Screenshots
Notes:
It was back in 2003-04 when I had worked on linux with RedHat 2x & 3x, Fedora 2x and Knoppix 3x. After that for almost a decade I didn’t use linux.
In last few years (since late 2014) I have been playing Ubuntu releases as part of my experiments, learning DevOps tools and data science topics.
I have another laptop at home with Windows and Ubuntu dual boot which I keep switching between. At times when I am travelling, my preferred option is using Hyper-v virtual machines.
In this post, I will share my recipe building Ubuntu 16.04 virtual machine in unattended mode using PowerShell script.
Last two months were exciting & pleasantly busy which took toll on my new year (2017) resolution to blog more regularly & consistently. It also broke the rhythm of reading books more often and as much as I can. To add to this my new kindle (Thanks to my wife Smita for an advance anniversary gift) was staring at me daily for attention :-). So… I decided to start reading something immediately.
I am currently working on revising my training content & demos for PowerShell DSC (Desired State Configuration). Sometime back I had heard recommendation from Jeffrey Snover @jsnover about this book titled The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win

(Blog post images copyright & courtesy IT Revolution Press @ http://itrevolution.com)
Having followed Jeffrey over these years it was easy decision to pick a book from my wish list. I was lucky to find kindle edition available at very good price. I grabbed it immediately and started reading it. After going through Wikipedia, the Introduction and Chapter 1, sounds like… its going to an interesting read for sure with some fictionalization of real world problems and solutions.
Hope to finish this soon to get myself a new knowledge/perspective on DevOps, Continuous Delivery and related areas. And of course pass that to the participants during my upcoming batches.
This PowerShell script can be used to download some of the common cloud (Azure and AWS) management tools available on Windows Platform.
Earlier I had seen Download and Install SharePoint 2013 Prerequisites on Windows Server 2012. However this technet script uses Start-BitsTransfer cmdlet from BitsTransfer module. I was toying with similar idea while working on my last workshop (Cloud Automation Using PowerShell) preparation. Since some of the URLs do redirect the Start-BitsTransfer wasn’t working for me initially.
I started with simple Invoke-WebRequest cmdlet and added second variation to handle redirected URLs and pass it to Start-BitsTransfer. So let’s go through the script and output for the both the approaches.
I am using Downloads directory to store the files. For demo I have created CloudTools folder inside. I already have AWS Tools for Windows PowerShell downloaded in the folder.

I am already into the working directory where the script is saved.

Started the script execution and you can notice it finds AWS Tools For Windows PowerShell and skips the download for it.

On my Windows Server 2012 R2 VM it created a CloudTools folder which was missing before download starts.

# The folder location where the downloads will be saved
$DestinationFolder = "$ENV:homedrive$env:homepath\Downloads\CloudTools"
If (!(Test-Path $DestinationFolder)){
New-Item $DestinationFolder -ItemType Directory -Force
}
Download is in progress…

Before this, I have created hash table with Download URL and File Name After Downloaded
# Specify download url's for various cloud management tools. Do not change unless Microsoft changes the downloads themselves in future $Downloads = @{ # Latest Azure PowerShell # Github: https://github.com/Azure/azure-powershell/releases/latest # WebPI: https://www.microsoft.com/web/handlers/webpi.ashx/getinstaller/WindowsAzurePowershellGet.3f.3f.3fnew.appids "https://aka.ms/azure-powershellget2" = "$DestinationFolder\Azure-PowerShell.msi"; # Latest Azure Storage Explorer "https://go.microsoft.com/fwlink/?LinkId=708343" = "$DestinationFolder\StorageExplorer.exe"; # Latest AZCopy "http://aka.ms/downloadazcopy" = "$DestinationFolder\MicrosoftAzureStorageTools.msi"; # Latest Azure CLI "http://aka.ms/webpi-azure-cli" = "$DestinationFolder\Azure-cli.msi"; # Azure Storage Emulator "https://go.microsoft.com/fwlink/?LinkId=717179&clcid=0x409" = "$DestinationFolder\MicrosoftAzureStorageEmulator.msi"; # Latest AWS Tools For Windows PowerShell "http://sdk-for-net.amazonwebservices.com/latest/AWSToolsAndSDKForNet.msi" = "$DestinationFolder\AWSToolsAndSDKForNet.msi"; }
Then I have a function which loop through the elements in downloads hash table using Invoke-WebRequest cmdlet,
function DownloadFiles(){
Write-Host ""
Write-Host "====================================================================="
Write-Host " Downloading Cloud Management Tools for Azure & AWS"
Write-Host "====================================================================="
$ReturnCode = 0
$Downloads.GetEnumerator() | ForEach-Object {
$DownloadURL = $_.get_key()
$Filespec = $_.get_value()
# Get the file name based on the portion of the file path after the last slash
$FilePath = Split-Path $Filespec
$FileName = Split-Path $Filespec -Leaf
Write-Host "DOWNLOADING: $FileName"
Write-Host " FROM: $DownloadURL"
Write-Host " TO: $FilePath"
Try
{
# Check if file already exists
If (!(Test-Path "$Filespec"))
{
# Begin download
Invoke-WebRequest -Uri $DownloadURL -OutFile "$Filespec" -ErrorVariable err
If ($err) {Throw ""}
Write-Host " STATUS: Downloaded"
Write-Host
}
Else
{
Write-Host " STATUS: Already exists. Skipping."
Write-Host
}
}
Catch
{
$ReturnCode = -1
Write-Warning " AN ERROR OCCURRED DOWNLOADING `'$FileName`'"
Write-Error $_
Break
}
}
return $ReturnCode
}
and the downloads completed.

First a function Get-RedirectedUrl to get redirected URL
# This function gets the end URL to avoid redirection in URL breaking the Start-BitsTransfer # Courtesy: http://www.powershellmagazine.com/2013/01/29/pstip-retrieve-a-redirected-url/ Function Get-RedirectedUrl { Param ( [Parameter(Mandatory=$true)] [String]$url ) $request = [System.Net.WebRequest]::Create($url) $request.AllowAutoRedirect=$true try{ $response=$request.GetResponse() $response.ResponseUri.AbsoluteUri $response.Close() } catch{ “ERROR: $_” } }
Then I have a function which loop through the elements in downloads hash table using Start-BitsTransfer cmdlet,
# Import Required Modules: BITS is used for file transfer
Import-Module BitsTransfer
function DownloadFiles(){
Write-Host ""
Write-Host "====================================================================="
Write-Host " Downloading Cloud Management Tools for Azure & AWS"
Write-Host "====================================================================="
$ReturnCode = 0
$Downloads.GetEnumerator() | ForEach-Object {
$DownloadURL = Get-RedirectedUrl -URL $_.get_key()
$Filespec = $_.get_value()
# Get the file name based on the portion of the file path after the last slash
$FilePath = Split-Path $Filespec
$FileName = Split-Path $Filespec -Leaf
Write-Host "DOWNLOADING: $FileName"
Write-Host " FROM: $DownloadURL"
Write-Host " TO: $FilePath"
Try
{
# Check if file already exists
If (!(Test-Path "$Filespec"))
{
# Begin download
Start-BitsTransfer -Source $DownloadURL -Destination "$Filespec" -DisplayName "Downloading `'$FileName`' to $FilePath" -Priority High -Description "From $DownloadURL..." -ErrorVariable err
If ($err) {Throw ""}
Write-Host " STATUS: Downloaded"
Write-Host
}
Else
{
Write-Host " STATUS: Already exists. Skipping."
Write-Host
}
}
Catch
{
$ReturnCode = -1
Write-Warning " AN ERROR OCCURRED DOWNLOADING `'$FileName`'"
Write-Error $_
Break
}
}
return $ReturnCode
}
while downloading the progress bar looks different,

I had deleted 2 files and ran the script again and following is the output,

If you want to know more about BITSTransfer & PowerShell you can refer this How to copy files with BITS using PowerShell
You can try both variation scripts by downloading from my (cloudscripts) github. I will be updating it later for more tools.
That’s it for now.
In my last post Login to Azure PowerShell Options talked about Azure. In this one I will share about AWS.
Before we begin it would be good to get familiar with basic AWS PowerShell and connectivity using PowerShell. Following resources are helpful.
Goal
I want to start using AWS Cmdlets as soon as I have PowerShell launched.
Solution I am using,
Few checks before updating Default Windows PowerShell Profile for Current User.

To find cmdlets which work with the AWS credentials
PS C:\> Get-Command *aws*cred*

To find cmdlets which work with the AWS defaults
PS C:\> Get-Command *aws*defa*

Just to ensure there are not configurations loaded by PowerShell Current User Profile
PS C:\> Get-Variable *aws*

I am expecting “StoredAWSCredentials” and “StoredAWSRegion” to be loaded and available and there is no file available at C:\Users\{UserName}\AppData\Local\AWSToolkit

To set credentials I have added following 5 lines into my PowerShell profile.

$awRegion = 'ap-south-1'
$awAdmin = Import-Csv -Path "C:\Users\{username}\OneDrive\Documents\Cloud\MyAWS\credentials.csv"
Set-DefaultAWSRegion $awRegion
Set-AWSCredentials -AccessKey $awAdmin.'Access Key Id' -SecretKey $awAdmin.'Secret Access Key' -StoreAs "MSAWPS"
Initialize-AWSDefaults -ProfileName "MSAWPS"
I have a credentials csv file in which access key and secret key for my admin account is stored. I am importing that from my onedrive path and using it in Set-AWSCredentials command.
Now launch PowerShell as Administrator and notice few changes. First there a file called RegisteredAccounts.json created at
C:\Users\{UserName}\AppData\Local\AWSToolkit

Open it in notepad or your favorite tool. I am using Visual Studio Code. The file looks like below,

This time some AWS configurations are loaded by PowerShell Current User Profile
PS C:\> Get-Variable *aws*

You can verify that credentials are loaded and available for use.
PS C:\> Get-AWSCredentials -ListProfiles

You can directly start using AWS cmdlets. Notice I don’t have to supply the credentials or profile as it’s already set and initialized as default.
PS C:\> Get-IAMUser
PS C:\> Get-IAMUsers

That’s it for now.
As you start doing anything advanced in Microsoft Azure you will need to use Microsoft’s PowerShell often. There are multiple ways you can login to Azure using PowerShell. In post I am only showing the new ways with resource management not the classic service management.
Option 1 : Log in to Azure with Login-AzureRmAccount
PS C:\> Login-AzureRmAccount

When I run Login-AzureRmAccount, I see a dialog like the one below, asking for credentials:

With successful login you can see the output

With this method you always have to enter your credentials before you start working with Azure cmdlets. This may be inconvenient if you work with multiple subscriptions.
Option 2 : Saving credentials with Save-AzureRmProfile
Make sure you are log in first
PS C:\> Login-AzureRmAccount
PS C:\> Save-AzureRmProfile -Path “C:\Folder\AzureProfile.JSON”

This will create the file AzureProfile.json, which contains all the login information for your Azure account.
Important Note: This file is a plain-text JSON file. If an unauthorized person gains access to this file, it would compromise your Azure account, and this person could use Azure resources on your costs.
Now you can login with this profile by just selecting the profile.
PS C:\> Select-AzureRmProfile -Path “C:\Folder\AzureProfile.JSON”

Since profile is tied up with subscription, you can work with only one profile at a time. If you want to work with multiple subscriptions simultaneously, you will need to save and select another profile.
Option 3 : Using PowerShell Profile
You can choose this while balancing security against convenience. Add following two lines of code into you PowerShell Profile.
$azCred = Get-Credential -UserName [email protected] -message "Enter Password For AzureAdmin" Login-AzureRmAccount -Credential $azCred
![]()
It will prompt only for password for your azure account and login.


Now start using Azure commands.

That’s it.
In case you missed it, very recently Microsoft went live with the Azure Active Directory PowerShell 2.0. You get more information at #AzureAD PowerShell V2.0 is now GA or Microsoft Goes Live with Azure Active Directory PowerShell 2.0
I had signed up for a cloud automation batch in last week of December 2016. I decided to incorporate new modules for demo. I wrote a following script to search for user’s role and group membership in single task. Currently the Azure AD Portal capability is in Preview Mode. The current set of commands like Get-AzureADUser, Get-AzureADDirectoryRole and Get-AzureADDirectoryRoleMember give the information however we get the only the object ids. To get the display names of users, roles and group names you can use logic in the script.
Click here to get the complete script at Technet Script Center Repository
If you are new to Azure AD, following resources can help you get started,
Last week I was in Chennai delivering a training on PowerShell, at a very short notice.
This was a very different experience. I was called to deliver a batch on Automating Administration with Windows PowerShell®
More than the content, the context was different this time. This was started by another trainer but the participants were not happy with the delivery. The requirement came to me on Monday evening after 7:00 PM. I was expected to start the batch on Tuesday morning at 9:00 AM. That was definitely tough. I spoke to the vendor requesting at least a day to understand something about background and the context, which he agreed to. There were other surprises as well
One, 5 days content squeezed to 3 days.
Two, client was in Chennai.
While the first one was not quite a surprise as most people are trying to get the staff back to production/delivery sooner. I made sure that the expectation was set so that there are no arguments later over the duration and overall feedback. Thankfully, the vendor team agreed to the assumptions to avoid feedback risk. Fundamental assumption was most of the participants are experienced server admins and they know some level of PowerShell already. Therefore, 3 days were planned to cover the agenda.
The second surprise however was a bit hard to manage as I had to start travel in few hours. Having managed to get ready, it was fortune testing time for me.
The flight was scheduled for a 10:30 PM departure. After getting on the runway the pilot decided to go back to parking bay. The aircraft had some technical glitches making it unsafe for take off. It got rescheduled to 12:30 AM and eventually I reached Chennai at 3:00 AM on Wednesday. I barely slept for three and half hours. The training was to commence at 9:00 AM and I reached at 8:20 AM to class room.
Participants were told 9:30 AM so I got some preparation time. That’s the only hour I got to plan my delivery to ensure that the training goes smooth. By the time everyone joined it was 9:45 AM and the training eventually started. I had to share the last evening experience with participants before setting the tone for agenda.
Introductions are generally 10 to 20 minutes but this time I extended to almost an hour. It was not just to get names, I wanted to understand there area of work, expertise and what they expect from the training. That conversation helped me so much to get an exact idea about what needs to be done to help them learn. The day one feedback was 4.8 out of 5.
After seeing that, all the stress taken 24 hours before was flushed. It also gave me a motivation to finish on a higher note (which did happen with similar feedback).
In my last 5 training’s, I was able to help the participant implement PowerShell learning to solve their existing problem. For some, it was a migration from the batch files to PowerShell and for some it was how to approach automation with PowerShell learning.
I repeated my practice of encouraging participants to talk about real-life technical issues they face. By the third day there was one participant who could change his two batch file approach to a single PowerShell script for their production. This was an acknowledgement for me that I delivered a successful training in true sense.
So my learning,
In the last post covered the initial steps for
After doing that I was curious to understand how the PowerShell ISE works on open source. Some answers are available at PowerShell Magazine
search for “tmux”
search for “ISESteroids 2.6.1.0”
I have not worked on both of them so skip commenting on it for now.
I had heard about Visual Studio Code and PowerShell language support. I found some hints in the post Microsoft has open-sourced PowerShell for Linux, Macs. Repeat, Microsoft has open-sourced PowerShell
So with above, I tried testing script editing capabilities with Visual Studio Code on Ubuntu 14.04
Step 1 – Go To Visual Studio Code On Ubuntu 14.4 (https://code.visualstudio.com)

Step 2 – Download the .deb


Step 3 – Install Visual Studio Code
sudo dkpg –install ~/Downloads/code_1.4.0-1470329130_amd64.deb


Step 4 – Launch Visual Studio Code


Step 5 – Install the Extension For PowerShell



Step 6 – Enable PowerShell Extension

Step 7 – Restart Visual Studio Code

Step 8 – Launch Visual Studio Code and Save the Untitled file as Test1.ps1 file

Step 9 – Write PowerShell Commands. You will notice intellisence support available.


Step 10 – Go to Menu > View > Integrated Terminal (shortcut cntl + `)
It opens the bash terminal by default

Step 11 – Change Default Terminal from Menu > File > Preferences > User Settings
You will notice settings.json is empty. Whatever settings you add will override the default settings. I added entry to point to PowerShell.


Added following lines of code
//The path of the shell that the terminal uses on Linux.
“terminal.integrated.shell.linux”: “/opt/microsoft/powershell/6.0.0-alpha.9/powershell”

Step 12 – Restart Visual Studio Code
Step 13 – Go to Menu > View > Integrated Terminal (shortcut cntl + `)
It opens the PowerShell terminal by default now.

Step 14 – Type $PSVersionTable in console (terminal) and enter

Step 15 – In the editor type Get-ChildItem and Hit F8 key
It will run the command and produce the output but you won’t see it.
Step 16 – To see the output Go to Menu > View > Output

So Lessons Learnt are,
That’s it for now. I will continue exploring capabilities over next few days, So stay connected.
PowerShell is now available on Linux and Open Source.
Since last one year I have been doing regular batches on PowerShell. So moment this announcement came I thought of trying hands on it. So here are few baby steps into PowerShell on Ubuntu 14.04 VM.
Step 1 – Downloaded Package
https://github.com/PowerShell/PowerShell/releases/tag/v6.0.0-alpha.9
Step 2 – Installed Dependencies
sudo apt-get install libunwind8 libicu52
Step 3 – Installed PowerShell Package
sudo dpkg -i powershell_6.0.0-alpha.9-1ubuntu1.14.04.1_amd64.deb
Step 4 – Launched/Entered into PowerShell Console
type Powershell at terminal
type $PSHome
type $PSVersionTable
Step 5 – Run PowerShell Commands
Get-ChildItem
Get-Process
$PROFILE
Get-ExecutionPolicy
Get-Module
Get-Command
Get-Command | Measure-Object
Get-Help
Exit
Additional Reading
My data science journey started with the interest of learning different data visualization techniques. From the start of my career I had an influence of Concept Visualization. In the recent times, I even experimented Infographics into my resume. If you search on visualization on internet there will be plenty of resources around information graphics, presentations etc. I never thought there will be a book primarily on data visualization techniques (and not on the tools for graphics visualization). I picked this book from my library the moment I saw statistics in tagline. After reading I totally agree that it really is a guide as it states.
http://www.isbnsearch.org/isbn/9780470944882
So how did this book help me !!!
So to conclude, this book not only helped me learn Data Visualization. This became catalyst in my data science study, it’s the prime motivator behind my Python & R learning, and will remain guide in my future data visualization assignments. Thanks Nathan Yau for writing this wonderful guide.
To know more about book, you can check out at http://book.flowingdata.com/ or see a short video introduction of book at https://youtu.be/mkEXx7sDXAI
Lastly, stay tuned for my upcoming blog posts on learning used by me outside the datasets from this book.
Today morning, looking at the calendar my daughter asked me what’s this day Guru Purnima? Thinking what should I explain this 6 year old. So I spontaneously said guru is someone who teaches us. She was immediate to react oh its teacher’s day!!!. I was not in position to say clear Yes Or No. Somehow in the school time rush she forgot confirming but that kept playing in my mind.
While I was in that thinking mode I got a call from Ulhas Jogale. He wished me Happy Guru Purnima. It’s not the first time that he had called me. For last 12 years he calls me on this day without fail. I am really touched with his gesture. His tenacity to remember & call me every year even when my numbers were changed, struck me. I do have gurus but I was never so punctual in calling and thanking them. I just kept my feeling inside me about them. Ulhas’s call helped me find answer and made sure I don’t waste any opportunity now to thank my gurus.
Teachers do great job not questions about it. Teachers day is apt to say “Thank You” for their contribution.
So here is my realization, “Every teacher can’t be Guru but every Guru is definitely a teacher.” I am not claiming only I discovered this, I am just saying I realized it now in my life. I can’t explain this to my daughter at her age, hope she will discovers as she grows.
I did commerce graduation from Mumbai university. During 2001 to 2005 I worked for a company called Synergetics. My first job started here. I met some of the brilliant teachers (for me the best teachers) in Indian Software Industry. After a year of work as technical coordinator I was given more challenging responsibilities of managing IT system of the company. Of course for on the job learner it was definitely a lot of work. That’s when I got introduced to Ulhas Jogale. He used to work as office assistant for operations and finance teams. He didn’t have strong financial or educational background but he was very sincere with his work. In his spare time he used to stop by me for quick chats on latest news on politics, fun events & being Sachin Tendulkar fan we used to chat on cricket a lot. After sometime he started helping me in moving systems, providing helping hand in network setup etc. Sometime it was instructional from his managers and sometime he will voluntarily come forward. That’s when I realized he wants to learn about computers more. He knew basics or connecting, starting computer but not much beyond that. So while getting helping hand from him I started teaching him small things about operating computer and using MS Office applications. Later he started exploring on his own and used to get his understanding corrected from me. This went for months and he became more confident on basic operations. This had given him good name in the company as people started appreciating his work beyond his routine stuff. Then came a time he was getting work to burn the course content CDs for training programs. I am not very sure if he was getting paid for that extra work as well. More important for me was that his value to the company had increased and so does his confidence. Since then every Guru Purnima he started wishing me. I still don’t know what he exactly feels but hearing Thank You from him make me happy.
I realized why I can’t Thank my gurus who has changed my life over these years. Parents are first gurus, so how much ever I thank will be less.
For the others I immediately messaged Sanjay Vyas, Amol Vaidya & Anurag Dwivedi.
Why Sanjay Vyas – After my B.com graduation I was little frustrated as I was not getting a good job. I had done software diploma but still I was not lucky. I had decided to leave Mumbai if i don’t get job by December 31, 2000. Only my family knows about this. My father & elder brother convinced me not to. Somehow I agreed to try once more in next few months. Come January 2001 I saw ad in Times of India which I still have laminated with me as cherisable career moment. Synergetics have given job for me but Sanjay Sir was the one who really saw true potential me. My job was to process training feedback in excel files and prepare reports. Sanjay sir made me learn programming, computer hardware and so many new things about technology. In the initial year I would have hated him like anything but I never kept anger inside me. I kept doing what he wanted me to. His guidance and support on exploring technologies changed my way of thinking. It was those 4.5 years with him set me for big challenges and helped me work for the world’s best software company (Microsoft) in past few decades. On my resume 10 years at Microsoft is more visible but at my technical soul it’s those 4.5 years with Sanjay sir are more valuable as they give me confidence.
Why Amol Vaidya – Sanjay Sir taught me how to explore and learn new technologies. It was Amol who helped me keep that learning simple & meaningful. His guidance over the years has helped me untangle the confusions and make every learning effort meaningful. Without his guidance I would have never thought of delivering trainings.
Why Anurag Dwivedi – Back in 2007 when I was transitioning from phases in personal & professional life, he came into picture. After spending 2 years in Microsoft I was looking for next growth chapter. I knew I was not perfect in few areas. Two such was Reading Business and Leading People to grow. He became my manager and guided me like Guru . During 2008 to 2011 was by far the best time I had in Microsoft. I learnt many new things, contributed effectively to the business. I will always consider Anurag the guru who ignited my leadership skill and helped me understand management skills.
So you see none of them are my teachers but they turned out gurus who changed my professional life.
Someone may ask how can you have more than one gurus. I feel what if all them help me discover myself, my potentials and achieve positive things in life, the number doesn’t matter.
To close this post, I wish all my gurus Happy Guru Purnima & pray god to bless them with happiness & prosperity in their lives.
I have always enjoyed working with data specially data visualization. Before leaving my job at Microsoft, I was involved in project (more than one year duration) where analyzing data was crucial for planning the list of applications & desktops for migration. I was involved in data mining, scrubbing, analyzing & reporting information to the customer and team. Back then I was enjoying my work but never thought of taking to next level. Then about 7-8 months back I decided to pursue data science. After initial browsing/searching on internet I was lost because of the overwhelming amount of data about it. I was not sure where to start, how the market & jobs look like, what are the existing skills I can use, how should go about filling the skill gaps and so on…
This book came to me just the right time (sometime in April 2015).
http://www.isbnsearch.org/isbn/9781935504696
Without this book, I would have lost the interest but this book just brought me back on track with required focus. Journey towards data scientist is still long. From here on if I lose the way, it will only be my fault by not persisting the further practice and learning curve. But if I will be successful in pursuit of becoming Data Scientist, the major credit will go to this book and the author “Zacharias Voulgaris”
So here is what I liked about this book a lot,
I have only 1 suggestion. There is lot of text which is expected on such crucial topic and lets not expects shortcuts for that. However some good visuals can make lot of difference in keeping reader engaged and interested.
Conclusion – If you want to put your data science learning on fast track, go grab this book.
After almost 10 years I left my job at Microsoft in January 2015. I told myself that I should use the time between jobs to update myself on list of topics. Reading the books was something I had missed (being self critical “ignored”) over last few years. I had made new year resolution to get back in reading again so pulled out stock of books collected in last few years but never looked into them thoroughly. Read few books in last 2 months and really enjoying them.
Finished reading one such book this week “Data Modeling Made Simple: A Practical Guide for Business and IT Professionals, 2nd Edition”
http://www.isbnsearch.org/isbn/9780977140060
Brief context before talk about the book and experience,
In summary last 14 years of IT I was always involved in data discussions. Most of my career boosting events have achievements around data driven output delivered by me to the business.
Though I knew basic SQL, I was still thinking that I don’t know much about the data modeling. Whenever and whatever little I did, was on the fly with some logic for the end goal in mind. For the majority of situations my solutions did what it supposed to do and helped during the course.
Now looking back after reading the book, I feel I could have done even better if had read this book earlier. Never mind there is always an opportunity to implement your learning into work. In fact, there is question in the Chapter 16 “How do I keep my modeling skills sharp?” And Steve answered, “Look for every opportunity to model or participate in the analysis and modeling process, even outside the traditional roles of a data modeler”
I am short of words to explain my happiness about rediscovering (something I knew little, interested in building more on it) with such clarity now.
To make it specific here is what I like about the book,
So anyone interested in learning or enhancing Data Modeling, I strongly recommend reading this for sure.
The WordPress.com stats helpers prepared a 2014 annual report for this blog.
Here’s an excerpt:
A San Francisco cable car holds 60 people. This blog was viewed about 290 times in 2014. If it were a cable car, it would take about 5 trips to carry that many people.
Click here to see the complete report.
Personally I am very happy with 2014. There were several moments of personal & professional learning adding to my maturity.
I am excited and looking forward to 2015. It brings me 365 more opportunities to learn new things & share my experiences with others.
Wishing a very happy & prosperous new year to all my friends & blog readers. Take care & have fun-filled life ahead.
A month ago I wrote about My SharePoint Revision. Later I continued my learning on latest version. As I was learning new things I thought of updating the table created earlier. You can find them highlighted below. Out of all the new things I like following 5 the most,
|
Letter |
Component / Concepts / Dependencies / Terms. |
|
A |
ASP.NET, Authentication, Authorization, Apps, App Parts, App Development, API, AJAX, Application Server, Active Directory, Analytics, Access, Architecture, ADFS, Application Pools, App Authentication, AppFabric, Alternate Access Mapping |
|
B |
Blog, BLOB, Breadcrumb, Business Intelligence, Business Data Connectivity, Backup, Big Data, Browser Support, Branding |
|
C |
Cloud, Content Database, CAML, Content Types, Content Management, Crawl, Columns, Calculated Formula, Content Editor Web Part, Community Sites, Community Portals, Cross-site Publishing, Category Pages, Content Search Web Part, Continuous Crawl |
|
D |
Databases, Document Sets, Document Library, Deployment, Device Channels, Decoupled Pivot Charts & PivotTable Reports, Distributed Cache |
|
E |
Event Handlers, Enterprise Search, Excel Services, Excel With Power Pivot, Event Viewer, External List, eDiscovery |
|
F |
Foundation Services, Farms, Features, Forms, Forms Authentication, Federation, Friendly URLs, Faceted Navigation, |
|
G |
Global Deployment, Groups, GAC, Gatherer, Geolocation Field Type |
|
H |
HTTP, HTTPS, Homogenous & Heterogeneous Farms, Help, Health Analyzer Rules |
|
I |
IIS, InfoPath, Index Server Role, Indexer, Internet Of Things, Integration, In-Memory BI Engine (aka Vertipaq), Image Rendition |
|
J |
Jscript, JSON |
|
K |
Knowledge Management, Keywords, |
|
L |
List, Library, LDAP, Locations |
|
M |
Metadata, Master Page, Meeting Workspaces, Mobile, Managed Navigation |
|
N |
Network, Navigation |
|
O |
On Premise, Office 365, Optimized Mobile Browser Experience, OAuth, OData, OpenSearch |
|
P |
Portal, Permissions, Project Management, Project Server, Performance Point Services, Protocol, Push Notifications, Power View Add-in For Excel, PerformancePoint Services Dashboard Migration, Promoted Results (formerly called as Best Bets), |
|
Q |
Queries, Quick Launch |
|
R |
Restore, Recovery, Records Management, Rights Management Protections, Refiners |
|
S |
Security, Search, Site Collection, Site, Social, SQL Server, SQL Reporting Services, SharePoint Designer, Solutions, Search Result Preview |
|
T |
Team Site, Topology, Tools, Timer Jobs, Troubleshooting, TCP/IP |
|
U |
Users, User Profiles, Upgrade Paths, UDP |
|
V |
Views, Visual Studio, Visio Graphic Services, Variations |
|
W |
Windows Server, Web Server Role,Web Gardens, Web Page, Web Part, Web Service, Workflow, Workflow Manager, WebDAV, |
|
X |
XML, XSLT |
|
Y |
Yammer |
|
Z |
Zones |
I have been reading about Internet of Things (IoT) for quite a while now. It is a fairly complex subject due to its scope and overall impact. In this first post my attempt is to explain the concept of IoT in a plain and simple language. Hope it can help those who (like me) wants to start from simple and build more understanding in future.
The Internet is a large group of computers that are connected to each other. Going by this simple definition, IoT is something where anything and everything is connected over the Internet. This can include all living and non-living things having computing chips or processors either connected or inbuilt (embedded) into it for controlling and automating its functionality. Such things connect to the Internet using existing Internet connectivity mediums such as wired, wireless, or 3G/4G cellular connections.
IoT has its roots in the way computers and Internet have matured over precisely last two decades. It is not something entirely new rather it is the output how the computers and Internet had pushed all of us to automate and innovate by connecting things.
IoT is already into our lives to some extent and continues to become a significant part moving ahead. Ask the following questions to yourself. Then extrapolate that with population of the world. Even if we assume digital literacy around 40%, you will understand that we are already on the path towards IoT.
1. Air Conditioner, 2. Air/Water Heater, 3. Car Audio, 4. Coffee OR Cold Drink Machines, 5. Desktop,
6. eBook Readers, 7. Gaming Console, 8. Gym Equipment’s, 9. Laptop, 10. Microwave,
11. Printer, 12. Refrigerator, 13. Remote Controls 14. Scanner, 15. Shaving Trimmer,
16. Smart Phone, 17. Tablets, 18. TV, 19.Various Smart Cards, 20. Washing Machine, 21. Wi-Fi Or Wired routers,
1. Debit/Credit Cards, 2. ATM Machine, 3. Point Of Sale Devices, 4. Bar Code Scanners
5. Fingerprint Scanners, 6. Surveillance Cameras, 7. Fuel Pumps, 8. Electricity
9. Solar Powered Devices, 10. Toll Booth, 11. Radio/Cellphone Towers, 12. Public Transport Vehicles
13. Car Engine, Batteries, 14. Weighing Tools, 15. Fire Extinguishers, 16. Motion Sensors, 17. Industrial equipment(s) And many more you can think of…
The following can help you visualize evolution and how big IoT will be,
To understand beyond these numbers lets understand following,
If you have read till here I hope you can visualize what IoT is & will be soon. To keep it simple I am deliberately stopping here.
In future posts I will try to extend further & share my additional learning.
Free Icon Courtesy www.iconpharm.com
Let me begin Looking Back…
SharePoint Products & Technologies have biggest influence on my career & personal growth. Thanks to my Technology guru Sanjay Vyas, I had opportunity to work very early on SharePoint during late 2001. At that time the beta release was called “Tahoe”. The final product came out as SharePoint Services & SharePoint Portal Server 2001.
Since 2001, I worked very actively hands-on on all versions (2001, 2003, 2007 & 2010). I also had chance to work on other related products like SQL Reporting Services, Fast Search For SharePoint 2010 and few others. I did different roles & grew professionally,
Looking forward…
During 2011 till now, I gave myself time to gather other experiences (non-technical) by testing my comfort zone outside SharePoint. In that pursuit I stayed deliberately away from hands-on SharePoint 2013 work & experiences. Now that I have gained those intended experiences, I thought of revising my SharePoint knowledge.
I decided a timeline for 7 days & at least couple of hours every day. Of course it was tough to put entire revision in that short span. I had to try something & I did following,
|
Letter |
Component / Concepts / Dependencies / Terms. |
|
A |
ASP.NET, Authentication, Authorization, Apps, App Parts, App Development, API, AJAX, Application Server, Active Directory, Analytics, Access, Architecture, ADFS, Application Pools |
|
B |
Blog, BLOB, Breadcrumb, Business Intelligence, Business Data Connectivity, Backup, Big Data, Browser Support |
|
C |
Cloud, Content Database, CAML, Content Types, Content Management, Crawl, Columns, Calculated Formula, Content Editor Web Part |
|
D |
Databases, Document Sets, Document Library, Deployment |
|
E |
Event Handlers, Enterprise Search, Excel Services, Excel With Power Pivot, Event Viewer |
|
F |
Foundation Services, Farms, Features, Forms, Forms Authentication, Federation |
|
G |
Global Deployment, Groups, GAC, Gatherer |
|
H |
HTTP, HTTPS, Homogenous & Heterogeneous Farms, Help |
|
I |
IIS, InfoPath, Index Server Role, Indexer, Internet Of Things, Integration |
|
J |
Jscript, JSON |
|
K |
Knowledge Management, Keywords, |
|
L |
List, Library, LDAP, Locations |
|
M |
Metadata, Master Page, Meeting Workspaces, Mobile |
|
N |
Network, Navigation |
|
O |
On Premise, Office 365 |
|
P |
Portal, Permissions, Project Management, Project Server, Performance Point Services, Protocol |
|
Q |
Queries, Quick Launch |
|
R |
Restore, Recovery, Records Management, |
|
S |
Security, Search, Site Collection, Site, Social, SQL Server, SQL Reporting Services, SharePoint Designer, Solutions |
|
T |
Team Site, Topology, Tools, Timer Jobs, Troubleshooting, TCP/IP |
|
U |
Users, User Profiles, Upgrade Paths, UDP |
|
V |
Views, Visual Studio, Visio Graphic Services |
|
W |
Windows Server, Web Server Role,Web Gardens, Web Page, Web Part, Web Service, Workflow, |
|
X |
XML, XSLT |
|
Y |
Yammer |
|
Z |
Zones |
At the end of week I felt happy about the amount of stuff I could revisit with this method. Some people may have already tried this kind of approach so I am not claiming something new. However I do want to share that this approach helped me not only revise SharePoint but also assess so many other things I knew & worked during my career till date.
It’s good to have this inventory handy to build focus areas, strengths & areas to be improved up on.
In the last post shared my lessons learnt after clearing PMP in first attempt. Today I will share how I managed to connect 5 Process Groups, 10 Knowledge Areas and 47 Processes.
Who it may help…
This post may not help much for those who have been practicing project management for some time. With the practical experiences in the kitty one can relate PMBOK comparatively easy.
Why I am sharing this…
I had taken PMP prep workshop on PMBOK 4th Edition, didn’t work officially as project manager, had a gap in studies and by then PMBOK 5th Edition was out. I read PMBOK but while revising I struggled to connect 5 Process Groups, 10 Knowledge Areas and 47 Processes. This is very critical because you can’t just focus on one of them if you want to clear the exam well. You may have interest areas or hands on experiences in one or more knowledge areas of project management. However unless you don’t connect all the areas and processes the exam preparation will be tough.
Understanding complete picture of 5 Process Groups, 10 Knowledge Areas and 47 Processes flawlessly was a challenge for me. Knowing Processes is important however knowing exact name (PMIisms) as per PMBOK is critical. Exam may have question where multiple answers may look correct but as per PMIisms there will be only one and it can trick you. I wanted to tackle silly mistakes effectively.
What was the need?
I was unable to recall so much text required to revise concepts, knowledge and question & ways to answer. This may not be the case for some people. However those like me can try what helped me overcome the problem.
How it was achieved
Thanks to my colleague Amit Shahi for starting interactive discussion over a break. A discussion which later become useful tool for me to overcome the challenge.
One day while discussing general things we started conversation on PMP Preparation & PMBOK 5th Edition. He grabbed the markers and started whiteboard interaction.
We repeated this 4-6 times with gap of few days. Around 3rd attempt we started getting all bang on target. Later we both engrossed into respective projects and could not repeat this together.

I continued to practice the chart. The plan was to use first 15 minutes putting the chart on rough sheet as ready reckoner throughout 4 hours. It was also recommended in couple of forums & books for managing exam time.
For almost month before exam, I practiced to put down the chart on paper within 8-10 minutes. Everyday morning the first thing I used to draw is chart & formulas before starting any other work. This proved very good revision at the start of the day when attention in high before diving into other routines. It also helped retaining the knowledge well.
I managed to reach 8 minutes during practice however during exam it took me 10 minutes. I was still within time J.
I practiced drafting important formulas for 7 minutes and managed to do it in 6 minutes during exam. So within first 16 minutes I had process chart & formulas ready for reference.
Here are the picture of my rough sheet at home,



Initial target was to get the PMIisms right but in the end the exercise proved much more valuable than that.
Warning not to rely only on this tip
Only rehearsing this may help you say/write all the PMIisms correct however that’s not enough. Make sure you get good understanding of Knowledge. Use this as supplementary to revise Process Groups, Knowledge Areas and Processes in quick time. This can be helpful to reduce time in reading content all over again and still be on track with revision during your busy work & life schedules.
Wish you success in clearing the exam well.
On Sept 25th 2014 I cleared my PMP certification. I was happy at the biggest & valuable education milestone for me since I completed my graduation in 2000.
The first time I thought about getting certified was in Nov 2010 when I enrolled myself to get 35 PDU from the PMBOK 4th Edition preparation workshop. It took 4 years & self-study on PMBOK 5th edition for me to achieve the milestone.
In terms of timelines I was disappointed however after closely evaluating lessons learnt I am happy. During these 4 years,
|
Worked on multiple customer projects |
Fundamental requirement to apply & be eligible for the PMP certification |
|
Worked as Process Lead |
Enhanced my planning skills, stakeholder management skills, team management skills and performance evaluation and reporting skills |
|
Worked as full time pre-sales SME |
Improved my understanding on estimation & importance of having right assumptions and estimates in place. PMP exam do check understanding on estimation and tool & techniques for estimation. |
|
Volunteered as Project Manager for Community Project |
Project didn’t succeed as expected however I had hands on experience in driving Idea to Reality and understood my areas for improvement. Also helped me understand how project management fundamentals could have increased the success of the project. |
All the experiences helped me understand PMBOK 5th Edition concepts well enough to clear the exam.
My initial scope/target was to get the certification as soon as possible. However in those 4 years, in kind of rolling wave learning (like rolling wave planning) the certification became only the milestone.
Knowing & Mastering Project Management become the target by understanding PMBOK.
Here is my attempt to share the lessons learnt. I tried putting in 9Ws to understand easily,
|
Why |
Do you need certification |
Is it Certification Or do you want to enhance your knowledge supported by certification. The choice is personal and I don’t want to make any recommendations. Whatever is applicable in your case try be clear. Seek mentor if you are unsure. |
|
What |
Drives your decision to take PMP exam. |
A mandate from work policies, A personal goal for career enhancement, and Its company sponsored certifications etc. This will help you stay motivated when stuck with obstacles during preparation. |
|
When |
Do you want to complete it? |
In my case it was June to Sept 2014.Target will help focus your energies to prepare well. At high level you need to target following targets,
|
|
Which |
Areas of project management interests you. |
All the areas are important however knowing your own strength will help you accelerate learning in some of the knowledge areas. Remember your school days, you would have tried to score the most in favorite subject right. |
|
Where |
You can find help |
If you have taken PMI membership required help is already available for members. Also a lot of help is available on internet however knowing your sources of help will reduce time in struggling to find right help when you are stuck with understanding particular knowledge area, tools & techniques. Find a mentor if available, If you have buddy utilize it as collaborative learning can give mutual benefits. |
|
What |
Book to refer |
I referred only following books, PMBOK 5th Edition. PMI Members get to download soft copy as part of membership. Make sure you read it at least once very thoroughly. I was told by people to read at least twice. Honestly I could not complete second round for all topics. I read topics which were not clear to me like Time, Risk & Procurement Management.
PMP® Exam Prep Products – Eighth Edition Published by RMC Publications, Inc. http://www.rmcproject.com/certifications/PMP_HowToStudy.aspx Personal opinion this book has more than sufficient knowledge about project management. I personally felt overdose in the first reading. Don’t lose patience while reading long chapters else there is danger to get defocused/interested. Based on your convenience read it with decent breaks to ensure you remain interested. This book can be your ultimate source to get clarity on most critical concepts for the exam preparation.
The PMP® Exam: How to Pass on Your First Try http://www.velociteach.com/resources-2/the-pmp-exam-how-to-pass-on-your-first-try/ Personally I loved this book. While walking through the office library I came across this one. Found very interesting for the cover page. I was able to finish this book in close to 2 week. Completing this book was the turning point to my preparation. Easy and small chapters helped me understand required content well. The tests after the chapters helped gauge my strengths and weaknesses. After completing this book I read the above to resources to work on weak knowledge areas. It helped me immensely to grasp the content. |
|
What |
Tests to try |
|
|
Work Out |
Timelines |
Plan daily, weekly & weekend study hours according to your workload and work-life balance. For 2 months, I studied at least 3-4 hours a day 8 hours on weekend. Of course I had to stretch to meet work-life however it was worth by planning time well. |
|
What Next |
After you are certified |
Have a plan to retain the PMP credentials. You will find guidance on how to retain it by submitting required PDUs in 3 year cycle. |
Most importantly, BE COOL, CALM & COMPOSED. There are so many things we can’t control.
I was struck with severe backache. I was forced by doctor to take complete rest over the only weekend just before my exam. For a moment I was panic. Doctor helped with medicines & my lovely wife helped me defocused from stress and worries about the preparation time lost.
Please drop your comments if you find this post helpful to begin your exam preparation. If it works I will be glad to know about it.
All the best.
It’s almost a decade when I last posted my previous blog post at http://windowsexplorer.blogspot.in/
I am bit disappointed that I stopped blogging for so long.
Things have changed a lot in technology, my career and experiences so I am not trying to continue with same blog site.
With this fresh start I wish to continue to share my knowledge, experiences, lessons learnt.
You must be logged in to post a comment.