Hi Everybody,

I create a lot of msi package with Adminstudio, we create the package msi in a shared directory by a network drive example in \\srv0000\packaging\"Name of the application" but after in order that the users use this package we put the msi file in another network share where users have access rights. We put this path in Behavior and Logic\Property Manager in AdminStudio creating the property SOURCELIST with the UNC path of our package \\SRV0000\MSI$. But when the application has something to install in the user profile it looks after the MSI package (for advertised icon) and by default it searchs on \\srv0000\packaging\"Name of the application" first where user don't have access and the network share where we always put the MSI for the users \\srv02101\MSI$ comes in second, how can we do to put our MSI share in first (actually we should better put only this share as the only Sourcelist for the MSI), so users wouldn't have anything to do ?

Thanks a lot for any help
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
Not totally sure I've understood, but you could try running this vbscript on existing installations:

Const sPRODCODE = "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"

Const sNEWSOURCE = "\\srv02101\MSI$\"

Set oInst = CreateObject("WindowsInstaller.Installer")

oInst.ClearSourceList sPRODCODE, ""

oInst.AddSource sPRODCODE, "", sNEWSOURCE

Set oInst = Nothing
Answered 02/09/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
0
Thanks for your help Wiseuser but I don't really know if your answer apply to my problem ...
Actually I am afraid that my explanations were not very clear (actually English is not my native language)

I will try to be more clear:
I create advertised MSI package with Adminstudio, I am creating this package on a "work directory" and after I put the msi file in a network share wich the users can reach thus when the users launch the application for the first time, the msi file is available for any user's profile changes.

I have defined a SOURCELIST value, in my ISM file, who points towards my MSI network share where the users have Access rights.
But when AdminStudio create the package it puts my "work directory" as first so the first path proposed to the user when the msi is launched is my "work directory" where the users don't have the right access so the customized installation for the user can not work. The path that I put in the SOURCELIST property comes in second but I would rather configure my MSI package so that the path that I put in the SOURCELIST property, is the first available so the users would have nothing to do ...

I hope it is more clear now, thanks for any help
Answered 02/10/2005 by: JGL59
Senior Yellow Belt

Please log in to comment
0
I think I have understood the problem (sort of) - although I know little about Installshield products.

When an MSI requires the original source, it should default to the location that it was originally installed from.

You can find out where that was b y running the following vbscript on a machine that has your MSI installed:

Const sPRODCODE = "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"

Set oInst = CreateObject("WindowsInstaller.Installer")

msgbox oInst.ProductInfo(sPRODCODE, "InstallSource")

Obviously, you need to replace the Xs above with your actual ProductCode (from property table).

You can also find this path (and others you may have added) under the following registry locations:

"HKCR\Installer\Products\<GUID>\SourceList\LastUsedSource"
"HKCR\Installer\Products\<GUID>\SourceList\Net\1"

Note that both of these keys are of the "REG_EXPAND_SZ" type which means that you can use windows environment variables in your source paths.

If you're having problems, I'm assuming that you've either tampered with your source list, moved/deleted the original source, or your users don't have access to the location the MSI was installed from.

The script I provided before, should allow you to modify the location that Msiexec.exe will look for your MSI. In other words, the value of the following key will change:

"HKCR\Installer\Products\<GUID>\SourceList\Net\1"

Running the following script (or a manual repair) should change the other key:

Const sPRODCODE = "{17DAB648-906B-4C29-B296-6FD780708377}"

Const msiReinstallModePackage = 1024

Set oInst = CreateObject("WindowsInstaller.Installer")

oInst.ReinstallProduct sPRODCODE, msiReinstallModePackage

Set oInst = Nothing

I hope this helps?
Answered 02/10/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
0
Thanks a lot WiseUser, this is interresting indeed I have already use the script but how can I easily find the sProdCode XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX it changes with every application and maybe also for each installation ?

Thanks a lot
Answered 02/16/2005 by: JGL59
Senior Yellow Belt

Please log in to comment
0
The ProductCode property can be found in the property table.

Create a vbscript with the following content:

Const msiOpenDatabaseModeDirect = 2

Set oInst = CreateObject("WindowsInstaller.Installer")

sDBPath = Wscript.Arguments(0)

Set oDB = oInst.OpenDataBase(sDBPath, msiOpenDatabaseModeDirect)

sQuery = "SELECT `Value` FROM `Property` WHERE `Property` = 'ProductCode'"

Set oView = oDB.OpenView(sQuery)

oView.Execute

Set oRecord = oView.Fetch

InputBox "ProductCode is the following:", "PRODUCT CODE", oRecord.StringData(1)

Set oRecord = Nothing

Set oView = Nothing

Set oDB = Nothing

Set oInst = Nothing


Now "drag and drop" an MSI file onto your script to get the product code. You'll get an error message if you don't drop an MSI on the script (or provide a path on the command line).
Answered 02/16/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
0
Thanks a lot for your help Wiseuser that helps us a lot Thanks
Answered 02/21/2005 by: JGL59
Senior Yellow Belt

Please log in to comment
0
Did I help you enough to deserve a rating for any of the posts you found useful?

Just checking.[;)]
Answered 02/22/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
Answer this question or Comment on this question for clarity