Wednesday, February 8, 2012

Best Hosting found

So I have finally found a hosting site I am happy with... I am actually quite surprised to find that the best Hosting company I could find is in Vancouver, BC; not even in the US or Europe. The company is WebServe Hosting and the main reasons I went with them as a hosting provider are as follows:
Cost - $10 a month you get a SharePoint environment with one administrator and 100 users.
Product - SharePoint Enterprise, not Foundation.
Security - SSL is an option you can add and they will even apply for the certs.
Storage - the $10 package comes with 5GB storage
Upgrades - If you go over your package Quota they will move you to the next package no hassles.
Support - They have been great for support, even gave one of my clients (a church) free code review.

I checked a lot of different hosting companies out there and none of them came close, so check them out before you buy hosting, I am glad I did.

BTW. if this sounds like an ad for them it's not, I get nothing for this referral other than knowing you took the time to read my blog and it might help you save some money.

Wednesday, January 11, 2012

Office 365

Well it has been a while since I posted last, having a baby takes up a lot of time... I thought I should post some information I think is very important if you are planning an Office 365 SharePoint Site. If you were considering Office 365 for small business and professionals (P1), you need to realize that SSL capabilities are not part of that package. This means that you essentially have no security in anything that you do with the P1 package. Microsoft doesn't seem to care, but I can't recommend the product to anyone I do business with with such a glaring security hole. Don't get me wrong, Microsoft might think this is acceptable for their "low end" offering, but the reality is they are saying small business and professionals don't need security. I hope they rethink their stance on this as I for one will go to a third party hosting site for this specific reason.

Thursday, March 31, 2011

Creating a Bootable VHD

In many cases you only need to create VHD files for a virtual PC, but in some cases you may need to install a 64 bit OS. I needed to do exactly that when I decided it would be the quickest and cleanest way to do SharePoint 2010 development. Now one thing you should be aware of is that if you take this approach you will need a significant amount of space for each VHD file, unless it is a differential file. For a Windows 7 or Server 2008 R2 Install, I will typically use a 100GB VHD file, so make sure you have that much space available before we begin.


Before we begin

All tasks require Admin Access to your box and there are a few items you will need before you begin the build of your VHD, first you will need the Install.wim file found on your install DVD in the Sources directory. Additionally, you should download copies of all your systems drivers and store them in a single directory for access later. Lastly you will need to download and install the Windows AIK for Windows 7 (http://www.microsoft.com/downloads/en/details.aspx?familyid=696DD665-9F76-4177-A811-39C26D3B3B34&displaylang=en)


Create the VHD


  1. Click Start

  2. Right Click on Computer and Click Manage

  3. Under Storage, Click Disk Management

  4. Once the Disk Configuration Window is refreshed, under Action click More Actions > Create VHD

  5. Specify the location and Name of the VHD file and set the size, then Click OK.

  6. Once the setup completes you will find the Image in the list of Drives as a teal coloured drive icon.


Initialize and Partition the VHD


  1. Right Click on the Grey area that contains the icon and choose Initialize Disk.

  2. Choose MBR or GPT (GPT is newer and supports partitions larger than 2TB) and click OK

  3. Right Click on the White area of the drive area with a black title that show a status of Unallocated, choose New Simple Volume…

  4. Click Next >

  5. Click Next >

  6. Choose Assign the following drive letter (remember the letter chosen) and click Next >

  7. Give the Drive a Volume label that makes it easy to identify, make sure quick format is chosen and click Next >

  8. Click Finish

  9. The bar on the top will turn blue and the drive will have the letter and label you gave it. If autoplay is turned on an autoplay popup will appear, close it.

  10. Right Click on the white area and choose Mark Partition as Active


Install the OS and Add the Drivers


  1. Click Start > All Programs > Microsoft Windows AIK and Right Click on Deployment Tools Command Prompt and choose Run as Administrator

  2. Type: imagex /info {Install.wim Path}\install.wim eg: imagex /info c:\VHD\install.wim

  3. In the result find the Index of the install you want to start

  4. Type: imagex /apply {Install.wim Path}\install.wim /check {Index Number} {VHD Drive} eg: imagex /apply c:\VHD\install.wim /check 1 g:\

  5. Wait for the install to complete

  6. Type: dism /image:{VHD Drive} /add-driver /driver:{Path to drivers} /recurse eg: dism /image:g:\ /add-driver /driver:c:\drivers /recurse


Note: You should only navigate to the top level of the drivers folder, the recurse switch tells it to search all subfolders for drivers and install them.


Change the Boot Menu


  1. Type: bcdedit /copy {current} /d "{Label}" eg: bcdedit /copy {current} /d "Windows 7 - VHD"

  2. Type: bcdedit

  3. Copy the CLSID property called Identifier using Mark for the entry that has the description that matches the label you entered above

  4. Type: bcdedit /set {CLSID} device vhd=[{Drive Letter}]{VHD Path}\{VHD Filename} eg: bcdedit /set {b751de95-e30f-11df-b2f6-85541b19d1f4} device vhd=[C:]\VHD\Windows7.vhd

  5. Type: bcdedit /set {CLSID} osdevice vhd=[{Drive Letter}]{VHD Path}\{VHD Filename}

  6. Type: bcdedit /set {CLSID} detecthal on

  7. Now you can reboot into the new image


Using Differential Images to keep your OS Image Pristine

If you install all the base software and perform updates to make the image current, you can then create a Differential Image, which will allow you to make changes without affecting the base image, eg. Test new software or perform development.


  1. Click Start > All Programs > Microsoft Windows AIK and Right Click on Deployment Tools Command Prompt and choose Run as Administrator

  2. Type: diskpart

  3. Type: create vdisk file={Drive Letter}\{VHD DIF FileName} parent={Drive Letter}\{VHD FileName} eg: create vdisk file=c:\VHD\VS2010.vhd parent=c:\VHD\windows7.vhd

  4. Change the boot menu to point to the new image for device and osdevice

Wednesday, February 2, 2011

'style.display' is null or not an object error

As you create pages you may see the following error:



If you do, it is probably because you have copied and pasted from one content editor web part into another. If you see this error you will need to check your content for any WebPartID that is being referenced. The copy paste will copy this into the new content, breaking the content, if you remove the DIV tags that contain that reference, it will fix the page.

If you want to avoid this you should copy the text out of the original web part, paste it into a word document and then copy the word document content and paste it into the new web part, this reformats and removes the WebPartID.

Thanks to egghead cafe for the discussion that is summarized in this solution.

Wednesday, March 24, 2010

Some helpful Links for MOSS Administrators

Administrator Guides
· MOSS 2007 - Administrator Guide
· WSS 3.0 - SDK
· WSS 3.0 - Technical Library
· MOSS 2007 - Newly published content
· WSS 3.0 - Newly published content
· WSS 3.0 - SharePoint Server 2007 Developer Portal
· WSS 3.0/MOSS 2007 - Office SharePoint Server 2007 Administrator's Companion
· Complete reference of all PSCONFIG operations


Best Practices
· Before You Begin with SharePoint Server 2007
· Best Practices Analyzer for WSS 3.0 and MOSS2007
· Writing SQL Syntax Queries for Relevant Results in MOSS2007
· Backing Up and Restoring Web Sites w/ Stsadm
· MOSS 2007 - Planning and Architecture for Office SharePoint Server 2007


Search
· Configure the Office SharePoint Server Search service
· Configure Office SharePoint Server Search to crawl Lotus Notes
· Security considerations for search
· Overview: Plan search
· White paper: Evaluation guide for search in Office SharePoint Server
· Plan to deploy index and query servers

STSADM Commands
· Jose Barreto's Blog Complete reference of all STSADM operations (with parameters) in MOSS 2007 SP1

Publishing Templates

When you are working with MOSS 2007 there are two different templates you need to be able to deploy; application templates (WSP files) and site templates (STP files).

While creating an STP file from a site is easy and it makes it available within SharePoint for use, if you script any of your actions, you need to deploy your STP file globally. To do that you are going to need to download the STP file from the site Gallery and then delete it for the gallery. If you don't delete it you will have duplicate templates when we are done.

Once you have the file downloaded you will need to copy it to your web front end server. Once copied we will do the following from the command line using stsadm:

1. Check if the template already exists:
stsadm -o enumtemplates
2. If the template exists, you will need to delete the current copy:
stsadm -o deletetemplate -title {template title}
3. Now you can add the template:
stsadm -o addtemplate -filename {template filename & location} -title {template title} -description {template description}

It will prompt you that an IIS reset is needed at each of these steps, but in reality it is not required and can wait until a time that works for your environment.

The other deployment that you will need to be able to perform is a GAC deployment of an application template. This is also done on the web front end server using stsadm.

1. Add the application template to the solutions list:
stsadm.exe -o addsolution -filename {template filename & location}
2. Deploy the solution to the GAC:
stsadm.exe -o deploysolution -name {template filename} -immediate -allowgacdeployment
3. Copy the Binary Content:
stsadm -o copyappbincontent


So now you know how to deploy global site templates and applicaion template solutions.

Wednesday, March 10, 2010

My Site Link is broken!

So the other day I had to delete the My Site of a couple users who had left, I have done it a million times and never had a problem. That day a couple hours after the deletion, I get a communicator from a user, I can't edit My Links, it keeps asking for a username and password, but won't take it... Further investigation reveals that when clicking on My Site on the title bar does the same thing. What was strange was it worked if you used the actual URL.

Time to do some research, here is what I found...
Sometime when you are using Site Settings -> Delete this Site it accidentally deletes the My Site Host. Not a big deal but a pain in the butt, so here is how to fix that pain without Preparation H.

1. Go to Central Administration and click on Application Management.
2. Under SharePoint Site Management click Create Site Collection.
3. Choose your My Site Web Application and give it a title of My Site
4. Choose the My Site Root (should be there by default)
5. For Template, under the Enterprise Tab -> choose My Site Host
6. Enter in your Site Collection Administrator Account and an Alternate
7. Choose a Quota (if Applicable)
8. Click OK.

It will plug away and when completed should show you a link to your My Site. Test it out, it should now work.

Hope that helps someone out there.

Monday, March 8, 2010

My Links are Broken!

Ever have a user come to you and say "My Links are broken!"? If you haven't, just wait, you will...

My Links is a different animal from other Links in MOSS, the actual list behaves differently and if you ever tried to find it in the SQL server you know it is stored differently as well.

To answer your first question... Where is My Links stored? It can be found in your Default SSP inside the UserLinks table, that's right I said the Default SSP.

Now the way the table is built is quite simple, you have your Id, which is the Row identifier and primary key.
The RecordId, which is actually used to identify who owns the link stored in the row. It is not the User's actual Id, but is an Id that is arbitrarily assigned to each user (Makes it tough to find things...).
The Title, which is the first peice of usable information you can use to identify what needs to be changed, this information is the Title the User entered for the name of the Link.
The GroupType identified whether the link is part of a subgroup or not (2 - No Group, 0 - is a Group Member).
The GroupTitle is the name of the Group, it is only populated when the group type is value 0.
The URL is the place we need to go to fix the link. It contains the link info.
The ContentClass and PolicyId must serve a purpose, but I am unconcerned with them right now...
Lastly is the ItemSecurity, which identifies how the user intended to share the link.

To correct a broken link you will need to find the culprit, the user usually knows what link they entered that broke it, but in some cases they may be blissfully ignorant of what they did. A few hints into what breaks my links. The link needs to be invalid, but not a broken link... That means it is valid in most situations, just not in My Links. As an example using file: requires three slashes /// not two, as some people may enter, in most situations two slashes work, but not here... So you should look for any links that are file:// and replace them with file:///.

How do you do that? First you need to run SQL Server Management Studio (for 2005 or 2008) as a user with update permissions to the database, find the link that is causing the problem using either a Script table as -> SELECT TO -> New query editor window or using Open Table. Once you have identified the problem, either delete the row or fix the problem and commit the change.

Hope that helps...

Dave

Wednesday, November 18, 2009

Doh I clicked "Remember My Password"

I clicked Remember my password and now I need to undo it, found this after much searching...

1. Click Start and select Run

2. In the Open field type "rundll32.exe keymgr.dll, KRShowKeyMgr"

3. Once the Stored Usernames and Passwords interface opens you can select any of the entries and select Properties to view the existing information

4. To remove a saved password you can select one of the entries and select Remove. A confirmation screen will appear. Click on OK and the account will be removed

Tuesday, September 29, 2009

Turn off New Folder option in MOSS as default

Have you ever wanted to have the New folder disabled by default in MOSS 2007?

You can manually disable it by choosing the Document Library Settings and choosing Advanced Settings, but if you are like me, you have far too many sites to worry about let alone changing this with each Document Library.
I have a solution for you, why not disable it in the template? It is pretty easy, just go to your hive 12 folder, TEMPLATE\FEATURES\DocumentLibrary\DocLib\ and edit your schema.xml. In the file, disable the folders by adding the highlighted setting to your List XML as follows:

List xmlns:ows="Microsoft SharePoint" Title="$Resources:shareddocuments_Title;" FolderCreation="FALSE" Direction="$Resources:Direction;" Url="Shared Documents" BaseType="1"

The FolderCreation option, simply chooses the No folder option in the advanced settings by default, allowing you to enable it if needed.

Once the change has been made and saved, you will need to restart IIS for the change to take effect.

Hope this helps someone out there, it took me forever to find a solution and I thought I should share it.

Thursday, August 13, 2009

Expiring SharePoint Groups and Accounts in MOSS 2007

In case you ever wondered what it would take to set up expiry of Sharepoint User Accounts, here is what you need to do to make this happen:



  1. To start, you will need to use a site collection administrator account, then from the top level of your portal/site collection Click Site Actions -> Site Settings -> People and Groups

  2. Click Settings -> List Settings

  3. Click Create Column

  4. Type the name of the column, I am calling mine Expiry Date

  5. Choose Date and Time

  6. Set any other information the way you want and Click OK
    You now have a column named Expiry Date

  7. Click Information Management Policy Settings

  8. Click Define a Policy ... and Click OK
    The Policy will be given teh name Person

  9. Choose Enable Expiration

  10. Under The retention period is:

  11. Choose A time period based on the item's properties:
    Expiry Date
    will be automatically chosen

  12. Type 0 in the box before years

  13. Choose Perform this action:
    The only choice should be Delete

  14. Click OK


You now have User accounts being deleted based on the expiry date.  If you want this to be selective, do not make it a mandatory field.  The Disposition ignores blanks, so if no date is set then it will not delete it when the Expiry Date = Today.


Hope this helps someone out there.