Go Back   PackageDeploy Application Packaging Forums > Package Development > Application Packaging > Windows MSI

Reply
 
LinkBack Thread Tools Display Modes
Old 12-19-2008, 03:12 AM   #1 (permalink)
Pavel Minaev
Guest
 
Posts: n/a
Default Registry value not written when installing via published MSI

Hi,

I have an .msi package (created using WiX3, if that is of any
importance) that writes a registry value under HKLM during
installation. Naturally, this requires admin privileges. For local
installs under Administrator, it works fine. However, when I tried to
publish that MSI via a group policy, and then install it on another
machine under Power User account, that registry value was not written.
The installation itself was reported as successfully completed, and
all application files were copied properly; the issue is just with
that registry value.

What's even more weird is that it does create the parent registry key,
and it does create the registry value underneath... but it's blank -
the proper value (which is the serial number user enters in the
registration dialog) is not entered into it.

On the other hand, when installing from a published MSI using local
Administrator, the registry value gets written. One could think it is
a permission problem, but 1) It can create all the registry keys and
the value, it just doesn't write the actual value into it - so
permissions are seemingly fine, and 2) If it is a permission problem
nonetheless, how come the installer doesn't complain?
  Reply With Quote
Old 12-19-2008, 03:12 AM   #2 (permalink)
Dennis Bareis
Guest
 
Posts: n/a
Default Re: Registry value not written when installing via published MSI

Hi,

On Wed, 8 Oct 2008 04:40:08 -0700 (PDT), Pavel Minaev <int19h@gmail.com> wrote:

>On Oct 8, 10:30*am, Dennis Bareis <dbar...@newsgroup.nospam> wrote:
>> I think a better question is where does the serial number's
>> value come from and why this is failing... *

>
>The serial is coming from a dialog, which is described in the .wxs
>file like this:
>
> <Dialog>
> ...
> <Control Id="LicenseKey" Type="MaskedEdit" X="20" Y="139"
>Width="320" Height="15" Property="PIDKEY" Text="[PIDTemplate]" />
> ...
> </Dialog>
>
>The dialog is displayed correctly during installation. After that, the
>registry key is written like this:
>
>
> <Component Id="SerialRegistryKey" Guid="b49a7816-63e4-4d6b-b41d-
>f50a9ae92e4f" Permanent="yes">
> <RegistryValue Root="HKLM" Key="Software\!(loc.Manufacturer)\!
>(loc.Product)" Name="Serial" Type="string" Value="[PIDKEY]"/>
> </Component>
>
>The log shows that it is being written to the registry:
>
> ...
> Action 17:26:17: WriteRegistryValues. Writing system registry
>values
> WriteRegistryValues: Key: \Software\Company\AppName, Name: Serial,
>Value: 111-1111111
> Action 17:26:17: RegisterUser. Registering user
> RegisterUser: {CE4E5D5C-3913-4FD5-A431-5995233B0CE9}
> Action 17:26:17: RegisterProduct. Registering product
> RegisterProduct: {CE4E5D5C-3913-4FD5-A431-5995233B0CE9}
> ...
>
>So there's no mention of failure in the log. But the value is not
>actually getting written, as I've described in a previous post.


If it were failing then Windows Installer would detect it.

Perhaps its being overwritten later then, either way the SysInternals
tool "Process Monitor" will show you access to that registry and return codes etc.
I'd filter on "RegWrite" or the keyname etc (otherwise you'll get swamped).

Bye,
Dennis
Dennis Bareis [Microsoft MVP] (dbareis@KillSpam.gmail.com)
http://dennisbareis.com/
Freeware Windows Installer creation tool (+ "ORCA automation"):
http://makemsi.dennisbareis.com/
  Reply With Quote
Old 12-19-2008, 03:12 AM   #3 (permalink)
Adrian Accinelli
Guest
 
Posts: n/a
Default Re: Registry value not written when installing via published MSI

"Dennis Bareis" <dbareis@newsgroup.nospam> wrote in message
news:rl8re4dju9p7fjlstch76lorkil71jkhha@4ax.com...
> Hi,
> On Wed, 8 Oct 2008 04:40:08 -0700 (PDT), Pavel Minaev <int19h@gmail.com>
> wrote:
>> On Oct 8, 10:30 am, Dennis Bareis <dbar...@newsgroup.nospam> wrote:
>>> I think a better question is where does the serial number's
>>> value come from and why this is failing...

>> The serial is coming from a dialog, which is described in the .wxs
>> file like this:
>> <Dialog>
>> ...
>> <Control Id="LicenseKey" Type="MaskedEdit" X="20" Y="139"
>> Width="320" Height="15" Property="PIDKEY" Text="[PIDTemplate]" />
>> ...
>> </Dialog>
>> The dialog is displayed correctly during installation. After that, the
>> registry key is written like this:
>> <Component Id="SerialRegistryKey" Guid="b49a7816-63e4-4d6b-b41d-
>> f50a9ae92e4f" Permanent="yes">
>> <RegistryValue Root="HKLM" Key="Software\!(loc.Manufacturer)\!
>> (loc.Product)" Name="Serial" Type="string" Value="[PIDKEY]"/>
>> </Component>
>> The log shows that it is being written to the registry:
>> ...
>> Action 17:26:17: WriteRegistryValues. Writing system registry
>> values
>> WriteRegistryValues: Key: \Software\Company\AppName, Name: Serial,
>> Value: 111-1111111
>> Action 17:26:17: RegisterUser. Registering user
>> RegisterUser: {CE4E5D5C-3913-4FD5-A431-5995233B0CE9}
>> Action 17:26:17: RegisterProduct. Registering product
>> RegisterProduct: {CE4E5D5C-3913-4FD5-A431-5995233B0CE9}
>> ...
>> So there's no mention of failure in the log. But the value is not
>> actually getting written, as I've described in a previous post.

> If it were failing then Windows Installer would detect it.
> Perhaps its being overwritten later then, either way the SysInternals
> tool "Process Monitor" will show you access to that registry and return
> codes etc. I'd filter on "RegWrite" or the keyname etc (otherwise
> you'll get swamped).
> Bye,
> Dennis
> Dennis Bareis [Microsoft MVP] (dbareis@KillSpam.gmail.com)
> http://dennisbareis.com/
> Freeware Windows Installer creation tool (+ "ORCA automation"):
> http://makemsi.dennisbareis.com/



Don't forget to make sure that PIDKEY is included in your MSI's
SecureCustomProperties property value. Any public property you want to
survive the transition from UI to Execute sequence has to be included there
or else non-admins will not be able to change those values.

Check for log entries on server side that say "Ignoring disallowed property
XXXXXXX" each of these property values are tossed out by the Server because
they are not in the SecureCustomProperties value (semicolon delimited list).

Sincerely,
Adrian Accinelli


  Reply With Quote
Old 12-19-2008, 03:12 AM   #4 (permalink)
Dennis Bareis
Guest
 
Posts: n/a
Default Re: Registry value not written when installing via published MSI

Hi,

On Tue, 7 Oct 2008 06:04:59 -0700 (PDT), Pavel Minaev <int19h@gmail.com> wrote:

>I have an .msi package (created using WiX3, if that is of any
>importance) that writes a registry value under HKLM during
>installation. Naturally, this requires admin privileges. For local
>installs under Administrator, it works fine. However, when I tried to
>publish that MSI via a group policy, and then install it on another
>machine under Power User account, that registry value was not written.
>The installation itself was reported as successfully completed, and
>all application files were copied properly; the issue is just with
>that registry value.
>
>What's even more weird is that it does create the parent registry key,
>and it does create the registry value underneath... but it's blank -
>the proper value (which is the serial number user enters in the
>registration dialog) is not entered into it.
>
>On the other hand, when installing from a published MSI using local
>Administrator, the registry value gets written. One could think it is
>a permission problem, but 1) It can create all the registry keys and
>the value, it just doesn't write the actual value into it - so
>permissions are seemingly fine, and 2) If it is a permission problem
>nonetheless, how come the installer doesn't complain?



I think a better question is where does the serial number's
value come from and why this is failing...

What does a verbose log say?:

http://makemsi-manual.dennisbareis.com/logging.htm

Bye,
Dennis
Dennis Bareis [Microsoft MVP] (dbareis@KillSpam.gmail.com)
http://dennisbareis.com/
Freeware Windows Installer creation tool (+ "ORCA automation"):
http://makemsi.dennisbareis.com/
  Reply With Quote
Old 12-19-2008, 03:12 AM   #5 (permalink)
Pavel Minaev
Guest
 
Posts: n/a
Default Re: Registry value not written when installing via published MSI

On Oct 8, 10:30*am, Dennis Bareis <dbar...@newsgroup.nospam> wrote:
> I think a better question is where does the serial number's
> value come from and why this is failing... *


The serial is coming from a dialog, which is described in the .wxs
file like this:

<Dialog>
...
<Control Id="LicenseKey" Type="MaskedEdit" X="20" Y="139"
Width="320" Height="15" Property="PIDKEY" Text="[PIDTemplate]" />
...
</Dialog>

The dialog is displayed correctly during installation. After that, the
registry key is written like this:


<Component Id="SerialRegistryKey" Guid="b49a7816-63e4-4d6b-b41d-
f50a9ae92e4f" Permanent="yes">
<RegistryValue Root="HKLM" Key="Software\!(loc.Manufacturer)\!
(loc.Product)" Name="Serial" Type="string" Value="[PIDKEY]"/>
</Component>

The log shows that it is being written to the registry:

...
Action 17:26:17: WriteRegistryValues. Writing system registry
values
WriteRegistryValues: Key: \Software\Company\AppName, Name: Serial,
Value: 111-1111111
Action 17:26:17: RegisterUser. Registering user
RegisterUser: {CE4E5D5C-3913-4FD5-A431-5995233B0CE9}
Action 17:26:17: RegisterProduct. Registering product
RegisterProduct: {CE4E5D5C-3913-4FD5-A431-5995233B0CE9}
...

So there's no mention of failure in the log. But the value is not
actually getting written, as I've described in a previous post.
  Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 12:23 PM.


vBulletin, Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
2007 - 2012 PackageDeploy.com