Skip to main content
Trans Am

Todd Klindt's SharePoint Admin Blog

Go Search
Home
Blog
Netcast homepage
SharePoint Terminology Wiki
  
Todd Klindt's home page > Todd Klindt's SharePoint Admin Blog > Posts  

Posts

Modify settings and columns
Use the Posts list for posts in this blog.
  
View: 
Category
EditBodyFilter
Netcast 55 – Slow To UploadUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt9/4/2010 9:18 PM0 

 

In this episode I talk about a trusted location error with Excel services, how to determine your build version, I discuss a couple of my blog posts, and I share some other SharePoint goodies I've found on the Internet.

MP3 File (Subscribe)

WMV File (Subscribe)


Duration 39:23

Create Managed Metadata Store term sets with Excel

Add a link to "Open Folder" in search results page

Oh yeah, buy my book J

 

How to use PowerShell to set the Master Page in SharePoint 2010Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt8/29/2010 11:36 AM2 

A couple of months ago Randy Drisgill asked me if there was a way to use the mighty PowerShell to set a web's master page in SharePoint 2010. Not being a branding guy I hadn't tried it before. Heck, I'm not even sure what a master page is, but for Randy I dug into it.

The master page setting is scoped at the web level, so the first thing I did was use Get-SPWeb to get a variable for the web I want to change. There are two properties that control the master page settings; MasterUrl and CustomMasterUrl. The former controls the master page used to render the System pages (the ones that start with /_layouts) and the latter controls the master page used to render the content pages. This picture helps explain it better:

To alter those settings for a publishing site at http://sharepoint, use the following PowerShell script:

$web = Get-SPWeb http://sharepoint

$web.CustomMasterUrl = "/_catalogs/masterpage/nightandday.master"

$web.MasterUrl = "/_catalogs/masterpage/nightandday.master"

$web.Update()

This changes the master page for both settings and content to nightandday.master. Since we're doing this with PowerShell it's easy to loop through a group of webs and set their master pages to whatever you like. I haven't found a way in PowerShell to set the "inherent system master page from parent" property for a web. If anyone knows how to do that, drop me a line.

Hope this helps,

tk

Netcast 54 - Bribing UsersUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt8/28/2010 9:45 PM1 

In this episode we talk about ways to avoid using the Farm Configuration Wizard, the final fate of the Fabulous 40, and yet another way the User Profile Service is trying to ruin my day. I also bribe users to put an Amazon review up for my book.

MP3 File (Subscribe)

WMV File (Subscribe)


Duration 35:20

Links
Database GUIDs

Fabulous 40

Prevent MySite creation

User Profile Service URI issue

 

 

 

SharePoint 2010 Build NumbersUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt8/26/2010 10:15 PMSharePoint 20102 

Before they get away from me I want to start listing the builds of SharePoint 2010. Hopefully I'll keep it up to date. J

To see which build your farm is, go to Central Administration > System Settings > Manage servers in your farm (/_admin/FarmServers.aspx)

Or using Windows PowerShell: (get-spfarm).buildversion

To see which build your products are, go to Central Administration > Upgrade and Migration > Check Product and patch installation status. (/_admin/PatchStatus.aspx)

To see which build your databases are, go to Central Administration > Upgrade and Migration > Review database status (/_admin/DatabaseStatus.aspx)

 

Build

Release

Component

Download Link

14.0.4763.1000

RTM

All components

Download

14.0.4762.1000

RTM Farm Build Version
       

14.0.5114.5003

June 2010 CU

Microsoft SharePoint Foundation 2010 Core

KB2028568

14.0.5114.5003

June 2010 CU

Microsoft Shared Components

KB2281364

14.0.5114.5003

June 2010 CU

Microsoft SharePoint Portal

KB983497

14.0.5114.5003

June 2010 CU

Microsoft User Profiles

14.0.5114.5003

June 2010 CU

Microsoft Search Server 2010 Core

14.0.5114.5003

June 2010 CU

Microsoft Web Analytics Web Front End Components

KB2204024

          

14.0.5123.5000

August 2010 CU

Microsoft SharePoint Foundation 2010 Core

KB2266423

14.0.5123.5000

August 2010 CU

Microsoft Search Server 2010 Core

KB2276339

14.0.5123.5000

August 2010 CU

Microsoft User Profiles

14.0.5123.5000

August 2010 CU

Microsoft SharePoint Portal

 

tk

Event ID 6801 “Invalid URI” with User Profile Service on SharePoint 2010Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt8/24/2010 10:52 PM5 

In the continuing saga of the User Profile Service (UPS) kicking my butt, I have a heartwarming tale of one victory I can claim. It involves Event ID 6801 "Invalid URI: A port was expected because of there is a colon (':') present but the port could not be parsed." and me besting the User Profile Service. Don't believe me? Well, here's my tale…

It was the best of times; it was the worst of times. I was getting a handle on the UPS, but it threw another error at me. A customer contacted us. The UPS refused to sync on their farm. It had never worked. I looked in the Application log and saw a string of Event ID 6801s and 6803s. The 6801s included the text "Invalid URI: A port was expected because of there is a colon (':') present but the port could not be parsed." The 6803s were just saying that portion of the sync failed. A normal profile sync has 10 steps. Some pull from AD, some from SharePoint, some push, and so on. The initial AD import step, DS_DELTAIMPORT was working. The rest were failing.

Unlike a lot of error messages, this one was helpful. I wasn't sure where this broken URI was, or why it didn't have a port, but it was something. After going through the Windows logs and the trace logs, my next step was the fire up the miisclient.exe in the C:\Program Files\Microsoft Office Servers\14.0\Synchronization Service\UIShell directory. This let me watch each step as it happened. I could see the failures going through. After doing some research on the error, and comparing a working system to the broken system, I figured out the difference. Central Admin on the working system was on a nonstandard port, 1026. On the broken system, Central Admin was using https on the common port, 443.

Armed with this information I went back to miisclient.exe. I clicked "Management Agents" in the toolbar and opened the properties for the SharePoint agent. It's the one of type "Extensible Connectivity." This is how Forefront Identity Manager (FIM, the software behind the User Profile Sync) connects to SharePoint.

Once in the properties I clicked "Configure Connection Information" on the left to get the connection information. On the bottom, in the "Connect To:" box was the key.

This screenshot is from the working system. Notice my connection string has a colon and a port number. I looked at the broken system and it did not have a colon or a port, since it was running on the standard https port. The fix was to change direct://centraladmin/_vti… to https://centraladmin:443/_vti... After I did that, I started a full profile sync. All 10 steps completed successfully.

The moral of this story is that the UPS will not work if your Central Admin default zone URL does not have a colon and a port number in it. The fix is to specify the color and port in the connection setting in miisclient.exe.

tk

How to prevent users from creating MySites in SharePoint 2010Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt8/20/2010 10:52 PM1 

Anyone that I've talked to about SharePoint 2010 knows I like MySites. I think everyone should have a MySite. My cat has two. Unfortunately not everyone agrees with me. About once a week I get asked, "How do I disable MySites? I'm a big meanie." I figured it was time to put this into a blog post, so I don't have to fight back tears every time I have to explain how to do this. I'm tearing up now as I type this.

First, go into Central Administration and click Manage service applications

Then click your User Profile Service Application and click Manage

In the management screen, click Manage User Permissions

You'll get a window that looks like this:

 

By default all authenticated users have permission to "Create Personal Site." To keep people from creating them, remove that permission for both authenticated users entries. Users will no longer be able to create MySites. At this point you can add users or domain groups to the top of the screen and give that group permission to create personal sites. The recommendation I usually give it to create an AD group for people that can have personal sites. Then as you decide to give users permission to create personal sites, you drop them into that group.

This can be done in PowerShell, too (I think). I'll figure it out and blog it later.

tk

Why does SharePoint put those blasted GUIDs in its databases?Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt8/17/2010 10:13 PM11 

This question came up a couple of times today, so I thought I'd address it in a blog post. The question goes something like this; "Why does SharePoint put %*&@ing GUIDs at the end of its databases? Argh!!!" This is a very good question, and has a very good answer.

Before we go any further, let me be clear. I'm not defending the practice, I'm just explaining it. J

What causes it?

So, why does SharePoint do this? Well, it's important to keep in mind that the only databases that have GUIDs at the end of them, are ones that SharePoint has to name itself. If you, as the admin, get to name a database, it won't have a GUID, unless you choose to put one there yourself. SharePoint puts GUIDs on those databases for two reasons:

  1. A SQL instance can contain databases from multiple SharePoint farms.
  2. To SharePoint, creating a database and mounting an existing database are the same thing (in most cases).

The combination of those two facts is why SharePoint throws GUIDs at the end. It doesn't know if that SQL instance already has database named "User Profile Service Application_SyncDB" from another SharePoint farm. Or, maybe that database is there and it was created manually by your DBA with specific settings. To prevent itself from mounting some other User Profile Service Application_SyncDB by accident (since mounting and creating are the same) it throws a GUID at the end to guarantee the database name is unique. Here is what it looks like in SharePoint Server 2010.

The databases in the red circles have GUIDs at the end, and were created by the Configuration Wizard (PSConfig or The Gray Wizard) and the Farm Configuration Wizard (The White Wizard) in Central Administration. Not only do they have GUIDs at the end, but to add insult to injury, some of the GUIDs have dashes (blue circles) and some do not (green circles). This is significant because in TSQL, the dash character (-) is a comment character. If you or your DBA has any scripts to work on your databases (like back them up), it's quite possible that they do not escape that dash, and the script will fail since there is no database named "SharePoint_AdminContent_978a91dc." That particular issue really cheeses off DBAs. That's okay, they normally deserve it, the big meanies.

How can we prevent it?

This is the part of the blog post that makes it all worthwhile. How can we fix or prevent these cursed GUID-riddled databases? There are a variety of techniques, but basically it all comes down to this; don't use Wizards, create the databases yourself. What does this mean? For one, it means don't let the Configuration Wizard (The Gray Wizard) create your farm. Instead use New-SPConfigurationDatabase to build your farm. That allows you to specify a name for the Admin Content database. If you miss that step, you can use the tip I outline in my blog post Get the GUID out of SharePoint databases to fix it after the fact. After your farm is provisioned, don't use the Farm Configuration Wizard (still The White Wizard) to build it. Instead create all of your Service Applications with Windows PowerShell or in Central Administration. That gives you control over their database names. If your farm is already created, you may have to delete the associated Service Applications and rebuild them correctly. Some might let you rename the database, though I haven't tried that personally. With Search you can create new Crawler and Property Store components and delete the ones with the GUID infested database. You'll need to run a full crawl afterwards.

The moral of the story though, is those GUIDs are there because we let SharePoint do all the hard work. If we do the hard work instead, we can prevent those ugly GUIDs from sullying up our SQL instance.

tk

Netcast 53 - Little BugsUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt8/17/2010 9:08 PM0 

In tonight's netcast why you should go to SharePoint Saturday events, yet another way the User Profile Service will fail, a fix for Office Web Applications that won't cooperate, and my feelings on Remote Blob Store (RBS).

MP3 File (Subscribe)

WMV File (Subscribe)

Duration 44:09

Netcast #52 - Upgrade FunUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt8/15/2010 9:09 PMNetcast2 

This episode I talk up the recent SharePoint 2010 patch and all the fun I had with an in-place upgrade. In this week's PowerShell tip of the week I show how to use PowerShell to add users to a SharePoint group. I also kick out the entire chat room for giggles.

MP3 File (Subscribe)

WMV File (Subscribe)

Duration 37:17

 

Creating a Site Collection with a custom Site TemplateUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt8/3/2010 3:42 PM8 

One of my coworkers, John Ross, recently asked me if it was possible to create a new Site Collection in SharePoint 2010 and use a custom site template for it. I'm usually more of a server and infrastructure guy, but this made me curious. In SharePoint 2007 site (really web) templates were saved as .STP files. Those STP files could be in the site collection gallery, or the farm gallery. If it was in the farm gallery then it was available at site collection creation. In SharePoint 2010 site (really web) templates are stored as user solutions in the site collection solution store as WSP files. Those WSP files don't upload at the farm level (at least not that I've been able to find). So how does one create a new site collection with a custom template? Stick around, we're going to find out. J

The first thing to keep in mind is that site collections don't have templates, webs do. When a new site collection is created there is a template picker. That doesn't apply a template to the site collection itself, but to the rootweb of that site collection. When the site collection is created, the rootweb is also created. That is where the template is applied. Knowing that, we can figure out a solution. We know that the site collection gets created, with or without a template. If the site collection is created, then so is its solution gallery. If we upload our WSP to that solution gallery, then it's available to us when we create the rootweb. That's how we create a site collection with a custom template. Here's the blow-by-blow on how to do it.

First we'll save out our site (really web) template. Start by going to the site you want to save as a template. Then go to Site Actions > Site Settings. It will look like this:

When you click "Save site as template" you see this screen (though it won't be filled out, you have to do that)

If things go well, you'll get this screen. Click the link to go to the Solution Gallery.

That should take you to this page:

Click the name of the template you created. You'll be greated with this dialog to save it to your local file system:

Now go into Central Administration and create the Site Collection (Application Management > Create site collections) you want to apply this template to. On the creation page go to the custom template page like below:

The secret sauce is not selecting a template for the rootweb. When the site collection is created, you'll be given a link to it. When you click it you'll be taken to the template picker page, if you hit it as one of the site collection administrators. At the bottom is a link to your newly created site collection's solution gallery.

Upload the template solution here:

Don't forget to activate it.

When you're back to the solution gallery use the breadcrumb to get back to the rootweb of the Site Collection:

That will take you back to the template picker page. Now on the Custom tab we have our template.

That's all there is to it.

tk

Netcast #51 – Size MattersUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt7/27/2010 10:17 PM0 

In this episode we discuss file size in search, more fun with loopback detection, the June 2010 cumulative updates and the cursed Farm Configuration Wizard.

MP3 File (Subscribe)

WMV File (Subscribe)

M4V File (Subscribe)

Duration: 35:17

Links

Search download size blog post

SharePoint 2010 June 2010 Cumulative Updates

Stump the Chumps

 

 

Netcasts 49 and 50 – I’m a SlackerUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt7/22/2010 10:04 PM0 

I'm a big slacker and didn't get my netcasts uploaded last week. So here they are in one big chunk.

Netcast #49: You Can't Spitball This

In tonight's episode we talk extensively about the User Profile Service in SharePoint 2010 and how to get the darned thing working. We also discuss some guidance on accounts in SharePoint 2010.

Duration: 40:32

MP3 File (Subscribe)

WMV File (Subscribe)

M4V File (Subscribe)

Links

SharePoint 2007 June 2010 CU WSS

SharePoint 2007 June 2010 CU MOSS

Can't enable SharePoint 2010 Enterprise Features

Spence's User Profile Service blog post

Shane's User Profile Service blog post

Russmax's User Profile Service blog post

 

Netcast #50: Golden SharePoint Knowledge

In this episode we talk about different authentication options in SharePoint 2010 and I brag a little about configuring the User Profile Service and not getting any new scars from it.

Duration: 39:11

MP3 File (Subscribe)

WMV File (Subscribe)

M4V File (Subscribe)

Links

Kerberos and SharePoint 2010 White Paper

Kerberos and SharePoint 2010 TechNet Article

SharePoint 2010 Admin Toolkit

 

Indexing files larger than 16 MB in SharePoint 2010Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt7/20/2010 9:35 PM4 

As with previous versions of SharePoint, SharePoint 2010 will not index the contents of files larger than 16 MB. There are a couple of reasons for this such as network usage pulling large files across and the time it takes to break them apart. While the file itself isn't indexed, the metadata is. So you'll be able to find the location of a 17 MB or larger file by searching for its name, or its author, you won't be able to find it by searching for words that exist in it.

With previous versions of SharePoint, the fix for this was to add a Registry key called "MaxDownloadSize" and put a number between 17 and 64 in it. That tells the search engine to ignore the 16 MB limit, and go ahead and index files all the way up to 64 MB in size. However, in SharePoint 2010 this has changed a bit. The indexer still doesn't download files larger than 16 MB, so that's the same. The way to fix it though is different now. Thanks to the invention of PowerShell we can do that instead of getting our hands dirty in the Registry.

Here's the PowerShell code:

$s = Get-SPEnterpriseSearchServiceApplication

$s.GetProperty("MaxDownloadSize")

$s.SetProperty("MaxDownloadSize",25)

$s.Update()

Restart-Service osearch14

 

This is what it looks like in practice:

We can see here the default value is still 16 MB, but that is easily changed to something like 25 MB. We also need to bounce the search service for this to take effect. Then after your next full crawl the data in files larger than 16 MB will be indexed.

How do you know if you have documents larger than 16 MB? Unfortunately that seems to have changed for the worse in SharePoint 2010. In SharePoint 2007 if the indexer came across a file larger than 16 MB it would throw a warning in the crawl log. SharePoint 2010 doesn't do this. I haven't found a way to determine which files are skipped because that are larger than the current MaxDownloadSize setting. If anyone knows how to determine this, let me know.

tk

Can’t open non Office files in SharePoint 2010Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt7/4/2010 11:33 PM6 

I stumbled onto this last week. A customer had a newly installed SharePoint 2010 farm and they got a complaint from an end user that they couldn't open non Microsoft documents. They only get the option to save or cancel. The screenshot below shows what happens when you try to open a PDF file from SharePoint 2010 in Internet Explorer 8.

Of course SharePoint's a lot less fun without that tight integration with documents that we've all grown to know and love. It was certainly a step backwards for this customer, as they could open these documents directly from SharePoint 2007. I hadn't seen this yet myself, so I did some investigation. I was able to reproduce the behavior in IE8. However, I noticed I was able to open the same document with Firefox. I discovered the behavior was caused by a new setting in SharePoint 2010, Browser File Handling. This setting is a security that prevents some active documents, like HTML and PDF, from ever being automatically loaded in a client application when clicked in SharePoint. The default setting in SharePoint 2010 for Browser File Handling is "Strict" which causes this behavior. If we change the setting to "Permissive" then we're able to open these documents directly like we expect to. This setting is set per web application in Central Admin in the General Settings shown below.

Since this setting is scoped at the web application level, it needs to be changed for every one of them. That's where PowerShell comes in handy. This setting can also be changed there. Web SPWebapplication object has a BrowserFileHandling property that corresponds to this setting. The following PowerShell will display its value for all the web applications in your farm:

Get-SPWebApplication | Select url, browserfilehandling

We can also use PowerShell to change that value for all of the web applications in the farm. This PowerShell code will do that:

Get-SPWebApplication | ForEach-Object {$_.BrowserFileHandling = "permissive"; $_.update()}

This changes the setting to "Permissive" then updates the web application. Here's how it looks:

It's that easy with PowerShell.

I hope this blog post has saved someone some frustration trying to figure out why they can't open up their documents directly.

tk

Netcast #48 - Lost Another KittenUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt6/30/2010 9:00 PM0 

In this week's episode we discuss some account issues, why you can't open PDFs from SharePoint, why Team sites are so darned easy to edit, and of course the PowerShell Tip of the Week, where we discuss anonymous access.

MP3 File (Subscribe)

WMV File (Subscribe)

M4V File (Subscribe)

Duration: 41:43

Links

New SharePoint 2010 Admin book

SPTechCon

SharePoint Connections Magazine

SharePoint Connections Conference

 

Service Packs, online videos and contest winnersUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt6/30/2010 2:51 PM0 

First off, a big Congratulations!! to Joy Bauer who was the winner of my Office 2010 contest. She correctly answered that the stated benefit of the ribbon was reduced user training. Thanks to everyone that entered. Keep an eye out here, I'll be giving away some SQL books in July.

I recorded a couple of videos while I was in New Orleans for TechEd. No, not those kind of videos. They're online now for your viewing pleasure. The first is part of a segment called Bytes by TechNet. It's a short video interview by Harold Wong. It was a pretty good time. The second is another short video interview about what I like about TechEd and what I see in the future for the next year. You can see it here. Both are short, I hope at least one of them will be the next Internet sensation like the Numa Numa Guy video or Gem Sweater Girl.

Finally, for some SharePoint related content, the June 2010 Cumulative Updates for SharePoint are out.

As usual, test them before you install them in production, and don't install them in production unless you need them.

Happy patching.

tk

Netcast #47 – Default and Everything ElseUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt6/23/2010 9:54 PM1 

In this episode I cover some upgrade topics, demystify AAMs, explain how to choose whether to cluster or mirror in SQL, and I show off my new book. And of course, the PowerShell tip of the week.

MP3 File (Subscribe)

WMV File (Subscribe)

M4V File (Subscribe)

Duration: 38:16

Links

Buy my book

Sign up for SPTechCon

Have I mentioned I have a new book out?

TechEd Video

 

 

Office 2010 ContestUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt6/16/2010 7:35 PMSharePoint 20074 

Those of you that read my blog and listen to my netcasts know I'm really excited about SharePoint 2010, and I do what I can to get other people excited as well. With that in mind, I'm excited to announce that I've been asked to be a part of a Microsoft campaign to spread the good word about your friend and mine, SharePoint 2010, the future of productivity.

Below I've linked a video that talks about some of the great new features in SharePoint 2010. After watching that video send an email to join2010@toddklindt.com with the subject "The Future of Productivity" (so I can tell them apart from all the Viagra emails I get) and the answer to this question: "What are the stated benefits of a ribbon UI?" I will accept guesses until 12:01 CDT the morning of Wednesday June 23rd.

I know the question you're all wondering, "What do I win? What do I win?"" Boy am I glad you asked, this is the best part! I will randomly select one of the correct answers and that person will win the following deluxe prize package:

Is that great or what? Sadly, I can only ship the prize to United States residents living in the US. Sorry. L

Are you excited? Are you already to go? I thought so. Without further ado, here's the video…

SharePoint 2010, The Future Productivity (also available on the righthand side of the main page)

Good luck to everyone. Get those emails in and I'll announce the winner Wednesday June 23rd.

tk

 

TechEd 2010 wrap-upUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt6/13/2010 7:18 PM1 

Sadly, another TechEd has passed. As always it was a blast. Shane and I had two sessions. One on upgrading to SharePoint 2010, and one on getting up to speed on PowerShell for SharePoint Admins. Due to the magic of the Internet you can watch those sessions even if you weren't at TechEd this year. Just click the links above. Both went over pretty well. The last time I checked the PowerShell session was the highest ranked Office and SharePoint session at TechEd. Just goes to show what bribing your audience with free books can do.

The nice folks at Idera bought 35 of our books and on Tuesday we gave them away and signed them. We also gave away some adorable t-shirts.

We also recorded a couple of interviews with Harold Wong for TechNet Bytes. I'm not sure when they will be published. Keep your eye out for them though, they're pretty good. Here's a snapshot I took on the set while Shane was sharing the SharePoint love.

In our spare time we hung out at the SharePoint TLC and dispensed invaluable SharePoint advice. That and made fun of each other. We also tirelessly pitched our new book, Professional SharePoint 2010 Administration from Wrox. It paid off. It was the #1 seller in the TechEd bookstore Sunday and Wednesday, the #2 seller on Monday, and the #4 seller on Tuesday. That's not too bad considering it sold out…twice! Here are the top sales on the first day:

I also got to meet a lot of people. It was a blast meeting a bunch of people in person that I had previously only communicated with on Twitter. Thanks to all of you that came up and said "Hi." It made the event a lot more personal. J

That's all for my TechEd coverage. I look forward to next year's TechEd in Atlanta.

tk

See you at TechEd in New OrleansUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt6/4/2010 9:26 PM3 

In a couple of days I fly to New Orleans for TechEd 2010. Here's a list of the places I know I'll be:

OSP401 - Upgrading Microsoft Office SharePoint Server 2007 to SharePoint Server

Tuesday June 8th, 8:00 – 9:15 (Add to your calendar)

Itching to upgrade your SharePoint Server 2007 farm to SharePoint Server 2010? Then this is the session for you. In this session we cover the upgrade methods that are available, and explain how to determine which one is the best way for you to get your content into your shiny new SharePoint 2010 farm. Finally, we show you the way to reduce the amount of downtime you'll have. Your users will love you for that.

Idera book signing

Tuesday June 8th, 12:15 – 12:45 (Add to your calendar)

First 35 people to show up get a free signed copy of Professional SharePoint 2010 Administration and maybe a t-shirt. This will be at the Idera booth at the Partner Expo.

OSP402 - Windows PowerShell Made Less Scary for the Microsoft SharePoint Server Admin

Wednesday June 9th, 11:45 – 1:00 (Add to your calendar)

PowerShell is the command line admin interface for SharePoint Server 2010. It can be pretty scary for SharePoint admins who haven't used it before. In this session we provide PowerShell basics, then show the amazing things you can do to SharePoint 2010 with PowerShell. By the end of this session you may never open Central Admin again.

I'll also be spending a lot of time at the SharePoint booth in the Technical Learning Center (TLC) so swing on by and say "Hi." I look forward to seeing you.

tk

SharePoint 2010 Article in SharePoint Pro Connections MagazineUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/29/2010 9:55 AM0 

If you're a subscriber to SharePoint Pro Connections magazine (which is free, so why wouldn't you be?) then you got a special little surprise in your mailbox this month. A picture of me! Their second issue came out in June and it features an article from yours truly on all the wonderful improvements in Monitoring that SharePoint 2010 has. If you get the print magazine, go read the article fast, before your friends do. If you don't get the print version, first shame on you, second, click the link above and read the article online. Don't be afraid to rate it. Let the folks at Penton know what you think. If you eat your vegetables, and say your prayers each night, there just might be another surprise waiting for you in the next issue of SharePoint Pro Connections too. Maybe…

Netcast #45 – Sweet PetuniasUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/25/2010 5:24 PM0 

In this week's episode we cover prebuilding your SQL databases and what accounts the SharePoint 2010 install requires. I also brag how our new book saves some orphans from a burning church, as well as helped a viewer publish service apps between farms. And of course there's the ever popular PowerShell tip of the week.

MP3 File (Subscribe)

WMV File (Subscribe)

M4V File (Subscribe)

Duration: 40:25

Links

SharePoint SDK online

SharePoint 2010 download

Mark Rhodes' blog post

Simple Install for testing video

Whitepaper on precreating SharePoint databases

Moving Site Collections with PowerShell

Anders Rask's blog post

My RBS blog post

My new SharePoint 2010 admin book

 

 

 

 

 

Using Move-SPSite to move Site Collections in SharePoint 2010Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/24/2010 11:17 AM3 

One of my most popular SharePoint 2007 blog posts is about using the STSADM operation mergecontentdbs to move site collections from one content database to another. It showed up in Service Pack 1 of SharePoint 2007 and made the process of shuffling site collections around much easier. Through service packs and cumulative updates it got stronger over the years. When SharePoint 2010 hit the streets our options got even better. Not only do we get mergecontentdb's direct replacement, Move-SPSite, but we also get a way to remove some of the need for its use in the first place. In SharePoint 2007 there was no way out of the box to create a new site collection in a specific content database that already existed. The closest we had was the createsiteinnewdb STSADM operation that would create a new content database for our new site collection. To create a new site collection in a specific content database we had to use tricks like put the content database in the offline mode, or play with its maximum site number. These techniques worked okay if you had a small SharePoint 2007 shop, but once a couple new administrators got into the mix things got ugly. Fortunately for us, SharePoint 2010 is here to save us from all of that. I was talking to my buddy Anders Rask about this last week. He was doing this for a SharePoint 2007 environment and it reminded me how much better the story is in SharePoint 2010. Anders' pain turned into a tasty new blog post for you guys. Everyone thank Anders.

We no longer need mergecontentdbs, we now have the Move-SPSite PowerShell cmdlet. It's a little easier to use than its STSADM counterpart, and because it's in PowerShell, it's a lot more flexible. It can also dance better and it cooks a mean omelet. At its most simple, you can use it like this:

Move-SPSite http://sharepoint/sites/moveme -DestinationDatabase WSS_Content2

For this to work, the content database that the moveme site collection is currently in must be on the same SQL server as WSS_Content2 and moveme but be in the same web application as the WSS_Content2 database. Mergecontentdbs has those same limitations though, so we're used to them.

Instead of having to cobble together XML files to do multiple site collections at a time, like we did with mergecontentdbs, now we can just loop through a collection of site collection objects and only move only the ones that meet our specific criteria. For instance, to move all the site collections where contoso\todd is the owner, to the content database WSS_Content2 we would use this line:

Get-SPSiteAdministration | Where-Object { $_.OwnerLoginName -eq "contoso\todd" } | Move-SPSite -DestinationDatabase WSS_Content2

The first cmdlet we use is Get-SPSiteAdministration. This is like Get-SPSite, gets us a collection of the site collections in our farm. Unlike Get-SPSite, Get-SPSiteAdministration includes site collections that the user running the command does not have access to. We can use any site collection property as our filter, including name, template, content database, anything we would like. Our imagination is the limit.

Like I mentioned earlier, part of the reason we needed mergecontentdbs was because there was no good way to control which existing content database a new site collection went into in SharePoint 2007. We had a few workarounds, but like most workarounds they had some downsides. For instance, if we set a content database to Stopped or Offline a new site collection would not go there. First, you had to somehow decipher the cryptic meanings of "offline" and "stopped. Not even the Rosetta Stone is any help there. Setting a database in that mode had some collateral damage, like profile sync no longer worked. Our second technique was to set every content database's maximum sites setting to its current number of sites. That way SharePoint had to put the new site collection someplace else. The problem with that is that when you're culling out old site collections your maximum is no longer the current number of site collections. After each site collection deletion you have to go through your databases and adjust the maximum to the new current number of sites. That is kind of a pain, and tough to remember to do. Both of these techniques really start to fail once you have more than one person managing your farm. Again, SharePoint 2010 and its sidekick PowerShell come to the rescue.

In SharePoint 2010 when we create a new site collection with New-SPSite we have an optional -ContentDatabase parameter we can define. If we want that new site collection to go into a specific content database, we just tell New-SPSite and it puts it there for us. How considerate. However, there was one tradeoff. There is no PowerShell equivalent of the old Createsiteinnewdb STSADM operation. The content database has to exist for it to work with New-SPSite. That's okay though; creating new content databases with New-SPContentDatabase is fun, so we don't mind doing it anyway. Just create the database first and then drop your new site collection into it.

I hope this blog post has helped explain some of the new functionality in SharePoint 2010 and will allow you to put our old pal mergecontentdbs out to pasture for good.

tk

Installing SharePoint 2010 on a Domain ControllerUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/21/2010 4:56 PM0 

There's been some confusion about what happens when you install SharePoint 2010 on a Domain Controller. To further complicate things, the behavior in the release version of SharePoint 2010 is exactly the opposite of what it was in the beta. It's like they're messing with us!

To clear it up; if you install SharePoint 2010 on a Domain Controller, you get a Server Farm (also called Advanced) install. You do NOT get a Single Server (also known as Basic) install. Heck, you don't even get the option to install a Single Server install in the UI. If you want one, you have to script the install using a config.xml file.

Now, that's confusing to some folks, because the public beta was exactly the opposite. If you installed the SharePoint 2010 beta on a Domain Controller, you got a Basic install whether you wanted it or not. And of course you didn't. My only guess is that in the beta timeframe they knew they wanted to force our hands on the install type, but somewhere a 1 got flipped to a 0 and the wrong option was installed. That's fixed on RTM though.

So why do they care? Well, it comes down to SQL Express, I think. If you do a Basic Install you get SQL Express as part of the deal. To install SQL express on a Domain Controller in a supported fashion you need to tweak some things during install, which are detailed here. The appeal of a Basic Install, if there is one at all, is that there's nothing to configure. So which route would they go then, not bother the user for the extra info and install SQL Express in an unsupported fashion, or break the sacred vow of the Basic install and prompt for information? They took option three, don't install SQL Express at all. Now, let's be clear on what "supported" means. "Unsupported" does not mean "won't install on" or "you're a freakin' super genius if you figure out how to do this." It just means it's not the intended way for the software to run, and Microsoft hasn't tested it. You can install SQL Express on a Domain Controller without setting all those settings, as the Beta install showed us. It just hasn't been tested, and may break somewhere down the line.

That's the story. Not much to it. Just wanted to clear that up a little.

tk

Netcast 44 – Happy Birthday SharePointUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/19/2010 9:18 PM0 

In this week's train wreck I continue to be plagued by production gremlins. In between crashes I wish SharePoint 2010 a Happy Birthday. I talk about the great SharePoint 2010 resources that are available right now as the product is launched. I also cover some common problems with SSRS and SharePoint. I end the episode with a rousing tale of screwing up all of my SharePoint 2010 databases with PowerShell. Not to be missed if you can stand the bad audio.

MP3 File (Subscribe)

WMV File (Subscribe)

M4V File (Subscribe)

Duration: 26:24

Links

SharePoint home page

Getting started IT Pros SharePoint 2010videos

Advanced IT Pro SharePoint 2010 Videos

All about PowerShell and SharePoint 2010

SQL 2008 SSRS with SharePoint 2010

PowerShell tip of the week

Pre-order my SharePoint 2010 Admin book

 

Media hosted by RackSpace

 

 

 

 

 

 

Setting a SharePoint 2010 Config DB failover server with PowerShellUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/15/2010 1:59 PM13 

One of the great new improvements in SharePoint 2010 is native support for SQL mirroring and automatic failover. In SharePoint 2007 you had to use some complicated SQL aliases to provide failover support. SharePoint 2010 has built in support for database mirrors, and allows you to define a failover SQL server for any databases you have mirrored. You can mirror one database, you can mirror several, it's all up to you. You can do this with content databases or service application databases. To take advantage of this simply add the instance name of the SQL server where the mirror of your database is in the settings for the database, like below:

You will have to configure the database mirroring independent of SharePoint. SharePoint does not configure the mirroring in SQL for you. SharePoint will however verify the instance you specify is valid. With your new found knowledge you'll probably start running through your SharePoint farm mirroring all your databases. You'll find out pretty quickly that approach has two problems. First, all that clicking is tedious. Clicking is for losers. Second, no matter how of that cruddy clicking you do there's no place to mirror the granddaddy of all SharePoint databases, the Config DB. Fortunately the solution to both of those issues is our old friend PowerShell. We can use PowerShell to loop through our databases and configure the failover server for them all at once. The Config DB is included in the collection of databases, so it gets a failover instance as well. We can use the PowerShell cmd Get-SPDatabase to retrieve the databases. Its output looks like this:

The red highlighted database is our configuration database. We can use the FailoverServer property of a database to see if it's mirrored or not. To set a mirrored instance for a database use the AddFailoverServiceInstance method. You'll also need to use the Update method for the setting to take effect. To verify our Config DB is not already mirrored, and then set a mirror for it on the SQL server SQL02 use the following commands:

Here's the code in text form:

PS C:\> (Get-SPDatabase 74e036c2-13d3-4f6e-ac20-f5f189c22967).AddFailoverServiceInstance("SQL02")

PS C:\> (Get-SPDatabase 74e036c2-13d3-4f6e-ac20-f5f189c22967).Update()

PS C:\> Get-SPDatabase 74e036c2-13d3-4f6e-ac20-f5f189c22967 | select name, failoverserver

That gets the database object using the GUID of my Config DB from the preceding image, sets its FailoverServiceInstance value to SQL02, and then updates it. If you do this with a Content DB or Service App DB you can double-check the setting worked by looking in Central Admin.

This approach works, but it's clunky. Fortunately we can use PowerShell to walk through our databases, look for the Config DB and then set its FailoverServiceInstance to SQL02. Since we have to do two operations on the database, I had to break it up into a couple of lines. The following lines should work on any SharePoint Farm and set the Config DB's Failover Server to SQL02.

PS C:\> $db = Get-SPDatabase | Where-Object { $_.TypeName -eq "Configuration Database" }

PS C:\> $db.AddFailoverServiceInstance("sql02")

PS C:\> $db.update

Here's what it looks like when it runs:

Be very, very careful with your Where-Object statement. When you do programming or scripting you'll find that the equal sign (=) has two different meanings. In some cases it is used for evaluation, where "a = b" means "Does A have the same value as B?" In other cases it's used for assignment so "a = b" means "assign a the value of b." PowerShell uses the equal sign for assignment, like the latter example. In PowerShell if you want to evaluate to values, use –eq instead like I did above. If you accidentally use the equal sign instead of –eq you're not asking "Is the current object's TypeName property the same as "Configuration Database" like you want to. Instead you're telling PowerShell to assign the TypeName propery to "Configuration Database", which won't work since the TypeName property is read-only, and you'll get an error. However, if you're testing your PowerShell logic and you're using a different property, maybe the Name property, you'll have a different experience since that Name property is not read-only. If you use the equal sign accidentally when evaluating you'll overwrite the Name property instead of evaluating it. Compare these two statements:

Get-SPDatabase | Where-Object {$_.Name -eq "SharePoint_Config"}

Get-SPDatabase | Where-Object {$_.Name = "SharePoint_Config"}

The first one evaluates each database's name to see if it is equal to "SharePoint_Config." The second walks through each database and set its name to "SharePoint_Config." Yes, it renames every database in your farm to "SharePoint_Config." Go ahead, ask me how I know. Another word of advice, take lots of snapshots when you're doing this. J Renaming all of your databases doesn't seem to break SharePoint, or at least it didn't break my VM. It did, however, make it very difficult to tell them apart:

Enough of my cautionary tale. Our TypeName loop will work with any type of database in your farm. Here are all of the database types that exist on my VM:

You could loop through all of your databases, or just specific types like "Configuration Database" or "Content Database."

Hopefully this blog accomplished three things. It taught you about Database mirroring. It taught you how to mirror databases, especially the Config DB with PowerShell. And it taught you that I'm a bonehead.

tk

Netcast 43 – Technical Difficulties…AgainUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/13/2010 10:18 PM0 

In this week's episode, which I barely eeked out due to technical difficulties, we talk about how to get into SQL Server when you can't get into SQL Server, a new, bigger SQL Sever Express, installing SharePoint 2010 on a Domain Controller and some tricks with Small Business Server. It was a busy week.

SharePoint 2010 managed accounts and the ever popular PowerShell tip of the week.

MP3 File (Subscribe)

WMV File (Subscribe)

M4V File (Subscribe)

Duration: 22:29

Links

Upgrading to SQL Express 2008 R2

Installing SQL Express on a Domain Controller

Don't install Search Server on SBS 2008

 

Installing SQL Express 2008 R2, even upgrading SQL Express 2005Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/5/2010 4:15 PM3 

Last week the SQL Express team announced that the 2008 R2 version of SQL Express would no longer have the stingy 4 GB database limit that SQL Express had in its 2005 and 2008 iterations. The 2008 R2 was getting a promotion to 10 GB. Glory be! For us SharePoint folks, this is great news. SQL Express is a great way to try SharePoint, without paying big bucks for SQL Server Standard or Enterprise. If you, against my pleading, did a Basic Install of MOSS 2007, SharePoint Foundation 2010 or SharePoint Server 2010 you get an instance of SQL Express also. The 4 GB limit with earlier versions of SQL Express was quite a pain, but fortunately even if you did the dreaded Basic Install of MOSS 2007 you can take advantage of SQL Express 2008 R2's 10 GB limit. In this blog post I'm going to walk through upgrading SQL Express 2005 to SQL Express 2008 R2.

Your first step, regardless if this is a new install or an upgrade is to download SQL Express 2008 R2. You can download just the database engine, but I recommend grabbing the download that includes the Management Tools. If this is a fresh install, and you're on 64 bit hardware, I recommend using the 64 bit version. If you're on 32 bit hardware, or if you're upgrading from SQL Express 2005 you'll need the 32 bit version. SQL Express 2005 and 2008 was 32 bit only.

If you're upgrading I highly recommend running a backup first. In my tests the upgrade always went smooth, but that's hardly a guarantee. If you're using SQL Express with SharePoint you can do a Farm backup in Central Administration to back up all your databases. Go ahead, do it now, I'll wait.

Okay, now that that is done and you've downloaded the install, go ahead and run it. Since we're going version to version, we don't need to do anything tricky like using the SKUUPGRADE switch. When you start the installer, choose the upgrade option:

When it comes to the upgrade screen, pick the OFFICESERVERS instance. That's the instance SharePoint creates when it does a Basic Install.

If you're not upgrading a Basic Install your instance name will be different. If you didn't install SQL to a named instance the instance name will be MSSQLSERVER.

After that click Next a bunch of times and let the upgrade happen. If everything goes well, you'll be greeted with this cheerful message:

At this point your database engine has been upgraded, but you don't have the fancy Management Studio. From the splash screen choose New Installation or Feature. On the Installation Type screen choose " New installation or add shared features." On the next screen clear all the boxes except the one next to "Management Tools – Basic." SQL might try to install another database engine instance too, don't fall for that.

Click next a bunch of times and you should be finished. After the installation is finished you'll have a link the SQL Management Studio under All Programs:

If you did a Basic Install you'll need to connect to the OFFICESERVERS instance.

When you hit Connect you'll be connected to the SQL Instance that has all your SharePoint databases. Databases that can now grow to be 10 GB, all for free. J

tk

Using PowerShell to set up a test environmentUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/4/2010 9:48 PMSharePoint 20070 

Now that SharePoint 2010 is RTMed and available via MSDN and other means, there are a lot of people rebuilding their test environments for the shiny new code. I build a lot of test VMs, so I've automated some pieces of it. This blog post shows a PowerShell file I use to configure some aspects of a new test machine. The purpose isn't to provide you with settings you should use with your test environments, but more to show you the kind of things you can automate with PowerShell. Hopefully it'll jiggle something loose and you'll find ways to use PowerShell to automate your test environments. Here's the file I use:

# Add Active Directory Module

Import-Module ActiveDirectory

 

# Import accounts from users.csv into AD

Import-Csv .\users.csv | foreach-object {New-ADUser -SamAccountName $_.SamAccountName -Name $_.name -DisplayName $_.Name -Title $_.title -Enabled $true -ChangePasswordAtLogon $false -PasswordNeverExpires $true -AccountPassword (ConvertTo-SecureString "pass@word1" -AsPlainText -force) -PassThru -WhatIf}

 

# Add sp_farm account to domain admins

Add-ADGroupMember -Identity "domain admins" -Members sp_farm

 

# Set AD password policy so passwords don't expire

Set-ADDefaultDomainPasswordPolicy contoso.com -ComplexityEnabled $false -MaxPasswordAge "3650" -PasswordHistoryCount 0 -MinPasswordAge 0

 

# Disable the loopback check

New-ItemProperty -path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa -name DisableLoopbackCheck -value 1 -PropertyType DWORD

 

# Set machine to log in automatically as sp_farm

New-ItemProperty -name DefaultUserName -value sp_farm -PropertyType string -path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon'

New-ItemProperty -name DefaultDomain -value contoso -PropertyType string -path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon'

New-ItemProperty -name DefaultPassword -value pass@word1 -PropertyType string -path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon'

New-ItemProperty -name AutoAdminLogon -value 1 -PropertyType string -path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon'

 

# Add ServerManager module for next few cmdlets

Import-Module Servermanager

 

# Add the PowerShell ISE because PowerShell rocks!

Add-WindowsFeature PowerShell-ISE

 

# Add the Desktop Experience

Add-WindowsFeature Desktop-Experience

 

restart-computer

 

You have to be using Windows 2008 R2 for this to work. Also, in my test environments SharePoint is installed on a domain controller in the Contoso domain. The first line adds the Active Directory module into our PowerShell console so that we can run the next three cmdlets. The next, very long line opens a file, users.csv and creates the users in Active Directory and sets their password to pass@word1. The users.csv I normally use looks like this:

Name,SamAccountName,Title

Todd Klindt,todd,SharePoint Consultant

SharePoint Farm,sp_farm,Service Account

SharePoint Service Apps,sp_serviceapps,SharePoint Service Application Account

It's fairly self-explanatory. If you want to add more fields, like Manager, you can add them to the CSV file, then call them in the foreach-object loop. The title you put in the first line is how you'll reference it in the loop.

The next line adds the sp_farm account to the domain admins group. Under normal circumstances this would not be necessary, but the install account has to be a local administrator and since we're installing a domain controller, that means it has to be the domain admins group. Finally I set the domain password policy so that passwords won't expire. I speak from experience when I say it stinks to fire up your VM for a presentation only to have everything fail because your passwords expired. No more!

Next I disable the loopback check. Again, in a production environment you wouldn't do this, but this is a test machine so it's okay. In production you should not use the disableloopbackcheck Registry key. Instead you should use the BackConnectionHostNames key and whitelist your server's aliases.

Speaking of things you would never do in production, the next few Registry keys set the VM to automatically log in as sp_farm. If you want to log as a different user you can log off or switch users to another user. You can also use a non Internet Explorer browser like Firefox to log into SharePoint easily as a different user.

Finally I add the Server Manager module for the last two cmdlets. They add the PowerShell ISE and the Desktop Experience. This makes PowerShell use a little easier, and the Desktop Experience is needed for the WebDAV components that make it possible to save files directory from Office clients to SharePoint. The Desktop Experience requires a reboot, so I threw that in at the end.

That's it. When writing this I learned how to set Registry keys and all the Active Directory stuff. This is another great example of just finding a task and knuckling down in PowerShell and figuring out how to do it.

tk

The Great Baby ContestUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt4/28/2010 11:06 PM0 

I mentioned this in Netcast #42, but it deserves its own blog post. My wife and I are expecting our second daughter soon. She's due May 2nd. To celebrate that, and the soon completion of the book I thought I'd hold a contest to win some copies of the book. Here are the rules:

  1. Each guess costs $1
  2. All proceeds will be matched by me, and then donated to my favorite charity, MICA.
  3. Each guess can guess 1 of 3 things:
    1. The baby's first name (remember, she's a girl J )
    2. The baby's weight at birth (No I won't tell you how much weight my wife has gained. She'd kill me)
    3. The date and time the baby is born (She's due May 2nd. Last baby was seven days late)
  4. For weight and time, whoever is closest wins, even if they go over
  5. If there are ties, the first submission wins
  6. Guesses will be accepted right up until the baby is born

The winner in each category will win an autographed copy of our SharePoint 2010 Admin book when it comes out.

How do you enter? Glad you asked. To enter, send $1 to my PayPal address, paypal-@-klindt.org, without the dashes. In your PayPal message, make sure and tell me what your guess is. I'll keep track of them and announce the winners after the baby is born.

If you have any questions, leave a comment below.

Thanks and happy wagering.

tk

Netcast 42 – The Great Baby ContestUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt4/28/2010 10:04 AM0 

Tonight's show is a big one. We talk a little about SQL aliases & SharePoint, Office 2010 and SQL 2008 R2 all RTMing. I cover some trouble with SharePoint 2010 managed accounts and the ever popular PowerShell tip of the week.

MP3 File (Subscribe)

WMV File (Subscribe)

M4V File (Subscribe)

Duration: 40:22

Links

SQL 2008 R2 is ready for download

Maurice's blog post about Managed Accounts

Sean's new gig with Idera

PowerShell Tip O' The Week file

TechEd North America 2010

Idera Events

Best Damned SharePoint 2010 Admin book ever!

 

 

 

SQL 2008 R2 is available for downloadUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt4/25/2010 8:31 PM1 

The folks in Redmond have been busy the last week. SharePoint 2010 went RTM a couple of weeks ago and showed up for download on MSDN last week. The Office 2010 clients are available now too. If that weren't enough, I saw today that you can download SQL 2008 R2 RTM now. When you install it the build number will be 10.50.1600. The download is a trial. However, the trial is for 180 days, which will be plenty of time for any SharePoint 2010 demos that anyone is setting up. Also, during the install there is an option to put in a license key, so I am guessing it can be upgraded later.

If you're going to be doing anything with SharePoint 2010 and Reporting Services, or some other Business Intelligence features you need SQL 2008 R2.

tk

Professional SharePoint 2010 Administration book is done, let’s celebrate!!Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt4/25/2010 5:27 PM7 

I turned in my last full chapter for Shane, Steve and I's Professional SharePoint 2010 book on Friday. There's still some author reviewing to do, and stuff like that, but I'm all finished writing new content. Woo Hoo! To celebrate, I'm going to hold a contest to give away some copies of the book, when it comes out. I'll announce the exact terms Monday night during Netcast #42. You won't have to be watching it live to win, but it will give you an advantage. You'll also need a PayPal account, so if you don't have one already, you have a day to get one lined up. Don't worry though, I'm not making any money off of this, it will all go to charity.

Go ahead, get those preorders rolling.

tk

Netcast 40 – New Office and Bad VideoUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt4/14/2010 9:11 PM0 

In this episode we talk about some SQL issues and a PowerShell tip of the week that concerns calculating database sizes.

MP3 File (Subscribe)

WMV File (Subscribe)

M4V File (Subscribe)

Duration: 28:54

 

Links

Using PowerShell to determine SharePoint database size

SharePoint Saturday Atlanta

TechEd New Orleans

Pre-order my new SharePoint 2010 book

 

 

 

Using PowerShell to determine SharePoint database sizeUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt4/12/2010 1:08 PM7 

Recently on the MSDN SharePoint forums someone was asking about backup size, and how much space a farm backup would take. This got my wheels turning; there must be a way to do this with Windows PowerShell. To the SharePoint Management Console I went, with purpose in my heart.

I've used Get-SPContentDatabase a few times in the past so that's where I started. I piped it through Get-Member and found a disksizerequired property. The lightbulb when off. That property tells us how much space a database is actually using, not the size of the MDF file itself. This is exactly what I needed. Then I realized not only was there a Get-SPContentDatabase there was also a Get-SPDatabase (no content) that covers all the databases, including the big one, the logging database. After some noodling around I came up with this little gem:

Get-SPDatabase | Sort-Object disksizerequired -desc | Format-Table Name, @{Label ="Size in MB"; Expression = {$_.disksizerequired/1024/1024}}

This lists all of your databases, from largest to smallest and their size in MBs. Its output looks like this:

Name Size in MB

---- ----------

WSS_Logging 1657

SharePoint_Config 505

Search_Service_Application_PropertyS... 158

SharePoint_AdminContent_9cdc3220-ff2... 99

Search_Service_Application_DB_79408a... 99

WSS_Content 74

WSS_Content_OOTB_upgrade 46

WSS_Content_ac5e33ae4e354dd493b6da17... 26

wss_content_upgrade 26

WSS_Content_portal 24

Search_Service_Application_CrawlStor... 17

User Profile Service Application_Pro... 7

Bdc_Service_DB_a95c44b879ef48f8a5307... 6

WebAnalyticsServiceApplication_Repor... 6

WebAnalyticsServiceApplication_Stagi... 5

Application_Registry_Service_DB_2f70... 4

Managed Metadata Service_c23b61fed61... 3

managed_metadata_the_truth 3

User Profile Service Application_Soc... 3

User Profile Service Application_Syn... 2

StateService_783e168d26fd498b9be3061... 2

Secure_Store_Service_DB_89dc97ed2262... 2

PerformancePoint Service Application... 2

WordAutomationServices_00a4e73d0d734... 2

That's pretty helpful, but it doesn't answer that burning question, how much space is needed. I came up with this to answer that question:

Get-SPDatabase | ForEach-Object {$db=0} {$db +=$_.disksizerequired; $_.name + " - " + $_.disksizerequired/1024/1024} {Write-Host "`nTotal Storage (in MB) =" ("{0:n0}" -f ($db/1024/1024))}

Its output looked this this:

StateService_783e168d26fd498b9be3061299862269 - 2

Secure_Store_Service_DB_89dc97ed22624025ae6e9a69f2684978 - 2

WordAutomationServices_00a4e73d0d7341cdac915e8247da5211 - 2

User Profile Service Application_SocialDB_f2c646049bfd4456b612e454ac1a73fd - 3

Bdc_Service_DB_a95c44b879ef48f8a53070abd98a9d03 - 6

WebAnalyticsServiceApplication_StagingDB_51bf4216-80fa-45d5-b580-b5d419c8e269 - 5

SharePoint_Config - 505

PerformancePoint Service Application_c575f52198844d46a6c2d29c69a6594a - 2

Search_Service_Application_CrawlStoreDB_6c608154693c412bb9fc1e35235e502f - 17

Search_Service_Application_PropertyStoreDB_d7726abcc15f425eb39428f3d6d983d4 - 158

Application_Registry_Service_DB_2f70cb1bdc274522ac5ca345df9de86e - 4

SharePoint_AdminContent_9cdc3220-ff2c-4b52-abcf-ad9ce1ba463d - 99

WSS_Content - 74

WSS_Content_ac5e33ae4e354dd493b6da176e9e6c84 - 26

WSS_Content_OOTB_upgrade - 46

WSS_Content_portal - 24

wss_content_upgrade - 26

Search_Service_Application_DB_79408a739be74c18ac0b44630382b13c - 99

Managed Metadata Service_c23b61fed6114e88af70931a2add3c36 - 3

managed_metadata_the_truth - 3

User Profile Service Application_ProfileDB_15a709d2085741fb9ed182d6e77e2a4f - 7

WSS_Logging - 1654

User Profile Service Application_SyncDB_9ff01258380945d99a5c9e8e110b6835 - 2

WebAnalyticsServiceApplication_ReportingDB_c7b9b6b2-f3d7-40c4-b72f-70a47e78deec – 6

 

Total Storage (in MB) = 2,775

They both introduce some new PowerShell learnin' for me. In the first example the new thing was the Label and Expression part at the end. This lets you put something more complicated than just a property in Format-Table. Also lets you put a fancy label on the column. I like it.

The second command took a lot of work. I had to learn a lot of things. I had to learn how to keep a tally as I loop through items. I used the $db variable for that and had to use curly braces to get everything in the right place. I also had to figure out how to write a blank line to separate the Total column. `n did that for me. Finally I wanted to format the output. Disksizerequired is in bytes, which is a gigantic and useless number for us. In both examples I divided it by 1024 twice to get it to megabytes. That wasn't enough. In a large enough farm that value is going to be gigabytes, so I wanted to format it so it could be readable. ("{0:n0}" –f ($db/1024/1024)) made that happen. I did a lot of searching on "Powershell format numbers" to get that all worked out. TechNet had the solution for me. The second script doesn't give as nice of output since we're not using Format-Table anymore. Maybe I'll add that in a later tip.

tk

Netcast 40 – Any Port in the StormUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt4/6/2010 3:04 PM0 

In this week's episode I discuss some fun I had battling SharePoint search. I also revisit last week's PowerShell Tip O' The Week and give a new one.

MP3 File (Subscribe)

WMV File (Subscribe)

M4V File (Subscribe)

Duration: 37:38

 

Links

SharePoint 2010 on an iPad

Redmond Channel Partner magazine article with quotes from me

Download Microsoft Search Server

SharePoint Permission Levels

SharePoint Saturday Atlanta

TechEd 2010 North America

Preorder my SharePoint 2010 Admin book

 

 

 

 

Using Windows PowerShell to backup your SharePoint 2010 websUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt4/5/2010 3:32 PM2 

As an administrator I'm constantly finding ways to use Windows PowerShell in my day to day administrative activities. Today's PowerShell tip is no different. For a while now Shane and I have been demonstrating how to use a simple PowerShell loop to back up all the site collections in your farm. It looks like this:

Get-SPWebApplication | Get-SPSite | ForEach-Object{$FilePath = "C:\Backup\" + $_.Url.Replace("http://","").Replace("/","-") + ".bak" ; Backup-SPSite -Identity $_.Url -Path $FilePath}

Since I've demonstrated that one a couple of times I felt it would be cheating to use that as my PowerShell Tip O' The Week. A couple of weeks ago someone on the TechNet forums asked how to use PowerShell to back up all of their webs, not site collections. I thought this was a worthy challenge as it had a few different aspects to it. Here's what I ended up with:

Get-SPSite http://upgrade/* | Get-SPWeb -limit all | ForEach-Object { [string] $dt = Get-Date -Format yyyyMMdd; $filepath = "C:\Backup\" + $_.Url.replace("http://","").replace("-","--").replace("/","-") + "-$dt.export" ; Export-SPWeb $_ -path $filepath -IncludeUserSecurity -IncludeVersions all -UseSqlSnapshot}

 

You can see it's very similar to the first one, but with a few changes. First, I didn't want to back up the webs from all the web applications in the farm, so instead I seeded the command with "Get-SPSite http://upgrade/*" which gives all the webs in that web app instead. You can also use filters to control which webs are backed up. I made sure and used "-limit all" with "Get-SPWeb" to get all the webs instead of the default of 20. Next I changed now the file names were constructed. I added the date to them. This way you can run it daily and keep multiple versions. Since Get-Date outputs a datetime object I had to cast it as a string. The format string of yyyyMMdd means the date will come out as something that is sortable in the file system. Today's date of April 5th, 2010 will show up as 20100405 in that format. Next I build the filename the same way as the site collection example, but through the $dt variable at the end. You could also put it at the beginning instead, if you wanted all of your backups sorted by date instead of by web name. To get the value of $dt instead of the literal string $dt I used double quotes. They behave differently than single quotes. Finally I export the web. I had more options to consider, so I showed some options. For instance, I use –includeusersecurity to include security and I use =includeversions to include all versions. Just to show off a little, I throw in a –UseSqlSnapshot too. If you choose not to include the date in the filename you'll end up with an error as it will be trying to write to a file that already exists. Export-SPWeb does not have an –overwrite switch, but it does have a –force switch which remedies that situation.

Since SPWeb exports are not full fidelity you probably won't use them for actual disaster recovery. For instance, you will lose your user's Alerts and any workflows. However, you might have some need for a backup of all your webs. If you do, this is the script for you. Remember, you'll have to run this from the SharePoint 2010 Management Shell, or run "add-pssnapin Microsoft.sharepoint.powershell" in your PowerShell console. And of course you'll have to run this on a SharePoint server.

Thanks to Shane Young for the site collection script that started this, and thanks to Darrin Bishop for giving my PowerShell script a sanity check and suggesting some things I didn't think of.

tk

Netcast 39 – Mamas’ BoysUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt3/30/2010 4:32 PM0 

In this week's episode I try to explain why I've been gone so long and I beg for your forgiveness. I also talk about the Developer Dashboard, and I introduce a new part of the netcast, the PowerShell tip of the week.

MP3 File (Subscribe)

WMV File (Subscribe)

M4V File (Subscribe)

Duration: 34:03

 

Links

SharePoint Pro Connections magazine from Penton media

PowerShell Tip O' The Week: Developer Dashboard

Shane and I on The Moss Show

SharePoint 2010 release date information

How to use Windows PowerShell to configure the Developer DashboardUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt3/29/2010 11:27 AM2 

The Developer Dashboard is a great way in SharePoint 2010 to see what's going on behind the scenes when a page is loading in SharePoint. It breaks down the components of the page and how long they took. It also lists out information like how many SQL queries have been run, critical events, the correlation ID, and other important information. The Developer Dashboard can be set to on, off, or ondemand at will for your farm. Some folks will do it with STSADM using the command "stsadm –o setproperty –pn developer-dashboard –pv [on|off|ondemand]" choosing the level they want the developer dashboard to be at. We will mock those people and call them bad names. We know by now that the cool kids all use Windows PowerShell to manage SharePoint 2010. How does one do that? Unfortunately it is a little more difficult in PowerShell, but we'll fix that later. First, the ugly details. Here is the PowerShell code you would use to configure the developer dashboard:

$dash =

[Microsoft.SharePoint.Administration.SPWebService]::ContentService.DeveloperDashboardSettings;

$dash.DisplayLevel = 'OnDemand';

$dash.TraceEnabled = $true;

$dash.Update()

 

This sets the developer dashboard to "ondemand." You can also set it to On or Off. You'll notice we do have an additional setting we can set with PowerShell, TraceEnabled. We'll cover that later. If we turn the Developer Dashboard on we'll get the following dashboard at the bottom of our web pages:

If we choose ondemand the dashboard won't show on page load, but we'll get an icon up by our name to enable it. Also notice at the lower left corner of the page there is a link to enable the tracing information. That's where it gets really deep and technical. Show that to your STSADM using friends.

I mentioned earlier that the PowerShell code above is kind of ugly, and you likely won't memorize it. To help all my faithful readers out, I've written a couple of PowerShell functions to help you out. Here's what they look like when they're used:

First you need to run the PS1 file to add the functions to PowerShell. That's the . .\devdashboardfunction.ps1 part.

Now you can use the two functions I wrote, Get-SPDeveloperDashboard and Set-SPDeveloperDashboard to get your current settings and set new settings. When you set new settings, the new settings will be displayed for you. What does the code look like? Well, it's pretty simple, or else I wouldn't be able to do it.

# PowerShell functions to deal with the Developer Dashboard

# Author: Todd Klindt

# Contact: http://www.toddklindt.com/blog

# Version 1.0 March 28th, 2010

 

function Get-SPDeveloperDashboard

{

$dash = [Microsoft.SharePoint.Administration.SPWebService]::ContentService.DeveloperDashboardSettings;

Write-Host "DisplayLevel = " $dash.DisplayLevel;

Write-Host "TraceEnabled = " $dash.TraceEnabled;

}

 

function Set-SPDeveloperDashboard

{param ($DisplayLevel, $TraceEnabled)

switch($displaylevel)

{

on {$level = "on"; break}

off {$level = "off"; break }

ondemand {$level = "ondemand"; break}

default {"Please enter On, Off, or Ondemand for the DisplayLevel";break}

} # end of switch

switch($traceEnabled)

{

$null {break}

on {$tracelevel = $true;break}

off {$tracelevel = $false;break}

true {$tracelevel = $true;break}

false {$tracelevel = $false;break}

default {"Please enter On or Off for TraceEnabled";break}

} # end of switch

if ($level -ne $null) {

$dash = [Microsoft.SharePoint.Administration.SPWebService]::ContentService.DeveloperDashboardSettings;

$dash.DisplayLevel = $level;

if ($tracelevel -ne $null) {

$dash.TraceEnabled = $tracelevel;

}

$dash.Update()

Get-SPDeveloperDashboard

} # end if

} # end of Set-DeveloperDashboard

 

You can download the file devdashboardfunction.ps1 from here. Let me be very clear. You should NEVER download and execute PowerShell code you find on the Internet, ESPECIALLY if it's something I've written. I'm an idiot and honestly I'm surprised that works, let alone works well. For all I know that code my delete your SharePoint farm, format your server, and let the air out of your tires. Whenever you grab a PowerShell script from the Internet read it over and understand what it does before you use it. And don't come crying to me if your cat ends up getting shaved after your run this. Consider yourself warned.

This code adds the two functions I wrote to PowerShell. Once they are there you can use tab complete on the function names, and their parameters. The functions are essentially what we looked at above, along with some very, very basic error checking. If any developers read my blog I'm sure milk just shot out their nose when they read my code. It's a good thing, you don't have to worry about me stealing your jobs or anything. J

Hope that helps some folks. If you want more information on the Developer Dashboard, let me know. I'll write up more about it.

tk

I’ll be at SharePoint Saturday Atlanta, will you?Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt3/28/2010 11:30 AM0 

Where will you be Saturday April 17th? If you didn't answer, "SharePoint Saturday, Hell yeah!" then you're missing out. I'll be down there spreading the SharePoint 2010 admin love with a bunch of my SharePoint friends. Right now it looks like I'll be doing a session on upgrading to SharePoint 2010 and another session on using Windows PowerShell with SharePoint 2010. They both promise to be a thrill a minute and I'm thinking about having one of those twist endings, like The Sixth Sense. Maybe in the upgrade session I won't be able to do the upgrade. Or maybe at the end of the Windows PowerShell session I'll decide STSADM isn't so bad after all. You never know. The only way to know for sure is to join us.

All the information you need to know to sign up for SharePoint Saturday Atlanta is on this page. I'll be there all day on Saturday talking SharePoint, signing autographs, you know stuff like that. If you make it to Atlanta, swing by and say Hi.

Thanks to Dan Attis for putting this all together and inviting me to speak. I appreciate it. The official Twitter hashtag is #SPSATL. Tweet early, tweet often.

See you there,

tk

Netcast 38 – Pray Like You've Never Prayed BeforeUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt3/2/2010 10:05 PM0 

In this week's episode I talk about Kerberos, whether I know what I'm talking about or not. I also talk about configuring audiences and moving site collections with the SharePoint Admin Toolkit. I finish by talking about the most horrendous development experiences I've ever had.

MP3 File (Subscribe)

WMV File (Subscribe)

M4V File (Subscribe)

Duration: 38:30

 

Links

SharePoint Administration Toolkit

CEWP and absolute links

Kerberos and Windows 2008

Orlando SharePoint UG

TechMentor

SharePoint Pro Summit

Preorder The best SharePoint 2010 Admin book

Shane and I on The Moss ShowUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt3/1/2010 3:03 PM0 

The last couple of years have been very good to me. A couple of weeks ago another cool opportunity presented itself. Hilton Giesenow of The Moss Show asked if he could interview Shane and I for his show. I was flattered. Anyway, it went up a couple of days ago. You can get to it from here. Enjoy, and let Hilton know how much you liked it. J

 

tk

Verizon store requires check in? No way!Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt2/25/2010 10:34 PM6 

You don't have to look very hard to see the impact online sales have had on brick and mortar stores. CompUSA is out of business, and even here in Ames the Hollywood Video is closing down, arguably because of competition from services like Netflix. The brick and mortar stores are struggling, no doubt about it. Being an online kind of guy I like to order things online. The selection is nice, the prices are nicer. The fact that I don't have to put my pants on is just icing on the cake. A week ago I got a Droid from Motorola. Not a bad phone and I'm getting used to it. Yesterday I decided to buy the media dock for it. I was more impatient than cheap, so I wanted to pick it up locally. I went to Verizon's site and found it. Their site knew where I was, but didn't show me if it was available for local pickup. Kind of annoying, but I'll let it go. I click the "Find Store" link, get the number for our local store, and dial it. Instead of a human I'm answered by a phone tree. It offered me a bunch of options like get information on my account, other useless stuff like that. There was no option for "see if your local store has something in stock." I ended up picking an option like "talk to a representative about a new line" just to get a human. The whole experience was not what I expected when I dialed a local number for my local store. The guy confirmed they had the media dock in stock. Woo Hoo!

Today after lunch I swing by the store to grab said dock. I was a little excited. As soon as I stepped in the door I was not greeted by a person, but by a rope and a kiosk. In order to step foot into the store I had to "check in." All I wanted to do was take a box off the shelf and pay for it. Nothing else. At this point I was annoyed. There were three people behind the counter, none seemed interested in me, nor were any of them helping anyone in the store, at least not directly. They were all typing furiously with their heads buried in monitors. I looked up and asked the closest guy if I really needed to check in. He explained I did, because there were three people ahead of me. Ahead of me for what??? I just want to take something off the shelf and pay for it! I wanted the media dock though, so I started the check in process. I touched the kiosk to start the check in process. Then I clicked the "Begin Checkin" button. The next screen was it for me. Instead of getting something like "your number is 26" I got form to fill out. Are kidding me?? It wanted me to fill out my full name with separate blanks for First and Last names. All this just to buy a media dock! No way!

So I left. They made it entirely too much work to buy the dock at their store. I ended up buying the dock online. That's right Verizon store at 806 South Duff in Ames Iowa. Your ridiculous check in policy cost you a customer. Not only did I not buy the media dock at your store, I don't plan on buying ANYTHING at your store. It's too much hassle.

tk

Netcast #37 - Know Your BoundariesUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt2/23/2010 9:06 PMSharepoint; SharePoint 2007; Netcast3 

In this episode I talk about what to consider to when determining the number application pools or web apps your SharePoint farm should have. I also discuss ways to configure an extranet with multiple domains. I also promote my upcoming book some more. You should preorder a copy. Or two.

MP3 File (Subscribe)

WMV File (Subscribe)

M4V File (Subscribe)

Links

Plan for Software Boundaries

Extranet design topology

TechMentor

SharePoint Pro Summit

Preorder The best SharePoint 2010 Admin book

 

Netcast #36 – Olympic EditionUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt2/17/2010 12:13 PM0 

In this week's netcast I go over some admin foibles I've had over the last couple of weeks and I talk about how cool the SPTechCon was.

MP3 File (Subscribe)

WMV File (Subscribe)

M4V File (Subscribe)

 

Links

TechMentor

SharePoint Pro Summit

Preorder The best SharePoint 2010 Admin book

Get the GUID out of SharePoint databasesUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt2/4/2010 10:09 PM12 

As a SharePoint consultant I get to see a lot of things about SharePoint that bug people. This blog post is dedicated to one of those SharePoint annoyances, a GUID at the end of the Central Admin content database.

If you do a regular, wizard driven configuration of SharePoint Central Admin is created. This is the part after the bits are installed, but before SharePoint is configured. The Configuration Wizard runs and if it's a new farm it sets up the farm. Part of that setup is creating the Central Admin web app, and its content database. Web apps in SharePoint can have many content databases. When you add a content database to SharePoint it checks to see if the database exists. If it does, then SharePoint adds the existing database to your web app. If the database doesn't exist, SharePoint creates it, then adds it to the web app. This is important when the configuration wizard creates the Central Admin web app. If SharePoint used a well-known name for the Central Admin content database, like "Admin_Content" then if that database already existed, the existing one would get mounted. This could happen since a SQL instance can hold the databases for many SharePoint farms. To keep this from happening the configuration wizard throws a random GUID at the end of the database name. For some folks, having a GUID in a database name really cheeses them off. To prevent this, you can script the configuration of your farm with a daunting combination of psconfig.exe and stsadm.exe commands. It's not for the faint of heart. Until recently when a customer took exception to the GUIDed database names I was able to tell give them the explanation you just read, explain to them that no other databases will be GUIDed against their well, and we move on.

Recently a customer voiced that same concern, and we had the same talk. Unfortunately they had some 3rd party software that didn't like the GUID in the database name. All my sweet talking was no good. I was forced to find a solution. It took a couple of minutes, then it occurred to me, Central Admin is just a site collection, so I can handle it like any other site collection. I ended up creating a 2nd content database for Central Admin and giving it a more reasonable name. Then I used STSADM's mergecontentdbs operations to move the Central Admin site collection to the new content database. Then we were free to dismount the GUIDed database in Central Admin and delete it in SQL. That made for a happy customer. Below are the steps I took. There's not a man, woman or child alive that doesn't like screenshots. So I've added lots of them to show what I did.

Here's where we start:

Here's how it looks in Central Admin:

First step was to add a new content database to move the site collection to.

Here's the next step

Now we have two content databases:

Next is a screenshot of the next few things I did on the Command Prompt to move the site collection. The line outlined in red is the actual command that moves the site collection.

I used "stsadm –o mergecontentdbs" with the full move option.

Now I can go into Central Admin and delete the GUIDed database. Central Admin will look like this:

There is one final, satisfying step left:

(And the crowd goes wild!)

Hope that helps clean up some SQL instances.

tk

Netcast #35 - Your Servers Can Kiss and Make UpUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt2/2/2010 10:41 PMSharepoint; Netcast2 

In this week's episode I talk about SQL aliasas, web front end only installs, and removing GUIDs from the Central Admin. I also beg folks to come see me speak at SPTechCon.

MP3 File (Subscribe)

WMV File (Subscribe)

M4V (iPod) File (Subscribe)

Running Time: 29:56

Netcast #34 - Logging, you too can be a SharePoint LumberjackUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt1/28/2010 7:16 PM0 

In this week's episode I cover how KB973917 kills SharePoint, how to improve your PowerShell experience, and all the cool monitoring features that SharePoint 2010 brings to the table. Oh, and how SharePoint makes my cat sneeze.

MP3 File (Subscribe)

WMV File (Subscribe)

Running Time: 34:13

 

Links

KB973917 kills SharePoint

Skype kills Internet Explorer

Reinstalling SharePoint without reinstalling SharePointUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt1/7/2010 10:48 PM3 

This blog post is the heartwarming tale of two warring factions putting their differences aside and working together for a common good. That's right, devs and admins, hand in hand, figuring out this beast we both love called SharePoint.

A couple of days ago I got an IM from a buddy of mine, Dan Attis. Like many of us he's been playing with SharePoint 2010 pretty heavily and that day he had poked it pretty hard and it didn't like it very much. It decided not to work anymore. Dan didn't want to rebuild his VM. Heck, he didn't even want to reinstall SharePoint. So his question to me was essentially, "Is there any way for me to reset SharePoint, without reinstalling it?" Now, keep in mind this was a test dev VM he was working on, it wasn't a production environment of any kind. Because of that I figured I had some latitude. The first thing that came to mind was just creating a new ConfigDB. That resets SharePoint. It's a pretty extreme measure though. I almost felt dirty suggesting it. I told Dan to run the SharePoint Config Wizard and remove the server from the farm. Then run the SharePoint Config Wizard again and instead of connecting it to an existing farm, create a new one. The important step is to give the new ConfigDB a different name than the old one. The server will now essentially be reset with a fresh version of SharePoint. Dan walked through the steps and it did exactly what he wanted. Now he was free to do whatever horrible, torturous things that devs do to SharePoint. Another dev/admin cooperation success story.

Here are screenshots of what it looks like:

The normal config wizard welcome screen.

This is the old, bad farm information. Make sure when you rerun the wizard you use a different name for your ConfigDB than what is listed here.

Click yes, this is exactly what you want to do.

That's all there is to it. The SharePoint binaries are still installed, but it's no longer configured. If you go into IIS you'll notice all your SharePoint related sites have been removed.

Now rerun the Config Wizard and create a new farm.

Click Next.

Click "Create a new server farm."

On the next screen input your farm information. Make sure your Database name is different than what your old ConfigDB was.

You'll have to set up a new farm passphrase, since this is a new farm.

You'll also need to set up Central Admin, since the previous Central Admin instance was removed when the server was removed from your old farm.

That's all there is to it. Look over your settings and hit Next.

Now, fairly quickly you'll have a fresh new SharePoint farm to use, or abuse if you're a dev like Dan.

tk

KB973917 breaks SharePoint to piecesUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt1/4/2010 10:40 PM9 

In the last week I've had two separate incidents where KB973917 was installed on a server and it either prevented a formerly working SharePoint farm from working, or it prevented a clean machine from getting SharePoint installed. I wanted to add a blog post to the chorus of blog posts already out there on this, to make it easier for folks to find.

The first problem I encountered was a MOSS farm running on 64 bit Windows 2003 server. It had been happily running for months. Now all of a sudden whenever someone tried to hit it with a web browser they were met with an "Internal Server Error" and the Application Pool would crash with "Unknown error." The app pool would restart, but would crash again as soon as someone hit it. This was with all web apps, including Central Admin. To make things more confusing, SharePoint itself seemed to be fine. I could use STSADM to do anything STSADM does and it worked great. I could enumerate sites and webs, anything. IIS seemed to be broken, not SharePoint. I asked the customer what they had changed, and they answered, "Nothing." J In their defense, it had been over two weeks since they had applied any patches. Our friend KB973917 was in that list though. I had seen something go across Twitter about a patch breaking SharePoint, but I hadn't paid much attention. I looked through all the patches that had been installed in the last round and started searching on Bing for "<patch> SharePoint." Searching for "KB973917 SharePoint" yielded me a bunch of hits with titles that suggested this might be what I was looking for. Particularly KB2009746 hit the nail on the head and described exactly what I was seeing. Contrary to what the KB said, I did uninstall the evil KB973917, and that alone didn't fix the issue. When I reinstalled SP2 for Windows Server 2003 though IIS started working again, and therefore SharePoint was happy. I probably could have just reinstalled SP2 and been fine.

Today I stumbled onto another problem that was caused by KB973917. I had a fresh build of Windows Server 2008 and I was blessing it with an install of MOSS 2007. SP2 for MOSS was built in. The install went very quickly until it got to the "Applying Updates" part where it installs the patches that are slipstreamed. This went very, very slow. After 35 minutes it crashed, giving me the "Windows is looking for a solution" message box. This was odd. I had heard of something similar to this (though not identical) before, and it was caused by the security on the box being very tight and SharePoint not being able to write to places in the file system and Registry that it needed to. I removed all GPOs that had been pushed down, and disabled UAC and tried again. Same failure. There were no clues in the event log. The SharePoint installer log was very little help, it really only showed this:

Executing command path: 'C:\Program Files (x86)\Common Files\Microsoft Shared\SERVER12\Server Setup Controller\wrapinst.exe', args: 'timeout=2950 MsiPath=msxml\msxml6.msi'

Error: Command: 'C:\Program Files (x86)\Common Files\Microsoft Shared\SERVER12\Server Setup Controller\wrapinst.exe' failed to return after 600000 milliseconds Type: CommandFailed.

Error: Command: 'C:\Program Files (x86)\Common Files\Microsoft Shared\SERVER12\Server Setup Controller\wrapinst.exe' failed to return after 600000 milliseconds Type: CommandFailed.

Error: Command: 'C:\Program Files (x86)\Common Files\Microsoft Shared\SERVER12\Server Setup Controller\wrapinst.exe' failed to return after 600000 milliseconds Type: CommandFailed.

Catalyst execution finished: 01/04/2010 12:10:32. Return code: 30008. Exception caught: CommandFailed.

PERF: TickCount=4334578 Name=RunSetup Description=End function

There was my 35 minutes, 600000 milliseconds (10 minutes) at a time. I did some searching and nothing really jumped out. At this point I wondered if something was wrong with the machine, so we jumped over to another machine and tried to install. Same problem. Three attempts, three failures. I tried a few more things to no avail. Almost as a joke I suggested to the customer to uninstall the evil KB973917 and install SP2 for Windows Server 2008. I suggested that only because it seemed the last part of the SharePoint install was trying to configure IIS on the box, and KB973917 broke IIS on the Windows 2003 box I had seen the week before. We did it and SharePoint installed successfully. Another SharePoint casualty of the much maligned KB973917.

I don't completely understand why this patch is wreaking such havoc on IIS and SharePoint. I want to get this post out in case anyone else is having weird problems and can't quite seem to stitch it all together. I've wasted too many hours on this bugger myself, hopefully I can save you folks an hour or two. J

tk

Using ADUC to configure SharePoint Profile ImportUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt12/31/2009 3:08 PM3 

MOSS 2007 allows you to import profiles from a user store to populate user information in SharePoint. 90% of the time this is an import from Active Directory (AD). While AD is used to store users, it's also used to store other non-user resources like conference rooms and projectors. These are things that you want to have calendars so you can schedule them. That's a good use of technology. However, depending on how your AD is laid out your users and resources end up together in the same Organizational Unit (OU). Unlike chocolate and peanut butter, users and resources aren't always great together if you're using SharePoint profile import. You don't necessarily want all your conference rooms cluttering up your SharePoint profiles. There's good news and bad news about that. The good news is that you can tweak your profile import with LDAP query strings. The bad news is that there are only three people in the whole world that understand LDAP queries. The worse news is that I'm not one of them.

When this comes up there's normally much searching of Bing, gnashing of teeth and swearing when LDAP queries need to be tweaked to fix profile imports on MOSS. It's always a horrible experience for consultant and customer alike. This came up again a couple of weeks ago. A customer had a SharePoint environment that was importing a lot of non-user resources and they wanted it to stop. They had a separate AD team at their company so they couldn't just move the resources into another OU or give them a custom attribute or something easy to search on. I was tasked with finding an LDAP query string that would rid them of all their non-user resources without any help from their AD team. A task nearly impossible for humans. I did find a way…

While trying to figure out how best to accomplish this I asked a buddy of mine, Jason, who deals with AD a lot. I'd link to his blog, but he hates blogs. Probably because he rarely has anything intelligent to post (not that that stops me). So here's your shoutout, Jason. Anyway, as I was whining about my lot in life, Jason came up with probably the only smart thing I've ever heard him say, "Why don't you use ADUC to create your LDAP query strings?"

"ADUC" is the Active Directory Users and Computers snap-in used to manage users and computers in your AD. Unbeknownst to me, ADUC has a search function that creates these cursed LDAP query strings with a GUI. More importantly, after you've perfectly crafted your LDAP search string, you can copy it out and paste it right into SharePoint. As an added bonus, ADUC gives you immediate results on your search, so you don't have to run a profile import in SharePoint every time to see if it worked. It worked like a champ for the customer, so I thought I'd outline it all here.

Here's the before picture:

You can see we've got some users here and a whole lot of conference rooms. Here's what our SharePoint profile import settings look like:

We're just importing the whole domain, which is why we're getting all the extra garbage in our imports. Normally we'd set our "Import profile data from" setting to "Custom Source", cross our fingers and hope for the best. We're going to do that, but with a better plan. To start, we'll open up ADUC and start whittling down the results until we get what we want. Normally ADUC is installed only on Domain Controllers (DC) but it can be loaded on any server or workstation version of Windows by installing the Server Admin tools. Let's fire up ADUC and see what our users look like:

I added some extra columns to the Users view to see what information I had to work with. I ended up going with the Job Title column, as all the real users had that populated. Now I just need an LDAP query that says "Only show me objects that have Job Title" populated. No problem for ADUC. Here's a breakdown of how I created the query:

I right clicked on Saved Queries and picked New Query. Then I named it "Only users" and clicked "Define Query." On the next box I clicked "Users, contacts…" from the Find dropdown., then I clicked the Advanced tab. Then I used the Field dropdown to pick a Field and the appropriate Condition and Value that I want. In the screenshot I defined a condition where I only get objects that have a Job Title present. When you click OK the New Query box will show you the query that was created for you. It looks like this:

The Query string at the bottom is what we'll use, if it gives us the results we want. When we hit the final OK box we'll see the results of the query we generated:

As you can see we now are only getting users, which is what we wanted. Now go back in to that query (via Edit) and copy out the Query string. It should look like this:

(&(&(|(&(objectCategory=person)(objectSid=*)(!samAccountType:1.2.840.113556.1.4.804:=3))(&(objectCategory=person)(!objectSid=*))(&(objectCategory=group)(groupType:1.2.840.113556.1.4.804:=14)))(objectCategory=user)(objectClass=user)(title=*)))

That's quite a mouthful. Now we'll paste this in to SharePoint. Go back into your Profile Import settings and select "Custom Source." Then go edit the Content Source, we need to change the User Filter. Paste our new query into there:

Then go back in and run a Full Import of your profiles. Here's what it should look like:

Looks like we pulled it off.

In your organization your query will likely need different formatting to match how your users and resources are configured in AD, but now you have a tool to quickly and easily build these queries and try them out.

Hope that helps,

tk

Netcast #32 - Patches, Logs and AD, Oh My! Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt12/29/2009 6:57 PMNetcast0 

In this, the last netcast of 2009, I cover a Windows Patch that kills SharePoint dead, the ULS Viewer, and Sean McDonough vs WebDAV, take one. See you in 2010.

MP3 File (Subscribe)

WMV File (Subscribe)

Running Time: 33:42

Top 20 SharePoint pick-up lines

Sean's blog post on SharePoint and WebDAV

Windows 2003 patch that breaks SharePoint

ULS Viewer

 

 

 

 

 

Netcast #31 - Prime SharePoint Knowledge Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt12/27/2009 4:03 PM0 

In this week's show we cover all my excuses for my two week absense. Then I talk a bit about my trip to India. Then I finish up with some actual technical talk about a SQL Transaction log I had trouble getting under control, and how to use Remote Blob Store (RBS) with SharePoint 2010. As usual, the chatroom was unruly.

 

MP3 File (Subscribe)

WMV File (Subscribe)

Running Time: 34:18

Installing Remote Blob Store (RBS) on SharePoint 2010Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt12/20/2009 11:18 PM42 

In my daily perusing of SharePoint blogs a couple of weeks ago I saw a blog post on Jie Li's blog on how to install Remote Blob Store (RBS) on SharePoint 2010. Imagine my excitement! I was under the impression that using RBS was going to be something we were mortals would not be able to use, but here it was. Why was I so excited? Well, with SharePoint 2003 all content had to go in content databases, no exceptions. As people started putting more content, and larger content into SharePoint the question became pretty common, "Can I store my large files outside of SQL?" The answer was always no. Storing files outside of SQL became the holy grail of SharePoint content storage. It would let you take advantage of all the reasons you used SharePoint; metadata, web presentation, workflows, etc. It also let you use storage that was much cheaper than SQL storage normally is. When SharePoint 2007 came out the answer to that question remained the same, "All content must be stored in SQL, no exceptions." However, after a hotfix the support for External Blob Storage (EBS) was added to SharePoint. This was almost what we needed. The hooks were there in SharePoint, but there was no way to actually use them. It was handled much like how SharePoint handles antivirus software. There were hooks into SharePoint for it, but the functionality itself didn't exist in the product. That part had to be handled by third parties or ISVs. Not a lot of ISVs jumped on this, as the interface exposed to them wasn't great, and it wasn't clear what the upgrade path would look like. Again, storing large files outside of SQL seemed just out of reach for the average SharePoint administrator, until now…

That brings me back to Jie's post. I knew that SharePoint 2010 would ship with RBS support, but I wasn't sure what RBS products we'd be able to use. Jie's post not only showed how RBS could be used, but provided an actual RBS provider. That's was pure gold. The RBS provider Jie linked to uses SQL 2008's Filestream support. That works for me. The rest of this blog post is how I installed RBS and got it working.

Again, everything I've done here is based on Jie's blog post and the links inside. Only a couple of things are things I had to figure out myself.

I already had a VM with Windows 2008 R2, in a domain. It had SQL 2008 R2 with the November CTP on it. It also had SharePoint Beta 2 (build 14.0.4536.1000) installed on it, and I had been using it a while. There were several content databases defined with a few site collections. The first thing I had to do was enable Filestream in SQL 2008 R2. I used these instructions on MSDN. Once I had the instructions, it went very smoothly. The only snag I had was I initially ran it as the wrong user. In my VM, SQL is running as contoso\administrator. SharePoint is all running as contoso\sp_farm and that's the account I logged in as normally. That account did not have the permissions to enable Filestream. After I ran it all as Administrator it worked. Now came the fun part, RBS…

In preparation for RBS I created a new Content Database for it to use, since RBS is scoped at the content database level. I used Window PowerShell to do it, since that's what the cool kids are using.

The command I used was New-SPContentDatabase –name WSS_Content_Blob –WebApplication http://shaerpoint –MaxSiteCount 1 –WarningSiteCount 0

Next I went into SQL Management Studio, as contoso\sp_farm, and ran a few TSQL commands to configure my new database for RBS. Here are the commands I used:

Here's the text:

use [WSS_Content_Blob]

if not exists (select * from sys.symmetric_keys where name = N'##MS_DatabaseMasterKey##')create master key encryption by password = N'Admin Key Password !2#4'

 

use [WSS_Content_Blob]

if not exists (select groupname from sysfilegroups where groupname=N'RBSFilestreamProvider')alter database [WSS_Content_Blob]

add filegroup RBSFilestreamProvider contains filestream

 

use [WSS_Content_Blob]

alter database [WSS_Content_Blob] add file (name = RBSFilestreamFile, filename = 'c:\Blobstore') to filegroup RBSFilestreamProvider

 

I was following the directions from this MSDN post, but I had to make a couple of changes. First, I had to make sure I had the correct database name, WSS_Content_Blob, everywhere necessary. Second, I manually created c:\Blobshare before running the TSQL commands. That was a mistake. SQL needs to make it on its own when you run the third command. Deleting c:\Blobstore fixed that and the command ran successfully.

Next step was to install the RBS bits on the SharePoint servers. (Download RBS_X64.msi) In my case it was pretty simple because SQL and SharePoint were on the same machine, and I only had a single SharePoint server. Here's the command I used to install the RBS bits:

Text:

msiexec /qn /lvx* rbs_install_log.txt /i RBS_X64.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME="WSS_Content_Blob" DBINSTANCE="sharepoint" FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1

This install seemed to happen immediately. However it kicked off an msiexec service that ran for a couple of minutes. I had to watch it in Task Manager to see when it was finished. I was also monitoring the rbs_install_log.txt file to see when the process was finished. I was looking for the phrase "Installation completed successfully."

If I would have had more SharePoint servers I would have had to install that on all of them, or SharePoint would have been very unhappy.

You can double-check the database was changed correctly if the rbs tables appear in it. That will look like this in SQL Management Studio:

The last step, before feeling the glory that is RBS, is to go back to our old friend, Windows PowerShell and enable RBS on our content database from a SharePoint perspective. Here's what the PowerShell looked like:

Here's one place I had to deviate from the MSDN article. It says the first line should be $cdb = Get-SPContentDatabase –WebApplication http://sitename That didn't work for me. I suspect the person writing that article had a web application with a single content database, so that command would only return one SPContentDatabase. The web application I was testing this on had three content databases, so $cdb had a collection of SPContentDatabases, which doesn't work for the next line. Reading through the PowerShell it looks pretty clear that $cdb should contain a single SPContentDatabase object. I went through the RBS install three times and had the same behavior each time.

The last step was to test RBS and upload a file and see where it ends up. The rbs_install_log.txt was 1.2 MB and a good candidate for the test. I created a site collection (with PowerShell of course) and uploaded that text file. To see if RBS worked, I navigated the c:\blobstore directory to see if my file was there. Here's what I found:

Looks like it was successful. I went through this three times and it worked every time. I tried various sizes of files and various operations on those files. I added versions, deleted them, added metadata, indexed and searched for them. It all worked just fine.

I hope this blog post inspires some of you to install RBS and play with it yourself. I do have another blog post planned where I go a little more in depth with what I found in RBS.

Have fun,

tk

Using PowerShell to control Visual UpgradeUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt12/10/2009 5:33 AM3 

Visual Upgrade is capability in SharePoint 2010 that allows you to view upgraded sites as they looked in SharePoint until you are ready to view them in their full SharePoint 2010 glory. Your reasons for this might be user education, or the need to update customizations you have. The Visual Upgrade is scoped at the web level, so all the pages in a web can be rendered as SharePoint 2007 or as SharePoint 2010. There are a few ways to control this. The easiest way is inside of the UI itself, and that is probably how Site Collection administrators will control how webs are rendered. Another option is Windows PowerShell. PowerShell is a great way to take care of this if you have to work with a lot of webs. It has looping capabilities that make this very easy. One scenario were you might want to do this is what a Database Attach upgrade. In this situation you have a SharePoint 2007 (SP2 or later) content database that you attach to an existing SharePoint 2010 farm. While you can force the SharePoint 2010 on the content of this content database when you attach it, that gives you less flexibility. If you choose to preserve the SharePoint 2007 UI you'll need to switch it to the SharePoint 2010 interface eventually. The PowerShell script below will take a Content Database name and determine all the Site Collections in that db. It will then walk through all the webs in those Site Collections and set them to the SharePoint 2010 interface. Let's take a look at it:

$db = Get-SPContentDatabase WSS_Content_SharePoint_2007

$db.Sites | Get-SPWeb -limit all | ForEach-Object {$_.UIversion = 4; $_.UIVersionConfigurationEnabled = $false; $_.update()}

The first line creates a variable, $db, and assigns it an object that represents the content database. Once we have that object, we can use the Sites property to get a list of all the site collections stored in it. Using pipes, we pipe the Site Collection objects through Get-SPWeb to get each web (SPWeb) for each site (SPSite). Once we get the web, we can set the UIversion property of that web to the version we want displayed. Setting the value to 4 gives us the SharePoint 2010 interface. If you want the SharePoint 2007 interface, set UIversion to 3. The next part, $_.UIVersionConfigurationEnabled = $false removes the "Visual Upgrade" option from the Site Actions dropdown. This keeps users from going in and setting the UI back to the SharePoint 2007 interface. Finally we need to execute $_.update() to write our changes to the web.

That's all there is to it. Now all the webs in that upgraded Content Database are using the SharePoint 2010 interface.

tk

Netcast #30 – The Big 3 0Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt12/3/2009 4:19 PM3 

 

In this week's episode I let my viewers in on the secret sauce on how I configure my SharePoint 2010 demo environments. A good time was had by all.

MP3 File (Subscribe)

WMV File (Subscribe)

iPod File (Subscribe)

Running Time: 35:52

 

Links:

Cedar Valley .NET UG

SPTechCon

TechMentor

SharePointPro Summit

 

As always, bandwidth for my netcast downloads is generously provided by the hipsters at RackSpace. Check them out.

Next week I will be in India on Monday night. The netcast will be delayed.

tk

Netcast #29 – The ComebackUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt11/24/2009 2:05 PM0 

Back from my midseason hiatus, in this week's episode I try to explain where I've been for the last three weeks. Then I discuss how I upgraded my blog to SharePoint 2010.

MP3 File (Subscribe)

WMV File (Subscribe)

iPod File (Subscribe)

Running Time: 37:14

 

Links:

SharePointUpgrade.com

Installing SharePoint 2010 Training

As always, bandwidth for my netcast downloads is generously provided by the hipsters at RackSpace. Check them out.

See you next week.

tk

SharePoint Conference 2009 slides now onlineUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt11/12/2009 2:29 PM1 

After much procrastinating I have finally posted our slide decks from the SharePoint conference. They have been placed here for your viewing pleasure. Those of you that attended our post conference session will notice none of the upgrade material is there. That's because we don't own those slides and legally can't distribute them. Sorry L Attendees of the SharePoint Conference can download Sean Livingston's much better Upgrade deck from www.mssharepointconference.com.

If you have any question, let me know.

tk

Using Foxit PDF iFilter with SharePoint 2010 betaUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt11/11/2009 4:18 PM5 

Shane and I were preparing some demos for our sessions at TechEd EMEA and we were working with the new Search infrastructure. The changes to Search in SharePoint 2010 are pretty impressive so we were starting from scratch trying things out. One of our first tests was indexing PDFs with Foxit's iFilter. The iFilter installed fine and it makes the necessary Registry changes for SharePoint to use it. I added PDF to the crawled file types and kicked off a full crawl. After the crawl was finished it looked like PDFs were still not being indexed. We double-checked everything and it still wasn't working. After much research and after bothering some folks at Microsoft we found the issue. The Search Service had not been restarted, so it hadn't read the new settings. After running a "net stop osearch14 && net start osearch14" and running a full crawl, our PDF files were indexed correctly. It's been a while since I've installed the Foxit iFilter but my memory is telling me this wasn't necessary before. I'm guessing the Foxit installer bounces the old service name, "osearch", which is why it's not working now, since the service name is "osearch14."

Whether that's what it does or not, if you install an iFilter on SharePoint 2010 and it doesn't appear to work, trying bouncing OSearch14 and running a full crawl. It might work. Or you could reboot the machine, which works too. J

*Note: this was done with pre-release software. That comes with all kinds of craziness. Your mileage may vary*

tk

Consider Amsterdam IgnitedUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt11/6/2009 12:18 PM0 

For the last week I've been in the lovely city of Amsterdam teaching 80 lucky IT Pros how great SharePoint 2010 is. This is part of Microsoft's Ignite program. This program was designed to get people fired up about SharePoint 2010. If this week's students are any indication, it's working. I was teaching some of the IT Pro track. I covered the Health and Monitoring, Upgrade and Search sections. The students were very enthusiastic and I had a great time. Hopefully I'll have some time to start blogging about SharePoint 2010. My Ignite adventure is not quite finished; I'll be delivering the same content in Bangalore next month. Next week I'll be in Berlin for TechEd EMEA. Shane and I will be delivering three sessions and hanging out at the Ask The Experts booth. If you're in the area swing by and say "Guten Tag."

 

tk

Netcast #28 – I Got a New JobUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt10/28/2009 9:36 PMSharePoint 20073 

In this week's episode I recap the SharePoint Conference in Las Vegas as well as divulge the secret identity of my new employer. I'm also sporting the runny nose I caught in Las Vegas.

MP3 File (Subscribe)

WMV File (Subscribe)

iPod File (Subscribe)

Running Time: 29:15

 

Links:

Lori Gowin's blog post

Microsoft SharePoint Conference

SharePoint Saturday

 

As always, bandwidth for my netcast downloads is generously provided by the superstars at RackSpace. Check them out.

Next week the netcast will likely not be on Monday night due to the SharePoint Conference.

tk

edit: Links fixed. Were previously pointing to wrong files. Thanks to Toni Frankola for catching it.

I’ve changed jobsUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt10/24/2009 12:07 AM8 

You've heard the rumors, there's been speculation, well, it's happened. Shane Young at SharePoint911 has finally worn me down and I've accepted a position there. My first day was Monday, just in time to announce it at the SharePoint Conference. I don't think it's been decided exactly what my official title will, but I'm guessing something prestigious like "janitor" or "coffee stirrer." Feel free to pop over to their web site and let them know how lucky they are. I'll be taking your condolences and words of encouragement below.

What does this mean for you? Not a whole lot. I'll still be doing SharePoint consulting and still blogging, tweeting and generally being a nuisance on the Internet. If you'd like to employee my services head on over to our web site and drop us a line.

tk

Netcast #27 – The Todd Klindt World TourUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt10/13/2009 7:47 PM0 

In this week's episode I talk about how SharePoint uses SQL, a couple of patches you should install and a whole lot about the SharePoint Conference, including some surefire ways to win at slotmachines.

MP3 File (Subscribe)

WMV File (Subscribe)

iPod File (Subscribe)

Running Time: 22:06

 

Links:

My blog post on the Model database

WSS August 2009 CU

MOSS August 2009 CU

Microsoft SharePoint Conference

SharePoint Saturday

 

As always, bandwidth for my netcast downloads is generously provided by the superstars at RackSpace. Check them out.

Next week the netcast will likely not be on Monday night due to the SharePoint Conference.

tk

 

SharePoint doesn’t respect the Model dbUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt10/8/2009 11:04 PM4 

All of SharePoint's success must have gone to its head. It refuses to use SQL's Model database when it creates new databases. To recap, when databases are created in SQL, they are created using the same settings as System database called Model. Microsoft does a better job than I do explaining it here on MSDN.

When I do my SQL and SharePoint sessions I preach the importance of changing the default database growth settings. Unless you change them your Content Databases will be in Full Recovery Mode. For those that aren't familiar with SQL, this can result in drives filled with Transaction Logs. The databases will also grow at a paltry 1 MB at a time which is laughable for SharePoint. The Transaction Logs grow at 10% at a time, which isn't much better. While Full Recovery Mode is good for production environments, the autogrow settings don't make any sense. I tell folks to change the autogrow settings to something more reasonable like 1 GB at a time, and to pregrow databases so it doesn't have to happen during heavy use. This keeps database file fragmentation low, and users hopefully won't see any slowdowns due to database growth.

I was building a test environment today and I decided to automate some of this. I wrote a script that set my Model database to Simple Recovery Mode and set both data and log autogrow to 100 MB. Neither of those are good production environment settings, but for my test environments they made sense. Imagine my surprise when the next Content database I created had the 1 MB and 10% autogrow settings! It was in Simple Recovery mode, so it wasn't a complete loss. I couldn't believe my eyes. I verified my Model database settings were at 100 MB growth, they were. SharePoint was just dancing to the beat of its own drummer. I reproduced this in a few different farms and had some SharePoint admin buddies of mine verify it.

The moral of this story is that you should pay attention to your database settings and you'll need to manage them manually. You cannot rely on your Model database settings. This is especially important if you have a DBA managing your databases for you. They may expect SharePoint to copy the Model database settings.

tk

Netcast #26 – Name that DLLUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt10/6/2009 9:55 AMSharepoint; Netcast; SharePoint 20070 

In this episode I answer some viewer mail (okay, blog comments) and I try to build some excitement for the SharePoint Conference by detailing the sessions I'll be doing.

 

MP3 File (Subscribe)

WMV File (Subscribe)

iPod File (Subscribe)

Running Time: 25:33

 

Links:

My blog post on Loopbackcheck

Michael Blumenthal's PowerShell script

My blog post on AAMs

Name.DLL KB Article

Randy Drisgill's blog post on it.

SharePoint Conference excitement

 

As always, bandwidth for my netcast downloads is generously provided by the superstars at RackSpace. Check them out.

Next week I have no idea what I'll be doing.

tk

 

My SharePoint Conference ScheduleUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt10/4/2009 6:23 PM0 

In two weeks I'll be landing at McCarran airport for the start of the Microsoft SharePoint Conference. I'm very excited. A few folks have asked what my schedule will be. Below are all three of my SPC sessions. I may be helping with another one, but I don't have the detais on it yet. I've also listed a couple of other extra activities I'll be doing. Please feel free to swing by and say "hi." I've included ICS and VCS files in case you want to import these sessions into your Outlook calendar.

 

Session Title: SharePoint 2010 Administration: Part 1

Speakers: Todd Klindt, Shane Young

Session Date and Time: Mon Breakout 2:45 PM

Session Room: Mandalay Bay Ballroom

ICS | VCS

 

Session Title: SharePoint 2010 Administration: Part 2

Speakers: Todd Klindt, Shane Young

Session Date and Time: Mon Breakout 4:30 PM

Session Room: Mandalay Bay Ballroom

ICS | VCS

 

What: Idera Ask the Experts

Where: South Pacific J Room

Speakers: Todd Klindt, Shane Young, Eric Shupps, Errin O'Connor, John Ferringer, Sean McDonough,

When: Monday, 6:00 – 7:30

ICS | VCS

 

What: Idera Book signing

Signers: Speakers: Todd Klindt, Shane Young, And Steve Caravajal

Where: Idera Booth #813

When: Tuesday, 12:30

ICS | VCS

 

Session Title: Patching SharePoint 2010

Speakers: Todd Klindt, Shane Young

Session Date and Time: Weds Breakout 4:30 PM

Session Room: South Seas Ballroom C-J

ICS | VCS

 

Hope to see you there.

tk

Netcast #25 – Name Dropper ExtravaganzaUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt9/29/2009 9:09 PMNetcast0 

This week, in an attempt to look more important than I really am, I drop a bunch of names and talk about stuff some SharePoint superstars are doing. I cover branding, vanity URLs, mirroring SQL and beatboxing

 

MP3 File (Subscribe)

WMV File (Subscribe)

iPod File (Subscribe)

Running Time: 37:19

 

Links:

Branding Whitepaper

Patching with minimal downtime

Using Host Header Mode

Matt McDermott's blog

 

As always, bandwidth for my netcast downloads is generously provided by the superstars at RackSpace. Check them out.

Next week I'll be doing viewer mail.

tk

Netcast #24 - Most Fun You Can Have With Your Pants OnUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt9/22/2009 1:55 PM0 

In this episode I discuss what patch level your SharePoint farm should be at, and some free SharePoint training for your company. No animals were harmed in the filming of this netcast, honest.

MP3 File (Subscribe)

WMV File (Subscribe)

iPod File (Subscribe)

Running Time: 28:07

 

Links:

Issues with August 2009 CU

Use the June 2009 CU for now

Free (as in beer) SharePoint Training

 

As always, bandwidth for my netcast downloads is generously provided by the rock stars at RackSpace. Check them out.

Next week I'll be doing viewer mail.

tk

Netcast #23 – Special Holiday ShowUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt9/22/2009 1:52 PM0 

In this week's netcast I talk about the Admin Toolkit that really came out. I also discuss some of the public information about SharePoint 2010. Finally I cover why it always seems one leg of a card table is shorter than the rest.

MP3 File (Subscribe)

WMV File (Subscribe)

iPod File (Subscribe)

Running Time: 37:26

Links:

SharePoint Admin Toolkit

SharePoint 2010 Sneak Peak

 

Bandwidth for my netcast downloads is generously provided by RackSpace. Check them out.

See you next week, where my topic may very well be SharePoint Training. I'll be at the Microsoft Project Conference next week, so I may or may not be broadcasting at my regular time.

tk

Netcast #22 - The Admin toolkit that almost wasUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt9/1/2009 8:38 PM0 

In this week's netcast I talk about the CU and Admin Toolkit that almost were. I also talk about little C Drives and the admins that hate them, as well as transaction logs the size of a house.

MP3 File (Subscribe)

WMV File (Subscribe)

iPod File (Subscribe)

Running Time: 35:14

Bandwidth for my netcast downloads is generously provided by RackSpace. Check them out.

See you next week, where my topic may very well be SharePoint 2010.

tk

 

Netcast 21 – Patches and Best PracticesUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt8/24/2009 11:56 PMSharePoint 20070 

In this week's netcast I extol the virtues of the Best Practices Conference and I walk through the SharePoint patching process with excruciating detail. I also cover why dogs are always so gosh-darned happy.

MP3 File (Subscribe)

WMV File (Subscribe)

iPod File (Subscribe)

Running time: 35:01

Links:

SharePoint Team Blog

SPTechCon

SharePoint Conference

SharePoint Saturday

 

Bandwidth for my netcast downloads is generously provided by RackSpace. Check them out.

See you next week.

tk

Netcast 20 – The Big 2 - 0Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt8/19/2009 7:46 AM0 

In tonight's episode I cover a maddening permissions problem with SharePoint as well as how to get free SharePoint stuff from Twitter.

 

MP3 File (Subscribe)

WMV File (Subscribe)

iPod File (Subscribe)

Running time: 32:48

Bandwidth for my netcast downloads is generously provided by RackSpace. Check them out.

See you next week.

tk

Get “Access Denied” When Creating Site CollectionUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt8/15/2009 2:22 PM12 

I stumbled onto a weird problem this week and I wanted to share it with you all. The problem itself is kind of weird, but that's not really what surprised me about it. What surprised me is that it took so long to find and more people aren't having it. Here is the most succinct way I can describe the it:

"When a default quota template is defined for the web app if a Farm Administrator that is NOT the System Account tries to create a site collection where that Farm Administrator is NOT a site collection administrator the creation will fail with an 'Access Denied' error."

That's a mouthful, so let's walk through the steps to reproduce it, which might help explain it some. To reproduce this error you'll need three accounts:

  1. SP_Farm – This account is used for everything except content crawl. Bits were installed as this user, PSConfig was run as this user. The Timer Job service runs as this user, and all your app pools run as this user. When you log into a SharePoint page with this account the Welcome banner on the top right says "Welcome System Account."
  2. Todd – Obviously this account can have any name. What's important is that this account is in the Farm Administrators group in SharePoint, and it is used for day to day SharePoint administrative tasks instead of SP_Farm. When you log into a SharePoint page with this account the Welcome banner on the top right does not say "Welcome System Account." It welcomes the user by name instead.
  3. Jill – This account must be named this. Okay, I'm kidding, it can be named anything. This account is a regular old user account. This account represents someone that called the helpdesk or used whatever process you have for creating a Site Collection. To reproduce this bug you don't actually have to log in as this account, it just must exist.

Now that we've got all the accounts created, let's get down to reproducing the error. Verify the Todd user is in the Farm Administrators group by going to Central Admin > Operations > Update farm administrator's Group. You can make this user a farm administrator by adding them individually, or adding a group they are in. Either way works. Now verify you're logged into Central Admin as this user. You should see this in the upper right hand corner:

 

If you see "Welcome System Account" instead you're logged in with the wrong account and the problem won't exist.

Next go to Central Admin > Application Management >Web application general settings. Make sure you take note of which Web app's general settings you're changing. I recommend your portal or main content web app for this demonstration. In the Default Quota Template area select a quota as the default. If none show up in the dropdown go to Central Admin > Application Management > Quota templates and create one. The name and the sizes don't matter. Put anything in there. Now go back to Application management and click Create Site Collection. Make sure you're creating this site collection in the same web app that you just assigned the quota to. You can put whatever you'd like as the title, though I've found "Todd is cool" seems to work the best. Same goes for the URL of the new site collection. The important part is that you assign the Jill account and only the Jill account as a site collection administrator. DO NOT put the Todd or SP_Farm accounts as an administrator. Verify at the bottom of the page that a default quota is being applied. You page should look something like this:

 

I've pointed out the parts that are most import. It's important that a non privileged account is the only administrator, and that a default template is being applied. When you hit Ok to create the site collection you should be greeted with this:

Huh? Todd is a Farm Admin, he should be able to create site collections. What gives?

Well, honestly I don't know what gives. I've pored through the ULS logs and I have yet to determine exactly what Todd doesn't have access to. Here's what I do know, if I hit the back arrow and add Todd as a site administrator, the error goes away. I also know that if SP_Farm tries to create a site collection with just Jill as an administrator, it works. I also know that if I go back to the web app general settings and remove the default quota template, now Todd can create Jill's site collection. I have no idea what triggers that error. I have confirmed it on SP2 (build 6421) and the June CU (build 6510). I also know you get this behavior whether you use Central Admin or STSADM.

A couple of other notes. It seems the site collection creation process gets started, but is interrupted before it can complete. You'll notice the site collection you tried to create does not exist if you try to browse to it, or list the site collections in Central Admin or with STSADM. However, enough of it is written to the content database that if you detach the content database it was going into and reattach it, the site collection is now there. It doesn't have a template, but it's there. Go ahead, try it, I'll wait…

This is because the entries for the site collection are created in the ContentDB's Sites table, but are never written to the ConfigDB's sites table. When you attach a ContentDB SharePoint walks through its Sites table to see what site collections exist in it, and it adds them to the ConfigDB's Sites table. I mention this because your Site Collection count will jump if you ever detach and reattach this ContentDB. Also, it doesn't matter what quota template is picked on the site collection page itself, it only matters if a default has been chosen for the web app. If you DO have a default chosen but set it to "None" when you create the site collection, it still fails. If you DO NOT have a default chose, but chose a quota at site collection creation, it does not fail. I have no way to explain this.

While this problem is completely nonsensical that's not what was the most surprising to me about it. I'm surprised that after three years of using the product I've never stumbled across this. It's the meeting of several best practices I preach. I tell people to always set quotas from the beginning, even if they think they'll never need them. I tell people not to use the SP_Farm account for day to day tasks. I tell people to put the user in charge of the site collection and not to make IT manage things at that level. Somehow though, those things have never converged to create this problem before this week. Weird. I did find one forum thread about this problem as I researched. When I scrolled down and saw that one of the guys trying to help the poster was me, I knew he and I were both in trouble. J

This doesn't seem to be a big problem, and the workarounds are easy. Any one of the following things will get you around this issue.

  1. Don't set a web app default quota
  2. Create site collections as the System Account
  3. Add your farm user as an administrator when you create the site collection, then immediately remove them

Any of those will get you around this. I spent the better part of four days trying to get this figured out. I hope this blog post helps at least one person and saves them some time and frustration.

tk

 

 

Netcast 19 – Drunk MonkeysUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt8/12/2009 9:35 PM1 

In this week's netcast I talk about file upload issues, Booting Windows 7 a few different ways, and my secret recipe for chicken tartar, without chicken or tartar.

MP3 File (Subscribe)

WMV File (Subscribe)

iPod File (Subscribe)

Running time: 30:49

Next week's netcast should be recorded at the normal time, Monday 8:30 PM CDT. Hope to see you in the chat room on Stickam.

tk

How to troubleshoot file upload problems in SharePointUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt7/30/2009 11:13 AM15 

Time for me to wax nostalgically. I remember the good old days when the only thing that really kept users from uploading files was the "Max Upload Size" setting in Central Administration. But alas, times change and things get more complicated. Now when files won't upload there's a whole laundry list of things to look at. And if you're like me, laundry lists are not your forté. Just ask my wife.

This came up this week as I was trying to upload my netcasts to my shiny new hosted web space. The rock stars at Rackspace have graciously agreed to host my media files. While I'm sure it's because they're great people, part of me thinks it's self serving so they don't have to suffer through the slow downloads of getting the files from my current setup. J

Once we got the site provisioned I started the task of uploading all of my previous netcasts to the new spot. That's when the hilarity began. I won't take you through every single foible, but here is a list of things to check if you're having problems uploading files to SharePoint:

  1. Web App upload setting: This is the most obvious thing, and the one you should check first. Go to Central Admin > Application Management > Web App General Settings (/_admin/vsgeneralsettings.aspx). You should always start there.
  2. While we're in the Web App general settings, take a look at your Web Page Security Validation settings. If you're uploading large documents across a slow connection, the page security could time out before the file gets up there. Increase that value as needed from its default of 30 minutes.
  3. While we're in Central Administration, let's make sure your file type isn't blocked. Go to Operations > Blocked File Types (/_admin/BlockedFileType.aspx) and make sure your extension isn't listed. This is a web app specific setting, so make sure you're changing the setting for the correct web app.
  4. Now we're going to hit some obscure settings. By now you should be using Windows 2008 (and it better be 64 bit, too!). With Windows 2008 came many improvements, including IIS 7. While IIS 7 includes all kinds of great improvements, it also quietly brought with it an upload limit. Regardless of what you do in SharePoint, IIS 7 out of the box limits you to around 30 MB uploads. KB 944981 covers how to increase this. However, the instructions aren't completely correct. Make sure you backup your web.config before changing it. My experience has been that you need to make the recommended additions between the </configSections> and <SharePoint> tag. Otherwise it'll break your web app. Also keep in mind this is a web app specific setting, so make sure you're editing the correct web.config.
  5. You can also change the IIS connection time out for your web app. In IIS 7 find your web app's site in the IIS Manager and click the "Limits" link on the right in the "Actions" pane. The default is 120 seconds. Feel free to make that much longer.
  6. Finally, since upload.aspx is an application page it has its own web.config settings. You can read how to increase its timeout settings in KB 925083. This is one I've had to do a lot.

That's about it. That last KB article has some other guidance on how to troubleshoot upload errors. This blog post is better, of course. J If you've had to do other stuff to fix file uploads, leave me some comments. I will cover this in more detail in next week's netcast. Thanks again to the fine folks at Rackspace for putting up with me.

tk

Netcast 18 – Configuration WizardUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt7/28/2009 10:19 AM1 

In this week's netcast I cover a few installation issues I've encountered in the last couple of weeks. I also cover some of the rules of the "TK's Netcast Drinking Game." Finally I talk about a sure fire way to avoid poison ivy.

MP3 File (Subscribe)

WMV File (Subscribe)

iPod File (Subscribe)

Not sure what time next week's netcast will be recorded as I'll be on the road. Keep an eye out here and on Twitter for updates.

tk

New Netcast recording timeUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt7/26/2009 10:27 PM0 

The people have spoken, and it seems like Monday evenings are better for the live recordings of my Netcast. Your wish is my command. My next netcast will be recorded Monday July 27th at 8:30 (or so) Central Time in the US. As always you can join in live via Stickam and you can grab the old recordings here. Thanks to everyone that commented, tweeted and emailed me.

tk

Netcast 17 – I’m Not Very SmartUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt7/21/2009 7:57 AM6 

In this week's episode we try, and fail, to solve a viewer's problem. We also discuss the June CU and what to do when planning a SharePoint deployment. Finally we cover why kids say the darnedest things.

MP3 File (Subscribe)

WMV File (Subscribe)

iPod File (Subscribe)

tk

Netcast #16 - Rated XMLUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt7/14/2009 7:36 AMSharepoint0 

In this week's netcast I cover the SharePoint 2010 Sneak Peak that was released by Microsoft. I also cover automation techniques that SharePoint admins can use. It promises to be more entertaining that watching grass grow.

MP3 File

WMV File

iPod File

tk

Can’t use some site templates with STSADMUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt7/9/2009 11:13 PMSharepoint7 

I got a tweet this morning from Laura Rogers about STSADM. She wanted to know if a site template had to be added with "stsadm –o addtemplate" before you could use it with "stsadm –o createweb." I have to admit, I didn't know the answer off the top of my head. I could convince myself either way. I ended up having to test it before I came to a conclusion. Before I get to whether it works or not, some background on why it's even a question…

If you've been to any of my SharePoint admin sessions or classes you're familiar with me preaching that Site Collections are the administrative and security boundary in SharePoint. This means that a user given permissions to one Site Collection cannot automatically get into another Site Collection without being given permission to it as well. Site Collections also are boundaries for resources kept in Site Collection galleries, like web parts, content types and site templates. Because of this boundary it's possible for administrators in one Site Collection to create resources that are only visible in their Site Collection. How does one do that? First, we have to be clear about the terminology we're using, because it gets confusing here. First we have the Site Collection. That's the boundary, the bag. Then we have the things that go into Site Collections. Here's where it gets confusing. Sometimes the SharePoint interface calls those things Sites, and other times it calls those things Webs. They're the same thing. This blog will be particularly confusing because it's one instance where the name changes frequently. Assume if something is not called out as a Site Collection, it's a web. Back to the question, how does a Site Collection administrator add new Site (really web) templates to their Site Collection? They take an existing Site (still really a web) and mock it up the way they want it. Maybe they add some pages, drop some web parts on some pages, maybe even upload a document or two. Once they get it juuuuust right, they save that Site (did I mention these are webs?) as a Site (web) Template. When they do that it's added to the Site Collection's Site (web) Template gallery. From that point on, anyone in the Site Collection that has permissions to create a Site (web) in that Site Collection can use that new Site (web) template to do so. The beauty of this is that no one outside of that Site Collection can see that Site (web) template. If you go to Site Actions > Site Settings > Galleries > Site Template Gallery you can see the Site (web) templates that have been created.

That's all fine and dandy, but what if that Site (web) Template is so awesome that someone else wants to use it? SharePoint's got your back, and provides a way to share Site (web) templates. If you have a Site (web) Template in your Site (web) Template Gallery, hover over it. You'll see it's a hyperlink. If you click it, your browser will try to download an STP file. That STP file is a Site (still typing web here) TemPlate file. You can give that STP file to an administrator for another Site Collection. If they upload it to their Site (you guessed it, web) Template Gallery now they can use it too. Pretty nifty, eh? So far this setup is working pretty well. But what happens if you have hundreds, nay, thousands of Site Collections? This approach doesn't scale very well at all. Once again, the fine folks at Microsoft were thinking ahead and they provided a way for you to take that STP file and make it available to the entire Farm in one step. How do you accomplish such a Herculean task? I'm glad you ask. First you download that STP file. Then you give it to one of your Farm Administrators. They log into one of the SharePoint boxes and use the STSADM operation "addtemplate" to add your template to the farm. Now everyone will see it when they create a Site (stick with me here, web) in the interface. The bottom line is that SharePoint allows you to keep Site (web) Templates private to a Site Collection or make them available to the entire Farm, whichever suites your needs best.

Back to Laura's question. She wanted to know if she could specify a custom Site (thanks for sticking with me, web) Template if she was creating the web not through the UI, but with "stsadm –o createweb" (see, they call it 'web' here. I told you!). I know that when the Site (do I need to keep typing 'web' here) Template is created it's added to the Site Collection, so it's in the Content DB. In theory STSADM could look for the Site (yup, web) Templates the target Site Collection had when creating the web. On the other hand I knew that the "addtemplate" operation put them someplace else, and maybe that's the only place STSADM looked when executing "createweb." To solve this I tested it myself. I created a custom Site (almost finished here, web) Template and then tried to use it when creating another web in that Site Collection with "stsadm –o createweb." It failed. It said that was an invalid template named. Executing "stsadm –o enumtemplates" showed me what template names were valid. Of course mine was not in that list. Once I added my Site (last time, I promise, web) Template to the farm with "stsadm –o addtemplate" I could use it with the "createweb" operation.

I hope that all made sense. The fact that Microsoft chose to refer to these objects as "sites" in the UI most places and "webs" in other places makes this very difficult to explain. I hope it all made sense.

tk

Netcast #15 – Do OverUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt7/6/2009 2:55 PM5 

In this week's netcast I talk about the June CU and the LSASS loopback checker as well as why I have no business doing Internet video broadcasts.

Next week's netcast won't be recorded on Monday morning. Right now I'm not 100% sure when it will be. Stay tuned her and on Twitter to find out when I decide to record it.

MP3 Version

WMV Version

iPod Version

Enjoy,

tk

How to stop hotlinkers (and other amazing tricks)Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt7/3/2009 8:47 PMSharepoint1 

Last year I did a blog post on how I use Log Parser to peruse the IIS logs from this site to see how many people come here, what they look at, where they come from, etc. Those of you that have seen me at conferences or talked to me in person have no doubt heard the hilarious byproduct of that. Seems a few images on my web site are very popular with the kids at MySpace. They really like that yellow bird image as their background. While I'm flattered by the attention, honest I am, they seem unable to copy it down, so they're all hotlinking off of my site. That's right, these hoodlums are stealing bandwidth right out of the hands of you hardworking SharePoint enthusiasts. Every time you go to download one of my blog posts or a netcast recording those guys are slowing you down. I decided I wouldn't stand for it anymore; I was going to do something about it to defend your honor. In the past I've gone through my IIS logs to see which MySpace pages are stealing my images, then I swap something hysterical out in its place. Hilarity ensues. Unfortunately I only remember to do it every few months and it results in a bunch of renamed images and trash on my site. I needed to be proactive, not reactive. I needed to find a way to handle traffic from MySpace automatically, not by hand like I had been. Our Apache using friends have been using mod_rewrite for years for this functionality. (we get SharePoint, they get mod_rewrite, seems a fair trade to me) In the past there has never been a good mod_rewrite module for IIS. Until now, that is. A few months ago I moved all of my SharePoint servers to 64 bit Windows Server 2008. This means my servers are running on IIS7, which has a modular design that IIS6 didn't have. In cruising around on IIS.net I found an IIS URL Rewrite Module. That's perfect!

I downloaded the module, and like a good SharePoint admin, I tested it in a VM to see if it did what I wanted. The first time I installed it, it killed the VM. L To avoid that, pay close attention to the "Important" instructions on the download page. Make sure and stop the services they suggest. To be safe the second time I stopped all IIS and SharePoint related services and it worked. Fortunately my test VM and my production server are VMs in Hyper-V, so I made snapshots before I installed it. If you've got that opportunity, I recommend taking it.

After I got it installed configuring it was pretty easy. It shows up as a module called "URL Rewrite" in IIS Manager. Double-click it to open up the rules page. It should look like this:

From the screenshot you can see that I've got one rule defined right now. Let's walk through creating another one. For now, I just want to block any requests that have a referrer from the Myspace.com domain. To create it we'll start by clicking "Add Rules…" on the right. You'll get a dialog box like this:

We want "Request blocking" so click that and hit OK. We want to block requests based on the referrer, so select that from the dropdown. Leave "Matches the pattern" for the requests that are blocked. For referrer pattern put in http://*.myspace.com/* and leave the Using as "Wildcards" and set "How to block" to "Abort Request." The finished dialog should look like this:

 

That's all there is to it. You have a lot of options when editing the rule. Feel free to poke around and see what you can do. You can do some pretty amazing things. If you want to test the referrer rules you can use Quick Spoof to spoof referrers on URL requests. The details of the rule will show up in the web.config file for your web app. If you're curious how they're defined, pop it up and take a look.

You may be wondering how well this works with SharePoint. I can saw that it's worked great for the last 24 hours. J The module has support for rewriting and redirecting URLs, but I didn't have much luck with them. I would have loved to have the image requested from the MySpace users be replaced with something more…racy, but in the time I spent playing with this I couldn't get it to work. If you have better luck, let me know.

I hope this helped some of you fight off those evil bandwidth stealers.

tk

New Video UpUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt7/1/2009 2:13 PMSharepoint; Netcast0 

While I was out at SPTechCon Laura Rogers and Mark Miller of EndUserSharePoint did a quick interview of me. They were really bored that day. It's a pretty short watch, about 6:30.

MP3 version

WMV version

iPod version

I also got the word today that I was reawarded the MVP award from Microsoft. It's been a great ride and I'm very grateful to have been given the opportunities I've been given. Congratulations to all the other MVPs that have gotten the nod today.

tk

Netcast #14 – Not Dead YetUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt6/29/2009 3:14 PMSharepoint; Netcast0 

In this episode I talk about the topics that came up at SPTechCon and announce some sessions at the SharePoint conference. I also discuss the physics behind why a watched pot never boils. The video is jerky, it's not just you. (Unless you're listening to the MP3 version, then the video is great and I might be more handsome than ever)

MP3 version

WMV version

iPod version

tk

Post Conference Session at SharePoint ConferenceUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt6/26/2009 10:11 AM6 

In last week's netcast I hinted that I'd be at the Microsoft SharePoint Conference and had something to announce. The story broke earlier this week. Shane and I will be doing a post conference workshop on Friday October 23rd. We will be covering, in excruciating detail, SharePoint 2010 installation and upgrading to SharePoint 2010 from SharePoint 2007. There will be lecture as well as a couple of hands on labs. If we have time we may even cover how to stick Teflon to a pan when nothing sticks to Teflon. Here's the abstract we submitted:

Prepare yourself for the upcoming SharePoint Server 2010 Public Beta! Come and spend a full day with SharePoint IT Pros and Microsoft MVPs Todd Klindt and Shane Young as they cover install of SharePoint Server 2010 as well as upgrade scenarios from Office SharePoint Server 2007. They'll cover the gotchas of the install as well as potential pain points you might encounter when upgrading in your organization. After this session you'll have all the information you need to wow your boss and coworkers as well as get SharePoint Server 2010 beta up and running in your organization.

Space is limited to 150 people and the cost is only $400. If you've already signed up for SPC you should have gotten an email about this with instructions on how to sign up. If you haven't already signed up for the SPC this sounds like a perfect reason to do so. J If you're the developer type and are afraid to come into our session, don't worry, you'll have a blast and learn a lot. You may be the butt of a few jokes, but it will all be in good fun. If you still don't want to come there is another option. Andrew Connell and Ted Pattison are doing a Developer Deep Dive workshop at the same time. You can't go wrong with either one.

See you at SPC.

tk

Free Idera webinar staring ME!Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt6/17/2009 9:52 PM3 

It just dawned on me that I have done almost nothing to let you folks know about the webinar I'm doing tomorrow for Idera. They have graciously allowed me to do another webinar on SharePoint and SQL for administrators as part of their Secrets of SharePoint series. It's 100% free. Just sign up and tune in tomorrow at noon Central time. I'll be talking about using SQL and doing stuff like mirroring, log shipping and how to move your SharePoint farm from one SQL instance to another. It should be a good time. Don't worry if you missed my last webinar, I'll recap the important stuff tomorrow.

I'll be augmenting the webinar by streaming live on Stickam. You won't be able to see the slides or demos there, but you'll be able to see my smiling face.

So please join us tomorrow.

Thanks,

tk

Netcast #13 – Site OutagesUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt6/15/2009 11:46 AMSharepoint; Netcast0 

Get it while you can, Netcast #13 is up. Get it while you can, who knows when this server is going to tank next. J

In this week's netcast I talk about recent changes to my website that have resulted in downtown. I cover the STSADM operation mergecontentdbs and I cover some community activities. I also explain where that lost sock goes.

MP3 File

WMV File

iPod File

You may have noticed I jumped from #11 right to #13. Many places skip 13, not me, I skip 12. Seriously with the site outages 12 was going to go up late, and then when I listened to it I realized the audio was horrible. Just terrible. And I'm not just referring to Shane's voice. I put them up anyway, but it won't hurt my feelings if you don't listen to them.

MP3 File

WMV File

Sorry about 12.

tk

Another trip, another site outageUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt6/12/2009 11:46 PMSharepoint0 
Once again I left my house and took my web site down. This  time it was my old nemesis, the maxAllowedContentLength setting. After last week's meltdown I had to rebuild my farm. That means new web.config files all around. Before I tried to upload Netcast #12 (it really does exist, honest) I changed that setting so I could upload the file. I was in a hurry because I needed to get on the road for SharePoint Saturday Chicago so I didn't get around to uploading the file. Apperently I did have time to break my site. Those of you that suffered through my first few webcasts remember the hijinks from when I had to enter it the first time. Well, everything old is new again. I put it in the wrong place and screwed up my web.config. Since you're reading this now, you know I got it working. I just removed it, so there's still a chance for me to screw it up again when I add it. Fun, fun.
 
The good news is that I made it to Chicago and I'm stoked about SPS tomorrow. I hope to see a few of you there. Please stop by and say Hi if you see me.
 
tk
I’m baaaaackUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt6/11/2009 2:17 PM0 

Some of you may have noticed that my site was down for a few days. I had a hardware failure that started about 30 seconds after I left the house for a trip to Seattle. I had my lovely wife do some troubleshooting for me and it turns out my SQL server blew a drive, the drive my databases are on of course, and it was stuck in Check Disk. I had her shut it down to hopefully reduce any damage that had been done. Practicing what I preach, I was mirroring my Content Databases to another SQL instance. I wasn't, however, mirroring my Config DB. That kept me from just setting up a SQL alias and bringing it all back up. When I got home yesterday I tried to recover my Config DB but it was dead. I rebuilt the farm and attached my Content DBs and I'm back up and going. I have the Netcast I recorded Monday morning, but I haven't edited it yet. Hopefully I'll get that online today.

Thanks for your patience everyone.

tk

Netcast #11 – The Two SilosUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt6/1/2009 2:13 PMSharepoint; Netcast0 

In this week's netcast I talk about where different aspects of SharePoint content and configuration are stored. I talk about in the context of disaster recovery and what challenges can come up. I also cover why your keys are always in the last place you look.

As always, I welcome your comments. Next week I'll be recording the netcast at a different time. Stay tuned here for more details.

MP3 File

WMV File

iPod File

tk

Netcast #10 – The Hyper-V ConspiracyUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/26/2009 2:28 PMSharepoint; Netcast4 

In this netcast I cover some Hyper-V gotchas that may affect SharePoint. I also cover a dirty little secret of SharePoint 2007 SP2 while extolling the virtues of the April CU.

This is the blog post to comment on for the contest I mention at the end of the Netcast. Good luck

WMV File

MP3 File

iPod File

 

tk

Netcast #10 scheduleUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/23/2009 10:08 PMSharepoint; Netcast1 
Because of the Memorial Day holiday I won't be recording next week's netcast on Monday morning like I usually do. Instead I'll be recording it Tuesday morning instead. Same time, 8:45 AM Central Time. I will be doing some giveaways, so for an unfair advantage, watch the recording live at Stickam.
 
See you Tuesday, and happy Memorial Day.
 
tk
Small licensing problem with SP2Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/22/2009 8:44 AM0 

As you may have read on my blog, SP2 for SharePoint 2007 came out a month ago. The SharePoint Team Blog announced a teensy tiny little problem they've found with SP2. It seems that when you install SP2 on a SharePoint product that is licensed (MOSS, Forms Server, Project Server and Search Server) SP2 resets the license back to a trial license. Now, on the surface this might seem like a big deal, but I don't think it is. First, the trial is 180 days, so you have six months from the time you install SP2 to fix the issue. That's six months of everything working just fine. The other reason I don't think this is a big deal is because the fix is as simple as just reentering your non-trial license key. Overall, I don't think it's a big deal.

You can get the whole story on this at the SharePoint Team Blog. If you leave a comment, go easy on them. J

tk

Netcast #9 onlineUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/18/2009 2:55 PMSharepoint; Netcast0 
I've uploaded netcast #9 "TechEd 09 - We love L.A. (we love it)". In this episode I do a recap of TechEd 2009 in Los Angeles. I cover some of the topics covered. I also spend time talking about how to rescue yourself from a Basic Install, and how to break up Site Collections.
 
 
tk
TechEd 2009 – Day 2Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/13/2009 11:54 AM2 

Another fun filled day at TechEd. I had my first breakout session on Tuesday. Shane and I did a session on Disaster Recovery called "Saving one SharePoint installation at a time." The crowd was pretty lively and it went well, despite, or maybe because of me not having much voice. J Bribing them with books might have helped. Shane and I's TechEd Online video is now online. It's not too bad. I spent a few hours at the Office TLC and got to meet a lot of great people. If you're at TechEd I'll be back there today as well. Stop by and say hi.

tk

TechEd 2009 – Day 1Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/12/2009 1:00 AMSharepoint1 

Whew! Today was a big day here in Los Angeles. It started off with the keynote. A lot things were shown and talked about, but I'm not going to cover any of the non SharePoint content. The big news for us was the release of the software and hardware requirements for SharePoint 2010. This was also echoed on the SharePoint Team Blog by Rich Riley. It breaks down to this:

  1. SharePoint 2010 will be 64-bit only.
  2. SharePoint 2010 will require Windows 2008 or Windows 2008 R2
  3. SharePoint 2010 will require 64-bit SQL 2008 or 64-bit SQL 2005

We already knew #1, that's been on the street Since November of 2007. The last two points were new information. If you've gone to any sessions I've done in the last year you know I've been telling people to move to 64-bit now as well as Windows 2008. It's more important now than ever. You should up to speed on both of them now so that when the public betas of SharePoint 2010 come out you'll be ready to drop it into your environment and start playing with it. Don't forget your development and test environments will also be held to these requirements. If your developers are developing in virtual environments they'll need to be able to virtualize 64 bit guests to play with SharePoint 2010.

Rich also mentioned that Internet Explorer will not be supported in SharePoint 2010. The Tier 1 browsers will be IE 7, IE 8 and Firefox 3.x on Windows platforms. SharePoint 2010 will also support Firefox 3.x and Safari 3.x on non-Windows OSes. For those of you with large installations running IE 6, you'll need to start looking at upgrading your desktops as well.

Shane and I recorded a short video for TechEd Online. It should be up under TechTalks under the Office and SharePoint channel. Once it's published I'll try to get a direct link. In it we covered some common SharePoint installation problems we see and how to avoid them. It's good information for both the new and seasoned SharePoint administrator.

Some of you have probably noticed there's new netcast this week. Never fear, I haven't given up on them. Two things have gotten in the way. First, I've been pretty busy talking to attendees and vendors. Second, I'm losing my voice. L I've caught a bit of a cold and I can hardly talk. It wouldn't make for a very good netcast right now. Hopefully my voice will improve over the next couple of days. I apologize ahead of them to anyone sitting in on my sessions this week.

Finally, the folks at Idera sponsored a book signing tonight at their booth. It was a blast. Thanks to all the people that stopped by. It was great talking to everyone.

It's late and I need to get to sleep. I've got a big day ahead of me tomorrow. Hopefully my voice comes back. I'll try to post updates to Twitter. You can also search using the hashtag #teched.

tk

 

TechEd 2009 - Day 0Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/11/2009 1:27 AMSharepoint0 
Today was Shane and I's preconference session on Governance. We had a great crowd and we had a lot of good discussion. Thanks to all of you that put up with us all day. :)
 
You can download our slides here.
 
If you're at TechEd this week, swing by the TLC and say hi. I should be around all week.
 
tk
My TechEd 2009 ScheduleUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/8/2009 11:10 PMSharepoint1 

Tomorrow morning I hop on a plane for sunny Los Angeles California for TechEd 2009.I thought I'd post my schedule here. I'd love to hear from you if you're going to be at Teched.

Sunday 10:00 – 6:00 – PreConference Governance session

Sunday 7:00 – whenever - SharePint

Monday 11:00 – 11:30 – Tech Talk "SharePoint – What could possibly go wrong?"

Monday 7:30 – 8:00 – Book Signing at Idera vendor booth. They're giving away 40 copies of my book.

Tuesday 10:15 – 11:30 – OFC310 - Saving the World, One Microsoft Office SharePoint Server 2007 Deployment at a Time: Backup and Disaster Recovery (Room 502A)

Wednesday 1:00 – 2:15 - OFC404 - Exploring Proper Microsoft Office SharePoint Server 2007 Installation and Topologies (Room 150)

Thursday 8:30 – 9:45 - OFC409 - SharePoint Admins, the Reluctant DBAs (Room 152)

I'll probably be hanging out at the SharePoint Technical Learning Center (TLC) when I'm not up on stage. Feel free to swing by and say Hi. I'll also be recording my weekly netcast sometime Monday. Not 100% sure when that's going to happen.

tk

Netcast #8 onlineUse SHIFT+ENTER to open the menu (new window).
Todd O. Klindt5/4/2009 2:28 PMSharepoint; Netcast0 

Another week, another truly spectacular SharePoint netcast recorded. This week I cover SharePoint 2007 SP2. I cover what features have been added, like STSADM operations and FBA support as well as things that have been fixed and why we drive in a parkway and park in a driveway. I also introduce my new Intro in this episode, courtesy of Darvish Shadravan. Finally for each unique IP that downloads a copy before May 11th I will donate one item to a local food pantry. Tell your friends.

I have moved most of the netcast specific content to http://www.toddklindt.com/netcast. This is the last week the netcasts themselves will be stored here in /blog. Please update any subscriptions you have. I will continue to announce each new recording here though.

WMV File

MP3 File

iPod File

enjoy,

tk

P.S. Looks like a production problem. :) Taking offline to fix. Will update here when ready.

P.P.S. All fixed.

Top 6 new STSADM operations in SharePoint 2007 SP2Use SHIFT+ENTER to open the menu (new window).
Todd O. Klindt4/30/2009 5:30 PM2 

By now you've had a couple of days to play with SP2. Hopefully the install went well. There's some new stuff in it that I want to show you. In this post I'll tell you about the new STSADM operations that are introduced. I did an "STSADM" on a box running SP1 and the Infrastructure Update (build 12.0.0.6318) and on a box running the hot off the presses SP2 (12.0.0.6421). There are six STSADM operations in SP2 that aren't there before. To make it fun, I'm going to list them in order of how excited I am about them.

#6 – variationsfixuptool

This operation alerts you to problems you might have with any variations like orphaned pages. It'll also force a variations timer job to run. You can find out more about it in this article on TechNet. I don't use variations much, so this operation while much needed, doesn't really get my motor running.

#5 – exportipfsadminobjects

Do you use Infopath a lot? Then this operation might be for you. It stands for EXPORT InfoPath Form Server ADMIN OBJECTS. I'm not entirely sure what this does, but it appears to backup forms and configuration that is uploaded to your farm. Unfortunately there isn't an associated IMPORTipfsadminobjects operation, so I'm not sure what to do with it. It sounds cool though. I'm an admin, I like backing stuff up.

#4 and #3 – setqueryprocessoroptions and listqueryprocessoroptions

I couldn't really split these two up, so they share an entry. These two options let you list and set five parameters of your search environment. The following settings are exposed: (blatantly stolen from 'stsadm –help setqueryprocessoroptions)

securitytrimmingcachesize <security trimming cache size>

securitytrimmingmultiplier <security trimming overfetch multiplier>

nearduplicatemultiplier <duplicate removal overfetch multiplier>

joinmultiplier <join discard overfetch multiplier>

sdidjoinmultiplier <missing security descriptor overfetch multiplier>

These settings are per SSP. Use listqueryprocessoroptions to see what your current settings are and use setqueryprocessoroptions to change them. Now that search is heavily integrated in WSS as well as MOSS, this is really handy. Descriptions of the settings can be found on TechNet.

#2 – enumallwebs

This little number is pretty cool. We already have an "enumwebs" operation. Why in the world would we need an "enumALLwebs" function, you might ask? Well, I'll tell you why. Before SP2 came around if we wanted a list of webs for a particular parent all we had was the enumwebs operation. Its major failing was that it didn't recurse. It only showed you the webs directly under the URL you gave it. It would not show you the subwebs of those webs. You only got one level. Enumallwebs gives you ALL the webs a given site collection. Heck, it gives you all the webs in a given database. It also gives you tasty nuggests like SiteIDs and WebIDs, Language and Site Template. I can't count the number of times I've gotten the question "How can I tell what template was used for a site?" Now I can answer with confidence "stsadm –o enumallwebs." You can find out more from TechNet.

Drum roll please…

#1 – preupgradecheck

The one we admins have all been waiting for, preupgradecheck. The one is worth the price of admission alone. Like its predecessor, prescan.exe, this operation walks through your farm and databases and alerts you to any problems you might encounter when it comes time to upgrade to SharePoint 2010. It supports external rule files, so you can tell it about any 3rd party software you've installed. It comes with a default rule file, so all you need to do is run "stsadm –o preupgradecheck" to see what it does. I have been assured that it makes no changes to your databases, so it's completely safe to run. I've run it on several of my systems and haven't found any indication otherwise. The official TechNet article gives a little more information. Hopefully time will permit me to write a whole blog post on it. There's a lot of cool things to see.

That's it. Those are the six new STSADM operations in SharePoint 2007 SP2. I'll be talking a little more in depth about SP2 in 8th weekly netcast. Be sure to check it out.

tk

 

 

 

 

1 - 100 Next