binary dreams

a world of 1s and 0s

How to easily reset your UK (or other domain) Windows password

My employer has been migrating to another domain for some time. This has been a problem wh

My employer has been migrating to another domain for some time. This has been a problem when you have to reset more than one password and your e-mail depends on the legacy domain. I found a way where you have no need to login as UK OR wait for Outlook to tell you you need to change your password.

Do this.

  1. Press Ctrl-Alt-Del to view the lock screen menu.
  2. Select Change a password...
  3. Type in your UK login i.e. UK\Username
  4. Enter your old and new passwords.
  5. Click OK.

 

Done!

How to enable your Wix installer to upgrade your application

To  help reduce the amount of manual steps required in my change management form I needed to avoid uninstalling and installing our product.

To do this I found a way in WiX to upgrade the product using the following.

<Upgrade Id="PUT_UPGRADECODE_GUID_HERE">
<UpgradeVersion OnlyDetect="yes" 
Minimum="!(bind.FileVersion.YOUR_PROJECT_DLL.dll)" 
Property="NEWERVERSIONDETECTED" 
IncludeMinimum="no" />
<UpgradeVersion OnlyDetect="no" 
Maximum="!(bind.FileVersion.YOUR_PROJECT_DLL.dll)" 
Property="OLDERVERSIONBEINGUPGRADED" 
IncludeMaximum="no" />
<!-- Detect for changes in 4th field only -->
<UpgradeVersion Property="ANOTHERBUILDINSTALLED" 
Maximum="!(bind.FileVersion.YOUR_PROJECT_DLL.dll)" 
Minimum="!(bind.FileVersion.YOUR_PROJECT_DLL.dll)" 
IncludeMinimum="yes" 
IncludeMaximum="yes" 
OnlyDetect="no" />
</Upgrade>

In your Product.wxs file. Change the ProductId attribute to just an asterisk(*). The UpgradeCode attribute should stay as it is.

<Product Id="*" Name="Your Project" 
Language="1057" 
Version="!(bind.FileVersion.YOUR_PROJECT_DLL.dll)" 
Manufacturer="Your Company Ltd" 
UpgradeCode="PUT_UPGRADECODE_GUID_HERE">

Now add the complete <Upgrade> section. Put it near the top between the <Media> and the <UI> tags.

The <Upgrade> Id in should be the same GUID as the UpgradeCode in the <Product> tag above.

Change the YOUR_PROJECT_DLL to your DLL.  

To stop an install of an older version over a newer version add the following tag before the <InstallExecuteSequence>. 

<CustomAction Id="CA_BlockOlderVersionInstall" 
Error="A later version of [ProductName] is already installed. Setup will now exit." />
<InstallExecuteSequence> ...

Add the following to the start of your <InstallExecuteSequence> tag.

<InstallExecuteSequence>
<Custom Action="CA_BlockOlderVersionInstall" After="FindRelatedProducts">
<![CDATA[NEWERVERSIONDETECTED]]>
</Custom>
<LaunchConditions After="AppSearch" />
<!-- Schedule RemoveExistingProducts early -->
<RemoveExistingProducts After="InstallInitialize" />
... other custom actions ...
</InstallExecuteSequence>

Now test it!