OR: How to run multiple TCMD versions side-by-side as a regular user
I found out you don't need administrative rights to install and run TCMD. You don't even have to install TCMD to make it run!
Here's how (based on 64-bit Windows/TCMD, TCMD version 20 and path "C:\Maarten\Multi_TCMD"; change these to your situation):
If not: TCMD is already installed on this machine.
The registration info is in the DLL itself and will get written to HKEY_LOCAL_MACHINE (HKLM)\Software\Classes.
But when it gets read, it gets read from HKEY_CLASSES_ROOT (HKCR). That's how Windows works. Well, at least since Win2000
HKCR is not your regular reghive. It is HKLM\Software\CLASSES *PLUS* HKEY_CURRENT_USER (HKCU) \Software\Classes, where the value in HKCU supersedes the HKLM value.
So, I traced the the HKLM\Software\Classes keys of islicense50.dll, converted them to HKCU keys and put those in the registry instead.
Now, when I start TCC.exe again, it starts without asking for administrative privileges and gives me the TCC prompt.
So far, so good.
Because it is not quite trivial to trace these regkeys - and these will vary upon different versions of the DLL - I searched the internet for a tool that could extract these regkeys.
That way I could convert them (with search and replace) to HKCU keys and import those.
That was the plan at least, but: No luck!
But what I did find was even better: a tool that "reads" the DLL and registers the keys automatically under HKCU instead of HKLM!
It's called RegSvrEx. It is not perfect. It doesn't extract and register all the keys, but the ones missing (Classes\Interface and Classes\TypeLib) aren't really neccessary, anyway. CLSID and APPID are the most important and they do get extracted.
Now you can use TCMD.
Afterwards unreg islicense50.dll (the HKCU keys, that is):
Remarks
- If you use Everything.exe, you probably have to RegSvrEx this too.
EDIT: Turns out this is not needed. See one of the posts below on how to run Everyting as a regular user, too.
Assumptions
Some assumptions which I haven't tested or could not test
If you are only using a regular installed TCMD, it will write (and read) the keys from HKLM (there are no HKCU keys..).
If you follow the "installation" above, there WILL be HKCU keys, so these are the new values that will get read by every TCMD version (that is using islicense50.dll)
As far as I monitored, these regkeys are only read upon starting TCMD. So next scenario will work:
The scenario that might not work is where you first start "floating" TCMD X and then "regular" TCMD: "regular" TCMD then reads the HKCU TCMD X keys, which might be the wrong ones.
After 30 days with an unregistered copy, you are probably no longer allowed to start TCMD ( don't know yet; still 21 days to go ..).
I found a way to circumvent this (keep it at 30 days), but will not make it public (or private; so no need to ask).
Everyone should just buy a copy; it's a great product.
Don't know what will happen when you have a "real" license. As far as I can see, registration can be done in userspace, so no admin rights needed. I would love to hear if this works out OK. Would be perfect for an USB-stick or similar.
I found out you don't need administrative rights to install and run TCMD. You don't even have to install TCMD to make it run!
Here's how (based on 64-bit Windows/TCMD, TCMD version 20 and path "C:\Maarten\Multi_TCMD"; change these to your situation):
- Download a version of TCMD.exe (I tried versions 20, 17 and 11)
- Rename tcmd.exe to tcmd_20.exe (to differentiate between multiple versions)
- Execute: tcmd_20.exe /extract:"C:\Maarten\Multi_TCMD"
- In folder "C:\Maarten\Multi_TCMD" rename the folder 56693B3 (this is different for every TCMD version) to TCMD_20
- CD to TCMD_20
- Run tcc.exe (or tcmd.exe)
If not: TCMD is already installed on this machine.
- Abort / Exit
The registration info is in the DLL itself and will get written to HKEY_LOCAL_MACHINE (HKLM)\Software\Classes.
But when it gets read, it gets read from HKEY_CLASSES_ROOT (HKCR). That's how Windows works. Well, at least since Win2000
HKCR is not your regular reghive. It is HKLM\Software\CLASSES *PLUS* HKEY_CURRENT_USER (HKCU) \Software\Classes, where the value in HKCU supersedes the HKLM value.
So, I traced the the HKLM\Software\Classes keys of islicense50.dll, converted them to HKCU keys and put those in the registry instead.
Now, when I start TCC.exe again, it starts without asking for administrative privileges and gives me the TCC prompt.
So far, so good.
Because it is not quite trivial to trace these regkeys - and these will vary upon different versions of the DLL - I searched the internet for a tool that could extract these regkeys.
That way I could convert them (with search and replace) to HKCU keys and import those.
That was the plan at least, but: No luck!
But what I did find was even better: a tool that "reads" the DLL and registers the keys automatically under HKCU instead of HKLM!
It's called RegSvrEx. It is not perfect. It doesn't extract and register all the keys, but the ones missing (Classes\Interface and Classes\TypeLib) aren't really neccessary, anyway. CLSID and APPID are the most important and they do get extracted.
- Download RegSvrEX (size: 7KB) through [title] (click the "binary" link)
- Put it in "C:\Maarten\Multi_TCMD"
- CD to "C:\Maarten\Multi_TCMD\TCMD_20"
- Run: "..\RegSvrEx.exe" /c IsLicense50.dll
- Start tcc.exe (or tcmd.exe)
Now you can use TCMD.
Afterwards unreg islicense50.dll (the HKCU keys, that is):
- Run: "..\RegSvrEx.exe" /c /u IsLicense50.dll
Remarks
- If you use Everything.exe, you probably have to RegSvrEx this too.
EDIT: Turns out this is not needed. See one of the posts below on how to run Everyting as a regular user, too.
Assumptions
Some assumptions which I haven't tested or could not test
- 64-bit vs 32-bit
- Regular TCMD installation
If you are only using a regular installed TCMD, it will write (and read) the keys from HKLM (there are no HKCU keys..).
If you follow the "installation" above, there WILL be HKCU keys, so these are the new values that will get read by every TCMD version (that is using islicense50.dll)
As far as I monitored, these regkeys are only read upon starting TCMD. So next scenario will work:
- Start "regular" TCMD: keys get read hrom HKLM --> regular TCMD starts
- Start "floating" TCMD version x: X keys are written to (and read from) HKCU --> floating TCMD X starts
- Start "floating" TCMD version y: Y keys are written to (and read from) HKCU --> floating TCMD Y starts
- Exit all 3 TCMD's
- Licensing
After 30 days with an unregistered copy, you are probably no longer allowed to start TCMD ( don't know yet; still 21 days to go ..).
I found a way to circumvent this (keep it at 30 days), but will not make it public (or private; so no need to ask).
Everyone should just buy a copy; it's a great product.
Don't know what will happen when you have a "real" license. As far as I can see, registration can be done in userspace, so no admin rights needed. I would love to hear if this works out OK. Would be perfect for an USB-stick or similar.
Last edited: