Break ON
Dim $IEARRAY[20]
Dim $SubArray[4]
Global $IArry[20]
Dim $KArry[3]
Global $IEIni
Global $INIFile
Global $Pos
Global $Neg
Global $Blurb
$Pos = " CHECKED"
$Neg = " NOT CHECKED"
$CCS = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet"
$TCPPMTR = "\Services\TCPIP\parameters"
$AFDPMTR = "\Services\AFD\parameters"
$MSK = "HKLM\SOFTWARE\Microsoft"
$WLGN = "\Windows NT\CurrentVersion\Winlogon"
$UIE = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
$MIE = $MSK + "\Windows\CurrentVersion\Internet Settings"
$INIFile = @SCRIPTDIR + "\Output\DATA_@WKSTA.INI"
$IEIni = @SCRIPTDIR + "\Patch Files\IE_Zones.INI"
If Exist (@SCRIPTDIR + "\Output") = 0
MD @SCRIPTDIR + "\Output"
? "Output Directory Created"
If @ERROR <> 0
? " * Error Encountered: " + @SERROR
EndIf
EndIf
CLS
$RE=RedirectOutput (@SCRIPTDIR + "\Output\IEcheck_@WKSTA.txt",1)
; Set the IE worksheet and INI section variables for Windows 2003 and XP. None for Win2k.
Select
Case @DOS="5.2"
$IEESC1 = ReadValue($MSK + "\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}", "IsInstalled")
$IEESC2 = ReadValue($MSK + "\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}", "IsInstalled")
If $IEESC1="1" And $IEESC2="1"
$WrkSht="IE Checklist-W_IEESC"
$INISec="IEESC_Info"
Else
$WrkSht="IE Checklist-NO IEESC"
$INISec="IENoESC_Info"
EndIf
$=WriteProfileString ($INIFile,"IE_INFO","IE_Worksheet_CU",$WrkSht + " (CU)")
$=WriteProfileString ($INIFile,"IE_INFO","IE_Worksheet_LM",$WrkSht + " (LM)")
$=WriteProfileString ($INIFile,"IE_INFO","IE_INISec",$INISec)
Case @DOS="5.1"
$WrkSht="IE Checklist"
$INISec="IENoESC_Info"
$=WriteProfileString ($INIFile,"IE_INFO","IE_Worksheet_CU",$WrkSht + " (CU)")
$=WriteProfileString ($INIFile,"IE_INFO","IE_Worksheet_LM",$WrkSht + " (LM)")
$=WriteProfileString ($INIFile,"IE_INFO","IE_INISec",$INISec)
EndSelect
??
?" *********************************************************"
?" ********** Checking INTERNET EXPLORER SETTINGS **********"
?" *************** Verify with Documentation ***************"
?" *********************************************************"
?
$VAR = ""
$ = RegCmpr("HKLM\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings","Security_HKLM_only","1","Configure IE to use only machine settings is")
; Open & Read General IE Settings File into array
$ObjTxt = CreateObject("Scripting.FileSystemObject")
$ObjFl = $ObjTxt.OpenTextFile(@SCRIPTDIR + "\Patch Files\IE_General.txt",Not 0)
$IEArray = Split($ObjFl.ReadAll,@CRLF)
$s = UBound($IEArray)
ReDim Preserve $IEArray[$s]
$=$ObjFl.Close
$SIEKY = "1","2"
For Each $CR in $SIEKY
Select
Case $CR = "1"
$IEAS = "HKCU"
$VAR = "CU_"
???" **Current User Settings**"?
Case $CR = "2"
$IEAS = "HKLM"
$VAR = "LM_"
???" **Local Machine Settings**"?
EndSelect
$RegKey = "Start_Page"
$reg = ReadValue($IEAS + "\Software\Microsoft\Internet Explorer\Main","Start Page")
? "Home Page - " + $reg ?
$=WriteProfileString ($INIFile,$INISec,$VAR + $RegKey,$reg)
$ = RegCmpr($IEAS + "\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1","Flags","211","Configure Local Zone Includes properly is")
$IEKY = "3","1","2","4"
For Each $ZN in $IEKY
Select
Case $ZN ="1"
??? " Local Intranet Zone "?" ------------------- "
$ = DOZONE($ZN)
Case $ZN ="2"
??? " Trusted Sites Zone "?" ------------------ "
$ = DOZONE($ZN)
Case $ZN ="3"
??? " Internet Zone "?" ------------- "
$ = DOZONE($ZN)
Case $ZN ="4"
??? " Restricted Sites Zone "?" -------------------- "
$ = DOZONE($ZN)
EndSelect
Next
???" Advanced Settings "?" ----------------- "?
For Each $IEVal in $IEArray
$SubArray = Split($IEVal,"|")
$RLoc = $SubArray[0]
$RKey = $SubArray[1]
$ExpVal = $SubArray[2]
$Blurb = $SubArray[3]
$ = RegCmpr($IEAS + $RLoc,$RKey,$ExpVal,$Blurb)
Next
Next
Exit
; FUNCTIONS
Function DOZONE($ZN)
$ = RegRd("SecLevel","SecLevel",$ZN)
If $iereg = "0"
?? "Security Level for this zone is configured properly."
Else
?? "Security Level for this zone is not configured properly."
EndIf
??"---------------------------------"?".NET FRAMEWORK-RELIANT COMPONENTS"?"---------------------------------"?
$ = RegRd("DotNet","DotNet",$ZN)
??"------------------------------"?"ACTIVE X CONTROLS AND PLUG-INS"?"------------------------------"?
$ = RegRd("ActiveX","ActiveX",$ZN)
??"---------"?"DOWNLOADS"?"---------"?
$ = RegRd("Downloads","Downloads",$ZN)
??"----"?"JAVA"?"----"?
$ = RegRd("Java","Java",$ZN)
Select
Case $IEREG = "0"
$ireg = "Disable java"
Case $IEREG = "65536"
$ireg = "High safety"
Case $IEREG = "131072"
$ireg = "Medium safety"
Case $IEREG = "196608"
$ireg = "Low safety"
Case $IEREG = "524288"
$ireg = "Custom"
EndSelect
? $KBlurb + " - " + $IREG ?
??"-------------"?"MISCELLANEOUS"?"-------------"?
$ = RegRd("Misc","Misc",$ZN)
??"----------"?"SCRIPTING"?"----------"?
$ = RegRd("Script","Script",$ZN)
??"-------------------"?"USER AUTHENTICATION"?"-------------------"?
$ = RegRd("UsrAuth","UsrAuth",$ZN)
Select
Case $IEREG = "0"
$ireg = "Automatically logon with current username and password"
Case $IEREG = "65536"
$ireg = "Prompt for user name and password"
Case $IEREG = "131072"
$ireg = "Automatic logon only in the Intranet zone"
Case $IEREG = "196608"
$ireg = "Anonymous logon"
EndSelect
? $KBlurb + " - " + $IREG ?
$DOZONE = @SERROR
EndFunction
; Function to compare a registry value to an expected value and write results to output ini file.
Function RegCmpr($RegLoc,$RegKey,$ExpVal,$Blurb)
$RegCmpr = ReadValue($RegLoc,$RegKey)
If $RegCmpr = $ExpVal
? $Blurb + $Pos ?
$=WriteProfileString ($INIFile,$INISec,$VAR + $RegKey,"1")
Else
? $Blurb + $Neg ?
$=WriteProfileString ($INIFile,$INISec,$VAR + $RegKey,"0")
EndIf
EndFunction
; Function to read a registry value and write the value to the output ini file under the correct zone.
Function RegRd($IHdr,$ILoc,$ZN)
$ZLoc = $IEAS + "\Software\Microsoft\Windows\CurrentVersion\Internet Settings\zones\" + $ZN
$IVal= ReadProfileString ($IEIni,$IHdr,$ILoc)
If InStr($IVAL,";") <> 0
$IArry = Split($IVal,";")
$t = UBound($IArry) - 1
ReDim Preserve $IArry[$t]
Else
$IArry = $IVal
EndIf
If @Error <> 0
?"Error: " + @SERROR
EndIf
$Z = 0
For $IIdx = 0 to $t
$KArry = Split($IArry[$Z],"|")
$RegKey = $KArry[0]
$KBlurb = $KArry[1]
$GetIReg = $KArry[2]
$iereg = ReadValue($ZLoc,$RegKey)
$=WriteProfileString ($INIFile,$INISec,$VAR + $ZN + "_" + $RegKey,$iereg)
If $GetIReg <> 0
Select
Case $IEREG = "1"
$IREG = "Prompt"
Case $IEREG = "0"
$IREG = "Enabled"
Case $IEREG = "3"
$IREG = "Disabled"
Case $IEREG = ""
$IREG = "<NULL>"
Case $IEREG = "65536"
If $RegKey = "1200"
$IREG = "Administrator Approved"
Else
$ireg = "High"
EndIf
Case $IEREG = "131072"
$ireg = "Medium"
Case $IEREG = "196608"
$ireg = "Low"
EndSelect
? $KBlurb + " - " + $IREG ?
EndIf
$Z = $Z + 1
Next
$RegRd = $IREG
EndFunction