$ErrorActionPreference = 'Continue' Write-Output "=== KFM Check: $env:COMPUTERNAME ===" Write-Output "" Write-Output "--- Logged on users ---" query user 2>&1 | ForEach-Object { Write-Output $_ } Write-Output "" Write-Output "--- OneDrive.exe processes ---" $odProcs = Get-CimInstance Win32_Process -Filter "Name='OneDrive.exe'" -EA SilentlyContinue if ($odProcs) { foreach ($p in $odProcs) { $o = $p.GetOwner() Write-Output " Running as: $($o.Domain)\$($o.User)" } } else { Write-Output " Not running" } Write-Output "" Write-Output "--- User profile OneDrive folders ---" Get-ChildItem C:\Users -Directory -EA SilentlyContinue | Where-Object { $_.Name -notin @('Public','Default','Default User','All Users') } | ForEach-Object { $od = Get-ChildItem $_.FullName -Directory -Filter 'OneDrive*' -EA SilentlyContinue Write-Output " $($_.Name): $(if ($od) { $od.Name -join ', ' } else { 'no OneDrive folder' })" } Write-Output "" Write-Output "--- Loaded HKU shell folders ---" Get-ChildItem 'Registry::HKEY_USERS' -EA SilentlyContinue | Where-Object { $_.Name -match 'S-1-5-21' -and $_.Name -notmatch '_Classes' } | ForEach-Object { $sid = $_.PSChildName try { $un = ([System.Security.Principal.SecurityIdentifier]$sid).Translate([System.Security.Principal.NTAccount]).Value } catch { $un = $sid } Write-Output " User: $un" $sf = Get-ItemProperty "Registry::HKEY_USERS\$sid\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -EA SilentlyContinue if ($sf) { $d = $sf.Personal $dt = $sf.Desktop $dl = $sf.'{374DE290-123F-4565-9164-39C4925E467B}' Write-Output " Documents: $d$(if ($d -like '*OneDrive*') { ' [KFM ACTIVE]' })" Write-Output " Desktop: $dt$(if ($dt -like '*OneDrive*') { ' [KFM ACTIVE]' })" Write-Output " Downloads: $dl$(if ($dl -like '*OneDrive*') { ' [KFM ACTIVE]' })" } else { Write-Output " Shell Folders key not present (user not logged in or hive not loaded)" } }