ファイルやフォルダを右クリックすると現れる「OneDriveに移動」を消す

もちろん、OneDrive 自体をアンインストールすればメニューも消える。
ただ、OneDrive を手軽なオンラインストレージとしてそれなりに使っている。

OneDrive の機能は維持しつつも、コンテキストメニュー項目だけを消したい、そんなわがまま私とあなたに。


することは要するに、特定のレジストリを削除するだけです。
削除対象は HKEY_CLASSES_ROOT\PackagedCom\Package\Microsoft.OneDriveSync_22202.925.2.0_neutral__8wekyb3d8bbwe\Server です。

ただし Microsoft.OneDriveSync_22202.925.2.0 の数字の部分は OneDrive のバージョン番号なので、本体のバージョンアップに合わせて実行し直す必要があります。

レジストリを操作するので、実行前に必ずバックアップを取っておきましょう。
レジストリエディターを開いて…というのがセオリーですが、せっかくなのでPowershellでやってみましょう。 こちらは管理者権限は要りません。

# バックアップするコード
$now = Get-Date -format "yyyyMMdd_HHmmss"
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT -ErrorAction SilentlyContinue

Get-Item HKCR:\PackagedCom\Package\* | ? { $_.Name -match "Microsoft.OneDriveSync_" } | % { reg export (Join-Path $_.Name Server) "onedrive_$now.reg" }

さて、本題の削除ですが、以下のコードを Powershell で、管理者権限で実行してください。 Get-Item から始まる行は、折り返されて複数行に見えていても一行です。

# 「OneDriveに移動」を削除するコード
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT -ErrorAction SilentlyContinue

Get-Item HKCR:\PackagedCom\Package\* | ? { $_.Name -match "Microsoft.OneDriveSync_" } | % { Remove-Item -Path (Join-Path ($_.Name -replace "^[^\\]+", "HKCR:") Server) -Recurse -ErrorAction Continue }

レジストリ

もしレジストリファイルで消したい場合は以下のような文字列をテキストファイルに書き、適当な名前で保存します。たとえば、 remove-onedrive.reg とか。 それをダブルクリック、もしくは右クリックして「結合」すると、上で書いたコードと同じ効果を得られます。 ただしやはりバージョン番号の変更があるたびに数字を変更する必要があります。

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\PackagedCom\Package\Microsoft.OneDriveSync_22196.918.1.0_neutral__8wekyb3d8bbwe\Server]

戻したいときは、先ほどバックアップした .reg を「結合」するか、以下の内容をテキストファイルで保存(onedrive.regとでも)して「結合」します。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\PackagedCom\Package\Microsoft.OneDriveSync_22196.918.1.0_neutral__8wekyb3d8bbwe\Server]

[HKEY_CLASSES_ROOT\PackagedCom\Package\Microsoft.OneDriveSync_22196.918.1.0_neutral__8wekyb3d8bbwe\Server\0]
"ApplicationId"="OneDrive"
"ApplicationDisplayName"="OneDrive"
"DisplayName"="Context Menu Items"
"SurrogateAppId"="{5250E46F-BB09-D602-5891-F476DC89B700}"