Skip Ribbon Commands
Skip to main content

View blog authority

This is my website for sharing my knowledge of SharePoint and other Microsoft technologies with the world.

 Most Recent 3 Posts - For All Posts, Click Here

Why I like CloudShare


I promised Chris Riley (@HoardingInfo) that I would write a blog post about how and why I use CloudShare.  As a part of one of their community programs, I get a complimentary license for their ProPlus plan, which I find very handy.  That’s the disclaimer – I have a financial incentive to write this post – that free CloudShare license.

I’ve used CloudShare in two scenarios. One was for a project for a customer. We were building a SharePoint intranet.  We needed to quickly spin up SharePoint development environments so the developers on the project team could have independent SharePoint environments in which to write and unit test code.  By using a CloudShare template for a single server SharePoint farm, and then connecting the VM to the Team Foundation Server (TFS) instance we were using, we were able to get from “never used CloudShare before” to “I have a development farm and the latest source code, and the project successfully builds in Visual Studio” in under an hour.  This way, the client didn’t have to invest in additional on premise physical or virtual machines when new staff joined the dev team.  They did choose to have an on premise staging farm, and an on premise production farm.

If we would have had to build our own development farms, it would have taken hours to set up each farm, not including time to install Visual Studio.

The other scenario I use my CloudShare VM for is for when I give my introductory talk on PowerShell for SharePoint. I’ve given this talk 3 or 4 times in the last year.  I don’t want to spend a lot of time setting up my farm.  I need a SharePoint 2013 VM that I can access quickly.  I found running HyperV on my laptop was just not fun – I can’t justify the cost of adding a lot of ram, I have to swap out the CD player for the SSD drive, and if I really want optimal performance, I need to reboot into the VM rather than run it as a guest OS.  With CloudShare, I can stay in my Windows desktop where I have all my daily productivity tools, and just access my CloudShare VM via browser or Remote Desktop session. I can focus on setting up my demos, not setting up the farm underneath them.  Of course, I do require internet access, but that’s pretty ubiquitous. As a presenter, I usually find that the presentation podium has a wired internet connection, so I don’t have to worry about the vagaries of wifi at conferences.

Another nice thing about the CloudShare Vm I use for my PowerShell+SharePoint lectures is that I can share it.  I can provide a link and people can explore a copy of the VM for a limited time.

So there you go.  CloudShare is great in those scenarios.  If you are doing team server-side development with SharePoint, and you don’t want to deal with the infrastructure of each developer having their own farm, CloudShare is a great way to go.


# Comments:
Modified: 2/25/2014 9:28 PM
Bill English coming to town August 22, 2013


Bill English, renown SharePoint MVP, and organizer of the SharePoint Best Practices Conference, will be speaking to CSPUG this Thursday night at the Microsoft office in the Loop.

Be there!

There are also two other big SharePoint events in Chicago in the next few months:

SharePoint Fest Chicago is October 7-9 in Rosemont.  Jack Fruh (one of the organizers of SharePoint Saturday Chicago Suburbs) and I  will be delivering a half day PowerShell workshop on Monday, and I’ll be speaking on PowerShell on both Tuesday and Wednesday.

Also at SharePoint Fest Chicago, Monday night October 7th, we will have our October CSPUG meeting featuring a discussion panel of some of the speakers from SharePoint Fest! 

To save 15% when attending SharePoint Fest, use code CSPUG when registering at

Then Saturday November 2, 2013, SharePoint Saturday Chicago (City edition) will be at the Hard Rock Hotel.

See you there!

# Comments:
Modified: 8/19/2013 12:07 PM
Using PowerShell and the .NET CSOM to Query SharePoint 2013 Online


Hello from the Microsoft SharePoint Conference 2012!

One of the things I wanted to do while here was learn how to use PowerShell to interact with SharePoint 2013 remotely.  Now remotely can mean two separate things here: 1) Using PowerShell remoting to send POSH commands to a server to be run locally, or 2) using remote APIs (in this case the .NET client side object model, aka .NET CSOM).  Since I want to have POSH that can work with both SharePoint on premise and SharePoint online, I decided to use the .NET client side object model.  I was developing against a free developer instance of SP2013 online, which you can request at  At first, I tried using the example on how to retrieve a list that I found here: After converting it to POSH, it was:

$loadInfo1 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
$loadInfo2 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
$webUrl = Read-Host -Prompt "HTTPS URL for your SP Online 2013 site"

$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($webUrl)
$web = $ctx.Web
$lists = $web.Lists

I ran it and got this error:

Exception calling "ExecuteQuery" with "0" argument(s): "The remote server returned an error: (403) Forbidden."
At line:11 char:1
+ $ctx.ExecuteQuery()
+ ~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : WebException

That kind of made sense, as I wasn’t passing any identity information, and the Microsoft Account associated with my Windows 8 domain account was not my SP Online Microsoft Account.

I looked and looked on MSDN, and didn’t find much helpful.  I tried setting the $ctx.FormsAuthenticationLoginInfo but that didn’t work.

Eventually, I gave up and decided to catch up on my reading of the Product Team Blog, in particular this post:

At the end of the post is a PowerShell script that passes SharePointOnline credentials!

$ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password)

So now, I included that in my script, and I have:

#This works on SharePoint Online sites!

$loadInfo1 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
$loadInfo2 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
$webUrl = Read-Host -Prompt "HTTPS URL for your SP Online 2013 site" #""
$username = Read-Host -Prompt "Email address for logging into that site""
$password = Read-Host -Prompt "Password for $username" -AsSecureString

$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($webUrl)
$ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password)
$web = $ctx.Web
$lists = $web.Lists

$lists| select -Property Title

which outputs:

Title                                                                                                                                                  -----

App Packages 


Apps in Testing

Composed  Looks     

Content type publishing error log

Converted Forms




Get started with Apps for Office and SharePoint

List Template Gallery

Master Page Gallery 

Project Policy Item List                    

Site Assets

Site Pages       

Solution Gallery

Style Library


Theme Gallery

User Information List

Web Part Gallery


There you have all the lists in this particular SharePoint Online (Office 365, SharePoint 2013) site!


# Comments:
Modified: 11/15/2012 1:25 PM
I also hold an MCSE, MCAD, MCDBA, and CAPM.

 INETA Champion Q3 2010, Q2 2011, Q2 2012


INETA Community Champions


 Recent Noteable Activities

  • Ramping up on SharePoint 2013
  • Planned and executed several MOSS 2007 to SharePoint 2010 migrations
  • Developed a custom document management site template solution
  • Served as a SharePoint Architect and Build Engineer on a SharePoint Intranet project for a Fortune 50 company.
  • Performed SharePoint Administration of a customer's intranet for several months.
  • Built a collaboration solution for a global civil engineering firm's communities of practice.
  • Hiring more SharePoint professionals at Magenic. Are you a SharePoint Developer with SharePoint Administration experience or a SharePoint Designer? Send me your resumé!
  • Public speaking on SharePoint topics. For more information, click here.
  • Webmaster for the Chicago SharePoint User Group. Visit and come to our meetings!


    follow me on Twitter

     MSDN and TechNet Articles I've Commented On

     HideCustomAction Element (Custom Action)
     How to Add Actions to the User Interface
     Solution Schema
     SPList SDK Object Model Refernce
     View Element (View)
     Welcome to the Windows SharePoint Services 3.0 SDK
     ContentType Element (ContentType)
     Configuring IntelliSense with CAML Files When Developing for WSS 3.0
     Features and solutions: Stsadm operations (Office SharePoint Server)
     PowerShell Pack for SharePoint
     SPWorkflow.CreateHistoryEvent Method
     Configure Kerberos authentication (Office SharePoint Server) (Updated: 2009-03-26)