Tech. reference and notes discovered whilst thrashing Microsoft SharePoint, SQL, BI, KM, Security and Windows Servers
Sunday, January 01, 2012
Displaying other Outlook accounts when migrating to Office 365
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
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
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
CAUTION DO NOT Uncheck the Exchange License as Ive seen dire warnings saying this will delete the users email mailbox which would be bad !
Thursday, October 13, 2011
An interesting article on MS CRM Reasons to use SharePoint 2010
http://www.powerobjects.com/blog/2011/03/15/crm-reasons-to-use-sharepoint-2010/
Friday, October 07, 2011
Viewing Sharepoint sites on the Sharepoint server (disabling server loopback checks)
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.
Option 2 - is to disable the loopback check for each site individually – which should be used on production machines.
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
For Microsoft Exchange 2010
- Click Start > Programs > Microsoft Exchange Server 2010 > Exchange Management Shell.
- 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
Remove-StoreMailbox -Database "
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)
To add an FBA user we use the
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.
Sunday, March 27, 2011
Wednesday, March 02, 2011
AD Sync: The source server is currently rejecting replication requests
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
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
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
Running a Virtual Router & Firewall inside VMware ESX with Vyatta
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
Monday, January 03, 2011
Exchange 2010 ActiveSync not function for Domain Admins user
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
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
- 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
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
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
Create an additional new name for the server
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.
Windows Server, IIS/SharePoint, and NULL SID ‘Audit Failure’ Security Errors
Thursday, June 10, 2010
Viewing SharePoint 2010 sites on Windows Server 2008 R2
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:
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).
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.
Wednesday, June 09, 2010
SharePoint Technology Conference | October 20-22, 2010 | Boston
SharePoint Technology Conference October 20-22, 2010 Boston
Access Web Services : form filtering and sorting
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
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
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
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
How to remove the “title” column from a SharePoint list EndUserSharePoint.com:
Friday, May 21, 2010
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
while (alive) { writeCode(); } : Multiple Authentication Methods in SharePoint 2010:
Thursday, May 20, 2010
Setup Managed Meta Data Hub for the Sharepoint 2010 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
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'
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
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)
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
BUT here is a very good simple arcticle which works ! - we like this a lot...
Wednesday, March 24, 2010
Sharepoint 2007 wildcard searching
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
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
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
Sharepoint list item - custom drop down menu
(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 :
- MSDN - Sharepoint Client side API - OpenDocuments Control
- Changing the context menu of a document library in Microsoft SharePoint Portal Server 2003 or Windows SharePoint Services
- “Send Document Link By Mail” menu item to document libraries
- How to open SharePoint documents in Edit mode with Internet Explorer 6 and Windows XP (without regfix
Wednesday, January 27, 2010
BUG: SSIS 2008 derived columns from User variables data type
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
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
Summing Excel Range Intersects
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
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
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
ICO (Windows Icon) file format plugin for Photoshop
ICO (Windows Icon) file format plugin for Photoshop
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.
Wednesday, October 14, 2009
Running SSIS packages from a web page
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
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
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
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
(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
Saving Reports to SharePoint using WebDav from Windows 2008
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
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
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
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
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
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)
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.
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








