specified cast is not valid Powershell when changing automatically detect settings and auto config script for LAN settings in Internet Properties

279 views Asked by At

I'm trying to enable and disable the automatically detect settings and automatic configuration script for LAN settings in Internet Explorer(IE). The script is working fine on windows 7 32,64 bit, Windows 10 32,64 bit but on windows 8 64bit it's throwing error specified cast is not valid when disabling the automatically detect settings and enabling/disabling automatic configuration script for LAN settings.

[string]$ProxyRegRoot = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings'
#this setting is affected by multiple options, so fetch once here 
[string]$DefaultConnectionSettingsPath = (Join-Path $ProxyRegRoot 'Connections')
[byte[]]$DefaultConnectionSettings = Get-ItemProperty -Path $DefaultConnectionSettingsPath -Name 'DefaultConnectionSettings' | Select-Object -ExpandProperty 'DefaultConnectionSettings'
[byte]$MaskProxyEnabled = 2
[byte]$MaskUseAutomaticConfigurationScript = 4
[byte]$MaskAutomaticDetect = 8
[int]$ProxyConnectionSettingIndex = 8

#Auto-ConfigScript for LAN Settings
function Auto-ConfigScript {
    #region config script
    $UseAutomaticConfigurationScriptInput = Read-Host "Enable Automatic Configuration Script  [y]Yes   [n]No"
    if ($UseAutomaticConfigurationScriptInput -eq "yes" -or $UseAutomaticConfigurationScriptInput -eq "y") {
        $UseAutomaticConfigurationScript = $true
        $UseAutomaticConfigurationScriptAddress = Read-Host "Enter Address "
        Set-ItemProperty -Path $ProxyRegRoot -Name AutoConfigURL -Value $UseAutomaticConfigurationScriptAddress

        $DefaultConnectionSettings[$ProxyConnectionSettingIndex] = $DefaultConnectionSettings[$ProxyConnectionSettingIndex] -bor $MaskUseAutomaticConfigurationScript
    }
    else {
        $UseAutomaticConfigurationScript = $false
        $DefaultConnectionSettings[$ProxyConnectionSettingIndex] = $DefaultConnectionSettings[$ProxyConnectionSettingIndex] -band (-bnot $MaskUseAutomaticConfigurationScript) 
    }
    #endregion

    #persist the updates made above
    Set-ItemProperty -Path $DefaultConnectionSettingsPath -Name 'DefaultConnectionSettings' -Value $DefaultConnectionSettings
}

function Auto-DetectSettings {
    #region auto detect
    $AutomaticDetect = Read-Host "Enable Automatically detect settings [y]Yes   [n]No"
    if ($AutomaticDetect -eq $true -or $AutomaticDetect -eq "yes" -or $AutomaticDetect -eq "y") { 
        Set-ItemProperty -Path $ProxyRegRoot -Name AutoDetect -Value 1
        $DefaultConnectionSettings[$ProxyConnectionSettingIndex] = $DefaultConnectionSettings[$ProxyConnectionSettingIndex] -bor $MaskAutomaticDetect
    }
    else {
        Set-ItemProperty -Path $ProxyRegRoot -Name AutoDetect -Value 0
        $DefaultConnectionSettings[$ProxyConnectionSettingIndex] = $DefaultConnectionSettings[$ProxyConnectionSettingIndex] -band (-bnot $MaskAutomaticDetect)
    }
    #endregion

    #persist the updates made above
    Set-ItemProperty -Path $DefaultConnectionSettingsPath -Name 'DefaultConnectionSettings' -Value $DefaultConnectionSettings

}


Error Traceback

Specified cast is not valid.
At C:\Users\afs.prithvi\Downloads\Internet Properties Win7 32-64 bit working.ps1:23 char:9
+         $DefaultConnectionSettings[$ProxyConnectionSettingIndex] = $DefaultConne ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], InvalidCastException
    + FullyQualifiedErrorId : System.InvalidCastException

Update error is occuring at line number 23

0

There are 0 answers