Deploying OpenOffice 4.1.1 silently using an MSI

I don’t really like OpenOffice. I appreciate its existence, but I try not to use it myself. Some of my users do have a need for it, though – and for it specifically, not just LibreOffice (supported filetypes, not relevant to this post).

Trying to silently deploy OpenOffice is incredibly annoying, though. The downloaded installer extracts files to a user-specified folder. The extracted files include a CAB containing most of the program files; an MSI with most of the installer logic; and an EXE which does very little except handle dialogs for choosing extension associations.

The MSI, unfortunately, is configured to require the EXE to launch it. If you just run the MSI the installation fails.

Much advice online for this sort of rubbish advises you to edit or remove an entry in the LaunchConditions table in the MSI. The entry for OpenOffice is (VersionNT < 600) or (SETUP_USED=1) or Installed.

Editing or removing this does not result in success, however. I think this is something to do with another MSI being extracted to a temporary location, but haven’t bothered to investigate thoroughly.

You can make the MSI bypass the setup.exe requirement by supplying a property on the command line. For example: msiexec /i openoffice411.msi SETUP_USED=1. Putting this property in a transform does not work, however – probably for the same reason that changing the LaunchCondition also doesn’t work.

You can modify the PROPERTY table in the MSI directly, though, and it will retain that property and allow you to bypass setup.exe. Just enter a new PROPERTY called SETUP_USED with a value of 1 and you’re a long way to done. I use InstEdit to do any simple MSI edits or MST generations.

The next big problem is managing the extension associations. There are a number of properties in the MSI related to this. This is from the README accompanying the install, however.

Registration of OpenOffice as default application for Microsoft Office formats can be forced or suppressed by using the following command line switches with the installer:

* /msoreg=1 will force registration of OpenOffice as default application for Microsoft Office formats.
* /msoreg=0 will suppress registration of OpenOffice as default application for Microsoft Office formats.

My experience showed that neither of those do good things. The first will totally supplant MS Office associations. The second will not supplant them, but clear them. Either way, if MS Office is installed, you end up with it not being the default application for its file types.

I created an MST using InstEdit that modified the Registry table. I sorted the Key column alphabetically, then removed any entries pertaining to extensions I wanted unaltered. This MST did seem to apply without issue, and left my file associations alone.

Altogether not much work to make the changes, but a lot of unnecessary hassle caused by design decisions I can’t understand.

Bizarre hardware compatibility problems

I have been using Windows Media Centre since the version accompanying Vista as my main (only) TV source, currently using the Windows 8.1 release. I’ve really liked it as a product – I like the interface, the recording/timeshifting capabilities, guide layout, etc. I’ve also really liked using it with IceTV here in Australia. Recently my HTPC, a low-spec purpose built PC in an Antec Fusion 430 case, had some problems with performance. I suspected the hard drive, a 2TB Western Digital Green drive just over three years old. I thought about replacing the drive, but I’ve been eyeing off an Intel NUC as a replacement HTPC for a little while now and with approval from SWMBO purchased the DN2820FYKH. While it only has a dual-core Celeron, HTPC duties aren’t that onerous, and this model supports hardware offloaded MP4, WMV and MPEG2 decoding – almost all of my media. This was a decision made easier by the fact that I’ve been using a USB dual tuner for the last 8-9 months, and don’t really watch DVDs.

So, NUC + parts = success? Turns out, no. Everything seemed set for success – tuners detected, firmware and drivers updated, almost everything WHQL certified. But, no matter how much I tried, I couldn’t get any channels to scan. I plugged in a different hard drive and loaded Windows 7 – still no joy. The tuner worked fine in my Surface Pro 2, however.

An obscure forum post (obscure enough that I can’t find it today), regarding problems with a different model of NUC and a different hardware item, mentioned a whisper that the 7260 WiFi/Bluetooth card might be the cause. With nothing to lose and other ‘no-money-down’ solutions exhausted, I gave it a go and removed the 7260 mini card. To my surprise, this has fixed the problem.

While it leaves me needing a network cable for my HTPC, otherwise it’s fine.

I am posting this in the hope that someone else might stumble across it and likewise be saved from much frustration.

Aside from this issue, the NUC seems likely to be an excellent HTPC. Performance is adequate for this purpose, power draw is very low, and the device is quiet, compact and unobtrusive. I would like to add a Bluetooth keyboard and mouse instead of the Microsoft Wireless Desktop 3000 set that I have, as the USB receiver takes up one of the limited number of USB ports and has a high power drain (although that kb/mouse set has been fantastic for the very low price).

In summary:
The Intel NUC DN2820FYKH comes with the Intel Wireless-N 7260BN WiFi adapter pre-installed. This adapter caused problems with the operation of my USB connected Leadtek DVB-T Dongle Dual TV Tuner, and seems to likewise cause problems with some other USB devices although I cannot verify this. These problems affected the operation of the tuner, but not its detection by Windows. Possibly, simply disabling the device would be sufficient, but I chose to remove it physically instead, and am now using the LAN port for my network connectivity.

Start Exchange services easily

If you want to start all the necessary Exchange services without starting unnecessary ones (like POP3 and IMAP4) you can use PowerShell from the Exchange Shell using this command:
 
Test-ServiceHealth | Select-Object -Expand ServicesNotRunning | Start-Service
 
Quick, easy, and intelligent.

Set the mail attribute from the UPN

If you use Office 365 with DirSync you’ll know that the email aliases and default reply address are set by the AD attributes mail and proxyAddresses.

If you only need the one alias, and for that alias to be the default reply address, it is sufficient to populate the mail attribute in Active Directory.

I prefer to have the mail and UPN have the same value. To copy the UPN value to the mail attribute for all users without a mail value, open a PowerShell window as an admin on a DC, and import the Active Directory module.

Import-Module ActiveDirectory

Then run the following command, changing the OU as required to suit your purposes.

Get-ADUser -SearchBase "CN=Users,DC=Contoso,DC=com" -filter * -Properties * | Where { $_.emailaddress -eq $null } | % { Set-ADUser -emailaddress $_.userprincipalname }

Server 2012 R2 GUI disappeared? How to re-enable it

I had to remove the .NET 4 feature from a Server 2012 R2 machine to repair the installation after a failed SQL Server 2012 install. When I rebooted, no GUI!

To enable it again, use the command below from an administrative command prompt.

dism /online /enable-feature /all /featurename:Server-Gui-Mgmt /featurename:Server-Gui-Shell /featurename:ServerCore-FullServer

Manually triggering Windows Azure Active Directory Sync

If you’ve set this up to synchronise your users with Office 365 (or any other service which uses Azure AD on the back end) then you’ll have probably read the documentation I did which suggests re-running the setup wizard if you need to synchronise accounts outside the regular every-three-hours default schedule.

Thankfully there is an easier and faster way to do this.

Open PowerShell, and navigate to the install directory for the sync tool. This is probably C:\Program Files\Windows Azure Active Directory Sync. Run .\DirSyncConfigShell.psc1 and a new PowerShell window will open. In that windows run the Start-OnlineCoexistenceSync cmdlet, and your sync will begin.

Thecus NAS devices – when things go weird

I’ve use a few Thecus NAS devices, but most of my experience has been with the N8800Pro and the N5200XXX. Both have, at various times, given me a great deal of grief.

The first thing to note is that these devices are only doing software RAID. This is a pain, because of the performance implications. This is also a boon, because of the recovery options it gives you. Either way, it’s good to know before you buy.

The second thing to note is that a power failure can, on occasion, cause disks in the array to be incorrectly flagged as failed. If you are very unlucky, this may cause your array to not only become degraded, but also just to fail to mount. If you can pull the disks out and identify them, you can force the disk improperly flagged to be marked clean and remount your array. Slot the disks back in to the Thecus (you labelled them, right?) and everything should start normally.

The third thing to note (and the inspiration for writing this post) is that sometimes, when you change the network configuration, the Thecus will start to lie to you. It will claim that it is restarting, but isn’t. Or that it is shutting down, but isn’t. Or that it is changing the network configuration, but, you guessed it, IT ISN’T. Pings are maintained the whole way through these procedures, as is access to the admin web interface.

This is bollocks.

The only way I’ve found to get around this rubbish cleanly is to install the HiSSH module from Thecus. When you have downloaded and installed, make sure you activate it. Use Putty to connect to the IP of the Thecus, and use the username ‘root’ and your usual admin password. The just use the bash command ‘reboot’ and you’re away.

If you own a Thecus NAS and it’s compatible with that module, download, install and activate it now. If things seem screwy, you’ll have another hammer to bash away at the problem with.