这是我的环境:
- Windows 10(也适用于 8.1)
- 系统分区 C: 未使用 bitlocker 加密
- “数据”分区 E: 使用 bitlocker 加密并手动解锁
- OneDrive 桌面同步位置:E:\OneDrive
当 Windows 启动时,我使用密码手动解锁 E:。
问题
当我的电脑启动时,OneDrive 提示我的 OneDrive 同步位置不可用。这是因为该位置位于尚未解锁的受 BitLocker 保护的驱动器内。
我们找不到您的 OneDrive 文件夹的位置。单击“确定”以重新配置您的 OneDrive 文件夹。
[确定] [关闭]
无论我点击“确定”还是“关闭”,OneDrive 都会删除自己的配置并从头开始。“您好,这是 OneDrive,这里是存放您所有文件的地方等等”。我被迫重新配置同步位置,并且开始一个非常长的同步操作。
已报告在technet上以及 uservoice [1,2人们得到的唯一答案是:
加密您的系统分区并启用辅助分区的自动解锁。这样,分区将在 OneDrive 启动之前解锁。
好的,但我不想加密系统分区。我希望 OneDrive 等待我的分区解锁进而做好其本职工作。
问题
您知道延迟启动 OneDrive 桌面应用的方法吗?
这样可以避免出现错误。
您是否知道任何其他技巧可以阻止应用程序在发生这种情况时删除其自己的配置和状态?
答案1
这是我解决问题的方法:因此 OneDrive 位于启用了 BitLocker 的辅助驱动器中。
问题是 OneDrive 应该启动并提示解锁驱动器,而不是崩溃并假设所有需要重新设置。
要修复您需要 1. 停止 OneDrive 在启动时启动 + 2. 在驱动器准备就绪/解锁时自动启动 OneDrive。
在 OneDrive 设置中,只需取消勾选“当我登录 Windows 时自动启动 OneDrive”
打开“任务计划程序”
点击“操作”-“创建任务”(非基本)
更改这些设置(保留其余设置作为默认设置):
a) 常规选项卡
- 名称:在 BitLocker 之后启动 OneDrive
b) 触发器选项卡 - 新建...
- 开始任务:在某项活动中
- 日志:Microsoft-Windows-BitLocker-API/Management
- 事件 ID:782
c) 操作选项卡 - 新建...
- 操作:启动程序
- 程序/脚本:powershell.exe
- 添加参数:%USERPROFILE%\AppData\Local\Microsoft\OneDrive\OneDrive.exe /background
d) 条件选项卡
取消勾选“仅当计算机使用交流电源时才启动任务”
- 完毕
因此现在 OneDrive 不应在启动/登录后启动,并且一旦您解锁加密驱动器,OneDrive 将自动启动。
答案2
更新 2020。由于 OneDrive.exe 已更改位置,因此更新 @angel-abad-cerdeira 解决方案。
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
注意:在 OneDrive 设置中激活“当我登录 Windows 时自动启动 OneDrive”选项时,您可以通过查看 regedit 中添加的注册表项来仔细检查要添加的确切命令位置。
更新@angel-abad-cerdeira 解决方案中的点 c)(点 a、b 和 d 保持不变):
- 删除 powershell.exe
- 使用环境变量
%ProgramFiles(x86)%
代替C:\Program Files (x86)
并使用引号
c) 操作选项卡 - 新建...
- 操作:启动程序
- 程序/脚本:
"%ProgramFiles(x86)%\Microsoft OneDrive\OneDrive.exe"
- 添加参数:
/background