Prepare for SPC11 with SharePoint IW Demo

SharePoint

This is a cross-post from SharePointEduTech.

By now, many people have already blogged about the availability of the new SharePoint Information Worker (IW) Demo with Service Pack 1.

Here’s the link: http://www.microsoft.com/download/en/details.aspx?id=27417

There’s about 30 download buttons!! So for anyone that wants an easier way to download all of those links, here’s a PowerShell script that I used (below). It’ll use BITS to transfer the files to a folder you specify. That means, it’ll automatically queue and resume stopped/suspended downloads.

#############################################
# Title: Download-IWDemoSP1.ps1		
# Author: Wahid Saleemi			
# Twitter: @wahidsaleemi		
# Reference: https://wahidsaleemi.com
#############################################

# Description: Retrieves the SharePoint Information Worker Demo SP1.
# Define our variables

Import-Module BitsTransfer

$urlList = @(
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part01.exe", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part02.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part03.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part04.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part05.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part06.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part07.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part08.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part09.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part10.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part11.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part12.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part13.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part14.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part15.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part16.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part17.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part18.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part19.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part20.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part21.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part22.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.part23.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10a.sfv", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10b.part01.exe", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10b.part02.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10b.part03.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10b.part04.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10b.part05.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10b.part06.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10b.part07.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10b.sfv", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10c.part01.exe", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10c.part02.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10c.part03.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10c.part04.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10c.part05.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10c.part06.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10c.part07.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10c.part08.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10c.part09.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10c.part10.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10c.part11.rar", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/2010-10c.sfv", 
"http://download.microsoft.com/download/6/B/6/6B63BAC2-8CCF-4A45-9E4E-AA3BE0E735C7/Virtual%20Machine%20Setup%20Guide.docx"
)


# ====================================================================================
# Func: WriteLine
# Desc: Writes a nice line of dashes across the screen
# ====================================================================================
Function WriteLine
{
	Write-Host -ForegroundColor White "--------------------------------------------------------------"
}
# End Function

# ===================================================================================
# Func: Pause
# Desc: Wait for user to press a key - normally used after an error has occured
# ===================================================================================
Function Pause
{
	#From http://www.microsoft.com/technet/scriptcenter/resources/pstips/jan08/pstip0118.mspx
	Write-Host "Press any key to exit..."
	$null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}
# End Function

# ===================================================================================
# Func: Start-Download
# Desc: Starts the download.
# ===================================================================================
Function Start-Download([array]$urlList)
{
	WriteLine
	foreach ($url in $urlList) {
	Write-Host "Starting Download of $url"
	$DestFileName = $Url.Split('/')[-1]
	Try
	{
	## Check if destination file already exists
	If (!(Test-Path "$DestFolder\$DestFileName"))
		{
			## Begin download
			Start-BitsTransfer -Source $Url -Destination $DestFolder\$DestFileName -DisplayName "Downloading `'$DestFileName`' to $DestFolder" -Priority High -Description "From $Url..." -ErrorVariable err
			If ($err) {Throw ""}
		}
	Else
		{
			Write-Host " - File $DestFileName already exists, skipping..."
		}
		}
	Catch
		{
			Write-Warning " - An error occurred downloading `'$DestFileName`'"
			break
		}
	}
}
# End Function


##### END Functions : Start actual script

## Prompt for the destination path
$DestPath = Read-Host -Prompt "- Enter the destination path for downloaded files"
## Check that the path entered is valid
If (Test-Path "$DestPath" -Verbose)
{
	## If destination path is valid, create folder if it doesn't already exist
	$DestFolder = "$DestPath\IWDemoSP1"
	New-Item -ItemType Directory $DestFolder -ErrorAction SilentlyContinue
}
Else
{
	Write-Warning " - Destination path appears to be invalid."
	## Pause
	Write-Host " - Please check the path, and try running the script again."
	Pause
	break
}

# Start Downloads
Start-Download $urlList


# View the downloaded files in Windows Explorer
Invoke-Item $DestFolder
Pause

Copy and paste this into a file with a .ps1 extension (I use Download-IWDemoSP1.ps1). Then, make sure the folder you’d like to download to exists. Finally, run your .ps1 file in a Windows PowerShell window like so:

.\\Download-IWDemoSP1.ps1

Alternatively (and perhaps faster), you can try grabbing the torrent over here:

http://extratorrent.com/torrent/2508339/

The torrent is a good way to grab a copy of a corrupt or missing file or if you just need a subset of what the IW Demo provides.

With SharePoint Conference 2011 coming up very soon, you’ll want your IW virtual machine installed and ready to go. In 2009, there were tons of hands on labs, tons of information, tips, tricks and more at the conference that everyone wanted to try out.

Even if you’re not going to the conference, you’ll want to prepare. You can be sure there will be tons of freely available information in press releases, blogs, twitter and other social networks. Watch for Microsoft partners and SharePoint vendors to ramp up webinars, events, and free training during and after the event.

0 comments

Managing SharePoint Designer

SharePoint

I recently received an often asked question from a colleague and friend. Business of all sizes struggle with this, especially when upgrading to a new version of SharePoint. Here it is:

Question:

Would you recommend using SharePoint Designer for enterprise level solutions. We are hanging a debate at work, we are still using MOSS 2007.

The following is my answer to him.

The answer is that "it depends." Mostly on what the business needs and what IT can afford.

My recommendation is to disallow it on MOSS 2007. There are two very big reasons for this:

1. MOSS lacks the controls IT needs to ensure security and stability of the platform. In cases where Designer has been used inappropriately, the platform has suffered. This leads to a decision to never (again) support Designer.

2. Allowing Designer means more customizations will be made. While not a bad thing in and of itself, it means your next upgrade will be increasingly challenging and costly.

With SharePoint 2010 at Service Pack 1 already, companies should be considering an upgrade. In 2010, there are better controls for Designer. You can choose to allow some aspects (like the ability to modify site settings or create mashups) while disabling others (like modifying the site definition/design).

SharePoint Designer Settings screen

I’ve found that business users understand this and are willing to wait for the upgrade. As part of the upgrade, roll out new features in phases while educating users about the rules and  how best to use the new features. As I said before, companies that allow Designer in 2007, usually regret it because it makes the upgrade so much harder. Of course, this doesn’t apply to sophisticated organizations that have a well-designed, and well-executed governance plan, but that’s a rarity.

I think a good compromise is to wait it out for SharePoint 2010. I do think that Designer is a valuable (even a must-have in some cases) tool for end users (see @WonderLaura screencasts here). Part of SharePoint’s core principals is to empower the user – do this with some boundaries (governance) and everyone will be happy.

To read more about Managing SharePoint Designer, see: http://office.microsoft.com/en-us/sharepoint-designer-help/managing-sharepoint-designer-2010-HA101838275.aspx

1 comment

A Follow-Up Note on SQL Aliases

SharePoint

Last December I wrote an article titled Working With SQL Aliases where I explained a bit about why I use them.  It’s still a controversial topic with some disagreeing that it provides any benefit at all, at least during SharePoint setup time. The primary argument I’ve heard against it, is that its confusing and someone may not know they’re using an Alias. But, I say if your Farm is undocumented, don’t blame the technology.

I still use SQL Aliases because it makes my life easier. I can script my installs with it more easily and don’t have to remember every scenario where I MUST use an Alias. For example, Spence Harbar’s post on UPS troubleshooting states that it’s required for UPS prior to the June 2011 CU; he still recommends using one anyway, as I do.

In my last post, I showed how you could use “cliconfg.exe” to set up SQL Aliases. Recently, through twitter, a blog post by @AirborneGeek caught my attention. It’s titled A Note About cliconfg.exe on x64 Machines where Kerry Tyler writes about the different versions of cliconfg.exe; I agree its very confusing.

So, let’s ditch that utility and use PowerShell. This is one simple way to setup the alias. Substitute the following for your own values:

  • Alias_SPDB: This will be your alias. I want to start to prepend mine with “Alias” so we know its actually an alias.
  • SQL1\SHAREPOINT: The SQL Server/Instance/Cluster name
  • 1433: The SQL Server port
New-ItemProperty HKLM:SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo –name Alias_SPDB -propertytype String -value "DBMSSOCN,SQL1\SHAREPOINT,1433"
New-ItemProperty HKLM:SOFTWARE\Wow6432Node\Microsoft\MSSQLServer\Client\ConnectTo –name Alias_SPDB -propertytype String -value "DBMSSOCN,SQL1\SHAREPOINT,1433"

This is quick and dirty. A better approach may be to use Ingo Karstein’s approach. I believe using WMI is the preferred approach, plus his way allows you to create a PowerShell module where you can use the common verbs, Get and Set.

I won’t say using an Alias is best practice, you should decide what’s best for your organization. I hope I’ve provided some arguments as well as some ways to easily accomplish the task.

0 comments

Powering Communities

SharePoint

To my surprise yesterday, I discovered that I was awarded the Microsoft Community Contributor award!

MCC11_Logo_Horizontal_Full-color

I borrowed the title of this blog post from the MCC program, but “Powering Communities” can mean more. I’ve been less active on TechNet and other online forums (including this blog) recently to focus on offline communities.

You can tell from my previous posts that I was involved in SharePoint Saturday Los Angeles. If anything defines the spirit of cooperation and community, that is it! Our small team worked really hard in the little spare time we had to pull off that event. No one received a bonus or pay check for it. That includes all of the volunteers planning and running the event and the speakers who came to pass on some valuable knowledge – for free.

I’ve also been nurturing a baby SharePoint User Group, with the same idea of free education and sharing knowledge and experiences. Its difficult to find speakers who are willing and available but I think we’ve done pretty good so far. After SPSLA, we’re back on track for monthly meetings!

So, thanks to my partners in crime – Nedra (@nallmond), Kevin (@kevinruess), Melissa (@mlayupan), Jamie (@jaliperti). And thanks to Microsoft for noticing.

microsoft
1 comment

SharePoint Comic: Governance

SharePoint

This post was inspired by a twitter comment I saw last week. Being a fan of Dan Lewis’ SharePoint Comics, I thought this would make a nice one.

governance

Here’s the actual tweet: Link

I thought this was the best quote I heard at SharePoint Saturday Los Angeles!

0 comments