All posts by will

Trash in OS X Lion won’t delete

For the past few weeks I’ve had an issue on my Macbook Pro – the trash wouldn’t empty!! The spinning beachball would just keep on spinning until I force restarted Finder.

The solution for this was quite simple.

  1. Open a ‘Terminal’ session
  2. Run the following command:
    rm -Rf ~/.Trash/*
  3. Done! Trash empty!

Thanks to Macconsultant at for the answer!

SBS 2003 SP1 Installation Failure – Server Tools

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
Version:        5.0
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:

Source: MsiInstaller
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


Source: MsiInstaller
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.

Resolution Steps

  1. Launch IIS Manager (Start -> Administrative Tools -> Internet Information Services (IIS) Manager)
  2. Expand the tree to the default website (Internet Information Services -> Servername -> Web Sites)
  3. Right-click ‘Default Web Site’, select ‘Properties’
  4. Go to the ‘Home Directory’ tab
  5. Select ‘A directory located on this computer’
  6. Set the Local Path to ‘C:\Inetpub\wwwroot’
  7. Click OK, and restart IIS
  8. Run the SBS 2003 SP1 Installation again

Adobe Reader shows black boxes instead of text

If you are using Adobe Reader (previously Adobe Acrobat Reader) on a Terminal Server (especially when connected at a low colour depth, e.g. 8bit / 256 colours) you may encounter a situation where black or coloured boxes are shown over sections of text on your PDF files

There’s a few solutions to this, ranging from quick-fix for one user, to permanent fix for all users.

These instructions were written for Adobe Reader 9.31. Quick fix is applicable to at least Adobe Reader 8+. I prefer my clients use the free, lightweight Foxit Reader

Quick Fix:

  1. Open Adobe Reader
  2. Go to ‘Edit -> Preferences’
  3. Select the ‘Page Display’ category
  4. in the ‘Rendering’ section, set ‘Smooth Text:’ to ‘none’

Registry Fix:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\9.0\Originals]

  1. Copy the above to a notepad window
  2. Save the file to a common location with a meaningful name, with a .reg extension (e.g. ‘adobe-reader-9-black-box-fix.reg’)
  3. Have users double-click the file if they experience the issue, selecting ‘Yes’ when asked if they want the information merged in to the registry.

Group Policy Preferences

The above registry key can also be deployed using Group Policy Preferences on Windows 2008+, with XP SP3 and above clients that have the Group Policy Preferences Client Side Extensions installed. The Registry Wizard in GPP makes this easy!

Thanks to a post by TechFreak on the Acrobat User Community Forums for providing the ‘Quick Fix’

Stop the SBS 2008 Console from starting automatically

The SBS 2008 console is useful when setting up a server – but it starts up every time you log in! Whilst this is beneficial for a client administrative user (being presented with the easiest way to do common tasks), as a systems integrator regularly logging in to a system, you will find that you don’t need this console most times! We also give line-of-business application vendors their own administrative account, and they generally don’t need the SBS console – just log in, troubleshoot or upgrade their app, and manage a SQL database.

It is quite easy to disable, just a bit counter-intuitive as to the location. It’s not in startup, not in the registry run keys – but a scheduled task!

  1. Go to Start -> Administrative Tools -> Task Scheduler
  2. In the left-hand pane, expand out to Task Scheduler Library -> Microsoft -> Windows -> Windows Small Business Server 2008
  3. Right-click on the ‘Console’ scheduled task and select ‘disable’
  4. Log off and log back on to test!

Thanks to the Screencast on

Blackberry – New contacts not syncing to device

I recently had an issue with a Blackberry Bold device using Blackberry Enterprise Server (BES). The device was provisioned and working successfully for a few months, however the user noticed that new contacts created in either Outlook or the device were being synchronised. The issue was not occurring for other users on the same BES.

To resolve this issue:

  1. Open Contacts
  2. Press the menu (blackberry) button and select ‘Options’
  3. type ‘RSET’ (in uppercase, without the quotes)
  4. You will be prompted with ‘This will erase your desktop contacts list, and reload it from your server. Continue?’, select Yes to reload.
  5. Your local contacts will now be erased and the device will start to synchronise with the server again. This process could take around 30 minutes.
  6. Test the process by creating a new contact in Outlook and checking if it comes across to the Blackberry (~5 minutes)

Thanks to GaryCutri‘s post on the Australia Blackberry Forums.

WUS / WSUS failing behind SonicWall

One of my SBS 2008 sites has had a problem since installation where Windows Update Services (WUS / WSUS) has been advising there are updates for client machines, but these updates have been stuck in a pending state – the client machines also never receive their updates.

Investigation revealed the following error in the Application Log:

Source: Windows Server Update Services
Event ID: 364
Description: Content file download failed. Reason: The server does not support the necessary HTTP protocol. Background Intelligent Transfer Service (BITS) requires that the server support the Range protocol header.

This particular client uses a SonicWall TZ150 firewall appliance. The Gateway Antivirus feature is the culprit. To enable the HTTP Byte-Range protocol header, and allow WUS to download the updates into the repository, do the following:

  1. Log in to your SonicWall
  2. In the address bar you should have something similar to ““. change “main” to “diag” (Should read similar to ““)
  3. Click “Internal Settings” on the left-hand navigation bar
  4. Check the box next to “Enable HTTP Byte-Range requests with Gateway AV” (approximately 2/3 down the page)
  5. Click “Apply” in the top right corner of the screen
  6. Click “Close” in the bottom left of the screen.
  7. WSUS should shortly begin downloading updates – to confirm, open the “Windows Server Update Services 3.0 SP1” management console from Administrative Tools.

Thanks to ComputerX’s post on the WSUSWiki for this info.

Scheduled Reboot task fails with error 0x4f7

On all the servers I am tasked with managing I define a scheduled task – allowing me to perform a timed unattended reboot of the system. Most of the time this works well – once in a blue moon it doesn’t reboot the server though!

The command line for the task is:

shutdown /r /t 30 /c "Scheduled Reboot task" /d p:0:0

Occasionally the task fails with an error code of 0x4f7. This means that the console session is logged on and in a locked state!

Long and the short of it – Make sure you completely log off any active administrative sessions on the server when you schedule the next run of the task!

Alternatively, modify the command to look like this:

shutdown /r /t 30 /c "Scheduled Reboot task" /d p:0:0 /f

The /f on the end forces a restart – it also forcefully closes any running applications in any logged-on session.

SQLSERVR.exe using lots of memory

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:

  1. 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.
  2. Launch a command prompt
  3. Start the SQL prompt, connecting to the desired instance (e.g. SBSMONITORING)
  4. Execute the following commands to enable setting of advance options:
    USE master
    EXEC sp_configure 'show advanced options',1
  5. Execute the following commands to set the maximum memory in MB. Replace 100 with your desired setting (I use 100MB):
    USE master
    EXEC sp_configure 'max server memory (MB)',100
  6. Execute the following commands to disable advanced settings, for safety’s sake:
    USE master
    EXEC sp_configure 'show advanced options',0
  7. quit

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.

SBS 2003 – Windows Time Error 1058

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.