Forum Discussion

wrdoss's avatar
wrdoss
Copper Contributor
Apr 20, 2024

Microsoft Apps won't connect to internet

Microsoft apps (News, Widgets, Mail, Feedback Hub, Get Help) won't connect to the internet, but Edge connects just fine, and Troubleshooter says there are no internet problems found.  The problem started for me about the time I updated to KB5037000  (beta).  I tried uninstalling the update, but it didn't help.

2 Replies

  • Mike Meinz's avatar
    Mike Meinz
    Copper Contributor

    I created this PowerShell script to check for and resolve the most common causes of apps like Microsoft Store, Widgets and Feedback Hub not being able to connect to the Internet. I run this script every time I restart my PC. Several times a month, it corrects a setting. I have not been able to determine what changes one of the Internet-related settings but my script resolves it automatically every time it occurs.

     

    DISCLAIMER: This works on my Windows 11 Pro 24H2 OS Build 26100.4061 PC. It may not work on yours.

    $CRLF=[char]13 + [char]10
    $msg=""
    $rerun=""
    # Ensure "Automatically detect settings" is checked
    $key = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections"
    $data = (Get-ItemProperty -Path $key -Name DefaultConnectionSettings).DefaultConnectionSettings
    if ($data[8] -ne 9) {
        $v1=([Convert]::ToString($data[8], 16)).PadLeft(2,'0')
        $data[8] = 0x09  # Enable "Automatically detect settings"
        Set-ItemProperty -Path $key -Name DefaultConnectionSettings -Value $data
        $m="$key DefaultConnectionSettings[8] is 0x$v1 - incorrect. Should be 0x09. Corrected!" 
        write-host "ERROR:$m" 
        $msg="$msg$m$CRLF$CRLF"
        }
    
    # Ensure Windows HTTP Automatic Proxy Service Start is set to Manual
    $key = "HKLM:\SYSTEM\CurrentControlSet\Services\WinHttpAutoProxySvc"
    $val=Get-ItemPropertyValue -Path $key -Name Start
    # Start: 0=Driver (Boot), 1=Driver(System), 2=Auto Load, 3=Manual Start (Load on Demand), 4=Disabled, 5=Delayed Start
    If ($val -ne 3) {
        Set-ItemProperty -Path $key -Name Start -Value 3
        $m="$key Start is $val - incorrect. Should be 3 (Manual Start). Corrected!"
        write-host "ERROR: $m" 
        $msg="$msg$m$CRLF$CRLF"
        }
    
    # Ensure TLS 1.2, TLS 1.3 and SSL 3.0 are enabled
    # Protocol  Hex Value
    # SSL 2.0   0x08 (8)
    # SSL 3.0   0x20 (32)
    # TLS 1.0   0x80 (128)
    # TLS 1.1   0x200 (512)
    # TLS 1.2   0x800 (2048)
    # TLS 1.3   0x2000 (8192)
    $key = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
    $val=Get-ItemPropertyValue -Path $key -Name SecureProtocols 
    $mask = 8192 -bor 32 -bor 2048 # SSL 3.0 and TLS 1.3 and TLS 1.2
    $rslt=$mask -band $val
    if ($rslt -ne $mask) {
        $val=$val -bor $mask
        #Following statement may require Administrator Mode to work. 
        #If not in Administrator mode, an Exception is not thrown.
        Set-ItemProperty -Path $key -Name SecureProtocols -Value $val  
        # Retrieve the value to verify the change
        $actualValue = (Get-ItemProperty -Path $key -Name SecureProtocols).SecureProtocols
        if ($actualValue -ne $val) {
            $rerun="$CRLF$CRLFRe-run in Administrator mode to change SecureProtocols value in System Registry."
        } else {
            $v1=([Convert]::ToString($rslt, 16)).PadLeft(5,"0")
            $v2=([Convert]::ToString($mask, 16)).PadLeft(5,"0")
            $m="$key SecureProtocols is 0x$v1 - incorrect. It should be 0x$v2. Either SSL 3.0, TLS 1.2 or TLS 1.3 not enabled. Corrected!"
            write-host "ERROR: $m" 
            $msg="$msg$m$CRLF$CRLF"
        }
    }
    #Ensure Root Certificate Auto Update is enabled
    $key = "HKLM:\software\Policies\Microsoft\SystemCertificates\AuthRoot"
    $val=Get-ItemPropertyValue -Path $key -Name DisableRootAutoUpdate 
    if ($val -ne 0) {
        Set-ItemProperty -Path $path -Name DisableRootAutoUpdate -Value 0
        $m="$key DisableRootAutoUpdate is $val - incorrect. It should be 0. Corrected!"
        write-host "ERROR: $m" 
        $msg="$msg$m$CRLF%CRLF"
        }
    
    if ($msg.length -gt 0) {
        Add-Type -AssemblyName System.Windows.Forms
        [System.Windows.Forms.MessageBox]::Show("$msg$rerun", "Settings affecting Store, Feedback Hub and/or Widgets", "OK", "Error")
    }

     

Resources