UEV now included in Windows 10 1607 (and above)

User Experience Virtualization (UEV) use to be part of the MDOP packs…. however MDOP’s last update was in 2015…. leaving some of us wondering what was happening to awesome tools contained within.

Given Microsoft’s recent desire to destroy anything and everything that isn’t cloud – irrelevant of its ability to fill gaps that cloud services don’t currently service well, or their ability to facilitate migration to cloud – it seemed likely that these tools were dead.

Fortunately for UEV, its now included in Windows 10 Enterprise as a default service, for versions 1607 and 1703 (and we may be able to assume future releases as well). Some details on the release are here – https://docs.microsoft.com/en-us/windows/configuration/ue-v/uev-whats-new-in-uev-for-windows

Unfortunately, in standard Microsoft fashion, the documentation is not good.

The UEV documentation is located here – https://docs.microsoft.com/en-us/microsoft-desktop-optimization-pack/uev-v2/deploy-required-features-for-ue-v-2x-new-uevv2

However, there are a few, quite important things that anyone deploying this should be aware of

  • Even though it isn’t stated anywhere in the doco, and seems quite counter-intuitive based on what’s presented in the GPO settings, the default Microsoft included templates do not automatically register on clients. These can be copied to your custom templates path, or you can register them with powershell on each machine as per http://ccmexec.com/2017/02/synchronizing-ie-favorites-with-ue-v-in-windows-1607/
  • The UEV template generator is part of the ADK (1607 or 1703) – however, it does not show up if you try and run the ADK installer on Windows 8.1 or server 2012 R2. I haven’t tried on Windows 10 versions below 1607 or 1703 – but it will show/be installable on those versions.

Migration of public folders to exchange 2013/2016

I’ve done a few of these…. but most corporates (at least that I’ve dealt with) use public folders quite lightly – if at all…. so the migrations have been quite simple.

 

Recently, I was tasked with moving a smaller business (through a partner) from 2007 to 2013 then 2016.

The mailbox move from 2007 to 2013 went flawlessly.

Then we came to their public folders…. approx. 400GB – from which they apparently run a lot of their business.

Ran through the (painful) process of removing trailing spaces, backslashes, dead permissions etc… not hard – just slow, manual and annoying.

There is an article here that talks about the hassle of migrating PF’s – https://thoughtsofanidlemind.com/2013/12/13/migration-modern-public-folders/

On the first migration attempt, the extent of these corrupt items and oversize items was discovered (3000 corrupt items and hundred’s of items that were oversize) – then discussed with the business.

So here we have the first fucking boomingly huge issue with public folder migration…. there are no powershell commandlets to help you get the size of items (you can get the size of folders, but that’s not helpful) that will be considered oversize… so you cannot identify these items prior to migration. To add to that, even if you could identify them, there is no nice way to say “export these items to PST, then delete” or as part of the migration batch “migrate all large items”

The next issue here is that through the GUI, you can see a list of skipped items and why they were skipped (corruption or oversize) – there doesn’t appear to be way to get this information via powershell so you nicely export it and give it to the customer (or sort it yourself)

The business stated that corrupt PF’s weren’t vital, but the large items were needed.

Even after lifting the size limit to 500MB, there were still lots of items that were too large.

I tried to accommodate these large items and found the exchange migration mailbox (a default database which I leave in the default location) – which should only ever be used in transit, proceeded to grow, fill up the disk that logs were on and cause a dirty shutdown and corruption…  so I haven’t my lesson there…. if a client is using PF’s as a file store for items of 500mb over – refuse to migrate until these items are removed…. (unfortunately you need run a “dummy migration” then look at the skipped items list to identify these items!)

Anyway – long story short – the moral of this, very annoyed, story

Public folder migration to Exchange 2013/2016 sucks. It has clearly been put in as an after-thought to appease some organisations – and is only suitable for light users of PF’s

If a customer is a heavy public folder user, do not change the default “large item” size to accommodate them. Refuse to migrate them and notify them the items will be lost.

 

Outlook HTML…. holy shit that’s bad.

Recently, I made up a HTML template to use with some summaries we send out to clients – I thought it would look a bit more professional than our existing text with an attached PDF.

I got the HTML looking nice, plugged it into the VS project, and generated some emails…

<eyes pop from sockets> Holy shit that looks terrible! The rendering is all over the place!

After a bit of poking around the web, I found that the rendering engine for outlook since 2007 has been the word html rendering engine – and to say its an unpopular choice would be a massive understatement.

My campaign looks bad in Outlook

It’s Not You, It’s Outlook – The Complete Guide for Email Marketers

A Guide to Rendering Differences in Microsoft Outlook Clients

Microsoft defends Outlook HTML decision

 

I ended up “editing” my html with word, accepting that it was never going to look good, saving the massively increased html “template” – and using that.

It looks nowhere near as good, the HTML content has gone from 1k to 41k and I have learn the valuable lesson of checking before saying “how hard can something really basic like that be?” to coders when they cannot do something that, on the face of it, would seem incredibly basic.

Good work Microsoft – your ability to introduce absurd amounts of complexity for no benefit is second only to the Australian federal government.

Azure AD sync objects not syncing – specifically some room and equipment mailboxes

I have a client who is slowly going to O365 and has asked us to pick up where another consultancy left off.

Some objects were not syncing with O365, even though the OU was included in the AADConnect config.

First issue was easy – the UPN suffix on a number of objects had not been changed, updated that, away they went.

The next issue, took me a while to suss out.

Within the Synchronisation service manager, I could see there was 22 “disconnects”… but no details on what that meant…. took a while, but I found that the issue was caused by the mailboxes which were listed as object type “placeholder”. So…..

Open Synchronisation Service Manager

Go to connectors

Right click on your AD connector and select “Search connector space”

Optionally specify a DN to search

Find objects that have a “object type” of “placeholder”

placeholder

I tried a number of things to try and get rid of “placeholder” – in the end, it was a simple password reset…. don’t have to enable the account, just set the password to something valid, and then it will sync in AADConnect fine.

Considering the accounts are all disabled, and therefore resetting all the passwords doesn’t matter, I ran the following powershell over the top-level resources OU

Get-ADUser -Filter * -SearchScope Subtree -SearchBase “OU=Resources,OU=Contoso,DC=au” | Set-ADAccountPassword -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “ComplexPassword” -Force)

 

 

 

Parallels phone spam

Recently, my staff an I have been subjected to a bunch of phone call spam from http://www.parallels.com

I’m getting calls from a UK number, + 442033276423, asking us to partner…. the first time, it was “no thanks”, subsequent calls have been met with less friendly suggestions, and then a block.

Still, no company with decent software needs to engage in this type of activity – avoid.

*update 4/10/2016*

They still call persistently, two times a day, leaving “silence” voice mails after their number has been blocked. There doesn’t seem to be a way to block the number and prevent them from leaving voicemail…. any app developers out there want to write an app to do that? (if you can do that). Its a windows 10 phone, so you’d have to be willing to write an app for a platform that commands a whopping 0.7% of the handset market and, based on the complete lack of support from Microsoft and the rumour mill, unlikely to exist for much longer!

PS Now… on PC

This – http://blog.us.playstation.com/2016/08/23/playstation-now-coming-to-pc-dualshock-4-usb-wireless-adaptor-unveiled/

is awesome.

Assuming it works, and the performance is ok, ill be signing up.

Although its unlikely at release, it would get even better if I could play my one and only PS3 store game, Super Stardust HD.

Microsoft have right royally fucked PC gamers by forcing “Play anywhere” games to be played via the completely shithouse, and non-gaming-aimed, UWP and only on Windows 10.

Sony, it looks like are targeting 7,8.1 and 10…. hopefully it wont have any lame-arse, shit-for-brains nobbles like the xbox “play-anywhere” (was long as you define “anywhere” as within the windows store only on Windows 10)…..

Lumia 550 – Good…. until you try and get a replacement battery

I wrote previously about how good the 550 is for a $200 phone.

Sure, its a little slow sometimes…. but overall, its very good.

Lately, my battery life has been quite diminished…. as per all batteries once they get a little older.

Went online to find a new battery, bl-t5a…. could only find them from US, French or Spanish ebay sellers, who wont ship internationally… the local retailer I purchased the phone from (JB Hifi) doesn’t stock batteries… battery specialist stores, such as battery world cant get them… and Microsoft… well, im not insane enough to even try contacting them.

So, the long and short of it… im screwed. I now get approx. 4-6 hours stand-by time on my phone and basically cannot get another battery for it.

This, extremely important and very unexpected issue, means that the 550, and any other phone without a battery commonly used by android phones has to go in the “avoid at all costs” bucket…… which is unfortunate.

Upgrading Hyper-V integration components via SCCM

Keeping Hyper-V integration components up to date on all your hyper-V guests has a few options, Powershell and SCO being the common ones…. but im one of these whacky people that likes to keep deployment tasks within my deployment tool – SCCM.

Unfortunately, the integration services version doesn’t seem to be exposed via properties exposed by default to SCCM, such as hardware inventory (which includes add/remove programs).

Due to this, we have to use software inventory.

To this end, I enable software inventory for C:\Windows\System32\drivers\vmbus.sys

The version of this, once reported, isn’t quite clean. Instead of 6.3.9600.18398, we get “6.3.9600.18398 (winblue_ltsb.160625-0600)”, so this is what needs to be used in your collection queries in order to have anything show up in your collections.

The resulting query ends up like this

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_SoftwareFile on SMS_G_System_SoftwareFile.ResourceID = SMS_R_System.ResourceId where SMS_G_System_SoftwareFile.FileName = “vmbus.sys” and SMS_G_System_SoftwareFile.FileVersion = “6.3.9600.18398 (winblue_ltsb.160625-0600)”

Licensing mode for the Remote Desktop Session Host is not configured

Had a situation recently when building a 2012 R2 RDS farm that the message

“Licensing mode for the Remote Desktop Session Host is not configured

kept appearing, even though the licensing server was activated etc. and the server was configured to use it.

Thankfully, this site had the answer

http://www.tbngconsulting.com/blog/bid/404182/Licensing-mode-for-the-Remote-Desktop-Session-Host-is-not-configured

$obj = gwmi -namespace “Root/CIMV2/TerminalServices” Win32_TerminalServiceSetting
$obj. SetSpecifiedLicenseServerList(“licserver.domain.local”)

HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core\LicensingMode
Change the DWORD to 2 for Per Device or 4 for Per User

 

Update 6/09/2016

An employee mentioned to me that setting the license server and licensing mode via group policy also seems to get around this bug

Computer Policy\Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host