Forum Discussion

Charly123's avatar
Charly123
Copper Contributor
Sep 06, 2026

OneDrive desktop client does not start after complete uninstall, cleanup and reinstall

Hello,

I have a problem with the OneDrive desktop client on Windows 11.

Issue

The OneDrive desktop client does not start at all.

  • OneDrive.exe exists in: C:\Program Files\Microsoft OneDrive\OneDrive.exe
  • Double-clicking OneDrive.exe does nothing.
  • No sign-in window appears.
  • No OneDrive cloud icon appears in the system tray.
  • No error message is shown.
  • Running: "C:\Program Files\Microsoft OneDrive\OneDrive.exe" /verbose returns immediately with exit code 0.
  • Running: "C:\Program Files\Microsoft OneDrive\OneDrive.exe" /? also produces no output.

What I already tested

  • DISM completed successfully.
  • SFC completed successfully.
  • OneDrive was uninstalled.
  • Remaining OneDrive program folders were deleted.
  • Local OneDrive configuration folders were removed/renamed.
  • OneDrive registry entries were cleaned.
  • Old account configuration was removed.
  • A previously connected work/school account was removed from Windows.
  • OneDrive was installed again from the latest installer.
  • The issue remains exactly the same.

Additional findings

  • The file OneDrive.exe is present after installation.
  • The modern OneDrive Photos (Beta) app starts normally.
  • The classic OneDrive synchronization client does not start.
  • Searching for "OneDrive" in the Start menu only shows the OneDrive app, not the classic desktop client.
  • In some cases only a "OneDrive Sync Service" process appears in Task Manager.
  • No useful OneDrive application errors are logged in Event Viewer.

Important test

I created a completely new local Windows test user account.

The problem occurs there as well:

  • OneDrive.exe does not start.
  • No sign-in window appears.
  • No cloud icon appears.

Therefore the issue does not appear to be limited to my original Windows user profile.

Data status

My local data is still intact on a separate drive:

E:\OneDrive

The problem only affects launching the OneDrive desktop client.

Could you help investigate why the OneDrive desktop application exits immediately without showing any UI or sign-in experience?

Thank you.

1 Reply

  • NikolinoDE's avatar
    NikolinoDE
    Platinum Contributor

    Hello,

    Thank you for the very detailed description. You have already done far more troubleshooting than most users would, and the results you provided are extremely valuable.

    Let me start with the most important observation:

    Your fresh Windows user profile test is the key diagnostic clue

    The fact that a completely new local Windows user account shows exactly the same problem tells us this is almost certainly not a profile corruption issue. Combined with your full uninstall/cleanup/reinstall, it also makes simple installation corruption less likely.

    This changes the diagnostic direction. Instead of repeating cleanup and reinstall, we need to answer a more precise question:

    Is OneDrive being prevented from starting, or does OneDrive start and then immediately terminate itself?

    Those are two very different problems with different solutions.

     

    What I recommend you do next

    Please do not uninstall OneDrive again, delete registry keys, or create another Windows profile. Those steps have already been performed and repeating them will not add useful information.

    Instead, I recommend running a non-destructive diagnostic script that collects the relevant information without changing your OneDrive configuration or your user data.

    The script will:

    • Check OneDrive policies, including DisableFileSyncNGSC
    • Check AppLocker and WDAC / Code Integrity policies
    • Check Defender and related security events
    • Check WebView2 runtime presence and version
    • Perform one controlled launch of OneDrive.exe using the normal desktop executable path, with no arguments
    • Monitor whether the process appears, disappears, or remains running
    • Capture relevant Windows events during the launch test

     

    The diagnostic script

    Please run PowerShell as Administrator and paste the following script.

    It will create a folder such as:

    C:\OneDriveDiag_20260911_083000

    and save the collected information there.

    # OneDrive diagnostic collector - non-destructive diagnostic
    # Run as Administrator
    # Does not modify OneDrive configuration or user data.
    # It creates a diagnostic folder under C:\ and launches OneDrive.exe once for observation.
    
    $diagRoot = "C:\OneDriveDiag_$(Get-Date -Format yyyyMMdd_HHmmss)"
    New-Item -ItemType Directory -Path $diagRoot -Force | Out-Null
    Start-Transcript -Path (Join-Path $diagRoot "Transcript.txt") -Force
    
    function Save-Output {
        param(
            [string]$Name,
            [scriptblock]$Command
        )
        $path = Join-Path $diagRoot "$Name.txt"
        try {
            & $Command *>&1 | Out-File -FilePath $path -Encoding UTF8
        } catch {
            "ERROR: $_" | Out-File -FilePath $path -Encoding UTF8
        }
    }
    
    # 1. System information
    Save-Output "01_SystemInfo" {
        Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsBuildNumber, OsArchitecture, CsName
        whoami
    }
    
    # 2. OneDrive installation files
    Save-Output "02_OneDriveFiles" {
        $exe = "C:\Program Files\Microsoft OneDrive\OneDrive.exe"
    
        if (Test-Path $exe) {
            Get-Item $exe | Select-Object FullName, Length, LastWriteTime, VersionInfo
            Get-AuthenticodeSignature $exe | Format-List *
            Get-Acl $exe | Format-List *
        } else {
            "OneDrive.exe not found at $exe"
        }
    }
    
    # 3. OneDrive processes
    Save-Output "03_OneDriveProcesses" {
        Get-Process OneDrive -ErrorAction SilentlyContinue |
            Select-Object Id, ProcessName, StartTime, Path, Company, ProductVersion
    }
    
    # 4. OneDrive-related registry policies and settings
    Save-Output "04_OneDriveRegistry" {
        $paths = @(
            "HKLM:\SOFTWARE\Policies\Microsoft\Windows\OneDrive",
            "HKCU:\SOFTWARE\Policies\Microsoft\Windows\OneDrive",
            "HKLM:\SOFTWARE\Microsoft\OneDrive",
            "HKCU:\SOFTWARE\Microsoft\OneDrive",
            "HKLM:\SOFTWARE\WOW6432Node\Microsoft\OneDrive",
            "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run",
            "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run"
        )
    
        foreach ($p in $paths) {
            Write-Output "=== $p ==="
    
            if (Test-Path $p) {
                Get-ItemProperty -Path $p -ErrorAction SilentlyContinue |
                    Format-List *
            } else {
                Write-Output "(not present)"
            }
        }
    }
    
    # 5. Installed OneDrive entries
    Save-Output "05_UninstallEntries" {
        Get-ItemProperty `
            "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*",
            "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" `
            -ErrorAction SilentlyContinue |
            Where-Object { $_.DisplayName -match "OneDrive" } |
            Select-Object DisplayName, DisplayVersion, InstallLocation, UninstallString
    }
    
    # 6. AppLocker effective policy
    Save-Output "06_AppLocker" {
        Get-AppLockerPolicy -Effective -Xml -ErrorAction SilentlyContinue
    }
    
    # 7. WDAC / Code Integrity
    Save-Output "07_WDAC" {
        $ciPath = "$env:windir\System32\CodeIntegrity\CiPolicies\Active"
    
        if (Test-Path $ciPath) {
            Get-ChildItem $ciPath |
                Select-Object Name, Length, LastWriteTime
        } else {
            "No active CI policies folder found at $ciPath"
        }
    
        Get-CimInstance `
            -ClassName Win32_DeviceGuard `
            -Namespace root\Microsoft\Windows\DeviceGuard `
            -ErrorAction SilentlyContinue |
            Format-List *
    }
    
    # 8. Defender status and preferences
    Save-Output "08_Defender" {
        Get-MpComputerStatus -ErrorAction SilentlyContinue | Format-List *
        Get-MpPreference -ErrorAction SilentlyContinue | Format-List *
    }
    
    # 9. Event logs - Application and System filtered for OneDrive
    Save-Output "09_EventLogs_Application_OneDrive" {
        Get-WinEvent -LogName Application -MaxEvents 500 -ErrorAction SilentlyContinue |
            Where-Object {
                $_.Message -match "OneDrive" -or
                $_.ProviderName -match "OneDrive"
            } |
            Format-List *
    }
    
    Save-Output "10_EventLogs_System_OneDrive" {
        Get-WinEvent -LogName System -MaxEvents 500 -ErrorAction SilentlyContinue |
            Where-Object {
                $_.Message -match "OneDrive" -or
                $_.ProviderName -match "OneDrive"
            } |
            Format-List *
    }
    
    # 11. AppLocker, Code Integrity, Defender operational logs
    Save-Output "11_EventLogs_AppLocker" {
        Get-WinEvent `
            -LogName "Microsoft-Windows-AppLocker/EXE and DLL" `
            -MaxEvents 200 `
            -ErrorAction SilentlyContinue |
            Format-List *
    }
    
    Save-Output "12_EventLogs_CodeIntegrity" {
        Get-WinEvent `
            -LogName "Microsoft-Windows-CodeIntegrity/Operational" `
            -MaxEvents 200 `
            -ErrorAction SilentlyContinue |
            Format-List *
    }
    
    Save-Output "13_EventLogs_Defender" {
        Get-WinEvent `
            -LogName "Microsoft-Windows-Windows Defender/Operational" `
            -MaxEvents 200 `
            -ErrorAction SilentlyContinue |
            Format-List *
    }
    
    # 14. WebView2 runtime
    Save-Output "14_WebView2" {
        $keys = @(
            "HKLM:\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}",
            "HKLM:\SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}"
        )
    
        foreach ($k in $keys) {
            Write-Output "=== $k ==="
    
            if (Test-Path $k) {
                Get-ItemProperty $k | Format-List *
            } else {
                Write-Output "(not present)"
            }
        }
    
        Get-ChildItem `
            "C:\Program Files (x86)\Microsoft\EdgeWebView\Application" `
            -ErrorAction SilentlyContinue |
            Select-Object Name, LastWriteTime
    }
    
    # 15. OneDrive Sync Service and scheduled tasks
    Save-Output "15_OneDriveServicesAndTasks" {
        Get-Service -Name "*OneDrive*" -ErrorAction SilentlyContinue |
            Format-List *
    
        Get-ScheduledTask -TaskName "*OneDrive*" -ErrorAction SilentlyContinue |
            Format-List *
    }
    
    # 16. OneDrive log locations
    Save-Output "16_OneDriveLogs" {
        $logPaths = @(
            "$env:LOCALAPPDATA\Microsoft\OneDrive\logs",
            "$env:ProgramData\Microsoft OneDrive\logs"
        )
    
        foreach ($lp in $logPaths) {
            Write-Output "=== $lp ==="
    
            if (Test-Path $lp) {
                Get-ChildItem $lp -Recurse -File -ErrorAction SilentlyContinue |
                    Sort-Object LastWriteTime -Descending |
                    Select-Object -First 30 FullName, LastWriteTime, Length
            } else {
                Write-Output "(not present)"
            }
        }
    }
    
    # 17. Controlled OneDrive launch test
    # Normal launch, no arguments, with event capture
    Save-Output "17_OneDriveLaunchTest" {
    
        $exe = "C:\Program Files\Microsoft OneDrive\OneDrive.exe"
    
        if (-not (Test-Path $exe)) {
            Write-Output "OneDrive.exe not found at $exe"
            return
        }
    
        # Record start time for event correlation
        $testStart = Get-Date
        Write-Output "Test start time: $($testStart.ToString('o'))"
    
        # Snapshot before launch
        $before = @(Get-Process OneDrive -ErrorAction SilentlyContinue)
    
        Write-Output "OneDrive processes before launch: $($before.Count)"
    
        $before |
            Select-Object Id, ProcessName, StartTime, Path |
            Format-List
    
        # Normal desktop launch - no arguments
        try {
            Start-Process -FilePath $exe -ErrorAction Stop
        }
        catch {
            Write-Output "Start-Process failed: $_"
        }
    
        # Monitor for 20 seconds
        $processAppeared = $false
        $processDisappeared = $false
        $firstSeen = $null
        $lastSeen = $null
    
        $monitorStart = Get-Date
    
        while ((Get-Date) - $monitorStart -lt [TimeSpan]::FromSeconds(20)) {
    
            $now = @(Get-Process OneDrive -ErrorAction SilentlyContinue)
    
            if ($now.Count -gt 0) {
    
                if (-not $processAppeared) {
                    $processAppeared = $true
                    $firstSeen = Get-Date
    
                    Write-Output "OneDrive process first detected at $($firstSeen.ToString('o')). Count: $($now.Count)"
    
                    $now |
                        Select-Object Id, ProcessName, StartTime, Path |
                        Format-List
                }
    
                $lastSeen = Get-Date
            }
            else {
                if ($processAppeared -and -not $processDisappeared) {
                    $processDisappeared = $true
    
                    Write-Output "OneDrive process no longer detected at $(Get-Date -Format o)"
                }
            }
    
            Start-Sleep -Milliseconds 500
        }
    
        # Final state
        $after = @(Get-Process OneDrive -ErrorAction SilentlyContinue)
    
        Write-Output "OneDrive processes at end of test: $($after.Count)"
    
        $after |
            Select-Object Id, ProcessName, StartTime, Path |
            Format-List
    
        # Interpret and summarize
        if (-not $processAppeared) {
    
            Write-Output "RESULT: No OneDrive.exe process appeared during the test window."
            Write-Output "        Likely direction: Policy / AppLocker / WDAC / EDR / Windows execution problem."
        }
        elseif ($processDisappeared) {
    
            Write-Output "RESULT: OneDrive.exe appeared and then terminated."
            Write-Output "        Investigate internal initialization and external termination causes."
        }
        else {
    
            Write-Output "RESULT: OneDrive.exe remained running but no UI/tray was confirmed by this script."
            Write-Output "        Likely direction: UI/session/WebView2/shell/startup issue."
        }
    
        # Capture events around the test window
        $testEnd = Get-Date
    
        Write-Output "Test end time: $($testEnd.ToString('o'))"
    
        Write-Output "`n--- Application log events (OneDrive-related) in test window ---"
    
        Get-WinEvent -FilterHashtable @{
            LogName   = 'Application'
            StartTime = $testStart
            EndTime   = $testEnd
        } -ErrorAction SilentlyContinue |
            Where-Object {
                $_.Message -match 'OneDrive' -or
                $_.ProviderName -match 'OneDrive'
            } |
            Format-List *
    
        Write-Output "`n--- System log events (OneDrive-related) in test window ---"
    
        Get-WinEvent -FilterHashtable @{
            LogName   = 'System'
            StartTime = $testStart
            EndTime   = $testEnd
        } -ErrorAction SilentlyContinue |
            Where-Object {
                $_.Message -match 'OneDrive' -or
                $_.ProviderName -match 'OneDrive'
            } |
            Format-List *
    
        Write-Output "`n--- Event ID 1000 (Application Error) in test window ---"
    
        Get-WinEvent -FilterHashtable @{
            LogName   = 'Application'
            ID        = 1000
            StartTime = $testStart
            EndTime   = $testEnd
        } -ErrorAction SilentlyContinue |
            Format-List *
    
        Write-Output "`n--- Code Integrity / AppLocker / Defender operational events in test window ---"
    
        $logs = @(
            'Microsoft-Windows-CodeIntegrity/Operational',
            'Microsoft-Windows-AppLocker/EXE and DLL',
            'Microsoft-Windows-Windows Defender/Operational'
        )
    
        foreach ($log in $logs) {
    
            Write-Output "`n=== $log ==="
    
            Get-WinEvent -FilterHashtable @{
                LogName   = $log
                StartTime = $testStart
                EndTime   = $testEnd
            } -ErrorAction SilentlyContinue |
                Format-List *
        }
    }
    
    Stop-Transcript
    
    Write-Host "Diagnostics saved to: $diagRoot"

    After the script finishes, please look at 17_OneDriveLaunchTest.txt.

    It will help distinguish these three situations:

    Result

    Likely direction

    No OneDrive.exe process appears at all

    Something is preventing OneDrive from starting. Policy, AppLocker, WDAC, and security software are common causes, but a Windows execution or dependency problem can produce the same result. Further evidence is needed to tell these apart.

    OneDrive.exe appears and then terminates

    OneDrive starts and then terminates. This may be internal initialization failure, or an external component terminating it. Both possibilities should be investigated.

    OneDrive.exe remains running but no UI/tray appears

    A different problem, potentially involving the UI/session, WebView2, shell, or startup integration.

    The script also checks DisableFileSyncNGSC.

    If that value is set to 1, it is a strong indication of a policy that disables OneDrive synchronization. In a corporate environment, the important next step is to determine who is enforcing that setting — Group Policy, Intune, or another management mechanism — before changing anything. A centrally managed policy may simply recreate the value if it is removed locally.

    The script does not modify your OneDrive configuration or your data in:

    E:\OneDrive

    That is what i can say: it does not change OneDrive settings or touch your user data. It does create a diagnostic folder under C:\ and it does launch OneDrive.exe once as part of the observation test. That launch is intentional — it is what allows us to see whether the process appears, exits, or stays running — but it is not intended to change your configuration.

    At this point I would not perform another uninstall, registry cleanup, or repair. The next step should be based on the diagnostic evidence.

     

    My answers are voluntary and without guarantee!

     

    Hope this will help you.

     

    Was the answer useful? Mark as best response and like it!

    This will help all forum participants.