“The feature you are trying to access…” from MSI on local drive

試著忘記壹切 提交于 2019-12-25 01:44:35

问题


This is a follow-up on this question, which was solved by locating the installation package on a local drive.

Unfortunately, it seems that on some machines, this doesn't solve it.

I have the following log available

=== Verbose logging started: 03.07.2013  23:17:03  Build type: SHIP UNICODE 4.05.6001.00  Calling process: C:\WINDOWS\system32\msiexec.exe ===
Resetting cached policy values
Machine policy value 'Debug' is 0
******* RunEngine:
       ******* Product: C:\myInstallation.msi
       ******* Action: 
       ******* CommandLine: **********
Machine policy value 'DisableUserInstalls' is 0
User policy value 'SearchOrder' is 'nmu'
User policy value 'DisableMedia' is 0
Machine policy value 'AllowLockdownMedia' is 1
SOURCEMGMT: Looking for sourcelist for product {88D5305B-8FC3-4197-8482-5383FC7683ED}
SOURCEMGMT: Adding {88D5305B-8FC3-4197-8482-5383FC7683ED}; to potential sourcelist list (pcode;disk;relpath).
SOURCEMGMT: Now checking product {88D5305B-8FC3-4197-8482-5383FC7683ED}
SOURCEMGMT: Attempting to use LastUsedSource from source list.
SOURCEMGMT: Trying source C:\Documents and Settings\user123\Local Settings\Temporary Internet Files\Content.IE5\FALCNH9A\.
Note: 1: 2203 2: C:\Documents and Settings\user123\Local Settings\Temporary Internet Files\Content.IE5\FALCNH9A\myInstallation[1].msi 3: -2147287037 
SOURCEMGMT: Source is invalid due to missing/inaccessible package.
Note: 1: 1706 2: -2147483647 3: myInstallation[1].msi 
SOURCEMGMT: Processing net source list.
Note: 1: 1706 2: -2147483647 3: myInstallation[1].msi 
SOURCEMGMT: Processing media source list.
Note: 1: 2203 2:  3: -2147287037 
SOURCEMGMT: Source is invalid due to missing/inaccessible package.
Note: 1: 1706 2: -2147483647 3: myInstallation[1].msi 
SOURCEMGMT: Processing URL source list.
Note: 1: 1402 2: UNKNOWN\URL 3: 2 
Note: 1: 1706 2: -2147483647 3: myInstallation[1].msi 
Note: 1: 1706 2:  3: myInstallation[1].msi 
User policy value 'SearchOrder' is 'nmu'
SOURCEMGMT: Prompting user for a valid source.
Machine policy value 'DisableBrowse' is 0
Machine policy value 'AllowLockdownBrowse' is 0
SOURCEMGMT: Browsing is enabled.
Font created.  Charset: Req=0, Ret=0, Font: Req=, Ret=Arial
SOURCEMGMT: Now checking product {88D5305B-8FC3-4197-8482-5383FC7683ED}
SOURCEMGMT: Attempting to use LastUsedSource from source list.
Note: 1: 1706 2:  3: myInstallation[1].msi 
SOURCEMGMT: Processing net source list.
Note: 1: 1706 2: -2147483647 3: myInstallation[1].msi 
SOURCEMGMT: Processing media source list.
SOURCEMGMT: Trying media source ;.
Note: 1: 1706 2:  3: myInstallation[1].msi 
SOURCEMGMT: Processing URL source list.
Note: 1: 1402 2: UNKNOWN\URL 3: 2 
Note: 1: 1706 2: -2147483647 3: myInstallation[1].msi 
Note: 1: 1706 2:  3: myInstallation[1].msi 
SOURCEMGMT: Failed to resolve source
MainEngineThread is returning 1612
=== Verbose logging stopped: 03.07.2013  23:17:41 ===

But I can't really draw any useful information out of it, different from the first question where it was clear that the drive the installation package was run from is actually a network drive.

In this case though, the installation resides directly under C:\, but somehow MSI still tries to locate something in Internet Explorers cache files, which I can't wrap my head around.

What's happening here and how can I fix it?

UPDATE

After trying the command

C:\> msiexec /i myInstallation.msi REINSTALL=ALL REINSTALLMODE=vomus /qb

I get an error window telling me

A network error ocurred while attempting to read from the file C:\myInstallation[1].msi

How can this happen when I'm executing (and refreshing) everything from C:?


回答1:


Someone downloaded an MSI and clicked Open so the MSI was installed from the cache. This was an ephemeral location so now you are where you are.

Can you obtain a copy of this MSI from somewhere? If so, copy it to a location you want it to be cached from and run the command msiexec /i foo.msi REINSTALL=ALL REINSTALLMODE=vomus /qb. It will now be cached there.

There are APIs that do the same thing if you need it to be programatic.

Installer Function Reference

MsiSourceListAddSource

Adds or reorders the sources of a patch or product in a specified context.

MsiSourceListAddSourceEx

Adds or reorders the sources of a patch or product in a specified context. Creates a source list for a patch that does not exist in a specified context. Available in Windows Installer 3.0.

MsiSourceListClearSource

Removes an existing source for a product or patch in a specified context. Available in Windows Installer 3.0.

MsiSourceListClearAll

Removes all the existing sources of a specific source type for a specified product instance.

MsiSourceListClearAllEx

Removes all the existing sources of a specific source type for a specified product instance. Available in Windows Installer 3.0.

MsiSourceListForceResolution

Removes the registration of the current source of the product or patch, which is registered as the property "LastUsedSource". This function does not affect the registered source list.

MsiSourceListForceResolutionEx

Removes the registration of the current source of the product or patch, which is registered as the property "LastUsedSource". This function does not affect the registered source list. Available in Windows Installer 3.0.

MsiSourceListGetInfo

Retrieves information about the source list for a product or patch in a specific context.

MsiSourceListSetInfo

Sets the most recently used source for a product or patch in a specified context. Available in Windows Installer 3.0.

MsiSourceListEnumMediaDisks

Enumerates the list of disks registered for the media source for a patch or product. Available in Windows Installer 3.0.

MsiSourceListAddMediaDisk

Adds or updates a disk of the media source of a registered product or patch. Available in Windows Installer 3.0.

MsiSourceListClearMediaDisk

Removes an existing registered disk under the media source for a product or patch in a specific context. Available in Windows Installer 3.0.

MsiSourceListEnumSources

Enumerates the sources in the source list of a specified patch or product. Available in Windows Installer 3.0.




回答2:


Some Background:

Every MSI "remembers" where it was installed from. This information is stored in the keys below: "HKEY_CLASSES_ROOT\Installer\Products\\SourceList\Net"

Every time a MSI is repaired or modified and files are required (all other information is stored in the "c:\Windows\Installer" folder) the source list is evaluated.


Possible Solution:

In your case some user installed a MSI out of the IE cache. you could download the file again, place it somewhere more persistent and edit the SourceList Key(s).

is the product code of the msi in some kind of compressed way, the quickest way to find the right key is to flip the first 8 letters of the product code. for you that would be "HKEY_CLASSES_ROOT\Installer\Products\B5035D88...\SourceList\Net"



来源:https://stackoverflow.com/questions/17464068/the-feature-you-are-trying-to-access-from-msi-on-local-drive

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!