Outlook 2007 E-mails sticking or stuck in Outbox while in cached exchange mode

Outlook_2007_logo_Mockup_PSD_by_eXPerienceARTSI came across this today and had a difficult time finding the resolution. If you have Outlook 2007 and you are getting e-mails sticking in the outbox while in cached exchange mode there is a fix. The hotfix is here:

http://support.microsoft.com/kb/948984


A fun little project in PHP to evaluate the accuracy of BBC Weather

This project was written purely for fun/training purposes after me and a friend joked that the BBC weather site changed its forecasts seemingly randomly and with completely contrasting predictions. The PHP script pulls data from the BBC weather site for the FY4 region (Blackpool) and inserts the data into a database. This runs hourly on a cron job. A query runs on the display page (see below) which displays unique results. Simply put, if the BBC change the forecast for a particular day it gets recorded here. In short, it shows their accuracy in predicting for a certain day. In each table for each day the bottom change summary is the latest one, and as such represents the weather as recorded by the site at present.

As a proud British national, I am happy to say that yes, I am obsessed with the weather.

http://www.gavsto.com/bbcanalysis

 


Symantec Endpoint support, in my opinion, is incredibly poor

Not just incredibly poor, but absolutely dire. The Symantec Connect site is so overly complicated that it borders on absolutely useless. We joke in our office that we need to raise a Symantec support call to actually raise a Symantec support call. All the different numbers, license agreement numbers, customer numbers etc are overly complex meaning most of the time we have to refer back to our original invoice. Of all the calls I have raised with Symantec, none have been resolved – I am beginning to question why we actually bother purchasing support with Endpoint Protection.

Now we have a lot of Symantec installations at different companies in completely different setups, and we rarely have to ring them. This morning was one of those times where a call was required. A large network where a zero day virus that was running amok on shared drives. After calling them initially at around 9:30, and taking 20 minutes to literally log my name/company/e-mail and phone number with an operator who was on a terrible line and whose English was horrific, I was asked the criticality of the call and labelled it as the most critical. I was told I would be contacted within two hours.

Those of you who work in a similar type job can probably see what is coming next. Two hours later, no phone call. I ring again and use my call reference to expedite the case. I speak to someone who tells me that he will re-send it to the technical engineers and it will be marked priority one and I will definitely get a call within two hours.

Two hours later – still no phone call. I ring again, this time I am angry. I speak to someone who can barely string two legitimate sounding sentences together and finally give up. I did get a call eventually, over 8 hours from the first call I logged. Unfortunately I’d already left, I had luckily been able to resolve the problem internally. This isn’t the first time this has happened either.

After seeing and using their latest BackupExec, I’ve not been that impressed with that either.

EDIT: 31/08/2012 

We did finally manage to get in contact with an engineer at Symantec who was actually quite helpful. It’s just the getting to these engineers that is the issue!


End of life for Small Business Server

As I am sure many of you are aware, Microsoft a few weeks ago announced that Small Business Server 2011 would be the last product in the Small Business Server range. I wasn’t that shocked when I read this, having seen where Microsoft are moving strategically, the idea of an “all in one” server that had multiple pieces of licensed software contained within didn’t seem to fit with their business strategy.

The loss, however, is a large blow for companies that are in the SBS market, from MSPs to VARs. Partners who have been with Microsoft from the beginnings of SBS and have enjoyed a relatively healthy relationship over the years.

Even as a SBS specialist, I’ve never liked the idea of having everything on one box. It doesn’t feel natural to me to have AD/DNS/DHCP/File/SQL/Sharepoint/Exchange all bundled into one place, and anyone who has experience of SBS will know this can certainly cause its own problems.

This strategic move by Microsoft was for the most part to push its Office 365 services. Office 365 is a selection of subscription based software services (Hosted Exchange/Hosted Sharepoint/Hosted Office) that require a monthly or periodic payment to Microsoft. The service most concerning us here is the hosted Exchange.

I like the idea of a hosted exchange, especially for small businesses. It removes the burden of administering (for the most part) Exchange on often outdated and flaky hardware. It also enables seamless mobile synchronisation without any IIS/RPC/Active Sync issues. It is especially useful for users who roam about a lot. Their e-mail synchronises from a data centre hosted server rather than a 1 meg ADSL line.

Then there are the downsides. The monthly cost is one, and from a small businesses perspective it is quite expensive*:

Office 365 Pricing

*Prices correct in UK as of 20/07/2012

From my experience, I’d hazard that most people in the SME sector will not be going for the specially designed Small Business package, but rather for the e-mail only. Uptake for Sharepoint and collaboration tools like Sharepoint/Lync is quite rare based on my experience across the entire sector. To have fifteen users on this system, would cost around £500 a year. The average life that people actually use an SBS server for (contrary to what you read on cloud provider websites) is usually, on average, four years. Some will push it to five. Even using the conservative estimate, this would then cost the company £2000 over the course of four years. I can currently pick up SBS 2011 for around £500, with additional cals at approximately £350, and give the same functionality, for many more years, plus a LOT more for half the price.

This is going to be a big problem for clients who are on a shoe string budget, and it is going to be exceptionally difficult for an MSP/VAR to sell this solution to existing and new clients. Only the future will see how the industry reacts. When SBS 2011 goes EOL at the end of 2013 it will certainly be interesting to see where the majority of people are going in terms of cloud and local servers.

 

 


Protected: Untested VBScript to Reboot a PC x number of times

This post is password protected. To view it please enter your password below:


Blackberry, ever wonder why you are failing in the SME sector?

Blackberry Handset

Haha I'm a blackberry!

For the past numbers of years I have built up almost a zen like level hatred when it comes to Blackberry handsets. It’s not so much the handsets themselves (other than the ridiculous placement of certain options), but more the software that powers the e-mail delivery (Blackberry Express).

BES Express is up there in my top 10 most hated software’s of all time. The installation document for it in our office is many pages long and usually takes one of our engineers an entire afternoon to configure and install. As soon as it starts running the problems start, the services spool up and boom! One gig of RAM; gone. Servers that are running SBS usually don’t have buckets of RAM to spare just so three users at a small business can get their e-mails on their phones. I’ll not go into the other problems installing BESX on your server causes, but needless to say, they are numerous. If you have ever installed it more than once, you know what I mean.

I have done quite a few BESX rollouts in my time, from the enterprise version through to the more recent express and none of them have gone smoothly. There has always been some problem, somewhere along the line. Even when you have the server component installed, you login to the administration portal and you are presented with a terribly designed site that gives you every option you could ever want, other than the ones you actually need (like quickly and easily deleting a user).

If by some miracle you have managed to successfully add one user in there without an issue, then the fun really starts; navigating your way to the nightmare desktop portal to “synchronise” your phone for the first time. Using a USB cable. RIM, OTA synchronisation is the way forward! When you have battled with the archaic ActiveX controls, and added the site into your trusted sites etc, you are then presented with something I will give, on average, a 50% chance of working. This is not something your users can do either, as it involves most of the time messing around with IE security settings, so if you have to roll out 30 of these devices you have just wasted a day. A good proportion of the time, it will not even attempt to synchronise and will just sit there grinning at you with its remarkably stupid design, refusing to even give you an error. If you want to track down the problem, good luck with that! If you have ever phoned RIM for support you will know what I mean.

Even when the initial sync is successful, don’t think that is the end of it. I don’t rate the e-mail client on the Blackberry, and getting stuff like sub folders to easily sync can be a nightmare. Then there is the ongoing added maintenance of fixing BES everytime it breaks, monitoring it, restarting your server to free up RAM from its memory issues and countless more issues that it can cause on a server issue.

I am not an Apple fan boy either, but compare this if you will to how easy it is to setup e-mail on an iPhone. You put in a server address, e-mail, a username and password. You can even setup auto-complete so you don’t even need to bother putting in a server address. Choose what you want to synchronise and 95% of the time it just works. Even when it doesn’t work, I can go to a site like Exchange connectivity tester and it will helpfully tell me more or less where the problem is. Active sync is not perfect, but is near angelic compared to Blackberry. This is why the majority of my clients now have iPhones, and it is a trend I am seeing strongly across all SME sectors. For the many days it takes for me to configure a Blackberry, I can have a client setup on their iPhone/Android phone within three minutes of ringing me.

RIM, if you want to make it in the SME sector, make a basic, light footprint, easy to install service which I can put on a server and bundle this with Active sync. Until that time, I will be watching the value of your stock!


Mass check Dell service tags from input file

'========================
strInputFile = "DellServiceTags.txt"
strOutputFile = "Results.csv"

arrHeadings = Array("Service Tag:", "Days Left")

Set objFSO = CreateObject("Scripting.FileSystemObject")
Const intForReading = 1
Set objHTTP = CreateObject("Msxml2.XMLHTTP")

strDetails = """Service Tag"",""System Type"",""Ship Date"",""Dell IBU"",""Description"",""Provider"",""Start Date"",""End Date"",""Days Left"""
Set objInputFile = objFSO.OpenTextFile(strInputFile, intForReading, False)
While Not objInputFile.AtEndOfStream
      strServiceTag = CGNZ54J
      strCurrentTag = ""
      strURL = "http://supportapj.dell.com/support/topics/topic.aspx/ap/shared/support/my_systems_info/en/details?c=in&cs=inbsd1&l=en&s=bsd&ServiceTag=" & strServiceTag & "&~tab=1"
      objHTTP.open "GET", strURL, False
      objHTTP.send
      strPageText = objHTTP.responseText
      For Each strHeading In arrHeadings
            intSummaryPos = InStr(LCase(strPageText), LCase(strHeading))
            If intSummaryPos > 0 Then
                  intSummaryTableStart = InStrRev(LCase(strPageText), "<table", intSummaryPos)
                  intSummaryTableEnd = InStr(intSummaryPos, LCase(strPageText), "</table>") + 8
                  strInfoTable = Mid(strPageText, intSummaryTableStart, intSummaryTableEnd - intSummaryTableStart)
                  strInfoTable = Replace(Replace(Replace(strInfoTable, VbCrLf, ""), vbCr, ""), vbLf, "")
                  arrCells = Split(LCase(strInfoTable), "</td>")
                  For intCell = LBound(arrCells) To UBound(arrCells)
                        arrCells(intCell) = Trim(arrCells(intCell))
                        intOpenTag = InStr(arrCells(intCell), "<")
                        While intOpenTag > 0
                              intCloseTag = InStr(intOpenTag, arrCells(intCell), ">") + 1
                              strNewCell = ""
                              If intOpenTag > 1 Then strNewCell = strNewCell & Trim(Left(arrCells(intCell), intOpenTag - 1))
                              If intCloseTag < Len(arrCells(intCell)) Then strNewCell = strNewCell & Trim(Mid(arrCells(intCell), intCloseTag))
                              arrCells(intCell) = Replace(Trim(strNewCell), "     change service tag","")
                              intOpenTag = InStr(arrCells(intCell), "<")

                        Wend
                  Next
                  'WScript.Echo Join(arrCells, "|")
                  If LCase(arrCells(0)) = LCase("Service Tag:") Then
                        'strCurrentTag = """" & strServiceTag & """"
                        strCurrentTag = ""
                        For intField = 1 To UBound(arrCells) Step 2
                              If strCurrentTag = "" Then
                                    strCurrentTag = """" & arrCells(intField) & """"
                              Else
                                    strCurrentTag = strCurrentTag & ",""" & arrCells(intField) & """"
                              End If
                        Next
                  ElseIf LCase(arrCells(0)) = LCase("Description") Then
                        For intField = 5 To UBound(arrCells)
                              strCurrentTag = strCurrentTag & ",""" & arrCells(intField) & """"
                        Next
                  End If
            Else
                  strCurrentTag = """" & strServiceTag & """,""No warranty information found."""
            End If
      Next
      strDetails = strDetails & VbCrLf & strCurrentTag
Wend
objInputFile.Close
Set objInputFile = Nothing

Set objOutputFile = objFSO.CreateTextFile(strOutputFile, True)
objOutputFile.Write strDetails
objOutputFile.Close
Set objOutputFile = Nothing
Set objFSO = Nothing

MsgBox "Done. Please see " & strOutputFile
'========================

VBscript to recursively uninstall an application

The script below will uninstall anything that was installed with MSIExec. It will go through the display name that you specify and attempt to remove anything that you specify. Be careful what you put in the applicationtouninstall field, if you put just “a” it will uninstall every piece of software with the letter “a” in it. If you want to do the installation quietly, remove passive from the bottom of the script and replace with qn instead. Test it first! I am not responsible for any damage you cause to your own environment with this script!

 

On Error Resume Next
'-----------------------------------------------------------------------
'Author: Gavin Stone
'Date: 10/11/2011
'Description: A script that cycles through the uninstall entries in the register and uninstalls
'			  anything matching a given name
'-----------------------------------------------------------------------


'Edit below this line
'-----------------------------------------------------------------------
'This variable sets the application name to uninstall. Make sure what you get this right, if you
'Put the letter 'a' here for example, it will remove every program that contains the letter 'a'
const ApplicationToUninstall = "AVG"
'Do you wish to force a reboot
Forcereboot = 0
'-----------------------------------------------------------------------
'Do not edit below this line

'Declare registry contacts and objects
const HKEY_LOCAL_MACHINE = &H80000002
WshShell = WScript.CreateObject("WScript.Shell")

'First, connect to the registry and find the uninstall key
RegistryObject = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
RegistryObject.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys

'Loop through each key in uninstall and check for the application to uninstall
For Each subkey In arrSubKeys
    InstalledAppName = ""
    InstalledAppName = WshShell.RegRead("HKLM\" & strKeyPath & "\" & subkey & "\DisplayName")

    If InStr(InstalledAppName, ApplicationToUninstall) > 0 then
		RawGUID = ""
		GUID = ""
		RawGUID = WshShell.RegRead("HKLM\" & strKeyPath & "\" & subkey & "\UninstallString")
		GUID = Mid(RawGUID, instr(RawGUID, "{"), 38)
		If GUID <> "" then
			'Script has a hit, initiate removal
			WshShell.Run "msiexec /x " & GUID & " /passive", 1, true
			Wscript.sleep 5000
		End If
    End If
Next

If ForceReboot = 1 Then
	WshShell.Run "C:\WINDOWS\system32\shutdown.exe -r -t 0"
End If

Why I hate ADSL Broadband

Every time our automated systems alert me to a router down, I die a little inside. Often the problem is simple to fix, I ask the client to reboot the router, and in the majority of cases the ADSL resynchronises and everyone is happy. In some cases, however, this doesn’t work. Usually at this point I will let out an exasperated sigh, because I know what is round the corner. I am one step closer on my self titled ‘ladder of fail’ to contacting BT Openreach.

For an IT technician, ADSL faults are some of the most difficult to categorise and identify as there are multiple factors in play when establishing a connection over a phone line. We will always perform the basic troubleshooting steps before contacting our ISP of choice (Zen Internet). I know that when it gets to this point there is unlikely to be any problem with our clients equipment, the issue is either going to be related to billing (rare) or the most common fault by far, a line or exchange problem. At this point, Zen raise a fault with BT Openreach, and this is usually where the ‘fun’ starts.

I am sure that many people will agree with me when I say BT Openreach are possibly, in my opinion, the worst company in the UK. In a country where business is heavily reliant on decent broadband access, they form the weak link in the chain, and I will explain why. Most people don’t realise that when your broadband has a line fault, regardless of your ISP BT Openreach will have to get involved. They are responsible for maintaining the telephone networks physical wiring and telephone exchanges.


To explain why BT Openreach, and by extension the BT Group are such a cluster of fail, I need to explain how broadband provisioning works.

1) Initial provisioning of the telephone line and a broadband service

One of the major hurdles of getting ADSL broadband to work is it needs to “piggy back” on a working telephone line. With BT’s 21cn network being phased in over the past few years, aiming to digitise systems and exchanges, you would expect the installation and activation of a telephone line would be a simple procedure. Apparently not. It can and does take weeks to get a BT line reconnected (even if the copper is already running into your premises). This can and does take its toll on clients who don’t expect this kind of delay; which is why I need to know about office moves sooner rather than later. Assuming BT have not misdirected the customer and have roped them into a BT Broadband 2 year contract (this has happened multiple times recently), it is now time to provision the broadband service. Depending on your ISP, you can either choose a LLU provider (this means they have their own equipment in the BT Exchange) or you can choose a provider who uses BT’s infrastructure in the exchange to connect their customers to their own data centres. This is something that takes approximately 5 days for people with none LLU providers and weeks for LLU providers. This is the first point at which BT are failing. Provisioning these lines is not technically difficult, infact it takes (as far as I am aware) a few minutes for an engineer to do. It’s the red tape and bureaucratic nonsense that makes the process such a drawn out one.

2) Dealing with line synchronisation problems

Once the ISP have performed their line checks, the fault gets raised with BT Openreach. This is not before you are informed of the lovely “BT Openreach charge” (£125 at this moment) if they come out and find something of yours (router/filter/RJ 11 cable) is causing your issue, after discovering which they will levy the fee. There is your first four hours gone. You can guarantee if this is an intermittent fault that BT Openreach are going to bounce it back as a none issue, if not intermittent they will usually send back a response to your ISP that tells them to tell the customer they are looking into it and the customer should reboot their router or something as equally arbitrary.  This usually results in the ISP bouncing it back telling them it is still not working. We are normally approximately 6-7 hours from initial fault now, which usually spans over two working days. When BT have finally realised that there is an issue, the ISP has to raise a fault for an engineer to come out. Your choices are between 8-1pm and 1-6pm, on a day whenever a BT Openreach engineer is free. If you’re now later in day two you are usually looking at the afternoon of day three, or morning of day four before an engineer is going to come out to look at the problem. When a fault is a complete no synchronisation issue, the BT Engineer is deployed and the this type of problem is usually fixed on first go. The real problem here is the time taken from initial fault to resolution. It can bring entire companies to a standstill with no e-mail or access to internet based services. In some cases they can lose valuable customers/leads, as well as wasting their staffs time as they can’t work.

3) Dealing with intermittent speed or line issues

When you consider the previous fault compared to this one, all things taken into account, BT are actually quite good and quick at resolving no sync issues. Intermittent speed issues though are another basket entirely, a basket weaved entirely of regret, pain and complete and utter headache inducing fail. The easiest way to explain this is by saying that if BT Openreach detect a dial tone and no noise on the line, then they do not care. A fault raised quite recently by one of our clients displayed the complete package when it comes to these types of faults. It took eight days to resolve, and involved over 12 hours for me. The client in question was having performance issues on a line that was exhibiting:

  • Line Attenuation of 12
  • SNR of 5
  • Sync Speed of 21 meg down, 1 up.
When the client downloaded, they were getting approximately 1.3 kbps. That is right! Four times slower than a 56k modem. When the same client uploaded, they uploaded  at around 100kbps, clearly indicating a problem. We replaced all the equipment and we were still having the same issue. The procedure for diagnosing this problem involves the absolutely pointless and ridiculous BT Speedtester, which I have learnt to hate with the burning passion of a billion suns. You see, before BT will even accept that there is a speed issue with the line, you have to run two tests.
The first test is run through your current ISP on the BT Speedtester, then a second test when you place yourself on a BT diagnostic network by changing your broadband routers username and password. The first thing you learn about the BT Speedtester, is it requires Java. Fantastic design from the heroes at BT. With Java having more holes than an eighteen hole golf course, it is not installed on most PCs that we build, unless explicitly necessary. Once you have sourced Java from somewhere and installed it, you start running the test only to be told that the service is currently busy and under high load. Fantastic. I can google any speed test site, and all of them will consistently work, but the speed test you have to run to raise a fault, the service that serves the backbone of the internet and communications in the UK, is often “busy”. I finally made it through the first speed test (which subsequently showed the same issue I already knew about).
On to the second. This was even better! On the BT network the test consistently timed out, and was pulling data down in bytes per second. But guess what; BT will not accept any fault that hasn’t successfully run that test and had it record results. If it times out because your connection is slow; tough. After trying for over five hours, I asked our ISP to raise the fault anyway. They advised that BT would reject it, and they did. It was only through some excellent work and negotiation from the guys at our ISP (Zen) that BT Openreach even accepted a fault request.
Once this was accepted, we finally could get to the root issue. The issue was over subscription in the BT Exchange. BT had limited our ISPs bandwidth. With the advent of more and more technology moving to the web, and the integration of cloud services into the UK, broadband speed and reliability is becoming more and more of an issue. We can never push forward economically with innovative businesses while having a terrible core infrastructure.