How do I install an extension offline?
Author: sourkraut
Creation Date: 8/3/2013 4:20 PM
profile picture

sourkraut

#1
WealthLabPro 6.5.20.0 64 bit
Community.Visualizer_2013.07.wle, located in local folder.

Extenison manager does not offer update (grayed out),
the link to local file flashes briefly, then wants to connect to the internet,
then demands admin access.

This is unacceptable. I don;t mind connecting to the internet, and downloading files
for installation.
I don'nt mind providing administrative access to the installation program,

but not both at the same time.

Earlier versions of various extensions all installed fine via the download, offline, install method.
Why is this visualizer different?

Eb
profile picture

Eugene

#2
No, it is not any different. Correct me if I'm wrong, because what I just read sounds strange: you're stuck in the middle of installation process, switching off the internet connection and denying UAC request to protect from imaginary malware threat?

Normally, if the Extension Manager does not offer to update, you already have the latest version installed. (Version number is displayed next to extension name.) In this abnormal case, however, accessing the internet probably comes from the Extension Manager's option to check for updates on program start. I guess that unchecking this option in the EM should do.

QUOTE:
download, offline, install method


Thanks for the perfect illustration to the genesis of odd problems that nobody else is having or the frustrated technicians are unable to reproduce. It makes clear how to create problems out of the blue by using odd methods based on wrong conclusions. Trust me: once installed by granting admin access, 0-day malware undetected by antivirus may never require admin access to cause real harm, rendering your "offline method" hardly effective.

Anyway, a good lesson for me to learn: I gotta be more cautious and inquisitive when presented with odd problems by some users because these issues may be incurred by very specific usage patterns.
profile picture

Eugene

#3
sourkraut asked:

WLP 6.5.20
Trying to upgrade Performance Visualizer, from 2012.03 to 2013.07
The upgrade button is grayed out.
I downloaded the .wle file.
Pointed to it in the Extension manager.
Upgrade seemed to work. But...

As prompted, I restart WL to complete the installation.

It starts ok, bu almost immediately pops up an error messageL

1. Action: Install File WealthLab.Visualizer.MS123.dll
Result: ! Failed: Failed to connect to an IPC port. The system cannot find the file specified.
(same displayed error twice)

2. Before I finish reading the error messages, WL crashes
Displaying error above grays out, new pop-up "WL stopped working"
I select debug, and get the exception detail below:

System.TypeInitializationException was unhandled
HResult=-2146233036
Message=The type initializer for 'WealthLabPro.MainModule' threw an exception.
Source=WealthLabPro
TypeName=WealthLabPro.MainModule
StackTrace:
at WealthLabPro.MainForm..ctor()
at t.a()
InnerException: System.Runtime.Remoting.RemotingException
HResult=-2146233077
Message=Failed to connect to an IPC Port: The system cannot find the file specified.

Source=mscorlib
StackTrace:
Server stack trace:
at System.Runtime.Remoting.Channels.Ipc.IpcPort.Connect(String portName, Boolean secure, TokenImpersonationLevel impersonationLevel, Int32 timeout)
at System.Runtime.Remoting.Channels.Ipc.ConnectionCache.GetConnection(String portName, Boolean secure, TokenImpersonationLevel level, Int32 timeout)
at System.Runtime.Remoting.Channels.Ipc.IpcClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream)
at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at WealthLab.Extensions.Agent.RemotingUpdateAction.CloseApplication()
at WealthLab.Extensions.ExtensionManager.UpdateExtensions()
at WealthLab.Extensions.ExtensionManager..ctor()
at WealthLab.DataProviders.FidelityAuthenticationProvider.PreInitialize()
at WealthLabPro.MainModule..ctor()
at WealthLabPro.MainModule..cctor()
InnerException:
profile picture

Eugene

#4
Cone responds:

It seems highly probable that the user who tried to install the extension did not have Admin rights, which is required.

Also, for future reference, wle's aren't needed to upgrade. Just find the extension in the Ext. Mgr. and click "Update Now".

profile picture

Eugene

#5
sourkraut replies:

QUOTE:
It seems highly probable that the user who tried to install the extension did not have Admin rights, which is required.


Yes, that's right. I run as unprivileged user. I do everything as unprivileged user.

QUOTE:
Just find the extension in the Ext. Mgr. and click "Update Now".

That option, as I posted before, was grayed out. Probably because I was not running as administrator.
If the grayed out button was a sign, that the Extension manager was aware of the permission status, then why did it procede to update, instead of at least popping up a caution message?

It could have asked for a password, elevated the rights, completed the update, and finally lowered the rights again.

Or it could have popped up a message, pointing out to the unprivileged user, that updating required administrator's rights.
Or it could have just refused to perform the update.

But what did WL do? Without a hint of any problem it merrily perfromed the update, prompted for a restart, and then,

It CRASHED !

Even at this late point WL could have popped up a message, rather than just crashing.

profile picture

Eugene

#6
Your procedure of installing extensions is nothing but convoluted.

1. The upgrade button is grayed out because you do not allow the Extension Manager to connect to our server. (Not because Wealth-Lab runs as unprivileged user which is OK.)
2. "Failed to connect to an IPC Port" is caused by lack of rights (in your case).

Installing extensions will never work properly when user intervenes into the installation procedure by e.g. going offline, preventing apps from elevating user rights, or withdrawing read/write rights. For everyone out there who are not into it, Wealth-Lab does ask for a password, does elevate the rights, successfully completes the update, and finally does lower the rights as you just said.

Solution: stay online, do not reduce any privileges, and simply let the EM do its job.
profile picture

sourkraut

#7
Even if I were to accept the idea of updating while online as administrator, it would not be with crash-prone, and poorly designed interfaces, and priorities in adding popular features, rather than fixing bugs.

Neither the OS, nor my anti-virus program require me to be logged in as administrator for updates. The only time I need to provide a password is if a reboot is required. Even then I do not need admin rights.

Even the least userfriendly updators (Adobe and Sun) allow for downloads, then update offline.

Since you apear to ridicule my efforts in keeping my LAN secure, I see that I will have to take my complaints to a higher level. As much as I like the power of WL strategies, I will not compromise my security for them.
profile picture

Eugene

#8
By Windows design, administrative privileges are required to modify files under Program Files. Internet connection is a natural requirement for comparing versions of extensions. Neither of this is subject to change.

Intervening in the update process (e.g. by going offline or reducing user rights when required) may result in incorrect functioning and therefore is not supported.

The extension update process is believed to be secure even by inquisitive institutions with their strict policies, but of course you have the right to stop using the Extension Manager if you believe it presents a security risk.
profile picture

sourkraut

#9
QUOTE:
administrative privileges are required to modify files under Program Files

I got no beef with that. But responsible software publishers allow offline modifications.

QUOTE:
Internet connection is a natural requirement for comparing versions of extensions.

OK, but this step should not need administrative access. It's not a change so far.

QUOTE:
(e.g. by going offline or reducing user rights when required)

You got this backwards. I wish to go offline, when I elevate user rights.

QUOTE:
update process is believed to be secure

So you expect your users to practice security by obscurity. Yet tens of thousands of computers are hijacked routinely, to serve in botnets, because of this very practice.
profile picture

Cone

#10
There is no Microsoft-supported way that we know of to change files in Program Files without administrative access in Windows Vista, 7, etc. Other applications can't do it either, and those updates could not be making changes to Program Files. (Note that you don't have to be an admin to update your data in Wealth-Lab either.)

You could try to launch Wealth-Lab by right clicking and select "Run as Administrator". I haven't tried that yet for updating an extension, so I'm not certain that it will be successful following the restart. Maybe Eugene knows?
profile picture

sourkraut

#11
Cone,

QUOTE:
There is no Microsoft-supported way that we know of to change files in Program Files without administrative

Well, the supported and logical way is to download the update files, and install them offline, when providing admin access only affects the files being opened. In fact, this technique works with Microsoft updates, when one configures the updates to download and install when user decides its ok.

Your suggestion to
QUOTE:
launch Wealth-Lab by right clicking and select "Run as Administrator".

works, intermittantly.

Installed visualizer (Community.Visualizer_2013.07) successfully.
However, this technique di NOT work trying to install the Morningstar provider. WL crashed on restart.
Restart again, and there was no sign of Morningstar provider.

Used same technique to UNinstall MSN provider. Succeded.
Restart WL as unprivileged user, MSN provider gone. No sign of Morningstar either.


profile picture

Eugene

#12
QUOTE:
No sign of Morningstar either.


This is an easy one, and has a clear explanation. Fortunately, it's not connected to the "offline procedure". A lot of providers (and some other extensions such as Community Components) are using shared libraries, currently:

1. the Market Manager (WealthLab.DataProviders.MarketManager.dll) - used by ASCII, BBFree, Database, DDE, Finam, Google, IQFeed, MetaTrader, Morningstar, MSN, QuoteMedia, and some 3rd party ones

and/or

2. HTMLAgilityPack (HtmlAgilityPack.dll) - powering C.Components, MS123 Fundamental providers, Morningstar, MSN

3. Ionic.Zip.dll - shared between PiTrading and TradingBlox providers

When you uninstall such extension, its shared libraries are removed, breaking all other affected extensions that depend on the shared library. Providers' DataSets will be gone from the DataSets tree, providers will disappear from the "New DataSet Wizard", though at the same time they will remain in the Extension Manager (because it uses Reflection to read library's attributes).

To fix it, get that shared library back by reinstalling the provider. I see no reason for uninstalling extensions, so if you want to have peace of mind, just do not uninstall extensions. :)