Friday, July 11, 2008
Cleaning up a Basic WSS (Windows SharePoint Services) v3 uninstall. Removing SQL Server embedded #SSEE database setup - this has proven a pain for a lot of our clients, as well as some of our developers that are not familiar with the goings on of WSS v3. and a Basic installation.
INSTALLATION
When you install WSS v3 - by default - and most of us love defaults - it blazes right through and does a BASIC installation/configuration.
BASIC
Under this installation - WSS creates NOT a well known documented and easily discernable MSDE flavor of SQL Server - in all the right places like \%PROGRAMFILES%\Microsoft SQL Server\blah blah blah...
Nope... It creates a hybrid of sorts - Microsoft Embedded SQL Server - nested under the OS folder. Neat...
FARM INSTALLATIONS / INSTALLATIONS using a separate SQL Server
The key to getting WSS to work on a remote SQL Server - major requirement in most all organizations, is to be aware that you need to do a COMPLETE installation - for a Farm - and when you run PSCONFIG after the install - you'll have the option to select a <domainName>\<instanceName>...
UNINSTALL WSS V3 - COMPLETE
Just running PSCONFIG and removing your configuration - then uninstalling WSS - does NOT solve your problem here. The real problem is that MSFT SQL Server Embedded (#SSEE) is still installed - and EVERYTIME you run the setup bits for WSS ??? It's reverting back to this database - w/no obvious way to get around it.
So, if you do not need the embedded version - and after you have uninstalled WSS V3 - do the following:
REMOTE #SSEE Embedded SQL Server
1. Start Registry Editor, and then locate the following registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
2. Do an Edit/Find on Microsoft SQL 2005 embedded Edition
3. When you see a display name that matches the name, copy the value of the Key named “UninstallString”
4. Start-->Run-->CMD - opens a command prompt
5. Issue the following MSI - copying in your GUID and ensuring to complete the whole string.
6. - For example: MsiExec.exe /X{BDD79957-5801-4A2D-B09E-852E7FA64D01} CALLERID=OCSETUP.EXE
7. Confirm the removal - then bounce the box when you're done.
When you come back to install WSS v3 - do a Complete install - not a basic...
Tuesday, June 24, 2008
FAST Search for SharePoint Server 2007 / Microsoft (MSFT) Acquires FAST Search
The following links are provided to give you 1) more background on what this acquisition means, and 2) how to leverage it immediately in Microsoft SharePoint Server 2007 (MOSS).
http://www.microsoft.com/presspass/press/2008/jan08/01-08FastSearchPR.mspx
http://blogs.msdn.com/enterprisesearch/archive/2008/01/08/microsoft-announces-offer-to-acquire-fast-search-transfer.aspx
http://blogs.msdn.com/sharepoint/archive/2008/06/20/announcing-sharepoint-web-parts-for-fast-esp.aspx
A firm believe that there is nothing new under the sun, this does not surprise me. I see this as a serious enhancement to an already formidable foray into this space by MSFT.
Regards...
Saturday, May 24, 2008
During a normal setup of a medium farm configuration for MOSS, when running the SharePoint Products and Technologies (PSCONFIG) wizard - I would receive the error, "The account is invalid. The account must be a local account or global domain account."
Having deployed several dozen MOSS farms by now, I was perplexed after spending an hour checking and triple checking the service account (a least privileged domain-level account). All appeared to be just fine.
The server I was installing on was a member server of the domain, and when checking the properties of the server, it was listed properly as <serverName>.domainName.suffixName
So, what was going on?
Googling the issue turned up nothing; TechNet turned up nothing. I was stumped.
I deleted the user account on the PDC and re-created it - no joy.
Then I did some other digging... The NIC in this machine had an issue not long ago. Specifically, when it was joined to the domain - there was a different NIC in the computer that failed not long ago. Alas... The MAC address/machineName were foobarred in Active Directory. All appeared well on the surface. Until I tried a simple little test; login to the host as a domain account :) I quickly got the message that the domain was not available or that my machine name was not registered in the PDC.
After finding this - it was a quick fix - unjoin the domain, bounce the host, re-join the domain - and all is well.
Hopefully this will save someone some time.
Monday, May 19, 2008
I recently setup a Windows XP Pro virtual machine w/Virtual PC 2008. So... I'm the only user account on the host - Administrator - and life should be grand.
While working on a specific project for a client, I copied to my VM C: drive a copy of the solution from a network share at the client site.
After some work - a couple days later - I needed to overwrite the local virtual machine copy with a refresh from the client site.
I continued to get the Access Denied when trying to replace files.
Okay... No biggy - I'm administrator - so I elect to DELETE the folder locally - I get the same error.
So... I open Windows Explorer (Start-->Run-->Explorer [Enter]) and browse to that folder. I select the folder - Right-Click-->Properties, and to my surprise, there is no Security tab. Mmmm Gotta love these mysteries.
By default, with Windows XP Pro SP2/SP3 - the Security tab is turned off.
To turn this on - open Windows Explorer, select Tools-->Options- you should see a screen like the following:
Click on the VIEW tab here...
Scroll all the way down and uncheck the Use Simple... blah blah blah
Hope that helps...
Thursday, May 15, 2008
Okay, so I've run that one in the ground so much the past couple years, you're tired of hearing it, right? WRONG. We've only just begun...
Read the latest about Microsoft Office products here - MOSS is still in the early stages.
For some really useful quick links - check out Mark Grimes' blog - and many thanks for the links Mark.
I have received a host of pings regarding older postings on Directory Services, ASP.Net, BizTalk and more - and I will be posting some new source/solutions for Directory Services on my technical blog here.
As much as I love Microsoft myself, Dan Woolston had one of the best posts I've seen this year - here! Dan is a noted author and technical contributor in ASP.Net, AJAX and BizTalk - to mention a few - but this link was great!
Some technical footnotes:
- Windows XP Professional SP3 is now out.
- PowerShell is getting a GUI - what took you so long!?!?!?
- InfoPath Forms Services Expense Reporting - excellent reference for doing Forms Services outside of MOSS. The only other recommendation I could add is to check out offerings from business process management solutions stacks like BlueSprings' BPM Suite - they have the full-scale version, and one specific for SharePoint as well.
- Windows Essential Business Server 2008 - it has taken a long time, and I am really pleased with the progress and integration of the MSFT business solutions releasing this year.
- Finally, some tidbits from Scripting Guy! - always worth a glance now and then.
We're still looking to launch MOSStastic! mid-to end July '08 - and just some of the features include:
- Automated creation of site collection - create your own first site collection, and start down the path of building out a full-fledged Internet facing site.
- AJAX enabled wizards for User and Site Collection management - we take the best of the Central Administration features and attempt to provide your quick how-to wizards that will help you
- Define your IIS/Site collection/definition
- Setup user accounts / access permissions to your site collection
- Edit / Set permission sets and create/manage groups for your site
- and much more...
- Full support for SharePoint Designer 2007, including a video walk-through on customizing your master pages w/custom CSS and UI elements.
- How to create custom web parts and deploy those for a site collection, site-level, or as a custom Feature for your site.
- Video training support on advanced Features, Event Handlers and Site Definitions - step-by-step walk-through support to give you insight and guidance on best practices for custom development of your solutions.
- Much more...
A lot of people have worked hard to help make this possible, and I am grateful to everyone for the support.
Looking to get a hosting provider for a WSS, ASP.Net or DotNetNuke portal? Check out Dot Net Haven for some of the best, most competitive hosting solutions available.
On that note - I'm outta here - today is my best friend's birthday (translate wife!) and I have no business blogging more tonight!!!
Sunday, April 13, 2008
I ran into this problem while trying to model some demo code for an ASP.Net application.
I'm running Vista Enterprise x64 and Visual Studio x64 2008.
When I tried to create a new web application in VS 2008 and browse it, I'd get the above error. The fix was to change the application pool to run in 32 bit.
Right-Click on My Computer --> Manage
Expand Services and Applications
Select Internet Information Services, then local Application Pools under Connections.
Right click on DefaultAppPool, Advanced Settings, and set the 32bit mode to True:
Hopefully this will be useful to others out there.
MikeH... Another Geek in Need...
Thursday, January 17, 2008
My first hand at a lightweight training session.
Click and play the video below...
to review the 4 minute video and please let me know what you think. Was the video/audio stream okay? What things do we need to work on? Etc Etc Etc.
Saturday, January 12, 2008
Windows Mobile Device Center and sync problems with the Verizon / HTC VX6800 SmartPhone
I was able to sort out most of the setup on this neat new phone - but for the life of me I could not get Windows Mobile Device Center to detect it.
The phone comes with Windows Mobile 6, and you would think all would go smooth insofar as the sync to your Windows Vista setup.
Alas - there is an update I found that magically resolved the issue - it's Windows Mobile Device Center 6.1 update - specifically for SmartPhones/PDA's running Mobile 6
http://www.microsoft.com/windowsmobile/devicecenter.mspx
Scroll down and select your language - go through the Genuine Advantage Validation of your OS - and the rest will magically fall right into place (PS - make sure your phone is connected - syncs right up).
HTH's someone else that's spent the last couple hours trying to sort this out.
Thursday, January 10, 2008
Browser Support for Microsoft Office SharePoint Server (MOSS) 2007
MSFT provides a decent review of the stated compatibility here.
The feature specific list deserves special attention.
Tuesday, December 25, 2007
How to change a user's password in Active Directory with Directory Services and C#
Below is a code snippet that I hope will be helpful. There are some obvious assumptions made - that the user has experience coding in Directory Services and C# - let me know if you would like more info.
private const string GETUSERID_QUERY = "(|(&(objectClass=user)(samAccountName={0}))(&(objectClass=contact)(displayName={0})))";
public bool ChangePassword(string rootDSE, string userName, string newPassword)
{
// Here, the rootDSE is already set, so is the user's name and their desired new password.
// We'll call a sub that will resolve the user's name to their ID in AD and invoke the change password on that userID
// You can do something as simple as DirectoryEntry root = new DirectoryEntry() - that'll return your root to you...
// User name is the same as Context.User.Identity.Name - their loginID (please forgive any typoes - I'm not using a dev env for this)...
using(DirectoryEntry userEntry = GetUserByLoginID(root, username))
{
try
{
userEntry.Invoke("SetPassword", new object[] { newPassword });
userEntry.Invoke("SetInfo"); // It's possible you might not even need this call...
userEntry.CommitChanges();
}
catch(System.Reflection.TargetInvocationException err)
{
throw new PasswordPolicyException(comError.Message,comError); /// Assuming you have a method to handle this...
}
}
}
private DirectoryEntry GetUserByLoginID(string rootDSE, string userID)
{
using (DirectoryEntry searchRoot = new DirectoryEntry(rootDSE))
{
using (DirectorySearcher searcher = new DirectorySearcher(searchRoot, String.Format(GETUSERID_QUERY, userID)))
{
SearchResult searchResult = searcher.FindOne();
if (searchResult==null)
return null;
else
return searchResult.GetDirectoryEntry();
}
}
}