Geeks With Blogs
Adam Sills Occasionally I come up with something worthwhile

UPDATE (9/7/2006):
Microsoft closed my bug without really looking at it. I got “not an IE problem“. Luckily, someone else has picked up the cause and resubmitted with a bit more information for me. If you are having this problem and want it fixed (because ShellExecute=false may not work for you), then go here and vote/validate the bug:
https://connect.microsoft.com/IE/feedback/ViewFeedback.aspx?FeedbackID=180644

UPDATE 2 (9/18/2006):
Microsoft closed the new bug again without really looking at it. “Please see if it happens in Beta 3“ they said. Today I found another variation of what appears to be the same bug.
https://connect.microsoft.com/IE/feedback/viewfeedback.aspx?FeedbackID=202102

Their product feedback process is really a pain. And you can't call product support services on a beta product so you're stuck submitting feedback through a system where feedback gets ignored. GAH.

ORIGINAL:
So I've come across a real interesting side-effect of the IE7 Beta 3 install. A program running as SYSTEM under .NET 1.1 (either as a Windows service or as a scheduled task) cannot start a process using the Process.Start method. It fails with a Win32Exception (”Access is denied”).

A SYSTEM program gets an access denied error? That's an awfully strange effect of a browser update, don't you think? To get this sample program to run as SYSTEM, create a scheduled task and specify SYSTEM as the username (and don't enter a password). Then just right-click the scheduled task and select Execute.

Here's the simple code that fails when run under SYSTEM:

using System;

using System.Diagnostics;

using System.IO;

 

namespace NetUserIE7Tester {

      class Class1 {

            [STAThread]

            static void Main(string[] args) {

                  StreamWriter writer = new StreamWriter( "C:\\ie7netusertest.log", false, System.Text.Encoding.UTF8 );

                  ProcessStartInfo info;

 

                  try {

                        info = new ProcessStartInfo(Environment.SystemDirectory + "\\ipconfig.exe",

                              "/all");

                        info.WindowStyle = ProcessWindowStyle.Hidden;

                        Process.Start(info).WaitForExit();

                  }

                  catch( Exception ex ) {

                        writer.WriteLine( "Exception trying to IPconfig: " + ex.ToString() );

                  }

 

                  writer.WriteLine( "Finished" );

                  writer.Close();

            }

      }

}

 

Note that this is just sample code. It doesn't have to be IPCONFIG.exe, it can be ANY executable (in the case of my program, I'm using one of the NET.exe commands). If you run this program under any other user account (an account that can actually be logged in with) it executes perfectly.

If you're feeling frisky and want to try it out and it breaks on your IE7 Beta 3 install also (Windows XP, .NET 1.1, I haven't tried it on anything else), could you go to this IE7 bug and indicate that you can reproduce it?

https://connect.microsoft.com/IE/feedback/ViewFeedback.aspx?FeedbackID=152600

Posted on Monday, July 3, 2006 7:54 AM .NET , Technical | Back to top


Comments on this post: Unusual IE7b3 bug: SYSTEM applications cannot start programs using Process.Start

# re: Unusual IE7b3 bug: SYSTEM applications cannot start programs using Process.Start
Requesting Gravatar...
You can work around this by creating the registry value:

HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0\1806

And setting it to 0. This will be fixed in the final release of IE 7.

Depending on which account (user context)you are using to start the application you may need to set this value for other users.

In this case you are using the LocalSystem context which looks at HKU\.Default for its HKEY_CURRENT_USER registry settings.

The value gets set for any user that logs on during the initialization of Internet Explorer 7.

Hope that helps.
Left by Gary Yukish on Sep 26, 2006 5:25 PM

Your comment:
 (will show your gravatar)


Copyright © Adam Sills | Powered by: GeeksWithBlogs.net