Dropboxをインストールすると追加されるコンテキストメニューを消す+それだけだと勝手に復活するのでその対策も含めて記載しておきます。
もくじ
環境
- Windows11 26H2
- Dropbox 276.3.5225
追加されるアイコンとコンテキストメニュー
Dropboxをインストールすると、以下のようなアイコンとコンテキストメニューが追加されます。
① デスクトップのアイコン
② ナビゲーションウインドウのアイコン
※①はデスクトップそのものには表示されませんが、エクスプローラーでデスクトップを開くと表示されます。
また、下にあるショートカットとは別物です。こちらは本当にただのショートカットなので、単に削除するだけで済みます。
③ ファイルやフォルダのコンテキストメニュー
ファイルやフォルダに追加されるメニュー
Dropboxフォルダ内ではもっと色々追加されます
クラシックコンテキストメニューの場合はこんな感じです。
Dropboxフォルダ内では項目が全て展開されて表示されます。
(項目がごちゃごちゃして)うるさいですね…
コンテキストメニューが増えるデメリット
色々なソフトを入れていくと増え続けるこの手のコンテキストメニューをそのままにすると、
- マウスの移動量が増えて操作の邪魔
- 読み込み(=表示)が遅くなる
等のデメリットがあります。
Dropboxをガッツリ愛用しているユーザーなら良いのでしょうが、自分としては正直そうでもない。むしろこういうソフトは裏で確実に処理をして、インストールされている事すら意識させない位で丁度良いとすら思います。
そして厄介なことに、この手のお節介メニューは設定等で簡単に消す方法が用意されていません。困りました。
レジストリを弄ってこれらを消す
では早速答え合わせです。
それぞれ以下のレジストリを弄ると項目を消すことができます。
① デスクトップのアイコン
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{DB93D340-1571-4C7C-9EAB-5A410BEB7225}
→キーを削除
※ここを消すと②も自動的に消えます。①だけ消して②を残す方法はない?
② ナビゲーションウインドウのアイコン
HKEY_CURRENT_USER\Software\Classes\CLSID\{DB93D340-1571-4C7C-9EAB-5A410BEB7225}
REG_DWORD: System.IsPinnedToNameSpaceTree = 0
※「以下のレジストリに同様の変更をする」という記事も散見されますが、現在は{DB93…}に変わった模様。
HKEY_CLASSES_ROOT\CLSID\{E31EA727-12ED-4702-820C-4B6445F28E1A}
エクスプローラーのナビゲーションツリーからDropboxを非表示にするやつ · GitHub
③ ファイルやフォルダのコンテキストメニュー
HKEY_CURRENT_USER\Software\Classes\PackagedCom\Package\DropboxInc.Dropbox_276.3.5225.0_x64__wkt425jdc3sga
→キーを削除
※ここだけ最後がバージョンによって変動します。
そのため、単純にレジストリを決め打ちで消すスクリプト / regファイルを書いても、バージョンが変わると対応出来ません。
※HKEY_CURRENT_USERに該当の項目が無い場合は、HKEY_LOCAL_MACHINEにある場合があります(逆も然り)
レジストリを弄るPowerShellスクリプト
「レジストリの項目名が変わるのならば、追従する方法を考えよう」ということで、PowerShellでスクリプトを書きました。
ここまでする必要があるのは最後の③だけなのですが、どうせならという事で全部まとめて作りました。
HKLMの方は弄る必要無さそうですが、何かの時のために
「管理者権限がある+該当するキーがある場合は同様の操作をする」
ようにしました。
# 管理者権限チェック
$isAdmin =[System.Security.Principal.WindowsPrincipal]::new([System.Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)
# デスクトップアイコン削除
$key ="Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\`{DB93D340-1571-4C7C-9EAB-5A410BEB7225`}"
if($isAdmin -and (Test-Path Registry::HKEY_LOCAL_MACHINE\$key))
{
Write-Output "レジストリ削除: HKEY_LOCAL_MACHINE\$key"
Remove-Item Registry::HKEY_LOCAL_MACHINE\$key -Recurse
}
if(Test-Path Registry::HKEY_CURRENT_USER\$key)
{
Write-Output "レジストリ削除: HKEY_CURRENT_USER\$key"
Remove-Item Registry::HKEY_CURRENT_USER\$key -Recurse
}
# エクスプローラーのIsPinnedToNamespaceTree = 0
$key = "Software\Classes\CLSID\`{DB93D340-1571-4C7C-9EAB-5A410BEB7225`}"
$keyCheck = Get-Item Registry::HKEY_LOCAL_MACHINE\$key -ErrorAction Ignore
if($isAdmin -and $keyCheck -and ($keyCheck.GetValue("System.IsPinnedToNamespaceTree") -eq 1))
{
Write-Output "レジストリ変更: HKEY_LOCAL_MACHINE\$key\System.IsPinnedToNamespaceTree = 0 "
New-ItemProperty Registry::HKEY_LOCAL_MACHINE\$key -Name "System.IsPinnedToNamespaceTree" -PropertyType 'DWord' -Value 0 -Force > $null
}
$keyCheck = Get-Item Registry::HKEY_CURRENT_USER\$key -ErrorAction Ignore
if($keyCheck -and ($keyCheck.GetValue("System.IsPinnedToNamespaceTree") -eq 1))
{
Write-Output "レジストリ変更: HKEY_CURRENT_USER\$key\System.IsPinnedToNamespaceTree = 0 "
New-ItemProperty Registry::HKEY_CURRENT_USER\$key -Name "System.IsPinnedToNamespaceTree" -PropertyType 'DWord' -Value 0 -Force > $null
}
# 右クリック > [Dropbox] 削除
<#
# HKLMの方にも色々あるけど弄らなくて良さそうなのでコメントアウト
foreach( $key in (Get-ChildItem Registry::HKEY_LOCAL_MACHINE\Software\Classes\PackagedCom\Package\DropboxInc.Dropbox*))
{
if(!$isAdmin)
{
break;
}
Write-Output "レジストリ削除: $key"
Remove-Item Registry::$key -Recurse
}
#>
foreach( $key in (Get-ChildItem Registry::HKEY_CURRENT_USER\Software\Classes\PackagedCom\Package\DropboxInc.Dropbox*))
{
Write-Output "レジストリ削除: $key"
Remove-Item Registry::$key -Recurse
}
コレをタスクスケジューラに登録して、お好みの頻度で自動実行されるようにしておけば、アップデート等の理由で復活しても、自動でコンテキストメニューを消せます。
Dropboxの自動アップデートタスク+サービスを無効化
ついでのついでに、タスクスケジューラとサービスに登録されている、Dropboxの自動アップデートで起動してくるタスクとサービスを無効化するps1も作りました。
これもバージョンによって項目名が変わる厄介者です。
※管理者権限が必要です。
また、自動アップデートされないリスクを理解の上で設定して下さい。
$isAdmin =[System.Security.Principal.WindowsPrincipal]::new([System.Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)
if($isAdmin)
{
Get-ScheduledTask -TaskName "DropboxUpdaterTaskSystem*" | Disable-ScheduledTask
Get-Service -Name DropboxUpdaterInternalService* |Set-Service -StartupType Manual
Get-Service -Name DropboxUpdaterService* |Set-Service -StartupType Manual
}
こっちは項目名を変えるだけで、EdgeやGoogle関係等、執拗にアップデートを自動起動させようとする他のソフトでも使えますね。
結論
自社ソフトをアピールしたい気持ちは分かりますが、機能を押し売りされてもヘイトが溜まるだけなので、解除する設定を最初から付けて欲しい。





