Showing posts with label Office 2010. Show all posts
Showing posts with label Office 2010. Show all posts

Thursday, March 15, 2012

Updated Independent Analysis on Microsoft Productivity Solutions for Prem and Cloud

There have been a lot of updates with Gartner analysis for the Microsoft Productivity stack and other related stacks that I work with. Specifically SharePoint, Office 365, Lync and BI have all been getting great independent reviews. The important take away that I discuss with my customers is that all these top quartile rated technology is delivered on a single, integrated solution stack. They are NOT hodgepodge solutions brought custom integration.
Many of the reports and newest reports can always be accessed from here - http://www.microsoft.com/presspass/itanalyst/default.mspx
SharePoint and Office 365
As you can see we have been great assessments for enterprise content management, enterprise search with FAST for SharePoint 2010, great recognition as portal provider, social computing and business process analysis with Visio Services and SharePoint workflow. Much of this capability is delivered through the Office 365 cloud as well.
SQL Server and BI
As you can see these are very recent reports giving us good reviews in the areas of BI and Data Warehouses. I think the big take away is again total cost of ownership (TCO). We give strong BI solutions and customers do not need to make significant investments to deliver BI through the same SharePoint investments discussed above.
Exchange and Office 365
For email with Exchange either delivered on-premise or through the Office 365 cloud we continue to be evaluated as a leader. This really speaks to our versatility in allowing customers to select the most appropriate place and get the same level of end user experience for business users.
Lync and Office 365
Microsoft is again recognized as a leader in all these types of solutions with Lync which can additionally be delivered through the Office 365 cloud. Our Unified Communications solutions are completely integrated in Office, Outlook and SharePoint allowing users to quickly transition between tasks they are working on making them highly productive. These capabilities are extremely useful for telework or communications between people spread across large geographies.

Wednesday, January 18, 2012

Custom Web Templates and Activating Features

Introduction
Lately I was messing around with Custom Site and Web Templates with Office 365 and made a few discoveries that I figure I share. Some of it is old, some of it I had to piece together.

Background
I am building a solution in Office 365 using SharePoint Online. I have a site collection with publishing turned on. I created a custom site template and I need to make sure that site (web level) publishing feature is turned on.

Publishing Feature Disables Creating Site Templates
For some reason, when you turn on the publishing feature on a site, the “Save site as a template” is removed from Site Settings. Now I have found some blog posting where people go down into the SharePoint install files and make some changes to fix that. First, probably not the best course of action if you want to make sure you have supportable upgrades (and someone actually documents the change <g>). Second, since I am working with Office 365 that is not even an option, so I need to find a solution that does it the right way.

Another thing I saw people suggest is go to the Save as Template page by typing in “_layouts/savetmpl.aspx”. Do not waste your time with that approach either, it will not work correctly.

My only option is to create my custom site initially without the publishing feature turned on. Then build some solutions to turn on publishing for the site automatically and ensure that the masterpages are set appropriately. The solutions I looked into are:

1. Feature Stapling
2. Modifying the Web Template
3. WebProvisioned Event Handler

Custom Web Template Feature Stapling
The first solution that I investigated was the most obvious; create a Feature Stapler that would activate the site publishing feature.

The first thing I ran into was finding the actual name of the template. Traditionally the name of the site template is usually something like STS#0. However since this is a custom site template where would I get the site template name from? I found some scripts that would help me get the template name. Since I was doing the development on my local machine it was easy for me to run some PowerShell on my development box to test this all out (I did find similar code to run API code against Office 365).

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <FeatureSiteTemplateAssociation Id="94c94ca6-b32f-4da9-a9e3-1f3d343d7ecb" TemplateName="{04FB0801-1DFA-41ED-9B87-06D0FF088F01}#MyCommunityTemplate" />
</Elements>

I create a Feature Stapling feature that looked like this. As you can see there is a GUID#template name format.

Let me save you some though – this is not supported and did not work. Feature Stapling can only be used against the site templates that are OOB the box or deployed down into the hive. You cannot apply do Feature Stapling to a site template created off SharePoint web site.
Modifying the Web Template

The next thing I tried, which is a recommended approach, is to modify the web template. This is a really easy thing to do now with Visual Studio 2010.
In Office 365 I created a web template the way I needed but without publishing turned on. I then went into site settings and created web template like usual. I then went to the Site Collection Solution Gallery, downloaded the WSP, and opened it in Visual Studio 2010 (using an Import SharePoint Solution Package project).
In the project, there will be a module called “Web templates” and you will find a file called “ONet.xml”. Open this file and you will see <SiteFeatures> and <WebFeatures>.
<SiteFeatures> correspond to the site collection and the following features should already be in the web template because you will have publishing turned on at the site collection level.

<!--PublishingPrerequisites Feature-->
<Feature ID="{a392da98-270b-4e85-9769-04c0fde267aa}" Name="FeatureDefinition/a392da98-270b-4e85-9769-04c0fde267aa" />
<!--PublishingResources Feature-->
<Feature ID="{aebc918d-b20f-4a11-a1db-9ed84d79c87e}" Name="FeatureDefinition/aebc918d-b20f-4a11-a1db-9ed84d79c87e" />
<!--PublishingLayouts Feature-->
<Feature ID="{d3f51be2-38a8-4e44-ba84-940d35be1566}" Name="FeatureDefinition/d3f51be2-38a8-4e44-ba84-940d35be1566" />
<!--PublishingSite Feature-->
<Feature ID="{f6924d36-2fa8-4f0b-b16d-06b7250180fa}" Name="FeatureDefinition/f6924d36-2fa8-4f0b-b16d-06b7250180fa" />

Why are there four when you only turn on one publishing feature for the site collection through the SharePoint UI? The one with f6924d36-2fa8-4f0b-b16d-06b7250180fa is actually the main one, but the other three are supporting, hidden ones. There is not action for you, just brought this up because I thought is it interesting.

Now this is what you do need to do. Go to the <WebFeatures> and add the following two features.

Add the Publishing Web after the MetaDataNav:
<!--MetaDataNav Feature-->
<Feature ID="{7201d6a4-a5d3-49a1-8c19-19c4bac6e668}" Name="FeatureDefinition/7201d6a4-a5d3-49a1-8c19-19c4bac6e668" SourceVersion="14.0.0.0" />
<!--PublishingWeb Feature-->
<Feature ID="{94c94ca6-b32f-4da9-a9e3-1f3d343d7ecb}" Name="FeatureDefinition/94c94ca6-b32f-4da9-a9e3-1f3d343d7ecb" SourceVersion="14.0.0.0" />

Add the Publishing Feature after the GridList:
<!--GridList Feature-->
<Feature ID="{00bfea71-3a1d-41d3-a0ee-651d11570120}" Name="FeatureDefinition/00bfea71-3a1d-41d3-a0ee-651d11570120" SourceVersion="1.0.0.0" />
<!--Publishing Feature-->
<Feature ID="{22a9ef51-737b-4ff2-9346-694633fe4416}" Name="FeatureDefinition/22a9ef51-737b-4ff2-9346-694633fe4416" SourceVersion="14.0.0.0" />

This worked great and was really clean.

The next thing I needed do was make sure the master pages are set appropriately. Even though I turned on publishing, it does not mean that the mast pages will be set correctly. The solution is again very simple.

I created a new Feature in Visual Studio 2010 to the web template solution I already had open and set the scope for Web. I then added an event handler to the new Feature. Then in the FeatureActivated event handler I added the following code:
using (SPWeb web = (SPWeb)properties.Feature.Parent)
{              
    web.MasterUrl = web.ParentWeb.MasterUrl;
    web.AllProperties["__InheritsMasterUrl"] = "True";
    web.CustomMasterUrl = web.ParentWeb.CustomMasterUrl;
    web.AllProperties["__InheritsCustomMasterUrl"] = "True";
               
    web.Update();
}

Then I selected the new Feature, clicked on the manifest and copied the GUID for the Feature ID. I then subsequently added that Feature ID into the bottom of the <WebFeatures> section in the ONet.xml file.
Now when this custom web template is provisioned, this code will be executed to set the master page appropriately.
Web Provisioned Event
Another totally different option to consider is use the new SharePoint 2010 WebProvisioned Event Handler. This event handler is available in the SharePoint Sandbox and can run in Office 365. This solution is very simple:
  • Create a new SharePoint 2010 solution in Visual Studio.  
  • Add an Event Handler. 
  • Then add the following code.
public override void WebProvisioned(SPWebEventProperties properties)
{
    base.WebProvisioned(properties);

    using (SPWeb web = (SPWeb)properties.Web)
    {
        Guid sitePublishing = new Guid("94c94ca6-b32f-4da9-a9e3-1f3d343d7ecb");

        web.AllowUnsafeUpdates = true;

        web.Features.Add(sitePublishing, true);
               
        web.MasterUrl = web.ParentWeb.MasterUrl;
        web.AllProperties["__InheritsMasterUrl"] = "True";
        web.CustomMasterUrl = web.ParentWeb.CustomMasterUrl;
        web.AllProperties["__InheritsCustomMasterUrl"] = "True";
               
        web.Update();
    }

}

There are some advantages to this solution. First it is really simple. Second this code will be executed for ANY site that is provisioned. So if you need to always make sure that publishing is turned on for any site that is provisioned and that the master pages are always the same, this may actually be a better solution. Otherwise you will have to do what I previously described for every web template.

Conclusions

This was a really interesting little exercise that I went through and though it would be interesting to share. Hopefully you will see that there are options based on the business requirements you want to support. This is by no means the only options you have available either.

References

Things that I found along the way:

Monday, October 25, 2010

Excel Services 2010 Unattended Service Account Error

Issue

I recently was trying to spin up a new SharePoint 2010 development VM with Excel services and I ran into a rather interesting issue. I had published out an Excel 2010 workbook to my SharePoint 2010 server, I would go an open the spreadsheet, and it would render with default data but whenever I changed a value on the slicer or refreshed the data connections I was getting the following error:

The data connection uses None as the external data authentication method and Unattended Service Account has not been configured. The following connections failed to refresh

The thing about this error was that I really believed that I had the Unattended Service Account for my data connection set up properly. I had done the following:

  • I set up Excel Services 2010 in Central Admin to trust both the document and data connection libraries.
  • I had set up the Data Connection Authentication Settings to None and saved that into the data connection library.
  • I had created a target application in the Secure Store Service which had the target application None.
  • I had subsequently credentials on the Target Application to an account that has access to the database.

I would get this error even when I was logged in with the administrator account.

Resolution

The issue actually had to do with the way I had configured the Target Application in the Secure Store Service for my unattended service account. For the Target Application I had set the Target Application Type to Group. However on the third step of the configuration wizard for the Target Application, I had set the Members to just a domain account. The solution was to set it to a group. Once I changed it to xxx\Domain Users everything started working perfectly.

Here is a reference that gave me the clue on what I had done wrong - http://howardmorgenstern.wordpress.com/2010/02/17/configure-excel-services-2010-for-data-refresh/

Cannot Save or Publish File to SharePoint

Just a little tip, if you have built a brand new Server 2008 environment for you to do your local SharePoint development on, make sure you turn on the Desktop Experience Features. The problem I was having is I was trying to publish some Excel 2010 spreadsheets I had create to Excel Services and I could not save directly to the SharePoint 2010 library. I was getting a message that said:

Path does not exist. Check Path and try again.

Once I turned on this feature and rebooted the VM, I could then save to SharePoint from Office.

Wednesday, October 6, 2010

Introduction to Windows 7 and Office 2010 Activation

Background

Activation of Windows 7 has become an increasingly important topic for very large organizations. This blog will not go into the benefits of why you should be moving onto Windows 7 however what I will address is the activation of Windows 7.

First the best resource to get some background on Windows 7 Activation is here - http://technet.microsoft.com/en-us/library/dd979803.aspx. What I will do in this blog is summarize some of the more important key aspects that you should understand right off the bat. I recommend reading this for more detailed information.

Windows 7 has enhanced windows activation technologies for security purposes. The goal of Office activation for Windows 7 is to stop counterfeit software and provide new anti-piracy innovations, counterfeit detection practices and tamper resistance. If counterfeit software is used in an organization:

  • It is very common that counterfeit software have spyware, Trojans, and other malware embedded within them; some research says that is the case 25% of the time.
  • There are increased IT costs associated to sustainability of counterfeit software. There are can be 20% to 30% added support cost.
  • When counterfeit software is used because there will be decreased employee productivity and loss of critical data.
  • Security issues get compounded because updates and support will not be provided by Microsoft.
  • Finally there can be increased costs from system reactivation, employee disruption and financial penalties.

As you can see the intent here is provide to a safer and more secure computing environment for the business. This process is not mechanism for trying to ensure the license agreements are being adhered to. This is solely for the purpose to reduce cyber-terrorism, organized crime and hackers. To achieve this Microsoft has:

  • Invested in education initiatives to raise awareness.
  • Implemented engineering features such as secure packing, Software Protection Platform, product activation and online validation.
  • Support enforcement to take action against counterfeiters using the data it collects.

Basics of Activation and Licensing of Windows 7

There are several models for Windows 7 licensing:

  • Retail – Standard process where a person must activate Windows 7 within the first 30 days with the product key that was purchased.
  • OEM – Windows 7 is activated on the firmware (BIOS) of the computer during manufacturing.
  • Volume Licensing – Customized licensing programs that are for large purchases for an organization. Programs such as Open License, Select License and Enterprise Agreements only cover upgrades to a machine with a valid OS on it. Tools and technologies that are provided to automate the activation process for large organizations.

There are two tools that assist with the activation the Key Management Service (KMS) and Multiple Activation Keys (MAK).

  • The Key Management Service (KMS) is a service that can be hosted internally at an organization to do the activation process.
  • Multiple Activation Keys (MAK) activation is used for one-time activation where the activation services are hosted at Microsoft.

If you are familiar with the activation process, there have been some improvements that have been added for Windows 7:

  • Ability to add customized messages to the windows activation window that may be specific to the organization.
  • Virtual system counting for KMS that will correctly activate virtual systems in the same way physical systems are. This is important for organizations that are rapidly virtualizing their infrastructures.
  • Improved DNS support for KMS to support complex DNS installations at an organization.
  • Token-based Activation for environments that are completely disconnected from the internet or from the phone.
  • Improved manageability of activation service deployment.
  • Expanded WMI properties and methods.
  • A consolidated portal that helps to identify all their keys, key tracking and key organization.
  • MAK limit monitoring which will help avoid going over the agreed limit.
  • Improved efficiency requiring fewer system resources.

Details of KMS

For large organizations KMS will be one of the primary solutions employed. The following are some high-level notes about KMS:

  • KMS Activation Threshold ensures that a minimum amount of machines that must be activated on the network. For Windows Server 2008 it is 5 and Windows 7 it is 25. No computers will be activated until this threshold is exceeded. This includes either physical or virtual. The KMS Activation Count Cache is used to track the activation threshold and track the computers that have requested activation.
  • KMS activation requires standard TCO/IP connectivity and DNS is used to publish and find the KMS service.
  • KMS Activation Renewal is a process where the activated client computer must connect with the KMS service to remain activated. This is done every 180 days. By default, each client will try to renew itself every 7 days. If the 180 days passes without renewal, the client computer will try to connect to KMS every 2 hours. This is actually a good feature to ensure that if company resources have been improperly removed from the organization; the organization will not incur the cost of keeping that license valid as well as disable the client computer OS.
  • The KMS service user SRV resource records in DNS to communicate the locations of the activated client computers. KMS uses dynamic update protocol to publish the SRV resource records. There are other options available if this is not possible. Client computers discover the KMS service by retrieving SRV resource records from the DNS.
  • Note that the payload associated to this communication is very small; only 250 bytes each way. The only data sent is the product key, OS edition, current date, license condition, hardware ID hash, language settings and IP address (used to verify the location of the request).
  • This is a lightweight service that does not require dedicated hosting. It can be co-hosted with other services such as AD domain controllers.
  • KMS can run on either a physical or virtual machines.
  • KMS needs to run on a Windows OS and can support back to Windows Server 2003. One thing to note is that if KMS is installed on a Server 2008 machine it activate any windows operation system however if KMS is running on a Windows 7 machine it can only activate Windows 7 or Vista.
  • A single KMS host server can activate an unlimited amount of machines however it is recommend to have two KMS host servers for failover. In most organizations only two are every needed.
  • There is a KMS key which is used to activate the service. This key can be used up to six machines. This key is not installed on the clients.
  • The user does not need to do anything to connect to the LMS service that is hosted. As well the user does not need to have any administrator privileges for this activation to occur.

Details of MAK

Here is some detailed information:

  • The number of keys activated through the MAK service is based on the licensing agreement that is with Microsoft.
  • Activation can be done by the user where they do it either by internet or phone.
  • A MAK Proxy can be created on the local network which will gather activation information and will send a batch of activations requests to the Microsoft MAK service. This proxy is configured using the Volume Activation Management Toolkit.
  • MAK is recommended for computers that rarely or never connect to the corporate network.
  • MAK activation can be configured to computers that were originally activated by KMS.

Office 2010 Activation

Office 2010 activation uses the same services for activation as Windows 7. The only noticeable difference is the minimum number of licenses that must be active for KMS is only five for Office 2010 versus the 25 needed for Windows 7.

Planning and Usage Scenarios

This article, which is part of this series, really spells it all out - http://technet.microsoft.com/en-us/library/ff793414.aspx. The usage of KMS and MAK really depend upon you knowing how people use their computers in the enterprise. KMS is recommended activation model for computers that will be on the organization network all the time or periodically. MAK is recommended when computers will be offsite with limited connectivity to the corporate network.

  • Corporate Network - It is recommended to use KMS and add more than one KMS service host if this is an enterprise deployment. If there are only 100 machines, a single KMS service is probably all that is needed. If the network will have less than 25 Window 7 machines, you should use MAK.
  • Isolated Network – This is like a brank office, high-security network, or DMZ. If ports can be opened to KMS (TCP port 1688), it is recommended to use KMS. Otherwise stand up a local KMS host service or use the MAK utilizing the same rules stated for Corporate Network.
  • Test or Development Lab – This is a completely isolated network. Standup a KMS host service the threshold will be exceeded, otherwise use MAK.
  • Disconnected Computers – There are several different scenarios. These are computers that have no internet connectivity. In that case a MAK (telephone) is recommended. For offsite machines that periodically connect/VPN in try to use KMS if they will connect within the 180 day window for KMS Activation. Otherwise MAK will have to be used. For machines that have internet access but will never have the ability to remotely connect into the network a MAK with Internet activation should be used.

So it is completely feasible to employee both KMS and MAK at the same organization based on the intended use of the computer.

Network Diagrams

To see some high-level diagrams of how the KMS host service would be placed into your infrastructure architecture please review this - http://technet.microsoft.com/en-us/library/ff793414.aspx. This covers the corporate, isolated and test/development views that I mentioned earlier.