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