Sunday, January 01, 2012

Displaying other Outlook accounts when migrating to Office 365

In migrating Email accounts in Outlook 2010 to Office 365, Ive been copying email from the users existing exchange account to the new Office 365 folders (after adding the new Office 365 account as an additional Exchange account in Outlook)

I then needed to add additional mailboxes from the new Office 365 users onto the secretaries Outlook, however the normal functionality wouldnt work.  Additionally when I tried to remove the existing Exchange account from Outlook after copying all the emails and folders over, I found that Outlook wouldnt let me.

The only solution seems to be to create a brand new Outlook mail Profile for the new Office 365 user.  Then you will be able to add the new Office 365 additional users.

The reason is that Outlook doesnt allow opening multiple mailboxes that belown to different Exchange organisations or domains. 

See this thread for more information

Saturday, December 31, 2011

Office 365: one or more users need an assigned license

I recently setup a five user P1 Email system on Office 365.  Iniitally I setup the default xxx.onmicrosoft.com domain and added the users.  

Then I added the "Vantiy domain" ie mycompany.com  (why Microsoft call this a vanity domain is beyond me, Id call it an essential to do business domain, but....)

I then changed the logon primary account for each user from @xxx.onmicrosoft.com to @mycompany.com - (There are a number of poweshell scipts around for this, however you can do it from the Office 365 Admin GUI.  Just go to the users and once the Vantity domain has been validated you can change the login domain to the one you have added.)

I then started receiving a typical Microsoft Cryptic error message: "one or more users need an assigned license in order to retain an exchange online mailbox or archive."

I created a view as they suggested showing unlicensed users, and it showed all my users...!

It took me ages to work out what Microsoft 365 were on about, but it seems that the license is assigned to the logon name account - and so changing it to mycompany.com domain confused it.  All other settings and data such as email etc stayed in tact.

This has got to be an Office 365 bug

Work around fix:
  • You need to go to each user on the Admin screen on office 365,
  • go to licensing
  • un-check the Lync license
  • Save and update
  • Then go back into the account again
  • check the Lync license
  • Save and update
Hey presto problem has gone.  It would seem that re-applying a small change to the license, re-assigns it correctly to the changed user@mycompany.com

CAUTION DO NOT Uncheck the Exchange License as Ive seen dire warnings saying this will delete the users email mailbox which would be bad !

Friday, October 07, 2011

Viewing Sharepoint sites on the Sharepoint server (disabling server loopback checks)

Its been a problem since Win2003 SP1 that you couldn’t browse to a web site hosted on Sharepoint on that server.
Ive now found this is security restriction called loopback check, where the server stops any access back to itself unless you use the server’s name in the URL.

There are two alternatives to stop this behaviour.

Option 1 - is to disable the loopback check for all sites – which should only be used on a development machine.

· In Registry Editor, locate the following registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
· Right-click Lsa, point to New, and then click DWORD Value. (In Win 2008, its DWORD 32bit)
· Type DisableLoopbackCheck, and then press ENTER.
· Right-click DisableLoopbackCheck, and then click Modify.
· In the Value data box, type 1 and then click OK.
· Quit Registry Editor.
· You may need to restart your server.

Option 2 - is to disable the loopback check for each site individually – which should be used on production machines.
· Click Start, click Run, type regedit, and then click OK.
· In Registry Editor, locate and then click the following registry key:
· HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa4.Right-click Lsa, point to New, and then click DWORD Value.
· Type DisableLoopbackCheck, and then press ENTER.
· Right-click DisableLoopbackCheck, and then click Modify.
· In the Value data box, type 1, and then click OK.
· Quit Registry Editor, and then restart your computer.


Ps I also found a related issue with respect to CNAME sharing restrictions (see this link)
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters [DisableStrictNameChecking (DWORD) = 0x01]



Blog references
http://support.microsoft.com/kb/896861
http://www.harbar.net/archive/2009/07/02/disableloopbackcheck-amp-sharepoint-what-every-admin-and-developer-should-know.aspx
http://platinumdogs.wordpress.com/2009/08/26/sharepoint-host-headers-and-loopback-checking/


Wednesday, August 31, 2011

After adding a new Exchange 2010 DB - BES users no longer work once moved to it

By default it would appear that BES doesnt have permission to access a new Exchange Database.  In this Blackberry knowledge base article recommend using powershell to update the permissions on all mailboxes on a server.


For Microsoft Exchange 2010

  1. Click Start > Programs > Microsoft Exchange Server 2010 > Exchange Management Shell.
  2. Open the command prompt as administrator, type the following line and then press ENTER:
    Get-MailboxDatabase | Add-ADPermission -User "BESAdmin" -AccessRights ExtendedRight -ExtendedRights Receive-As, ms-Exch-Store-Admin

Wednesday, June 01, 2011

Some usefull Exchange 2010 powershell scripts for space management

Force remove disconnected database after a move or delete
Remove-StoreMailbox -Database "" -Identity "" -MailboxState SoftDelete

Exchange 2010 Find Database White Space
Get-MailboxDatabase -Status | Select-Object Server,Name,AvailableNewMailboxSpace

Retrieve List of Disconnected Mailboxes
Get-MailboxDatabase | Get-MailboxStatistics | where {$_.DisconnectReason -eq “SoftDeleted”} | Select DisplayName,ServerName,Database,ItemCount

Permanently Delete all Disconnected Mailboxes across all Database
$var1 = Get-MailboxDatabase | Get-MailboxStatistics | where {$_.DisconnectReason -eq “SoftDeleted”}
$var1 | foreach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState SoftDeleted}

Tuesday, May 10, 2011

Sharepoint FBA user administration (Forms Based Authentication)

We had a strange error where a user couldnt log on using FBA.   It turned out that the account was locked out, however it started a voyage of discovery into the murkey world of FBA in Sharepoint.

To add an FBA user we use the + _layouts/vCreateUser.aspx which works out fine, however with FBA it was not obvious how to either Reset a users password by the administrator or Delete a user.

Using II7 lots of documents say you can edit the list of users using the IIS7 admin console and open the .Net Users Feature.  However you either get an error saying the "default provider is not a trusted provider", or a time out error saying it cannot connect to the SQL database because of a network or instance-specific error!

It turns out you need to ensure that you need to Set the Default Provider in the .Net Users to the Sharepoint SQLRoleProvider after its given you an error saying it cant connect.  If you manage to get that and your IIS Connection Strings all tidied up then you have a small chance of all the users apearing when you open the .Net Users Feature.

When you get there you can either Delete the user or change its email address but not a lot more - EXCEPT that is to UNLOCK the account.

It turns out that in the web.config file there are a number of settings which handle the account lock out policies for the entry of incorrect passwords.  A good MSDN link for mor info on this is here - however even setting these and iisreset and reboot doesnt seem to want to change the settings for me, so I'll keep digging.

Another useful link on how to setup IIS7 for Sharepoint FBA is here

Sharepoint's link to FBA seems such a cludge and without proper user management tools is not something that can be sensibly rolled out.  Once again such a good idea not quite finished but still rolled out by Microsoft.

Wednesday, March 02, 2011

AD Sync: The source server is currently rejecting replication requests

After a few power outages one of our DC's decided not to co-operate in Syncing data.

The Directory Service App Log gave lots of errors talking about "The Knowledge Consistency Checker (KCC) being unable to form complete spanning tree network topologies" but nothing really useful to work with.

I first used repadmin /replsummary to try to see what was wrong, but it only confirmed that there were errors.

I then ran DCDiag
On Starting test Replications it said: [Replications Check, Replications Check] Inbound replication is disabled.
To correct, run "repadmin /options -DISABLE_INBOUND_REPL"
Also Outbound replication is disabled
To correct, run "repadmin /options -DISABLE_OUTBOUND_REPL"

Now on the face of those commands it looks like its disabling the inbound and outbound connections, BUT ITS NOT!
What it does it toggles the current setting to the opposite of what it is already, so if its disabled it enables it and vice versa.


Forcing some replication and running DCDiag shows that this has resolved the problem, although why it occured I still dont know - any ideas anyone ?

Thanks to the pointer in the blog The source server is currently rejecting replication requests

Monday, February 28, 2011

Windows 2008 INCORRECT FUNCTION error, sharing folders or file shares

If you get the error "Incorrect Function" on a Windows Server 2008 or 2008R2 when trying to share a folder or create a file share then you will find the error message "INCORRECT FUNCTION" is extreemly useless.

It occurs because you don't have the Firewall Rules for Inbound and Outbound "File and Printer Sharing" included in your rule sets.  

But I have firewall disabled I hear you cry!  For Windows it doesnt matter if you have the Firewall on or off for any of the Profiles.  If you dont have the rules there you cant share folders......

Dont know why this is but it just doesnt work and gives the silly error message above.

Tuesday, February 22, 2011

Animoto - The End of Slideshows

A very smart video and picture compilation piece of software

Animoto - The End of Slideshows

Running a Virtual Router & Firewall inside VMware ESX with Vyatta

I needed to run an router inside and ESX server to route between a couple of virtual networks and came across Vyatta. I'm sure loads of people know about this but I'm a newbie to network routers so was quaite taken by its functionality.

Although this video is old it gives a very good understanding of what Vyatta is and how to install it on ESXi

Running a Virtual Router & Firewall inside VMware ESX with Vyatta

Thursday, January 06, 2011

32bit ODBC on a Win7 64 bit machine

We had a requirement to run Access 2003 on a  Windows 7 64 bit server and couldnt find the 32bit ODBC settings anywhere.  They are not shown in the control panel app, however you can find them at C:\Windows\SysWOW64\odbcad32.exe

Monday, January 03, 2011

Exchange 2010 ActiveSync not function for Domain Admins user

I built a new domain with my own account as Domain Admin, and then after installing Exchange 2010 couldnt work out why every other user except me could access ActiveSync.

The issues turns out to be that AD membership of certain Admin "Protected Groups" turns off the inherited permissions on your AD account in the OU that you reside.

To check if Inheritance is disabled on your user account, Open AD Users and Computers -> View - Advanced Features, Locate the user account and click Properties, Security Tab and then Advanced. Make sure the check box for "Include inheritable permissions from this objects parent" is checked.

If it is the ActiveSync will work - HOWEVER only for about 60 minutes !

You will find the SPPROP process will clear the inheritable permissions for you after every 60 minutes ! - See This Technet Article for more on SDPROP and the issues with OU inherited security that this can bring.

So the only practicle answer is to have 2 accounts, one for email as a user account and one for administration. This is Microsoft recommended practice and detaild in this reference: Exchange ActiveSync Returned an HTTP 500 Error

Thursday, December 23, 2010

SQL server has been renamed but the operation is incomplete

I recently moved a number of SQL servers to a new domain and renamed the servers.  In the past this has worked fine with SQL 2008, however I was having trouble with an application on SQL 2005.

According to this blog post "The most common cause of this is if the SQL Server has been renamed after SQL Server was installed. The reason is that, at installation time, SQL Server stores the computer name in a system table, sysservers. This information is not updated when the computer is renamed"

To find out what SQL thinks its called run sp_helpserver


To update the server name values use:
 
sp_dropserver 'ORIGNAME' -- where ORIGNAME is the name returned by sp_helpserver


sp_addserver 'CURRENTNAME', 'LOCAL' -- where CURRENTNAME is the current computer name

Wednesday, November 10, 2010

MyTechEd 2010 Wednesday Sessions

  • OFS308 - Deploying Microsoft SharePoint Server 2010 with Claims Authentication
  • WSV205 - Remote Desktop Services: Virtual and Session-Based Desktops and Applications Architecture with Partners
  • OFS223 - Office Web Apps Architecture & Deployment
  • Office web apps
  • WSV301-LNC - BranchCache in Action
  • WCL313 - Troubleshooting Group Policy
  • VIR306 - Desktop Virtualization: You Have a Choice 6
  • MGT204 - What's New in Operations Manager Since R2
Slides will be available here



MyTechEd 2010 Tuesday sessions

  • COS201 - Office 365: What’s Coming Soon
  • SIA320 - Impact of Cloning and Virtualization on Active Directory Domain Services
  • WSV201-IS - Working with BranchCache – Beginning to End
  • UNC308 - Archiving, Retention and Discovery with Microsoft Exchange Server 2010 SP1
  • WSV202 - Windows Server 2008 R2: File Services Overview
Slides will be available here

Microsoft TechEd 2010 in Berlin

Microsoft TechEd 2010 in Berlin. 


The first day was somewhat dissapointing with teh pre-conf sessions seeming to concentrate on level 100 and 200 content, particularly with Lynq which seemed to lack substance, so instead I hit the labs with DPM and SCOM.vNext which were both very good


Keynote wasn't bad, with good stuff on Office 365 and Intune, however there is so much marketing on Winphone 7 that it skews the rest.
http://www.msteched.com/2010/Europe

Sunday, September 12, 2010

Rename a domain controller using Netdom: Active Directory

Note: newname for computer must be full DNS - ie newname.yourcompany.co.uk

Create an additional new name for the server
netdom computername oldname /add:newname
Make the new name the primary computer name for that server
netdom computername oldname /makeprimary:newname

Reboot

Remove the old computer name
netdom computername  /remove:oldname

Rename a domain controller using Netdom: Active Directory

Tuesday, July 20, 2010

Windows Server, IIS/SharePoint, and NULL SID ‘Audit Failure’ Security Errors

Whilst I understand why Microsoft might keep tightening up their servers to stop malware attacks, it would be very helpful if they could put some indication of when they are stopping these attacks into a sensible message in the event log.


I have spent 2 days trying to sort out an error on a development machine with the only pointer being NULL SID - brilliant and thank you Microsoft.

Windows Server, IIS/SharePoint, and NULL SID ‘Audit Failure’ Security Errors

Thursday, June 10, 2010

Viewing SharePoint 2010 sites on Windows Server 2008 R2

Running SharePoint 2010 server on a Windows 2008 R2 server seems to be a sensible thing to do.  Well at least I thought that until I tried to locally access SharePoint sites on that server via IE.

You will find that on Windows Server 2008 R2, you will be prompted for authentication three times and the page will fail to load. This is because R2 uses the new SPNEGO2 implementation:

 (You may ask why would you need to access sites locally on the server? - well for things like Visual Studio development for SharePoint you must actually develop and run them on your development SharePoint server)

 The solution to this is to make sure that Web Applications you need to access on a Windows 2008 R2 server are setup with the following:

a) a SPN for each Web Application URL
This consists of using the http url of the Web Application and adding it to the Service Principle Name (SPN) of the AD account that the Web application pool runs as. eg.  with a Web Application called http://home.company.com which runs in an IIS AppPool called MySPSites that runs under the security account of mydomain\SPServices.
SETSPN.exe -S HTTP/home.company.com mydomain\SPServices
  • (make sure you use an administrative CMD window)
  • (this may take a little while on a large AD as it first checks for any duplicate SPNs and if it doesnt find one then adds it to the account).
and (b) For the URL or (URL plus port number) of the Web Application you wish to access on the Windows 2008 R2 Server, you must set either the Default security Zone, or an extended one to have IIS Authentication set to use Kerberos security.
You can do this either on intially setting up the Web Application with Kerberos, or if you need to use different IIS Authentication types for your Default Zone Web App then, after you have created it, extend it using either a different URL or port number.  You can choose a different security Zone when you extend the Web App, or, unlike SharePoint 2007, you can change the IIS Authentication Settings at any time from the Sharepoint Admin console via -> Central Administration->Security->Specify Authentication Provider.
I had hoped that I would only need to carry out step (a) as eluded to in the Harbar.net article but thus far I havnt managed to avoid step (b)
References:

Wednesday, June 09, 2010

SharePoint Technology Conference | October 20-22, 2010 | Boston

An interesting Sharepoint Conference to consider for October
SharePoint Technology Conference October 20-22, 2010 Boston

Access Web Services : form filtering and sorting

If you setup a form based on a table source and then add in the forms properties to sort and filter, when you add this form to a Navigation page it completely disregards what you have entered in the forms properties and  just uses the default sort for the table with all values - Brilliant Microsoft!



Filter and Order By Properties  get ignored.


So to get around this for sorting you need to write a query on your table that has the data sorted in the format you require.  Then change the form to use the query instead of the table and that’s sorting sorted out.

But what about filtering?

Well on the tab for a navigation page there is a property called "Navigation Where Clause"  if you put your where statement in there Microsoft actually uses this filter in the way you would expect and doesn’t ignore it as before.  Wonderful!

Navigation Where Clause's do  work

Friday, June 04, 2010

Access Web Services : filtered field lookup lists


One of the key advantages I thought of for using Access Web Services in SharePoint is for populating fields with lookups. Whilst you can do this in SharePoint using the whole list as a lookup there is no way to filter that list. So if you want to filter out all assignments which are marked with a status of complete then you are stuffed!

 
But with Access Web Services I thought you could use a query for the lookup so this would solve the problem. BUT NO you cant use queries for table field lookups using Access Web Services ! As with most Microsoft technologies its two steps forward one back - why do they do this!?! However I have found a workaround which uses forms to filter the lookup and the detail is at the end of this article.

 
Firstly
if you create a new field and follow the diagrams below you see that lookups from queries are greyed out (why Microsoft !?!). Worse than that, for a new table , you will not see any of the existing tables either. To see the existing tables first save your new table and then fully Sync it to SharePoint. Only then will you get a full list of the tables you can use for lookups.

 



Lookup query workaround

Firstly create a form which includes the lookup field you have defined. As expected you will see that it returns all values from the table. Then make sure your in "Layout View" and highlight the field and bring up the property sheet. In the properties you will see a value for row source and its SQL !! If you update this by either carefully updating the text or using the query editor (much safer) you can put your "where clauses" into this query. And bingo it works on both the local access and on SharePoint. Hurrrah!








 

Tuesday, June 01, 2010

SharePoint 2010 : State Service issues & problems


I built two SharePoint Enterprise servers in separate farms from scratch using different farms and SQL servers. The first is a development machine to try things out on and the second is the production box.

As with all the best MVP advice you should not use the configuration wizard but manually create each service and for the most part Ive done this successfully, however when we started trying to use Infopath or Reports in Access Web Services we started getting some odd errors such as:

The form cannot be rendered. This may be due to a misconfiguration of the Microsoft SharePoint Server State Service.

And

This report failed to load because session state is not turned on.

This was happening on both the production and development servers which was most odd.

Looking in SharePoint service applications there was no reference to the "State Service" on one of the servers and one line item for "State Service" on the other. Also most odd as both servers had been setup in the same way.

 There is no way to create the State service from the new service application menu as it should have been setup from the SharePoint install, so you either have to use the Configuration wizard or PowerShell.

 In the case of there not being any reference to a State Service I ran a powershell command to create a state service database and then ran the Configuration Wizard with everything possible unchecked apart from the State Service. The powershell command to create the database is "

New-SPStateServiceDatabase" See TechNet for more details

After an IISReset the errors seemed to clear and all was well with one of the servers.

For the other server the same process wasn't an option as the Configuration Wizard already had the State Service Checked. So using Powershell I manually created a State Service Application and State Service Proxy and enabled it all using the commands


New-SPStateServiceApplication
New-SPStateServiceDatabase
New-SPStateServiceApplicationProxy
and
Enable-SPSessionStateService

(See http://technet.microsoft.com/en-us/library/ee890113.aspx)

 However after doing all of this successfully and being able to see the State Application and Proxy in the SharePoint Central administration list of service applications the error s still persisted. So using the SharePoint service application screen I deleted the first State Service and the new State Service Proxy and State Service which I had created. This allowed me to run the configuration wizard with only the State Service tick box checked and after another iisreset voila !

Others have also seen this issue - see

Misconfiguration of the MOSS State Service
Pasted from <http://social.msdn.microsoft.com/Forums/en/sharepointworkflow/thread/521db715-0d76-49ce-be36-7c37cfb8026f>








 

Monday, May 31, 2010

Access 2010 Web database conversion

Native SharePoint 2010 is dissapointing in terms of not being able to have relational data lists or lookups with filtering and for reporting I used Access reporting based on SharePoint lists.
With Access Services in SP2010 I thought I'd just convert these reports and data sources over, but as ever its not that simple. You need to create a new Access Web database and then import tables into Web Compliant tables. It would appear that linked tables to sharepoint are not compatible. As ever with Microsoft so near and year so far from a complete solution....

Here is a very good article about converting your access databse "Converting Access Databases to Access Web Databases (25th May 2010)"

Friday, May 28, 2010

IE Automation & Tabs - Tony Schreiner's Blog - Site Home - MSDN Blogs

I wanted to launch IE and open several additional tabs. - thanks to Tony Schreiner's blog

IE7 does not support specifying multiple URLs on the command line, but another way to do this is to use IE Automation to launch IE as an out-of-proc COM server and then call methods such as IWebBrowser2::Navigate2.
While you can do this using C++ or any language that supports COM, the easiest is to use Windows Scripting Host.

First, create a 'lanuchie.js' file using your favorite text editor, add the following, and save:

var navOpenInBackgroundTab = 0x1000;
var oIE = new ActiveXObject('InternetExplorer.Application');
oIE.Navigate2('http://blogs.msdn.com');
oIE.Navigate2('http://blogs.msdn.com/tonyschr', navOpenInBackgroundTab);
oIE.Navigate2('http://blogs.msdn.com/oldnewthing', navOpenInBackgroundTab);
oIE.Navigate2('http://blogs.msdn.com/ericlippert', navOpenInBackgroundTab);
oIE.Visible = true;

Now from the command line you can do:

wscript.exe launchie.js

to open IE, navigate the first tab, and then open three background tabs.
One caveat: due to some IE features such as Protected Mode you will sometimes observe that the links are opened in an existing IE window."

Thursday, May 27, 2010

Firebox x10 user count exceeded error

On adding a couple of new devices behind my firebox firewall I recieved the most unhelpfull message "user count exceeded".  I double checked everything and after many weeks of fighting with the issue I finally found the solution.

What the error message means is that there is a licensed limit (based on the key you've purchased) for the number of IP addresses on the local network that can use the firewall to access the external interface.  The error message most un-helpfully calls these IP Addresses "users".

So where you have upgraded a number of machines, changed the IP addresses, and the odd printer has chatted to the internet all these old IP addresses are stored on the Firebox.  These then block any new ones for new devices and have to be manually removed.

To do this open the Firebox System Manager ->Authentication Tab->IP Address button

This will give all the addresses that the Firebox has remembered for you as having access to the external interface.

Either clear them all to start a new list or remove the ones you don't want!


This link eventually told me what I needed to know.

Sunday, May 23, 2010

How to remove the “title” column from a SharePoint list | EndUserSharePoint.com

With custom Sharepoint lists or those imported from Excel the default Title field (which is inherited from the content type Item) is always included. This link gives a neat trick to hide this field from the edit screen if you dont want it.
How to remove the “title” column from a SharePoint list EndUserSharePoint.com:

Friday, May 21, 2010

How To: Create, Configure, Consume SharePoint 2010 Secure Store in Business Connectivity Services

How To: Create, Configure, Consume SharePoint 2010 Secure Store in Business Connectivity Services

Configuring Business Data Connectivity Services


Setup BDC with its own user, database and App pool
Start the service
You should have a pages host to contain the external content type definitions so you need to Configure /add an External Content Type Profile Page Host.
Create a new site collection (I use the same web application as the metadata hub created earlier)
Use the Publishing Pages Portal Template
Once published goto Central Admin ->Manage service applications –> Choose the BDC /BCS Service -> Click manage from the toolbar->Configure->Type in the URL of the site collection you created above. ie http://metadata.company.com/sites/ExternalContentTypesFinally assign administrators of the BDC Metadata Store by clicking on the Set MetaData Store Permissions.

To create external connections see this article

Multiple Authentication Methods in SharePoint 2010

There are new and exiting authentication methods such as Claims-based authentication in SharePoint 2010 which leads Microsofts product line in being the first Server to offer it.  This article introduces them
while (alive) { writeCode(); } : Multiple Authentication Methods in SharePoint 2010:

Thursday, May 20, 2010

Setup Managed Meta Data Hub for the Sharepoint 2010 farm

My personal notes to: Setup a Managed Meta Data Hub for the SP2010 farm
Create a new web applicationCreate a new user for this (and make sure its in the Managed accounts list with the correct permissions)

Create a new web application & make sure the "Document Sets metadata synchronization" web app. feature is activated (you can find this by managing the web application and choosing "manage features" from the tool bar.
always use NTLM to start with to test work and can switch after
Create a new site collection with a template of "Publishing ->publishing Portal"

Create the service application

Create a new "Service Application" from Central Admin->Application Managment->Service Applications->Manage Service applications

Click on the new button on the toolbar and choose "Managed Metadata Service"

Enter the name, SQL server and DB name.

You can either use the IIS Web application pool you created when you setup the web application and site above or create a new one with yet another new user account which has been added to the managed users

For the Content Type Hub use the URL of the site collection you setup above and then click ok.
Note: this will not start the Managed Metadata service, and you may see errors in the event log saying that this service is not running on any of the servers in your farm. You need to start the serice seperatly.
You start the service by Central Admin->System Settings->Servers->Manage services on server

Click start next to Managed Metadata Web Service

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

To check it is working and to manage the content goto Central Admin->Application Management-> Service Applications->manage Service Applications

You will see two entries for the Service, the first is the actual service and the second indented line is a proxy stub.

Click on the first line and choose Manage from the toolbar. This will bring you up the Term Store Mangement Tool where you can manually input Terms or import them using a CSV


Note: you may find errors if you do this straight away as certain timer services need to run to fully impliment this service. Gernerally I would always do an IISReset as well (well it cant hurt!)

Article for next steps setting up content types

SharePoint 2010 Connection Filter Logic

For SharePoint 2007 our MOSS profile sync uses the an LDAP query that filters which OU Users we dont't require -

ie User filter: (&(objectClass=user)(!Status:=System)(!UserAccountControl:1.2.840.113556.1.4.803:=2))

This assumes we want everyone except those with and AD attribute of Status=System (the UserAccountConrol setting excludes accounts disabled)

For SharePoint 2010 once you have setup your Sychronization Connection to include one or more OUs from AD, you can then add exclusion rules by clicking to the right of the Syncronization Connection and choosing Edit Connection Filters from the menu.

I didn't read the screen properly and just applied the same filter logic as SharePoint 2007 but after 4 hours of pain not getting the results I wanted, so I read what it said on the screen.
It says "Exclusion Filter for Users" - as such YOU MUST REVERSE YOUR LOGIC from SP2007!!

Thus to achieve the same result above you need:
ie User filter: (Status:=System)(UserAccountControl:Bit On:=2))

I'll read the screen next time - duh!

The importance of SharePoint 2010 Managed Service Application install order


SharePoint 2010 is very unforgiving when it comes to the configuration of its Managed Service Applications. Not only do all the security settings need to be just so, but the order of install needs to be just right.
Because of this sensitivity, after installing the binaries and getting the administration site running I concentrated on getting the most tricky Service Apps running first, ie the User Profile and User Sync Service Application. However after a good install with few errors, on editing a user's profile some of the fields had really odd errors saying that "There was a problem retrieving data for this field"

There was nothing obvious; however it turns out that if you don't install the Managed Meta Data Service then you will have this problem. It doesn't matter if you install the MMD before are after the UPA but it just needs to be there.

The order I attempted to install Services after the binary and install of the administration site is as follows:

  • Register some pre-configured AD accounts into SharePoints' Managed Accounts (having setup the right AD permissions first). These will be used for the IIS Application Pools so you know what is running what. SharePoint very unhelpfully gives these GUIDS as names.
  • Create a New Web Application for the MySite Profiles with its own application pool and use one of the Managed Users we setup above

  • Create New Site collection in that Web Application – using a template of Enterprise –> My Site Host
    (Don't try to load site at this time)

  • Create a new User Profile Service Application with its own app pool
    • Start the UPA service – (very easy to miss this)
  • After service has started do an IIS Reset – or even reboot to make sure
  • Start the User Profile Sync service – prompts for details – wait 10 minutes until started
  • Reboot again – very important.
  • Add a Synchronization Connection to AD (You can add LDAP Filters to the connection after it is setup)
  • Start profile Synchronisation (full)
  • Once complete (and it will take a while…..) Manage User Profiles and you will see on some of the fields the errors I mentioned above.
  • Now install the Managed MetaData Service
  • IISReset or reboot again – and these field errors disappear!!

Glad it's so intuitive……..!
References :
Spencer Harbar's Rational Guide to implementing SharePoint Server 2010 User Profile Synchronization
SharePoint 2010 – Provisioning User Profile Synchronization

MSDN: Edit Profile Synchronization connection filters

http://blogs.msdn.com/brporter/archive/2010/02/20/excluding-disabled-user-accounts-in-sharepoint-2010.aspx
http://www.wictorwilen.se/Post/SharePoint-2010-user-profile-properties-temporarily-disabled.aspx

Monday, May 17, 2010

Visual Studio error 'Cannot find the certificate and private key for decryption'

I have a perfectly good (and expensive) Thwate Code Signing Certificate - but when I try to import it into Visual Studio to sign an assembly I get a daft error of the form of the title above. I thought MS might have fixed this in VS2010 but no.

The problem appears to be that the certificate holds too much information for VS to comprehend, so you need to import the Certificate onto your machine and export it without all this extra "stuff".

The solution is to run CertMgr.msc - import your certificate - (usually into Personal->Certificates) and then:
export it by right clicking on the certificate you just imported ->All Tasks ->Export->Yes Export Private Key->
(Do not include any Personal Information Exchange check boxes)
Type a password and export it to a folder (preferably in your VS Project)

Now, in Visual Studio->Signing->Strong Name Key File-> try and browse to your new key and it should load after you enter the password.

Tuesday, May 11, 2010

Sharepoint 2010 BCS connection getting started and authentication issues

There is a very good "get you started" article here, walking you through creating a SharePoint List to an external SQL table. Whilst all the steps were clear it did not deal with security and authentication to the SQL server.

Several methods are available to connect through to back end data providers, however "Connect with User's Identity" (or Pass Through) will only work with Kerberos enabled, and if it is not you will get a Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON' error.

With SP2010 it is much better to use either the Impersonate Windows (or Custom) Identity - which makes use of the SharePoint 2010 Secure Store Service.

If however you dont want to use these or havnt set them up then you can use RevertToSelf which uses the BCS's application pool credentials.

Microsoft warn against this method as a potential security risk and if you try to select it as a connection property it will give you an error saying that revert has to be enabled for the application pool. (See this link)

This is done by setting RevertToSelfAllowed for the BCS model's authentication mode wont work without using powershell to set the Sharepoint Server setting for this to True.

$apps = Get-SPServiceApplication
$bcs = Get-SPServiceApplication where {$_ -match ""}

## If you’re doing this by hand, just type $apps and look #for the Business Data one, then index into it like $apps[i].#If you’re doing it for automation, filter by #$_.GetType.FullName (not $_.TypeName, which is localized).

$bcs.RevertToSelfAllowed = $true

Remember that if you do use this method then the BCS's application pool credentials must have the appropriate rights to the SQL Server Table.

References:
Authenticating to Your External System - BCS Team blog
BCS and External List Learning – Part1
BCS and External List Learning – Part2
Getting started with Business Connectivity Services (BCS) in SharePoint 2010

Sunday, May 09, 2010

SharePoint 2010 and Project 2010 Server demo and Eval VM (RTM edition)

Having spent a week fighting with SharePoint 2010RTM to setup demo scenarios, it is refreshing to see that Microsoft have released RTM VM machines for both SharePoint and Project server. Downloading now and will see what goodies they hold...

Chris Johnson : SharePoint 2010 Demo and Eval VM (RTM edition): "SharePoint 2010 Demo and Eval VM (RTM edition)"

Friday, March 26, 2010

Running VMware vSphere Client on Windows 7

The problems running vSphere clients on Windows 7 have brought a lot of pain and the proposed workarounds were complex and invariably didnt work.

BUT here is a very good simple arcticle which works ! - we like this a lot...

Wednesday, March 24, 2010

Sharepoint 2007 wildcard searching

To use a wildcard search or part of the name, you must specify the field name you are looking for.

eg. FileName:whiz* will find all documents with a FileName starting with "whiz"

I havent found a way to search on field's with spaces in yet (ie where there is a space in the file name replacing it with _x0020_)

There is a good article here
http://www.novolocus.com/2009/05/27/sharepoint-can-have-wildcard-searching/

Thursday, February 25, 2010

dotNet Dictionary - ContainsKey

I think Dictionary objects are brilliant data structures. The way they can contain objects and nested dictionaries within them seleves makes them a fantasic store,

However I was using a Dictionary obect to store Key Value Pairs and I couldnt be sure that I knew if all the key's were present. The first way I found to check was to try to get the key within a Try Catch block and if they key wasnt found the Catch block would return a default value.

This was both stressfull to me and the performance of the app, so I was very pleased when I found a method to test if a key existed: Dictionary<(Of <(TKey, TValue>)>)..::.ContainsKey Method

BUT I was even happier when I found the Dictionary<(Of <(TKey, TValue>)>)..::.TryGetValue Method

TryGetValue means you dont need to wrap your code in Try Catch blocks to handle exceptions and you can pass back a default value if the key is not found. Brilliant !

A couple of Excel VBA usefull notes

UserName = Environ("Username")
Domain = Environ("UserDomain")
Combined= Environ("UserDomain") & "\" & Environ("Username")

CurrentDate = Date
CurrentTime = Time

Some file and folder VBA commands

Current folder name: CurDir
Change the active folder: ChDir "C:\My Documents"

File exists test: If Dir("F:\My Documents\My Workbook.xls") <> "" Then ....

Delete a file : Kill "F:\My Documents\My Workbook.xls"

Creates a new folder: MkDir "F:\My Documents\NewPrivateFolder"
Delete a folder: RmDir


Copy a file (the file must be closed): FileCopy "OrgWorkBook.xls", "CopyWorkBook.xls"

How to move a file (the file must be closed):

OldFilePath = "C:\OldFolder\Filename.xls" ' original file location
NewFilePath = "C:\NewFolder\Filename.xls" ' new file location
Name OldFilePath As NewFilePath ' move the file


My thanks to this reference - allbeit a little hard to read beacause of the ad's

February 2010 Windows Media Center Cumulative Update for Windows 7

Although Windows 7 Media Centre is much better than previous releases - its support of media extenders such as Xbox 360 and Linksys are woefully behind. Here is the latest patch for Windows 7 and I do hope that this is supported by the extenders being updated as well.

Sharepoint list item - custom drop down menu

To be able to customise Sharepoint Context menus easily using Javascript in a a Content Editor Web Part is extreemly powerfull and remarkably simple to get working. - see this article for guidance Customizing SharePoint Context Menus.

(Suplimental: The obove article is ok as far as it goes however to try to get the client side menu to carry out actions is not simple. You need to be skilled in Javascript and have a knowledge of the internal variable names Sharepoint 2007 users. [at least Sharepoint 2010 will have a client side dll!).

Other references I found usefull were :

Wednesday, January 27, 2010

BUG: SSIS 2008 derived columns from User variables data type

I wanted to create a derived column from a user:variable in SSIS so that I could combine the input of a CSV into a SQL table along with a column name saying where the CSV came from.

Usually you initialise the user:variable before the package starts with a non relevant string, such as "1234" then updated it to the correct value once the process starts.

The problem is that when you use the Derived Coulmn Transformation Editor and add a Derived Column as SSIS fills in the Data Type automatically for you and wont let you change its data length. So if you initialise the user:variable with "1234" the new column will be defined with a Data type Unicode string [DT_WSTR] 4 - notice maximum length of 4!

So if you update the user:variable string to a length of 5 characters SSIS fails!

My work around is to make sure that you initialise the user:variable string with a value which has a length of the maximum possible string which you are likely to encouter.

Hopefully this will be resolved in future releases.

Tuesday, January 26, 2010

Another Microsoft SQL exam passed

I'm sure it gets harder to study and pass exams as each year goes by, however just managed to achieve 98% in Microsoft SQL Server 2008, Implimentation and Maintenance so off for a beer to celebrate.

Summing Excel Range Intersects

Ever wanted to add up the value of the Intersecting Sets or Ranges.

I had a couple of Ranges as rowns,
eg Dept1 = Rows A1:N4 , Dept2 = Rows (A5:N6, A12:N16) etc

and then Columns Ranges for Jan, Feb
eg Jan = Column B1:B12, Feb = C1:C12 etc.

I wanted to get the sum of the Intersection between Ranges Dept1 for Jan. To do this use a Space as an operator. eg =Sum(Dept1 Jan)

Whilist everyone knows about the comma as a Union operator not many people have heard of space as an Intersect operator - see "Reference operators" in Excel help for more info

Tuesday, January 19, 2010

Using Windows 7 for "Server-like" loads

I'm studying for a SQL 2008 exam and found that you can mirror up to 3 backups to different devices, so when a client had some new Windows 7 machines delivered with loads of spare hard drive, I thought this would be an excellent location to backup an additioanal copy of SQL to overnight.

However after about a 15Gb backup from SQL 2005 server onto a Windows 7 share, the Windows 7 workstation seemed to loose its visibility from any of the Windows 2003 servers. (The other Windows 7 machines could still see the share).

A reboot solved the issue, until I tried to backup again!

Looking in the event log, I found memory errors showing as Non-Paged pool problems.

After a lot of searching, I came across the article below - it would appear that from the old SysInternals Site there used to be an article called "Tunining Workstations for Server-Like Loads". Microsoft seem to have "tidied up" these old articles and I couldnt find any links to the references shown on Technet, however if you make the registry changes to a Windows 7 machine, it seems a lot happier pretending to be a backup file server overnight.

Set the following registry to key to 1

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache

and set the following registry key to ‘3′:

HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size

Reboot and enjoy!


References:
http://alan.lamielle.net/2009/09/03/windows-7-nonpaged-pool-srv-error-2017
Event ID 2017 and 2021 - microsoft.public.windows.vista.networking_sharing Google Groups

Tuesday, January 12, 2010

Tuesday, December 15, 2009

Configuring User Profiles in Sharepoint 2010 beta 2 in the enterprise

This gives an interesting walkthrough for configuring user profiles. (Despite 5 installs of a Sharepoint 2010 its still not quite right).

Ive found this is a very tricky and time consuming process fraught with problems and Kathy's notes are very helpful.

in reference to: Kathy Hughes, MVP (view on Google Sidewiki)

Wednesday, October 14, 2009

Running SSIS packages from a web page

I need to run a simple aspx page on a SQL server to run an SSIS package so that users could kick off the process without having access to the SQL admin tools.

The following C# class in an asp.net page runs brilliantly on the SQL 2008 server

static void CallSSIS()
{
string pkgLocation = @"E:\VS Projects\\Sandbox.dtsx";
Application ssisApp = new Application();
Package ssisPackage = ssisApp.LoadPackage(pkgLocation, null);
DTSExecResult ssisPackageResults = ssisPackage.Execute();
}


The only major problem I had was publishing the web to a virgin Windows 2008 with IIS7 machine. When I browsed to the page it gave the following error "This configuration section cannot be used at this path".

After hours of head scratching and missleading web articles, it turned out that the ASP.NET is not installed as a ROLE in by default.

Server Manager -> Roles -> (scroll to Web Server (IIS)) -> Add Role Services -> ASP.NET

Volia!

Monday, October 12, 2009

Symantec System Center - Cant unlock server group

I was asked to look at unlocking a Windows 2003 Server Symantec System centre whos documented name and password didnt work.

If you a) update the "user-admin-p" registry entry -
HKEY_LOCAL_MACHINE\SOFTWARE\Intel\LANDesk\VirusProtect6\CurrentVersion\Accounts (more details here)


and then b) run the iforgot.exe program in the Program Files\Symantec\Symantec System Center\Tools folder

then you can reset the user account's password.

Sunday, August 16, 2009

Setting wss 3.0 site anonymous access

A couple of years ago I setup a secure WSS 3 web application which I now wanted to publish so that everyone (anonymous) could see it, however I couldnt find out how to do it.

Following the Microsoft guidance article it suggests Site Actions -> Users and Permissions -> Advanced Permisions -> Settings and then click on Anonymous access, however the option just wasnt there !

Further investigation reminded me I needed to make sure that my "authentication providers" needs to be set to support anonymous as otherwise its not an option to choose in menu above. To set this up go to Web Application Management -> Application Security -> Authentication Provider, choose the Zone you wish to edit and then make sure "enable anonymous access" is checked and save this setting.

Now go back to the first stage on the Advanced Permissions -> Settings drop down and voila, you can set anonymous for site, list level or none as you require.

Monday, August 10, 2009

Updating Windows 2008 Domain Account Policies

Whilst passwords meeting complexity requirements is all well and good in a production environment it is a pain in a development one. I have a Windows 2008 standard AD Domain Controller and and I needed a number of system accounts which I really didnt want to have to bother of recording complex passwords.

To change these settings is not intuative, however this is what I found:

To turn password complexity off in Windows 2008 Server or change other grayed out security options, follow these steps:
(1) Run gpmc.msc (Group Policy Management)
(2) Expand your Domain
(3) Go to Group and select Default
(4) Right click on Default Domain Policy or Default Domain Controllers Policy and choose Edit
(5) In the new window which opens expand computer Configuration->policies->windows settings->security settings->account policies->password policies
(6) Make your edits to the keys below:

There must be an easier way, which I am problaby missing !

Tuesday, July 28, 2009

C#3 anonymous types, parameters and LINQ for XML

Crash learning to work with LINQ XML (see sample code below to get a distinct list from an XML file written by a reporting services report) re-introduced me to a really usefull feature of C#3 called anonymous types where you can create an object on the fly. You can then use that object in the same method, however if you wish to pass it to another method then things start getting complicated. This blog note Anthony Steele's Blog : C#3 anonymous types as parameters points you in the right direction to whats possible.

(He also mentions a very good book on C#3 (by Bill Wagner) to hone your skills)


Note: as a learning LINQ is a lot of trial and error you can test your LINQ code in a very helpful utility called:http://www.linqpad.net/

Sample LINQ code
XDocument xDoc = XDocument.Load(@"c:\temp\RSD.xml");
var q = (from e1 in xDoc.Descendants("{SchemaName}Detail").Distinct()
let div = e1.Attribute("Division").Value
let cc = e1.Attribute("CostCode").Value
select new { div, cc }).Distinct();

q.Dump(); //this shows you the contents of q

Monday, July 13, 2009

Integrating External Document Repositories with SharePoint Server 2007

Whilist loading documents into Sharepoint from existing file shares is a good option it is often time consuming and here is an interesting article showing how you can link existing exteral document libraries with sharepoint Integrating External Document Repositories with SharePoint Server 2007:

Saving Reports to SharePoint using WebDav from Windows 2008

I was having difficulty getting Enterprise Reporting Services to run a data subscription (running on Windows 2008) to save reports into a Sharepoint Document library using a URL.

I found that Windows 2008 does not install the required WebDav Client (Not to be confused with the additional IIS7 WebDav Server addon) .

You can install this client by Adding the "Desktop Experience Feature" on Windows 2008, however this also installs lots of other things that you probably dont want and Ive not found a way to only install WebDav Client support.

After a server re-boot it works well and talks to Sharepoint Document Libraries, My thanks to the following article for assistance. Browsing SharePoint using WebDav from Windows 2008 « In The Mix

Friday, April 10, 2009

Chaks' Corner | WCF and Sharepoint - System.IO.FileNotFound Exception

Writing a WCF Sharepoint handler I had a great deal of trouble wondering why SPSite host = new SPSite(http://localhost..../) was giving a Web application could not be found error. The URL opened fine in a browser.

The answer appears to be security related where the WCF service doesnt seem to have enough permission to get to the local sharepoint server. One workaround which seems to work is to set the WCF Application Pool permissions to the same as the Sharepoint Application Pools. Im not sure its elegant but until I find a better way this seems to work. Thanks to the following blog: Chaks' Corner WCF and Sharepoint - System.IO.FileNotFound Exception

Monday, March 02, 2009

How to fix issue with Symantec Endpoint client not installing due to a required reboot. | Shnake's Tech Tips

I needed to remove my old Symantec AV and install Symantex Endpoint Protection, however the installer kept saying there it would not install due to pending reboot actions - even after four reboots !

My thanks to the following link who shows the relevant registry to sort this problem out.

Thursday, February 26, 2009

SharePoint Documents in "Checked Out" limbo mode after upload from explorer with mandatory fields not completed

We have been uploading documents into SharePoint from the file system by dragging and droping them from Explorer, and we could'nt work out why they were being shown as "Checked Out" even though the Version Control settings were set to not use "Check-in/Out".

The reason turns out to be related to mandatory fields being by passed by the Explorer upload method. If you load a document via the filing system and a mandatory field is not completed then Sharepoint leaves the document in a “Checked Out” state. However you cannot “Discard the Checked Out” state because no document has been “Checked In” in the first place !

So you have the situation where a document is in limbo – not checked in or checked out but only visible for the user who loaded the document to complete the mandatory fields.

BUT even if you do complete these fields – it would seem that Sharepoint keeps the document in the limbo state and won’t allow you to do anything with them unless you fully check them in.

AND the problem is that SharePoint doesn’t have a “bulk check-in” function!

Reference: Automatically checkin files after uploading « SharePoint, ASP.NET and more

Binding Excel 2007 values using (DIP) Server Document Properties to Sharepoint- Not Simple or Intuitive

We had a requirement to link values entered in Excel 2007 cells so that when they were saved to a Sharepoint Document library those values were seemlessly displayed Document library as fields.

This functionality is handled much more easily by Word 2007 - see these excellent articles (DIP Metadata and Word 2007 Custom Doc Properties) - but Excel 2007 doesnt seem to share this functionality out of the box.

It turns out that there are 3 types of Metadata Properties in Excel 2007 (where WB is the ThisWorkbook object in this example):
  • WB.BuiltinDocumentProperties
  • WB.CustomDocumentProperties
  • WB.ContentTypeProperties

To access this Mata data visually use the Excel "Office button" -> Prepaire -> Properties menu. Choosing "advanced properties" gives you access to both add new custom properties and the built in properties. You can assign fixed text values to them or link them to named ranges within the sheet, however you cannot get to the Server Document Properties from this dialog.

ie the XL-> Custom Properties GUI only gives you access to the following Property sets (and of course these aren't what you need for Sharepoint)

  • WB.BuiltinDocumentPropertiesSet
  • WB.CustomDocumentPropertiesSet

To update the data which will feed back to Sharepoint fields you need to use code to get to the WB.ContentTypeProperties object which has a type of "MetaProperties".

The WB.ContentTypeProperties object is a collection which can be iterated through and each field has an ID and Name and a Value. The ID is an internal value and seems to Map to the same internal name as that of the Sharepoint field it is connected to.

{Note: the internal field names can lead to some confusion such as where a field with a Name of "col1" seems to create an internal ID name of "_x0063_ol1" and a field with a Name of "Project Lead Finance" has an internal ID name of "Project_x0020_Lead_x0020_Finance". This is normal Sharepoint practice!}

Using macro code to set the values of a MetaProperty in this way seems to trigger an event in the Server Document Properties DIP (Document information Panel) to update the field value to the new value you've set. {Note: The DIP is an InfoPath based piece of XML which displays fields in Office 2007 applications. It may be possible to code against it to achieve a more automated link to native Excel custom properties but I haven't had a chance to look at that yet}

Below is a very simple piece of code to set a Server Document Property to the value of cell A1:

Sub SetServerProperties()
Dim WB As Workbook
Set WB = ThisWorkbook
For Each Prop In WB.ContentTypeProperties
If Prop.Name = "Project Lead Finance" Then
Prop.Value = Range("A1").Value
End If
Next Prop
End Sub

Using macro code has the disadvantage of Excel documents having to be saved as XLSM documents and I am sure there must be a way to trap an update event of an standard Excel Custom property using something like VSTO, however that is for another post.

{Note: for Excel 2003 just updating the fields in WB.CustomDocumentPropertiesSet before a save does seem to pass them back to Sharepoint ok}

My thanks to an article published by Sadalit Van Buren who pointed me in the right direction with this article A Matter Of Degree: XML Mapping of Document Properties with Excel and SharePoint - Not Simple or Intuitive

Wednesday, February 04, 2009

Sharepoint Permission levels and permissions

Ive been working on setting Sharepoint permissions programmatically at a document level and found an interesting article below:

One of the things we noticed last week was that if you set the permissions on a single folder or document for someone who is not already in the document library, sharepoint adds them to the document library permissions root with [Limited Access].

The full article is here http://office.microsoft.com/en-us/sharepointtechnology/HA101001491033.aspx. , but in summary:

Limited Access


The Limited Access permission level is designed to be combined with fine-grained permissions to give users access to a specific list, document library, item, or document, without giving them access to the entire site. However, to access a list or library, for example, a user must have permission to open the parent Web site and read shared data such as the theme and navigation bars of the Web site. The Limited Access permission level cannot be customized or deleted.
Note You cannot assign this permission level to users or SharePoint groups. Instead, Windows SharePoint Services 3.0 automatically assigns this permission level to users and SharePoint groups when you grant them access to an object on your site that requires that they have access to a higher level object on which they do not have permissions. For example, if you grant users access to an item in a list and they do not have access to the list itself, Windows SharePoint Services 3.0 automatically grants them Limited Access on the list, and also the site, if needed.

Referencing Sharepoint Assemblies on x64bit Installs causes build errors for ASP.NET apps (in VS.NET 2008)

Debugging a WCF application on a 64 bit server using VS2008 gave me odd errors where sharepoint.security.dll could not be loaded - it turned out that you have to use the 32bit version of the microsoft.sharepoint.xxx.dll libraries - see the following article.

robgruen's WebLog : Referencing Sharepoint Assemblies on x64bit Installs causes build errors for ASP.NET apps (in VS.NET 2008):

Tuesday, June 24, 2008

Oulook 2007 and Sharepoint document libraries sync.

This subject is poorly documented and a bit of a "black art", however Ive found a Microsoft quick ref card here.

Note Outlook behaves differently if the library is greater than 500Mb. If less then it sync everything, otherwise it syncs only headers and you have to manually sync documents. I cant find any way to alter this functionality.

I also find some interesting training slides from TechNev on the subject.

Microsoft's office page for this subject is here