I am in the middle of converting a client from SBS 2003 to SBS 2008 – this server hasn’t been particularly well maintained over its lifetime, and as such requires a fair few prerequisite updates before we can get down to the fun bits of the migration.
I needed to install Small Business Server 2003 Service Pack 1 – however it wouldn’t let me! The log files led me to something I believe would be a rarely-seen edge-case. First, the symptoms.
C:\Program Files\Microsoft Integration\Windows Small Business Server 2003\Logs\
Component Name: Server Tools
Installation Status: Failure
Error Message: An error occurred while copying files for the Server Tools component. See C:\Program Files\Microsoft Integration\Windows Small Business Server 2003\Logs\SBSMSI-remote.LOG for the list of files that were not copied. You may want to run Setup again and reinstall the component.
An error occurred while copying files for the Server Tools component. See C:\Program Files\Microsoft Integration\Windows Small Business Server 2003\Logs\SBSMSI-Backup.LOG for the list of files that were not copied. You may want to run Setup again and reinstall the component.
MSI (s) (84:34) [23:17:03:647]: PROPERTY CHANGE: Modifying IISDIR property. Its current value is ‘\\SERVER’. Its new value: ‘\\SERVER\’.
MSI (s) (84:34) [23:17:03:663]: Product: Windows Small Business Server Remote Portal — Error 1316. A network error occurred while attempting to read from the file: \\SERVER\wwwroot\Images\help.gif
Interesting – The installer is setting IISDIR to the server name, and then trying to read files from non-existent shares. IISDIR is generally c:\inetpub\wwwroot. This led to a search through the registry to no success.
The Application event log was also showing the following errors:
Event ID: 11316
Product: Windows Small Business Server Remote Portal — Error 1316. A network error occurred while attempting to read from the file: \\SERVER\wwwroot\Images\help.gif
Event ID: 11325
Product: Windows Small Business Server Common — Error 1325. ‘ConnectComputer’ is not a valid short file name.
On a guess, I decided to check the Home Directory of the default website in IIS Manager – it was pointing at a non-existent network location. The server used to have a line-of-business application running on it which took over the default website for dashboard reporting.
- Launch IIS Manager (Start -> Administrative Tools -> Internet Information Services (IIS) Manager)
- Expand the tree to the default website (Internet Information Services -> Servername -> Web Sites)
- Right-click ‘Default Web Site’, select ‘Properties’
- Go to the ‘Home Directory’ tab
- Select ‘A directory located on this computer’
- Set the Local Path to ‘C:\Inetpub\wwwroot’
- Click OK, and restart IIS
- Run the SBS 2003 SP1 Installation again
On a Windows Small Business Server 2003 server (RTM, SP1, SP2, R2) you may find that alot of memory is used straight out of the box.
On a few of my client sites, I have seen this happening recently, causing some performance issues for LOB applications. If have found SQLSERVR processes to be the culprit at both of these sites, with some instances using up to 500mb.
SBS uses instances of MSDE for a few of its core tasks:
- WSUS (For centrally managing and reporting on the Windows Update process to Small Business Clients)
- MSFW (For the ISA Server 2000 / 2004 instance shipped with SBS Premium)
- SBSMONITORING (For the inbuilt performance and usage reporting)
None of these instances require so much memory! I have no problem with a SQL / MSDE instance using memory when it is for a LOB application, but for maintenance, reporting, and logging?!
To limit the amount of memory each instance can use:
- Determine which instances you wish to limit. I do this by finding the process ID using the built in Task Manager, then determining what instance is running under that process ID with Sysinternals Process Explorer.
- Launch a command prompt
- Start the SQL prompt, connecting to the desired instance (e.g. SBSMONITORING)
osql -E -S SERVERNAME\<INSTANCENAME>
- Execute the following commands to enable setting of advance options:
EXEC sp_configure 'show advanced options',1
RECONFIGURE WITH OVERRIDE
- Execute the following commands to set the maximum memory in MB. Replace 100 with your desired setting (I use 100MB):
EXEC sp_configure 'max server memory (MB)',100
RECONFIGURE WITH OVERRIDE
- Execute the following commands to disable advanced settings, for safety’s sake:
EXEC sp_configure 'show advanced options',0
RECONFIGURE WITH OVERRIDE
Within about 30 seconds the instance should have dropped it’s memory usage to within about 50mb of your desired setting. Changing this actually changes the size of the dataset that is cached in to memory, there is still other overhead that means your active memory usage may still be around 175mb.
Thanks to Tokahao’s post at the WSUS Forums for this info.
On an SBS 2003 server today I had an issue where the root cause was the Windows Time (w32time) service not starting.
The ‘Configure E-mail and Internet Connection Wizard’ would not complete, erroring at the ‘Network Configuration’ stage. Logs showed the following:
Error 0x80070422 returned from call to Configuring the time service().
Error 0x80070422 returned from call to CNetCommit::Common().
Error 0x80070422 returned from call to CNetCommit::Commit().
Services MMC snapin showed the Windows Time service as stopped. Starting the service gave the following error:
“Could not start the Windows Time service on Local Computer.
Error 1058: The service cannot be started, either because it is disabled or because it has no enabled devices associated with it. “
- Click ‘Start -> Run’
- type ‘regsvr32 w32time.dll’, click ok
- when it says ‘DllRegisterServer in w32time.dll succeeded’, click ‘ok’
- Start the time service.
The error will now be resolved and the internet connection wizard should go through without error.