The provided manifest file is invalid VMWare OVA

Recently while trying to import the AWS Virtual Tape gateway, I found the OVF template for VMWare was failing to install.

After getting pretty frustrated, I decided to open the OVA file in 7zip and extract the MF file.

What I found was the file contained a lot of whitespaces.

If you remove this whitespace and add this file back to the OVA archive, the OVA will deploy.

Happy days.

OfficeBackgroundTaskHandlerRegistration Flashes a black CMD window every hour

This is an annoying issue I’ve been trying to find the answer to for a couple of days.

I get a quick flash on my screen with a black box which looks like a command window. I finally had this happen on a slow enough computer where I could see where it was running from. See below.

To fix this issue, do the following:

  1. Open task scheduler from the start menu
  2. Find Microsoft Office under tasks
  3. Disable OfficeBackgroundTaskHandlerRegistration

A fix from Microsoft on this issue is underway.

Accessing VMWare CLI via Lenovo IMM2 (KVM)

I’ve just recently run in to a problem trying to access ESXi’s CLI from the console using IMM2 (Integrated Management Module). The KVM seems to be intercepting commands incorrectly. This seems to be the case for a number of KVM tools.

The normal command for accessing the CLI once enabled, is to press ALT+F1. This won’t work. You will need to hold down ALT+Space, release Space and press F1 while keeping ALT held down.

ALT+Space release space ALT+F1

VMWare: Set IP Hash policy via CLI

I recently lost a host at one of my sites which have a failover policy set of IP Hash. No problem, connect a new host remotely and add it back to the network. Problem is, I cannot access this host from vCenter because of this policy. After posting on Reddit, someone gave me the following command to enter via CLI

You will need to enable the CLI from the console -> troubleshooting options.

esxcli network vswitch standard portgroup policy failover set -p "Management Network" -l iphash

Once this is set, you should now be able to see your host from vCenter.

Veeam cannot see ReFS 3.1 volumes in backup (Server 2012 R2)

We had a problem recent where Veeam 9.5 which was installed on Windows 2012 R2 trying to restore from Exchange 2016 on Server 2016 with ReFS datastores.

It turns out, Server 2012 R2 cannot recognise ReFS 3.1 which is on Server 2016. From the screenshot below, this backup is missing two drives which are ReFS:

When logging in to the Exchange server, you will see the correct drives

To fix this you really only have one option: Install Veeam B&R on Server 2016, or at the bare minimum, the mount points on Server 2016.

Once you have a Server 2016 mount point, you will be able to see the ReFS drives.

Method ‘Upgrade’ in type ‘Microsoft.SharePoint.WorkflowServices.WorkflowServiceApplicationProxy’ Sharepoint 2013 pre SP1

We have an old install of Sharepoint 2013 which has the March 2013 PU installed. A bunch of security updates slipped through which patched Sharepoint. You will get the following error:

Method 'Upgrade' in type 'Microsoft.SharePoint.WorkflowServices.WorkflowServiceApplicationProxy' from assembly 'Microsoft.SharePoint.WorkflowServices, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c' does not have an implementation.

This is apparently caused by newer security updates shipping with Sharepoint 2013 SP1 dll files. In order to fix this issue, download and install KB2880963. The install may take some time.

Installing 3CX v15 on Azure with Debian

I spent hours trying to sort out how to install 3CX on Microsoft’s Azure platform. Even though Microsoft Azure has a Debian 8.0 Jessie image, things do not quite go to plan. Also be aware, this isn’t officially supported, and as this post will show, we know why.

Here we go.

    1. Create a new Debain 8 instance in Azure. Configure this however you like.
    2. Once installed, SSH to your new instance.
    3. Once logged in, run the following commands:
      wget -O- | apt-key add -
      echo "deb /" | tee /etc/apt/sources.list.d/3cxpbx.list
      apt-get update
      apt-get install 3cxpbx

      Install all the things.

    4. Once installed, you will see the following. I suggest the web method
    5. You will also need to open this port on Azure
    6. Now we are in business. BUT YOU ARE GOING TO RUN IN TO A BIG ISSUE. This is to do with the default template with the postgres database. If you don’t fix it, you will get the following error (text included for Google searches
      System.Exception: Error in CreatingCloudServerManagementDatabase.sql: 22023: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) ---> Npgsql.PostgresException: 22023: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) at Npgsql.NpgsqlConnector.DoReadMessage(DataRowLoadingMode dataRowLoadingMode, Boolean isPrependedMessage) at Npgsql.NpgsqlConnector.ReadMessageWithPrepended(DataRowLoadingMode dataRowLoadingMode) at Npgsql.NpgsqlDataReader.NextResultInternal() at Npgsql.NpgsqlDataReader.NextResult() at Npgsql.NpgsqlCommand.Execute(CommandBehavior behavior) at Npgsql.NpgsqlCommand.ExecuteScalarInternal() at PostInstall.DBConnection.ExecuteScriptInternal(NpgsqlConnection connection, String sqlQuery, IDictionary`2 parameters) at PostInstall.DBConnection.ExecuteScript(String sqlQuery, IDictionary`2 parameters) at _3CXCloudDBManager.DbConnectionExtensions.ExecuteScript(IDBConnection connection, Object configurationStructure, String scriptText, Boolean asResourceName) --- End of inner exception stack trace --- at _3CXCloudDBManager.DbConnectionExtensions.ExecuteScript(IDBConnection connection, Object configurationStructure, String scriptText, Boolean asResourceName) at _3CXCloudDBManager.CloudDBManager.CreateCloudServerManagementDatabase(IDBConnection superuser, CloudServerManagementDatabaseConfiguration configuration) at PostInstall.SetupExecutor.CreateDatabase(Action`1 stateChanged) at PostInstall.SetupExecutor.ExecuteSetup(SetupSettings setupSettings, Action`1 stateChanged) at PbxWebConfigTool.PbxSetupService.CreatePbxInternal(SetupSettings settings)


    7. Let’s fix this. Trying to login to psql is going to give you an error. So you need to type the following:
      sudo su - postgres
    8. Type psql and enter the followin
       UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';
      DROP DATABASE template1;
      UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1';
      \c template1


    9. Now run through the web setup on http://yourip:5015 and you will no longer get the error

If this saved you a huge amount of pain, please leave a comment 🙂


Over the weekend I’ve been installing Microsoft Server 2016 with Exchange 2016 on top. Once my SSL certificates were loaded, I got the following error when accessing OWA


I’ve seen this before on Apache. However, I was amused that this was an issue with Server 2016 since I thought that Microsoft would have disabled the Cipher suites used which cause this error. Apparently not.

A brute-force way to quickly fix this is to disable SPDY. To do this, open up the following registry key


Add the following two dword keys

EnableHttp2Cleartext 0
EnableHttp2Tls 0

It should look like the following


You can likely disable your offending cipher suites by following these guidelines.

Update 1: I solved my issue by disabling SHA and MD5 hashes on the Exchange server using IISCrypto. See below:

IIS Crypto

Chrome: Aw, Snap – Windows 10

Microsoft has released a new update. This update causes Google Chrome to produce an Aw, Snap error whenever opening Chrome. Even if you click on the settings page.

There have been fixes, such as the –no-sandbox command line. However, this isn’t a nice solution.

The best way (for now), is to set compatibility mode on all users to Windows 7.

To do this, navigate to:

  1. C:\Program Files (x86)\Google\Chrome\Application
  2. Right click on Chrome.exe and select properties.
  3. Click Compatibility
  4. Select Change Settings for All Users
  5. Select Run this in compatibility mode for Windows 7
  6. Click Ok

This will change the compatibility mode for all users. If you do not select all users, the setting will revert after the first time it’s run.