July 2009 - Posts

New website for SharePoint Governance; Thoughts on Governance Plans
22 July 09 03:39 PM | Blogging about SharePoint: Posts
Body:

I just found out about this new website for SharePoint Governance: http://SharePointGovernance.org .  I like the idea, and have already submitted 4 comments on how to improve what’s there.

The biggest gap I see is that it needs text or a link on the home page that explains what SharePoint Governance is.  Here’s my attempt:

SharePoint Governance is the policies and procedures an organization puts in place in order to maintain an appropriate level of control over the organization's SharePoint deployment.

Every organization that deploys SharePoint should have some sort of governance plan.  Such a plan, what we at Magenic call a SharePoint Roadmap, can cover a wide variety of management issues.  This isn’t about server monitoring, though a governance plan would say that IT must put a server monitoring plan and process in place.  This is about how the organization plans to use SharePoint in the short and long term, and what policies they need to create to support that.  This can include how the organization plans to deploy, use, and control the wide variety of SharePoint functionality. 

This can also include defining where the division of control is: collaboration sites for example may have their adoption stunted if IT chooses to exert too much control, and not delegate enough.  On the other hand, no control can lead to unplanned data growth, emergency storage upgrades, and other forms of chaos.  Figuring out what the right level of control is can vary by usage scenario.  Collaboration sites to support teams and projects may need a very different level of control than general employer-to-employee intranet portal sites .  The regulatory environment in which the organization lives may also have an impact on this.

Other things a governance plan or roadmap may cover is the need for policies that address allowing business units to engage consulting firms to perform SharePoint work.  Such policies might specify who is allowed to perform what type of work and how they engage with IT.

Other policies that might emerge from governance planning include IT service level agreements regarding availability and restoring from backups, or definitions of IT job roles, skills, and responsibilities for SharePoint jobs and hiring for those.

Other aspects that are covered might include site branding requirements – should every intranet site be branded?  The list of things covered by company policies can be quite extensive.

Large organizations can create a governance committee or steering committee for this, but for small organizations it might just be “the IT guy” and a business decision maker.  It most cases, it should be a group that includes both IT and the business, not just IT. 

If you are looking for which SharePoint MVPs to watch for governance guidance, the first two that come to mind are Joel Oleson and Rob Bogue.  Joel for example, has a sample governance plan on his website at Sample Governance Plan and page 5 of it is a good start for understanding what a governance plan is for.  Rob has things like this list of governance resources: http://www.thorprojects.com/Notebook/Wiki%20Pages/Governance.aspx 

--Michael

Category: SharePoint – WSS and MOSS
Published: 7/22/2009 12:39 PM
Del.icio.us | Digg It | Technorati | Blinklist | Furl | reddit | DotNetKicks
PowerShell to set Registry Entries needed to install Live Mesh on Win2008
18 July 09 07:03 PM | Blogging about SharePoint: Posts
Body:

I am going to use Mesh to sync files between my host OS and the VM where I am using Office 2010 Tech Preview (which includes InfoPath 2010 and SharePoint Designer 2010). 

In order to install Mesh on Win2008, you need the registry entry described in http://msdn.microsoft.com/en-us/library/aa368304(VS.85).aspx.

 

The PowerShell commands you need are:

cd hklm:\Software\Policies\Microsoft\Windows\

md Installer

cd Installer

New-ItemProperty . -name "DisableMSI" -value "0" -PropertyType dword

 

--Michael

Published: 7/18/2009 4:04 PM
Del.icio.us | Digg It | Technorati | Blinklist | Furl | reddit | DotNetKicks
PowerShell script to report SharePoint version number – Improved!
17 July 09 05:25 PM | Blogging about SharePoint: Posts
Body:

I was recently recording a webcast for Connections Online about using PowerShell with SharePoint, and I put together what I think it a pretty cool four lines of code:

$farm = [Microsoft.SharePoint.Administration.SPFarm]::Local

$bv = $farm.BuildVersion.ToString()

$vertable = Import-Csv versions.csv

$vertable | where-object {$_.Version -eq $bv}

A sample versions.csv file is here: http://blumenthalit.net/Files/PowerShell%20Scripts/versions.csv

What the last line of the script returns is a description of the version (e.g. “April CU”) plus the corresponding WSS and MOSS KB articles IDs.

Part of the beauty of this is that I didn’t have to do anything complex to store my data – it took me just a few minutes to create my csv file by hand, and I didn’t have to deal with parsing it, or with picking a collection datatype (List, HashTable, etc) to store it in.  Import-CSV, which is a cmdlet that ships with PowerShell v1.0 did all that for me.

You can download the script file here:  Get-sharepointversion.ps1 (put it in the same folder as the CSV file).

One of these days, I should move that into CodePlex.com/PSBB, but not today.

Michael

Published: 7/17/2009 2:25 PM
Del.icio.us | Digg It | Technorati | Blinklist | Furl | reddit | DotNetKicks
Video Posted: InfoPath form to create a WSS Installer Configuration File
17 July 09 05:10 PM | Blogging about SharePoint: Posts
Body:

I’m in the Office 2010 Technical Preview program, so I have started playing with the Office 2010 client applications.  I’m using Outlook 2010 Tech Preview as my email client, and I like the Quick Steps.  I wish I could share a QuickStep with my colleagues though – would be nice if there was a way to export & import Quick Step Definitions.

Meanwhile, I saw this blog post from the InfoPath 2010 team:(http://blogs.msdn.com/infopath/archive/2009/07/13/install-the-office-2010-technical-preview-and-win-an-xbox-360-elite.aspx) and put together an entry for the contest. It’s an InfoPath form that creates the xml file needed if you want to do an unattended install of WSS 3.0.

Here’s the video: http://communityclips.officelabs.com/Video.aspx?videoId=e37ddba5-448c-402f-b06e-bd87ed0f5bd5

In the video, I also feature a PowerShell script that removes the namespaces from the xml file that the InfoPath form generates.  The PowerShell function that I created is very simple. The one possibly unusual thing it contains is a string intentionally split across lines.  I did this because it was the easiest way I could think of to specify a carriage return (“\n” isn’t valid here).

function global:Clean-WSSConfig($filename)
{
	get-content $filename | foreach {$_.Replace("ns1:","")} | foreach {$_.Replace("my:","")} |
		foreach {$_.Replace("<Config","

<Config")}
 Write-Host "Namespaces Removed!"
}

One of the neat things about InfoPath 2010 Tech Preview is that it let me specify datasource fields by giving it an existing xml file. I took a sample WSS config file, added a namespace directive to it, and imported it into my InfoPath form!

--Michael

Published: 7/17/2009 2:10 PM
Del.icio.us | Digg It | Technorati | Blinklist | Furl | reddit | DotNetKicks
FAQ and Prep list from the SharePoint Prod Team Blog Post
17 July 09 09:57 AM | Blogging about SharePoint: Posts
Body:

The same day that the Office 2010 sneak peak website became available, the product team posted this:

Announcing SharePoint 2010 Technical Preview

Here’s the blue (blueberry? :) ) pie:

image

Key links:

Getting Ready for 2010: both for Developers and Admins: http://sharepoint.microsoft.com/2010/Sneak_Peek/Pages/Get_Ready.aspx

A FAQ: http://sharepoint.microsoft.com/2010/Sneak_Peek/Pages/FAQ.aspx

 

--Michael

Published: 7/17/2009 6:57 AM
Del.icio.us | Digg It | Technorati | Blinklist | Furl | reddit | DotNetKicks
Fresh Pie! Microsoft unveils Sneak Peak of SharePoint 2010
13 July 09 10:00 PM | Blogging about SharePoint: Posts
Body:

Fresh Pie: the “SharePoint Pie” is now all blue and the segments have new titles.

Check it out here: http://sharepoint.microsoft.com/2010/Sneak_Peek/

Also, here’s some object model documentation for the developers:  http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=94afe886-3b20-4bc9-9a0d-acd8cd232c24#tm

Note the presence of an iterator class designed to make working with large lists perform better.

--Michael

Published: 7/13/2009 7:00 PM
Del.icio.us | Digg It | Technorati | Blinklist | Furl | reddit | DotNetKicks
PowerShell Script to Disable Loopback Checking
11 July 09 08:43 PM | Blogging about SharePoint: Posts
Body:

I find I need to use host headers for SharePoint sites a lot.  For example, in a recent deployment I had the following host header sites all pointing via DNS entries to the same farm/web front end (it was a small farm):

  1. ssp.foo.com
  2. mossca.foo.com
  3. intranet.foo.com

I’m doing this on Windows Server 2008, IIS 7, with the latest service packs and updates (as of this writing).  There is a know issue/feature where you will be unable to browse the sites defined by host headers from the web browser on the web front end.  This gives the distinct feeling that your SharePoint site is broken, when in fact it’s just fine.

In particular, for a development environment, you generally don’t have the option of off-server web browsing, so this becomes a big issue.  There is a KB article here http://support.microsoft.com/kb/896861 that describes what to do to fix the issue – yes, the article only says IIS 5 or 6, but this does work for IIS 7 too.

Anyway, I decided to write a PowerShell script that makes making or checking these registry edits trivial.

You can find it here: http://blumenthalit.net/Files/PowerShell%20Scripts/kb896861.ps1.txt

At some point, I should add this to CodePlex.com/psbb, but not tonight.

--Michael

Published: 7/11/2009 5:43 PM
Del.icio.us | Digg It | Technorati | Blinklist | Furl | reddit | DotNetKicks
Bits and Bytes – July 7, 2009
08 July 09 12:56 AM | Blogging about SharePoint: Posts
Body:

I’ve been busy with a deployment of an intranet for a smaller firm, and have accumulated a number of items that I want to share.

First off, yesterday and today, I ran into an issue where I had my SSP on port 82 (i.e. http://server:82) and want it to make it available on it’s own url, http://ssp.demo.local.  I have all of this on one machine since it’s a dev environment – windows server 2008 and IIS7 in a HyperV VM, all 64bit to be exact..  When I extended the SSP’s web app to the new web app, the resulting new site would prompt me for authentication 3 times, and then give me a TOTALLY BLANK page.  No access denied from IIS, nor from SharePoint.  No error messages in the Application Event Log, nothing in the ULS log.  In the Security event log, there was a Logon Failure (which made me think it might be a Kerberos issue, but it wasn’t).  In the IIS log, there were a set of 401.1 and 401.2 result codes (access denied.).  I had entries in my host file that mapped ssp.demo.local to a local static IP address – not 127.0.0.1 but 192.168.21.20.  My friend and coworker Ralph (Twitter:@BigPix2000) pointed me to this KB article: http://support.microsoft.com/kb/896861

Next, I run Windows 2008 Server Enterprise on my laptop so I can use HyperV.  I’ve got the Desktop Experience feature turned on so it has the Vista user experience, but I noticed that I was not getting previews nor thumbnails of JPEG files.  The solution is here. http://www.win2008workstation.com/wordpress/2008/06/15/preview-thumbnails-in-windows-explorer/ 

I’ve also been doing a lot of PowerShell scripting.  At some point, I plan to clean them up and add them to my PSBB Codeplex project.  Some PowerShell things I’ve done :

  • Stop all the HyperV services so I can remove my external USB drive hosting my VHDs.

      get-service |? {$_.DisplayName -like "*Hyper*"} | stop-service

  • List all the document libraries in a web application, and show their version settings.
  • Add a site column to a document library
  • Create a document library
  • Tried out the scripts from this project: http://www.codeplex.com/PSHyperv .  I found I had to modify them to include the global scope specifier for each function and filter.

I had to turn on email enabled lists. MVP Steve Smith’s documentation is invaluable.  http://www.combined-knowledge.com/Downloads%202007.htm.  One issue that I haven’t resolved yet is that this works fine for document libraries, but for an announcements list, I had to let it accept email from anyone, not just whomever has contributor or better access to the list. If I just had it enforce doc library permissions, messages never become files.

Also, for the document library, it would be nice if there were more options for controlling how email becomes files.  If you have it set to create folders based on the message subject, it would be nice if messages without attachments would just become files and only messages with attachments would become folders plus files.

Another issue I had was when I tried to set up the OWA Exchange Folder web part to display a shared Exchange Calendar.  I wanted the web part title link to link directly to the OWA URL for the calendar (e.g. http://exchangeserver/public/calendarname), but it would automatically cut the link back to http://exchangeserver/public without letting you know it would do that.  WHY?

Also, the OWA Folder web part is not all that flexible in the views it provides.  We are planning to use the KWiz Calendar Plus web part instead. http://www.kwizcom.com/ProductPage.asp?ProductID=175&ProductSubNodeID=176

There was an MSDN article that looked interesting and that I had meant to mention two months ago:

“Summary: Learn about methodologies and strategies to reconcile differences between Microsoft SharePoint Products and Technologies artifact development and assembly development. The strategies include combining these two components into a single version control repository, such as Microsoft Visual Studio 2008 Team Foundation Server. (12 printed pages)”.

http://msdn.microsoft.com/en-us/library/dd179854.aspx

Ran into another oddity. I went into Central Admin to deploy the WSP for Gary LaPointe’s STSADM add-ons, and got an access denied message.  I then ran stsadm from an elevated CMD window and it deployed just fine.  Do I need to run my IE session elevated too?

I recently had to create a WSP to create a site column I could easily deploy to multiple site collections.  The tools I used to do this were WSPBuilder and SPManager.  Both made this REALLY EASY.  Make sure you take a look at all of WSPBuilder’s config options. 

Also, the CSPUG website was down recently for server maintenance.  It’s back up now.  We had two very good speakers at the June 25th meeting, Shawn Shell and Paul Schaeflein.  Our next meeting will probably be in August.

And finally, when doing a manual farm backup via central administration, and you are backing up to a network share, it’s not only the Web Front End that needs to be able to write to the network share, but also the SQL box in the context of the SQL service account. 

--Michael

Category: SharePoint – WSS and MOSS
Published: 7/7/2009 9:56 PM
Del.icio.us | Digg It | Technorati | Blinklist | Furl | reddit | DotNetKicks
June 2009 Cumulative Update (CU) for WSS and MOSS Available
07 July 09 09:25 AM | Blogging about SharePoint: Posts
Body:

Per the timeline for updates laid out in this picture here in this post, there are MOSS and WSS Cumulative Update packs due every 2 months.  It’s not been announced on the SharePoint Team Blog yet, but it’s been in KBAlertz (here for MOSS and here for WSS), Twitter, and on http://blogs.msdn.com/joerg_sinemus/archive/2009/07/01/moss-and-wss-june-cu.aspx that the CU for June is available.  Looks like it made it out just in time – the last day of the month.

As usual, these fix a fascinating array of issues, many of which may not affect you, but some of which probably do…

List of KB Articles:

If you are running MOSS, you need both the WSS and MOSS updates. It may make sense to wait until the product team posts the official announcement on the Team Blog because they usually provide some guidance about installing these.

--Michael

Published: 7/7/2009 6:25 AM
Del.icio.us | Digg It | Technorati | Blinklist | Furl | reddit | DotNetKicks