卸载 OneDrive
本页由 tools/devdocs-generator.ps1 生成,请修改源配置或函数后重新生成。目录保留历史 URL,实际分类以本页为准。
- 稳定 ID:
WPFTweaksRemoveOneDrive - 当前分类:z__高级优化 - 谨慎
- 源配置:
config/tweaks.json - 源配置 SHA-256:
09ebd3bfcdbb4a45f67506a5c926f7f468d1da38a2a95e8accaa0d9f7e062fa9
先保护 OneDrive 用户文件不被误删,再调用其卸载程序移除 OneDrive,最后恢复权限。
本页描述实现,不代表推荐勾选。历史恢复仅覆盖工具实际记录的设置;配置中的 OriginalValue / OriginalType 不等于这台电脑的修改前状态。应用、文件及脚本其他改动不保证可恢复。
配置定义
{
"WPFTweaksRemoveOneDrive": {
"Content": "卸载 OneDrive",
"Description": "先保护 OneDrive 用户文件不被误删,再调用其卸载程序移除 OneDrive,最后恢复权限。",
"category": "z__高级优化 - 谨慎",
"panel": "1",
"InvokeScript": [
"\r\n # Deny permission to remove OneDrive folder\r\n icacls $Env:OneDrive /deny \"*S-1-5-32-544:(D,DC)\"\r\n\r\n Write-Host \"Uninstalling OneDrive...\"\r\n Start-Process -FilePath (Join-Path $Env:SystemRoot \"System32\\OneDriveSetup.exe\") -ArgumentList '/uninstall' -Wait\r\n\r\n # Some of OneDrive files use explorer, and OneDrive uses FileCoAuth\r\n Write-Host \"Removing leftover OneDrive Files...\"\r\n\r\n Stop-Process -Name FileCoAuth,Explorer\r\n\r\n Remove-Item \"$Env:LocalAppData\\Microsoft\\OneDrive\" -Recurse -Force\r\n Remove-Item \"C:\\ProgramData\\Microsoft OneDrive\" -Recurse -Force\r\n\r\n # Grant back permission to access OneDrive folder\r\n icacls $Env:OneDrive /grant \"*S-1-5-32-544:(D,DC)\"\r\n\r\n if (-not (Get-ChildItem -Path $Env:OneDrive)) {\r\n Remove-Item -Path $Env:OneDrive -Recurse\r\n [Environment]::SetEnvironmentVariable('OneDrive', $null, 'User')\r\n }\r\n\r\n # Disable OneSyncSvc\r\n Set-Service -Name OneSyncSvc -StartupType Disabled\r\n "
],
"UndoScript": [
"\r\n Write-Host \"Installing OneDrive\"\r\n winget install Microsoft.Onedrive --source winget\r\n\r\n # Enabled OneSyncSvc\r\n Set-Service -Name OneSyncSvc -StartupType Automatic\r\n "
],
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/removeonedrive"
}
}