Jump to content

Vista system files win.ini / _default.pif


Recommended Posts

Guest x64@favorite.my
Posted

I am writing an MSI installation package which needs to give Users

access to win.ini and _default.pif, and further to overwrite

_default.pif with a new file. Both of these are in the system root

directory which is usually c:\windows

 

The code I have come up with is;

 

takeown /A /F %systemroot%\win.ini

 

takeown /A /F %systemroot%\_default.pif

 

icacls %systemroot%\_default.pif /grant Users:F

 

icacls %systemroot%\win.ini /grant Users:F

 

This works for Vista. However \windows\_default.pif is a windows

protected file so when the installer tries to write to it, it fails

and the original file remains in place. How can I get around windows

file protection so my installer can write a new _default.pif file?

Alternatively how can I edit the _default.pif file in the MSI install

so the "close window on exit" checkbox gets unchecked, which is what I

am trying to achieve?

 

Next question. How can I differentiate between XP and Vista in my

batch file / command script? I can find no environment variable to

tell me which version of Windows is running, although there is a ver

command to tell the user the version number. Can I pipe the output of

the ver command somehow to get the version number, how would I do

this, and is there a simpler way using a return code from a small C

program or something?

 

Thanks very much for answers. Sorry about the mega crosspost but I

really need to find some answers to these questions.

  • Replies 2
  • Created
  • Last Reply
Guest x64@favorite.my
Posted

I think the file _default.pif cannot be overwritten by my MSI because

it is under Windows File Protection. Even if I delete the file the MSI

still cannot write a new _default.pif

 

Is there any way around this?

 

 

 

On Sun, 09 Nov 2008 20:19:05 +0000, x64@favorite.my wrote:

<span style="color:blue">

>I am writing an MSI installation package which needs to give Users

>access to win.ini and _default.pif, and further to overwrite

>_default.pif with a new file. Both of these are in the system root

>directory which is usually c:windows

>

>The code I have come up with is;

>

>takeown /A /F %systemroot%win.ini

>

>takeown /A /F %systemroot%_default.pif

>

>icacls %systemroot%_default.pif /grant Users:F

>

>icacls %systemroot%win.ini /grant Users:F

>

>This works for Vista. However windows_default.pif is a windows

>protected file so when the installer tries to write to it, it fails

>and the original file remains in place. How can I get around windows

>file protection so my installer can write a new _default.pif file?

>Alternatively how can I edit the _default.pif file in the MSI install

>so the "close window on exit" checkbox gets unchecked, which is what I

>am trying to achieve?

>

>Next question. How can I differentiate between XP and Vista in my

>batch file / command script? I can find no environment variable to

>tell me which version of Windows is running, although there is a ver

>command to tell the user the version number. Can I pipe the output of

>the ver command somehow to get the version number, how would I do

>this, and is there a simpler way using a return code from a small C

>program or something?

>

>Thanks very much for answers. Sorry about the mega crosspost but I

>really need to find some answers to these questions.</span>

Guest x64@favorite.my
Posted

I do the following;

 

takeown /A /F C:\Windows

 

icacls C:\Windows /grant Users:F /inheritance:e

 

takeown /A /F %systemroot%\win.ini

 

takeown /A /F %systemroot%\_default.pif

 

icacls %systemroot%\win.ini /grant Users:F

 

icacls %systemroot%\_default.pif /grant Users:F

 

 

But my MSI install package still does not overwrite _default.pif.

However I can use "copy" command to overwrite _default.pif.

 

How do I get MSI install package to overwrite the file, what do I need

to do? I could perhaps install _default.pif in some other directory

and issue a "copy" command but that would be a roundabout and indirect

way of doing it.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...