View Single Post
  #23  
Old November 2nd 11, 04:04 PM posted to microsoft.public.win98.gen_discussion,microsoft.public.windowsxp.general,alt.windows7.general
Mayayana
external usenet poster
 
Posts: 27
Default Tool to fix IE nags and restrictions

| One option that I don't see immediately available is making Zone 0
| settings visible. Do you have any clues?

That's in there, under the misc. settings, near the
bottom. But in my experience there's a bug or change
in Windows 7. It works with IE5-8 on XP. I haven't
tested on Vista. When I try it with IE8 on Win7 I
find that it makes the computer icon visible for the
local zone, but it doesn't work when clicked!

Also see the "Setting Security Options" window. You
probably already know about this, but Zone 0 is normally
overridden by Local Machine Lockdown. It can also
be overridden by Group Policy settings. And in some cases
it's overriden by HKLM settings. Yet in all cases, what
you see on the Security tab is only your own HKCU
settings coming from:

HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Internet
Settings\Zones\0

So even accessing the Security tab settings for Zone 0
is a mixed blessing.

It's all explained in the "Setting Security Options" window.
There's also a utility there to change all 8 possible settings
at once. (The visible one plus the other 7 that could be
the values actually in effect.) IE settings have become so
convoluted that I decided it was easiest to just write my
scripts to change any security zone value in all 8 possible
locations.

The 8-setting function might also be useful as template
code, but it's a bit tricky to work it out. For convenience
the functions use a simple Registry class, which itself wraps
a more involved Registry class that uses the WMI StdRegProv.
(StdRegProv is so poorly designed that I like to keep at
least 1 class interface between my code and the StdRegProv
functions.

When you click the button for the 8-value setting it calls
ButSetSec_click. That calls SetIESecVal8 in the main class.
That calls SetIESecurityValue in the IERegFuncs class, which
calls Registry functions in the WMI class. SetIESecurityValue
demonstrates the basic operation.

I'm glad you asked about that. I just found a typo that
would cause the 8-value setting to fail. Where it
was like this:

Public Sub SetIESecVal8(sVal, iVal, sZone, DType)
SetIESecurityValue sVal, iVal, sZone, DataType
End Sub

when it should have been like this:

Public Sub SetIESecVal8(sVal, iVal, sZone, DType)
CReg.SetIESecurityValue sVal, iVal, sZone, DataType
End Sub

( I've been searching for typos and bugs for days, but it's
a big code base and I missed that one. An updated version
has been uploaded.)