Contents tagged with SharePoint

  • Recertified as Microsoft Certified Solutions Master (MCSM) for SharePoint

    Tags: MCSM, SharePoint, SharePoint 2013

    Yesterday I got the really cool news that I completed all recertification requirements for the Microsoft Certified Solutions Master: SharePoint certification. Couldn’t be a happier SharePoint professional right now!

    MCSM: SharePoint

    What is the MCSM and what about MCM?

    The Microsoft Certified Master (MCM) program has during the latest year transitioned into the Microsoft Certified Solutions Master (MCSM) program. It is not only a change in name but also a change made to adapt to the new world order. The program is not longer focusing on one specific version of the product but instead focus on what’s in the market at the current moment and specifically it covers both on-premise and cloud solutions. This is good in many senses – this allows the program to always be current, always use the latest techniques and technologies etc. The MCM was a certification without expiration date (well eventually the product cease to exist, but you still have the cert) whereas the MCSM has a three year life span and you must recertify to stay on top.

    The first MCSM : SharePoint rotation!

    I was fortunate to be able to participate in the rotation called U3, or Upgrade 3, which was the first MCSM rotation for SharePoint. It was two weeks on site, in the always sunny and warm Seattle, in January. I had the opportunity to spend these two weeks in a class room with the finest SharePoint professionals there is. We had great instructors, awesome labs, and fantastic discussions over the two weeks duration. It all led up to one written exam, called the Knowledge Exam, and one hands on lab, called the Qualification Lab. As always the QL was basically doing a couple of weeks worth of deep dive SharePoint work in about 8 hours time. Taken into account that this was a beta it was just about the hardest work I’ve ever done – but it was pure fun. And I made it! Phew…

    Congrats to all my other friends that made it through this rotation and best of luck to the ones who will have the joy of doing the exams one more time! You can do it!

  • Renewed as SharePoint Most Valuable Professional (MVP) for 2013

    Tags: SharePoint, MVP, Personal

    I just received the confirmation that I am renewed as SharePoint MVP (Microsoft Most Valuable Professional) for my fourth consecutive year. It’s an honor being chosen among all the professionals around the world, especially now when SharePoint is getting more and more widespread and is being adopted by more and more companies worldwide.

    Microsoft MVP

    I’d like to take the opportunity to say thanks all my colleagues at Connecta, that put up with me, and all my friends around the world that I’ve learnt to know throughout these years. I’ll continue to write obscure blog posts and show up at conferences, and I will continue to organize the Swedish SharePoint User Group meetings.

    Thank you all for the support!

  • Summing up the year of 2012 and embracing 2013

    Tags: Personal, SharePoint, SharePoint 2013, Office 365

    Only one day and a few hours left of the year of 2012 and the time has come for me to make my (now traditional) summary post. I’ve done it now for six years (2011, 2010, 2009, 2008, 2007 and 2006) and it’s always fun to look back at what has happened during the last 12 months.

    This year has been an interesting year to me and contained some really interesting milestones, happenings and events.

    Writing

    This year I’ve written basically the same amount of posts as in 2011, even though a new SharePoint version has been released. Basically it comes down to that I’ve been working a lot and haven’t had time to finish up some of the posts I’ve started and I’ve been busy with other commitments in the community. Anyways, I hope you enjoyed what I’ve written – I try to keep the quality up rather than the quantity.

    What’s really cool is that I now on average have more that 1.300 daily subscribers to my blog, a 30% increase since last year. Thank you!

    The most popular posts this year has been:

    1. How Claims encoding works in SharePoint 2010 – a post you should read IMO and still valid for SharePoint 2013
    2. Visual Guide to Azure Access Control Services authentication with SharePoint 2010 – part 1 – The first part of six posts in the series.
    3. SharePoint 2013 – Introduction to the Minimal Download Strategy – MDS – An MDS overview.
    4. SharePoint 2013 – Claims is the new black – the post title says it all
    5. SharePoint 2013 – A look at the hardware and software and other requirements – my pov on the hw and sw requirements

    The most popular post (from all years) is still the “Fix the SharePoint DCOM 10016 error on Windows Server 2008 R2” post.

    No books this year – done that once…

    MVP again..

    I was re-awarded the Microsoft Most Valuable Professional, MVP,  award for SharePoint for the third consecutive year. I’m honored by still being a part of this group of community contributors.

    Microsoft Certified Architect – MCA

    What I’m most proud of this year is that I passed the Microsoft Certified Architect for SharePoint, MCA, certification. This is a certification, currently only held by five individuals worldwide, which proves that you can “architect” a business and technical solution based on SharePoint and related technologies. What I do like about this certification is that it is not just a test or a lab (you get those tests while doing the MCM/MCSM, which is a pre-requisite for the MCA) but instead it is a mix of interview, business case, portfolio, presentations and Q&A’s, where you really must show that you understand business requirements, budgets, time plans etc. You can read more about my take on the program here – What is a Microsoft Certified Architect?

    Conferences and travels

    I got my fair share of travelling this year as well, a bit less than last year – which my family appreciated though. I had the opportunity to speak at a couple of conferences – where the International SharePoint Conference 2012 was the highlight. This conference was something extraordinary for both the attendees and us speakers. I really enjoyed working together with the team on the dev-track building out our solution and sessions and it was so fun having the whole team on the front row supporting (and a little bit of heckling) each other during the three days. I will be back next year in London!

    I also had a blast at the first SharePoint conference in Croatia, and I hope I’m invited again and as usual our local SharePoint and Exchange Forum – which just keeps growing!

    Microsoft arranged the SharePoint Conference 2012 in Las Vegas to unveil the spanking brand new SharePoint version…well it turned out that the product was released a month ahead, so the conference didn’t have much new information. In my opinion this was a pretty bad conference – the depths of the sessions was to low, to many of the speakers should not have been allowed on stage, and what a total disaster when all Microsoft talked about was how good the cloud is and they had no Internet connectivity. I really hope that the conference team get their stuff together and rethink a lot of things for the next conference!

    The Cloud

    I can’t really write a summary post of 2012 without talking about the Cloud. Microsoft (and other vendors) really put all their money on the cloud this year – nothing new with this, it’s been going on for years, but this year it’s more clear than ever. Well, the cloud is nothing new – it’s just a new name for the Internet, Application Service Providers, etc etc, it’s more of a marketing term.

    Since the release of Office 365 the transition of SharePoint to the cloud has started (BPOS was first but SharePoint wasn’t cloud ready at all at that time). With this new wave of SharePoint and 365 the SharePoint cloud offering is even more evident – and we don’t know now where it will end, I’m not sure even Microsoft knows that yet.
    We’ve been running 365 for a year and a half now and we still suffer a lot from different strange issues (that could be a post on it’s own!). Hopefully once upgraded the service will be more stable and useful.

    I might sound a bit doubtful about the cloud – and I am. For the vast majority the cloud (read 365) is a great option instead of hosting and managing their own instances. But for large enterprises (the clients I’m normally working with) 365 is not even an option…

    Only time will tell…

    Predictions

    This is the part I really enjoy writing and thinking about at this time of the year – looking back at my last years predictions and looking in the crystal ball for the upcoming year.

    Last years predictions wasn’t that good – Silverlight is till not dead (someone hooked it up to a CPR machine) and all the browser vendors seems to be on some kind of honeymoon. My wish that 2012 was a bit less cloudy failed miserably! The only thing I think I got right was that Windows Phone would have momentum and by looking at some stats there’s some truth in that.

    So what do I think about next year?

    • Cloud, cloud and cloud! The cloud marketing will continue, it will be shoved down our throats, we’ll be so sick of it by the end of 2013. But this will be the way forward. It will be really interesting to see what will happen to traditional “on-premises” products – will they vanish? Just take a look at how Microsoft has discontinued a lot of products this year!
    • Identities, certificates, federation! I think one of the most important things for next year and the years following are having a good identity infrastructure and identity management in place. This should be a priority for all companies and architects working in our business. It’s also the basic requirement to get any cloud services to work properly.
    • Apps, devices and integration! For the cloud, hosted services etc to work the integration story must be better. We’ve seen a good start with Windows 8 (RT), Windows Phone 8, Office 2013 etc – but it’s not fully there yet. I think that this is what will be improved over the next 12 months and that might also be the key differentiator between the three large “ecosystems” – Windows, Linux/Android and the fruit camp.
    • SharePoint community! The SharePoint community has grown really large and it has reached some kind of “critical mass”. I’m not saying it’s to big or anything but I see the community being more divided than ever splitting up in different directions with different specializations, aspects, mind-sets etc. The number of conferences, user group is ever increasing. This year the community will change (due/thanks to the cloud) – we will see a big change in focus, we will see SharePoint professionals being Azure, Windows 8/Phone, JavaScript professionals.

     

    What do you think?

    Thank you and a happy new year!

    With that I would like to wish you all a Happy New Year and say thank you for 2012. I‘ve been having my doubts about 2013, but now I ‘m really looking forward to it. I have some cool events and travels planned, I know that my work at Connecta will contain some interesting opportunities and I know that the demand for SharePoint is ever increasing…

    A view from our summerhouse

    See you on the other side!

  • Post Series

    Tags: Blog, Series, SharePoint

    These are links to most of my blog post series

    SharePoint 2013: Building a WOPI Client 

    Visual Guide to Azure Access Controls Services authentication with SharePoint 2010

    SharePoint 2010 Ribbon Controls

    Web Part Properties

    Visual Guide to Windows Live ID authentication with SharePoint 2010

     

  • How to use PowerShell to populate Active Directory with plenty enough users for SharePoint

    Tags: Active Directory, Windows Server 2008 R2, SharePoint

    When testing SharePoint or any other software that uses Active Directory or any kind of data storage it is important to test with lot of data, data with variations and real life data. One area that is often forgotten is Active Directory, ok you create 10 or 20 test users, perhaps 50 or 100 users called Mr. Test Testson32 or similar, but that is not enough. I like to use some real world data for my Active Directories both for testing and for sure it looks more fancy when doing a demo with SharePoint (especially with these new social features in SharePoint 2013). So I’m going to show you some of my scripts I use for this.

    Getting me some data

    imageFirst of all we need users. And not these test users called Test1, Test2, or you pet names (well I usually throw in my kids once in a while). One fantastic source of data is the Fake Name Generator. This amazing service can get you up to 50.000 randomly generated identities in bulk. You can choose the name sets, which countries they should come from and what properties you would like. Perfect for getting data that matches your clients! For this post I retrieved 25.000 users from Sweden, US etc and using both European and Chinese names! I chose to use the following properties; Given Name, Surname, Street Address, City, State, Postal Code, Country Abbreviation, E-mail, Username, Telephone, and occupation. All this gets emailed to me as a CSV files in just a couple of minutes.

    Importing the data

    Now on to the fun stuff with PowerShell. I’m going to take this CSV file import it into a PowerShell object, transform it a bit and then just create Active Directory accounts from them. Let’s start with some preparations.

    First of all I create a specific OU (“Demo Users”) to place all these accounts in, and I also set some password restrictions (well, this is a demo).

    Import-Module ActiveDirectory
    $dn = (Get-ADDomain).DistinguishedName
    $forest = (Get-ADDomain).Forest
    
    Set-ADDefaultDomainPasswordPolicy $forest -ComplexityEnabled $false -MaxPasswordAge "1000" -PasswordHistoryCount 0 -MinPasswordAge 0
    
    $ou = Get-ADOrganizationalUnit -Filter 'name -eq "Demo Users"'
    if($ou -eq $null) {
        New-ADOrganizationalUnit -Name "Demo Users" -Path $dn
        $ou = Get-ADOrganizationalUnit -Filter 'name -eq "Demo Users"'
    }

    Once this is done it’s time to start fiddling with the data. First of all I import the CSV file into a PowerShell object like this (of course you need to replace the file name with yours):

    $data = Import-Csv .\FakeNameGenerator.com_d7a08270.csv

    Then we’ll refine the CSV data into a new PowerShell structure, you can mix and fiddle with this as you like. Notice that my structure uses the parameter names of the New-ADUser cmdlet, so if you want to add cell phone and other attributes to your AD accounts, here’s the place to add them.

    $refineddata = $data | select  @{Name="Name";Expression={$_.Surname + ", " + $_.GivenName}},`
             @{Name="SamAccountName"; Expression={$_.Username}},`
             @{Name="UserPrincipalName"; Expression={$_.Username +"@" + $forest}},`
             @{Name="GivenName"; Expression={$_.GivenName}},`
             @{Name="Surname"; Expression={$_.Surname}},`
             @{Name="DisplayName"; Expression={$_.Surname + ", " + $_.GivenName}},`
             @{Name="City"; Expression={$_.City}},`
             @{Name="StreetAddress"; Expression={$_.StreetAddress}},`
             @{Name="State"; Expression={$_.State}},`
             @{Name="Country"; Expression={$_.Country}},`
             @{Name="PostalCode"; Expression={$_.ZipCode}},`
             @{Name="EmailAddress"; Expression={$_.EmailAddress}},`
             @{Name="AccountPassword"; Expression={ (Convertto-SecureString -Force -AsPlainText "WictorRocks!")}},`
             @{Name="OfficePhone"; Expression={$_.TelephoneNumber}},`
             @{Name="Title"; Expression={$_.Occupation}},`
             @{Name="Enabled"; Expression={$true}},`
             @{Name="PasswordNeverExpires"; Expression={$true}}

    As you can see I fix the Name and DisplayName properties and makes sure that the UPN uses the DNS name from the forest etc. I also enable all the users.

    And now all that is left is to add them to Active Directory! I don’t just add them to the OU created above, instead I actually create one OU for each Country – this makes it more easier to manage and also gives me an opportunity to test accounts in different OU’s. So here’s the snippet to add the users and create the other OU’s:

    $refineddata | % {
        $subou = Get-ADOrganizationalUnit -Filter "name -eq ""$($_.Country)""" -SearchBase $ou.DistinguishedName        
        if($subou -eq $null) {
            New-ADOrganizationalUnit -Name $_.Country -Path $ou.DistinguishedName
            $subou = Get-ADOrganizationalUnit -Filter "name -eq ""$($_.Country)""" -SearchBase $ou.DistinguishedName        
        }
        $_ | Select @{Name="Path"; Expression={$subou.DistinguishedName}},* | New-ADUser   
    }

    For 25.000 users this will run for a while, but it’s worth it!

    Note that you’ll get some errors while running this with lots of users normally. This is due to that some of the usernames are repeated. Of course with some handy PowerShell magic that can be fixed as well…

    And here’s the result

    If we now take a look in the Active Directory Users and Computers snap-in it should look something like this:

    OU's

    And then if we drill down into one of the OU’s there should be tons of users:

    Lotsa users

    All with nice details:

    An account

    Summary

    Now you’ve seen a very simple and fast way to generate lots of demo data for Active Directory. Of course you can modify the snippets above and adapt to your requirements. And you don’t need 25.000 users in your development environment remember it will take some time to sync and crawl with SharePoint…

  • Conference season, fall of 2012

    Tags: SharePoint, Presentations, Conferences

    Here we go again! The conferences are piling up one after another now when we have our new and shiny toy (=SharePoint 2013). For me personally this is an exciting time and gives me the opportunity to travel, meet old and new friends, to network and first and foremost learn more about SharePoint. A lot of us are currently experimenting with the beta bits, actively running some projects on it and just wondering how it will work when Microsoft finally will make the golden master. The conferences gives you the opportunity to hear about the latest news, learn about some features that you haven’t got a chance to explore yet, learn from those who has been working with this new product for months and even years and also hear a different perspective of others experiences compared to yours.

    I have three planned conferences for the next couple of months and a couple of user group meetings (where the interest has been tremendous!).

    SharePoint and Exchange Forum 2012 – October 22-23, Stockholm

    SEF2012http://www.seforum.se

    The first conference to kick off this season is the largest yearly SharePoint conference in Scandinavia – SharePoint and Exchange Forum. It’s hosted by Office 365 MVP and my good friend Göran Husman, and he has been doing this conference since the dinosaurs walked the earth. Last year I thought the conference really had a fantastic bunch of speakers and this year it will be even better! I will do two sessions this year (but why do I always get my slots the day after the big party, Beatrice!!!).

    Office Web Apps Server – all you need to know

    This is a session where we dig into the new Office Web Apps Server (or WAC server) to see how it works, how it’s configured etc. We’ll discuss why Microsoft decided to make it into its own server product and how it can integrate with other servers (except SharePoint) such as Exchange.

    SharePoint Apps – An introduction for developers

    This developer session will be an introductory SharePoint 2013 Apps development session. We’ll talk about why we would like to build Apps, the basic concepts and then of course build an app or two. My mate Eric Schupps will also do an App development session and we’ll make sure that you will benefit from visiting both of our sessions.

    SharePoint Conference 2012 – November 12-15, Las Vegas

    SPC12http://www.sharepointconference.com

    The SharePoint Conference 2012 is by far the largest conference this year and it will be the “coming out party” for SharePoint 2013. Everyone will be there – vice presidents, product group members, MCA’s, MCM’s, MVP’s…just everyone! Even though the Preview is out I expect to see some really cool stuff shown in the keynotes and sessions. I’m going there, and not speaking, with my great team from Connecta and we’ll do all that we can to suck in as much information as possible.

    SharePoint and Projects Conference Adriatics, November 28, Zagreb, Croatia

    SPC Adriaticshttp://spcadriatics.com

    This will be my first time at SPC Adriatics and I was invited by my good friend and SharePoint MVP Toni Frankola to speak here. This conference also has a great line-up of speakers and it’s going to be an intense day for everyone to learn the latest about SharePoint 2013. This time around I’ll do an upgrade/IT-Pro session.

    SharePoint 2013 – The upgrade story

    This session will cover what you need to do an upgrade from SharePoint 2010 to SharePoint 2013, You’ll learn the upgrade planning, methods and execution through a number of demos. During the session we will do a live upgrade from SharePoint 2010 to SharePoint 2013. We’ll also cover the Site Collection upgrade previews and health checks, which allows the site collection owner to determine when they are ready to move on to the new version.

     

    I hope to meet you out there on a conference shortly! Take care.

  • Sweden SharePoint User Group meetings in Stockholm and Malmö

    Tags: SharePoint, User Group, SSUG

    It’s been some time since we had some Sweden SharePoint User Group (SSUG) meetings. But now we’re back and more excited than ever. We’ll start with the first meeting in Stockholm the 24th of September and have another one coming the week after, the 4th of October, in Malmö.

    Stockholm, 24/9-21012

    This time our host is Steria AB. We will have two sessions, one delivered by Steria with a yet not announced session and another one by me which will be an introduction to SharePoint 2013.

    For more information and registration go to the event page at Eventbrite, we’re limited to 50 people, so get your ticket as soon as possible.

    Note: the event sold out in less than 20 hours. We still have a waiting list, so if you’re eager to attend sign up on the waiting list.

    Malmö, 4/10-2012

    The Malmö event will be hosted by Connecta. Two sessions will be delivered; one by Alfa Laval where they will share their experiences of one year with SharePoint. The second session will be an introduction to all the fancy new stuff in SharePoint 2013 by me.

    For more information and registration go to the event page at Eventbrite, we’re limited to 50 people, so get your ticket as soon as possible.

    I’m really looking forward to meeting all of you SharePointers in Sweden!

    And finally, we already have a couple of more planned User Group meetings with some really interesting guests, stay tuned…

    Update 2012-09-14: Make sure that you keep an eye on our website http://www.ssug.se and our Facebook page https://www.facebook.com/SharePointSweden

     

  • The Rules of SharePoint Troubleshooting

    Tags: SharePoint

    For some reason I get a lot of questions in my inbox about different SharePoint problems people have. I don’t mind, as long as they are polite. If I have time I do try to help out, but sometimes time is not enough. I’m sorry if I don’t answer all of them. But in order to help more people I have compiled a set of rules for SharePoint Troubleshooting.

     

    First rule of of SharePoint troubleshooting: You should always check the ULS logs

    The Trace Logs, often called ULS Logs, is where you find your answer to most of your problems. Always use ULS Viewer -  if you do not have that tool in your kit, then you’re out on thin ice, period! Check the correlation id, search for exceptions and warnings. Things I almost always find the answer to here is “file not founds” (404) and “Access Denied”s (401). If you cannot find it immediately in the logs and you can re-create the problem, turn up the logging level to Verbose.

    Second rule of SharePoint troubleshooting: You SHOULD ALWAYS check the ULS logs

    That’s right! This is the first thing I ask people when they are in trouble and in 99% of the cases the problem is detailed in the logs.

    Third rule of SharePoint troubleshooting: If SharePoint yells stop or goes limp, do an IISRESET

    Using IISRESET will solve a lot of issues with SharePoint, or any IIS based product for that matter. Note that IISRESET often only temporary solves the problem, so you would most likely want to investigate it further, hence the other rules…

    Wish there was a noderunnerreset in 2013…

    Fourth rule of SharePoint troubleshooting: At least two guys to a fight

    When in doubt – ASK SOMEONE! You don’t have to e-mail Spence Harbar the first thing you do, but please, please ask someone else before you start to mess with your farm, without knowing what you are doing. The first question back you’re going to get is of course – “Have you checked the ULS Logs”, so make sure to do that!

    Ask the community, use the Twitter #sphelp hashtag, use the great forums out there such as SharePoint StackExchange, there’s almost always someone there who would like to help you. Oh, and most likely you will find it on your first Bing attempt.

    Fifth rule of SharePoint troubleshooting: One problem at a time fellas

    This is also a very obvious rule, but I so often see that once a problem occur SharePoint “Professionals” try to fiddle with all the knobs and dials in SharePoint to mitigate the problem, only to get themselves out on deeper water. Step away from the keyboard, take it easy, check the ULS logs and isolate and understand your problem!

    Sixth rule of SharePoint troubleshooting: No database fiddling

    Touching the SharePoint databases is a big no-no. There are tons of blog posts out there that “solves” problems by manually editing the SharePoint databases. Once you’ve done that you will be unsupported and you will live in shame forever. Just don’t do it!

    Seventh rule of SharePoint troubleshooting: Troubleshooting will go on as long as it have to

    Prepare for a long fight with SharePoint. Sometimes she is a really vicious one, and you will often see others having the same problem(s) on forums etc., but most often without any decent answers. I’ve spent numerous long nights trying to figure out what the heck is happening. Always remember, that you can open a case with Microsoft – and let them stay up all night instead!

    Then eight and final rule of SharePoint troubleshooting: Is this is your first problem, you have to fight!

    This is the rule most people have problems with. But if you follow the rest of the rules you will while troubleshooting realize how much you learn about SharePoint and all the surrounding products. And this will make your next troubleshooting much, much easier!

     

    “Without pain, without sacrifice, we would have nothing…”

  • SharePoint Mythbusting: The response header contains the current SharePoint version

    Tags: SharePoint 2010, SharePoint

    I thought it was about time to bust one quite common myth in the SharePoint world (and there are lot of them!). This one in particular is interesting because it can cause you some interesting troubles, or at least some embarrassment. This is about that you can determine the current SharePoint [2010] version by checking the HTTP Response Header called MicrosoftSharePointTeamServices. So let’s bust that myth, or at least try!

    Confirmed, plausible or busted!?

    Background

    On a standard installed SharePoint Farm when you request a page you will get a set of response headers back. One of these response headers are named MicrosoftSharePointTeamServices and it has a version number as value, like this:

    The response headers

    As you can see in the image the version number is 14.0.0.6114, which corresponds to SharePoint 2010 (14) and December 2011 Cumulative Update (6114).

    HTTP Response Headers in IISThis header is not added by SharePoint (in the pipeline) but rather by IIS, even though it is SharePoint who adds it to IIS.

    If you fire up the IIS manager and go to a SharePoint web site and check the HTTP Response Headers Feature, you can see that it is configured there.

    If you check the Central Administration Web Site you’ll it also have the same exact version value.

    You can even change the headers in the IIS Manager (what good that now would do). So we basically already busted the myth! But let’s assume that you don’t fiddle with this and continue our research…

    Applying a cumulative update

    Let’s take this 6114 farm, which was a slipstreamed 6114 install, and apply the April 2012 CU (6120) and see what happens. After applying the April CU we’re seeing this in the returned header on our Central Administration that the response headers shows the correct value – 14.0.0.6120.

    The build is shown

    Now, take a look at the header on the content web application that we looked at before the B2B upgrade:

    Upgraded web app shows 6115

    6115!!! What!? After checking both Todd and Todd’s version lists we have no idea what version this is?!? It is something in-between December 2011 and February 2012! Ok, let’s apply June 2012 CU, which is build number 6123, on top of this. After running the Configuration Wizard again this is response header we’re receiving.

    Upgraded web app shows 6122

    6122! Close but no cigar! Central Admin on the now patched farm still shows the correct build (6123).

    Adding a new Web Application

    Now let’s do another experiment – add a new Web Application to this farm. After that we’ll see that it actually contains the correct version header (6123).

    New web app shows 6123

    Adding a new server to the farm

    One final experiment, let’s add a new server to this farm, that was upgraded from December 2011, to April 2012 and then to June 2012 CU, with a slipstreamed June 2012 machine. This is how it looks if we browse to the original web application (that we updated twice).

    New farm shows 6123

    The newly created one, shows the “correct” build. Also a check in the IIS verifies that both web sites have the “correct” build number in the response headers feature.

    This is interesting, this means that in a load balanced scenario you could actually get different build values from the response header!

    Digging deeper…

    Let’s do this experiment once again but slightly different. This time instead of running the Configuration Wizard after applying the patch, let’s do it the hard core way by using psconfig.exe:

    psconfig.exe -cmd upgrade -inplace b2b -wait

    The key here is that I use the –wait flag, which makes sure that the upgrade process is executed as the user running the command, instead of in the owstimer.exe process (which is running as the farm account).

    Low and behold, now the response header shows the correct build version (6123) in Central Admin and on the content web application!

    Why these strange build numbers?

    The local Administrators groupTo make a long story short it all comes down to how the farm is updated, specifically which account you’re doing the upgrade with. We can also say that if you’re running the Configuration Wizard and get the “correct” build number in the response headers, you’re farm is misconfigured :-). When I ran the psconfig.exe command with the –wait switch I used an account that was a member of the local Administrators group, whereas my farm account (running the owstimer.exe process) is not.

    Deep down between the zeroes and ones in the SharePoint code there is actually a code snippet that checks if the account running the upgrade is a member of the local Administrators group. If the account is member it will nice and quietly update the IIS metabase with the (file) build number, taken from the current assembly which is Microsoft.SharePoint.dll. But if the user is not a local Administrator (and cannot edit the metabase), the operation is passed on to the WSSAdmin component (running as Local System) which uses another assembly. This assembly is called Microsoft.SharePoint.AdministrationOperation.dll, and the metabase is updated with the (file) build number for that assembly. This table below shows you the version info for the two CU’s we’ve been looking at.

      Microsoft.SharePoint.dll Microsoft.SharePoint.AdministrationOperation.dll
    April 2011 Cumulative update 14.0.6120.5000 14.0.6115.5000
    June 2012 Cumulative update 14.0.6123.5002 14.0.6122.5000

     

    Fortunately in these cases the AdministrationOperation dll has had changes between released CU’s, but what will happen the one day when there is no need to patch that assembly. Well, in that case the build number will stay as in the previous version/build/CU.

    So there you have it – you cannot trust this MicrosoftSharePointTeamServices response header as a single source of trust when you need to remotely find out your SharePoint build and version. Even if you keep track of all the specific builds of the administration assembly, since it might not be updated, and you cannot be sure that everyone runs psconfig with the –wait switch.

    The myth is busted!

    Busted

    SharePoint Designer shows the correct version!?

    Let’s take a look at how you can retrieve the correct version number remotely. It hurts me to tell you – but the best source for this is to use SharePoint Designer! Yes, SharePoint Designer shows you the current build in site information panel.

    Build number in SharePoint Designer

    Note: SharePoint Designer uses a call to /_vti_bin/shtml.dll/_vti_rpc to find out the version number

    “I read somewhere that the Client Object Model has the correct version number!”

    This is a side note, but I’ve seen references to using the JavaScript Object Model (JSOM) to get the current version and build. Let’s do this quickly by using Internet Explorer Developer Toolbar and run this little script:

    SP.ClientContext.get_current().executeQueryAsync(null,null) 

    When we take a look at the response from this request we’ll see this:

    JSOM result

    6108! That is somewhere in-between the June 2011 CU and the August 2011 CU, a year old stuff! It is basically the same reason as previously, this build number is fetched from the Microsoft.SharePoint.Client.ServerRuntime.dll assembly, and that one has not been/needed to be updated since last year (someone give that PM a nice cake!).

    How about removing the header?

    Someone of you might think that it is a good idea to remove this header, since it can at least tell you (or your enemies) something about your farm. Ok, for a public facing WCM site (or public facing blog sites :-) it might make sense, but if you do it you must know that it will cause troubles when crawling, people will not be able to work with documents etc etc. So just don’t do it without a proper cause and testing.

    Note: Disabling Client Integration on the web application will remove the response header.

    Summary

    That was fun, right? We did bust a myth about how you can find out the current SharePoint version just by looking at the HTTP response headers. The MicrosoftSharePointTeamServices response header really doesn’t say anything (except some kind of minimum build level) since you don’t know how they built/slipstreamed the install or upgraded the farm.

  • International SharePoint Conference 2012 wrap-up

    Tags: SharePoint, Presentations

    It’s been almost a week since the International SharePoint Conference ended, the first of its kind – and what a conference it was!

    I was honored to be part of the developer track, together with top-notch speakers and developers such as Andrew Connell, Ben Robb, Eric Schupps, Matthew McDermott, Mirjam van Olst, Paul Schaeflein, Todd Carter and Waldek Mastykarz. We’ve been working together on this “project” for a couple of months having weekly calls trying to build a solution that we would use for the developer track. I really think that we did a good job and that we covered a lot of the important pieces in a SharePoint project – that normally isn’t covered on conferences. And I do hope that you who attended it, enjoyed the track and what we tried to show you.

    Everything that we built and presented is available for download. We’ve created a CodePlex project where we have uploaded the functional specs, all the session demos and the final solutions demoed. Go grab the stuff here: http://spkbase.codeplex.com. And if you have any comments or questions – use the CodePlex discussion features and let the discussion start.

    Waldek and I started the dev track by building a couple of Visual Studio Extensions. After some initial problems with the Visual Studio Gallery site we finally got them published. Just search for “ISC” in the Extension Manager. And if you wait just a couple of more days – all this will be integrated into CKS:Dev.

    The ISC extensions in the Visual Studio Online Gallery

    Next year, our amazing host Steve Smith, will host the SharePoint Evolution Conference 2013. I would not miss it for the world!

Facebook

About Wictor...

Wictor Wilén is a Director and SharePoint Architect working at Connecta AB. Wictor has achieved the Microsoft Certified Architect (MCA) - SharePoint 2010, Microsoft Certified Solutions Master (MCSM) - SharePoint  and Microsoft Certified Master (MCM) - SharePoint 2010 certifications. He has also been awarded Microsoft Most Valuable Professional (MVP) for three consecutive years.

And a word from our sponsors...

SharePoint 2010 Web Parts in Action