rcmdnk's blog

20160810_newfoldergodmode_200_200

Windowsには隠れコマンドというか GodModeと呼ばれる隠れ仕様があります。

Sponsored Links

GodMode

Windowsには GodMode 1 と一般的に呼ばれるWindowsのちょっとした隠れ仕様があります。

これはフォルダの名前をある決まった名前にすると、そのフォルダを開くと コントロールパネルの中にある全設定一覧が表示される、というもの。

GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}

という名前のフォルダ。

適当なところで右クリックから新規作成フォルダで 新しいフォルダを作り

20160810_newfolder.jpg

フォルダ名を GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}に変更。

20160810_newfoldername.jpg

変更後、Enterを押して確定すると アイコンも変わってGodModeというフォルダが出来ます。

20160810_newfoldergodmode.jpg

これを開いてみると

20160810_godmode.jpg

こんな感じで設定用の項目が並んでいて、 いま見てみると238個の項目がありました。

これらの項目はコントロールパネルからたどり着ける項目ですが それが全て一覧として表示されてる状態です。

ちょっと一番上にDellの設定が来てますが、 下の方にオーディオデバイスの管理だとか Windowsの機能の有効化または無効化など、見たことある項目があります。 たくさん項目があるので見たことないようなのも沢山あります。

このフォルダのプロパティを見てみると 種類のところが

フォルダー (.{ED7BA470-8E54-465E-825C-99712043E01C})

となっています。

この数字と文字の{}で囲まれた中の文字列はCLSID (class identifier)と呼ばれ Windowsのアプリケーションのコンポーネントを識別するために使われている文字列になります。

ごみ箱やコントロールパネル等の特殊フォルダにもこのCLSIDが割り当てられていて そのIDをフォルダ名の中に.{CLSID}と後に拡張子の様につけると 対応するものの機能を持つものになります。

このCSLIDはレジストリーエディタで見ることが出来ます。

コルタナとかからregeditでレジストリーエディタを立ち上げ、 ED7BA470-8E54-465E-825C-99712043E01Cを検索してみると、

コンピューター\HKEY_CLASSES_ROOT\CLSID\{ED7BA470-8E54-465E-825C-99712043E01C}

が見つかると思います。

20160810_regedit.jpg

これを選んで内容を見えてみると右側の既定の行のデータAll Tasksとなっているのがわかります。

つまり、このGodModeというのは本来はAll Tasksという名前の機能で、 GodModeというのはMicrosoftではなく誰かが呼び出して一般的になったものみたいです。

Wikipedia にはWindows Master Control Panel shortcutという名前で載ってたりします。

またこれからも分かる通り、フォルダに付ける名前は何でもよくて、

便利ツール.{ED7BA470-8E54-465E-825C-99712043E01C}

とかでもなんでも、後ろにCLSIDをつけるとその機能を持ったフォルダになります。

この仕様は2010年位にWindows 7が出ている頃に見つかった様です。

Understanding Windows 7’s ‘GodMode’ - CNET

なのでWindows 10専用、というわけではなく以前からあるものですが、 Windows Vistaの64-bit版だとクラッシュする可能性があるそうなので

CLSIDを使った他の機能の呼び出し方

上ではフォルダ名にCLSIDを付けましたが、それ以外にも機能を呼び出す方法があります。

まずはフォルダの機能を定義するDesktop.iniを使う方法。

適当なフォルダ(GodModeでもなんでも)を作り、その中にDesktop.iniを作ります。 (テキストドキュメントで作って名前を変更。拡張子も表示させる様にして拡張子ごと変更してください。 変更時に拡張子を変更すると、ファイルが使えなくなる可能性があります。と言った注意が出てくるはずです。)

そのファイルを右クリックして編集とかで開いて 中に

[.ShellClassInfo]
CLSID={ED7BA470-8E54-465E-825C-99712043E01C}

と書き込み保存します。 Desktop.iniを作ったら作成したフォルダをシステムフォルダにするため、 PowerShellなどを立ち上げて作ったフォルダがあるフォルダに行き、

> attrib.exe +s .\GodMode

等とします。lsと打ってフォルダ一覧を示して、

Mode         LastWriteTime           Length Name
----         -------------           ------ ----
d---s-    xxxxxxxxxxxxxxxx                  GodMode

みたいにModeにsが付いてればOK。 作ったフォルダをみてみるとアイコンが変わって開くとすべてのタスク 項目が見れると思います。

ただ、何故かこの方法で作ると中身が上のフォルダの名前の時の様に項目毎にわかれてないで 普通のフォルダの様に一覧になっていました。

次にショートカットを作る方法。 新規作成からショートカットを選び、 項目の場所を入力してくださいの欄に

explorer shell:::{ED7BA470-8E54-465E-825C-99712043E01C}

を入れます(コロン3つ)。ショートカットの名前は何でもOK。 これはエクスプローラーのショートカットで単にすべてのタスクを 呼び出しているだけです。 従ってこの場合は新たなエクスプロラーが立ち上がってすべてのタスクが呼び出されます。

つまり、エクスプローラーのアドレスバーに

shell:::{ED7BA470-8E54-465E-825C-99712043E01C}

と入れても全てのタスクが開けます。

この様な方法でGodModeを立ち上げるとすべてのタスクという名前のフォルダで立ち上がるので やはりGodModeではなくすべてのタスク(All Tasks)がMicrosoftに決められた正しい名前の様です。

同様に Win-Rなどでファイル名を指定して実行、を起動し、

shell:::{ED7BA470-8E54-465E-825C-99712043E01C}

と記入して実行。

コルタナから起動する場合はexplorerを付けて

explorer shell:::{ED7BA470-8E54-465E-825C-99712043E01C}

としてください。(ファイル名を指定して実行からはexplorer付きでも両方行けます。)

また、コマンドプロンプトからでも

> explorer shell:::{ED7BA470-8E54-465E-825C-99712043E01C}

PowerShellなら

> start shell:::{ED7BA470-8E54-465E-825C-99712043E01C}

で開けます。

また、GodeMode.batというファイルを作って中に

explorer shell:::{025A5937-A6BE-4686-A844-36FE4BEC8B6D}

と書いておけばこのファイルをクリックして実行すればGodeModeが開けます。

Specifying a Namespace Extension’s Location (Windows)

AutoHotkey でもCLSIDを指定して開く機能があるみたいです。

CLSID List (Windows Class Identifiers)

その他のCLSID

Windows CLSID とかでGoogleとかで検索するといろいろな機能のCLSIDが見つかると思います。

また、レジストリーエディタの中でも

コンピューター\HKEY_CLASSES_ROOT\CLSID\

の下に全てのCSLIDがあります。

ここから探すのは結構面倒ですが、検索でデータだけを検索対象にして みると欲しいものが見つかるかもしれません。

特にコントロールパネルの {21EC2020-3AEA-1069-A2DD-08002B30309D}とかは GodModeが見つかる以前から同様の方法で使われたたりしたようです。

Windows 7 に “GodMode” が発見される スラド

ただ、このコントロールパネルも含めネットで見つかるWindows 10のCLSIDをいくつか試してみましたが、 うまくいくものとそうでないものがありました。

そもそもレジストリーを見ても無いものもあるのですが、例えば 上のコントロールパネルのものははレジストリーにはあるのですが、

コントロールパネル.{26EE0668-A00A-44D7-9371-BEB064C98683}

みたいな名前を作ってもダメでした。 ただ、Desktop.iniを使った方法やエクスプローラーからshell:::{...}で 開く方法だとコントロールパネルが開けます。

上の21...はコントロールパネルの一覧を示した すべてのコントロールパネル項目なのですが、 カテゴリ別に表示したコントロールパネルのCLSIDは {26EE0668-A00A-44D7-9371-BEB064C98683}で、 これも同様にフォルダ名だと上手く行きませんでした。

ドキュメント(マイドキュメント)の{450D8FBA-AD25-11D0-98A8-0800361B1103} はアイコンは変わる感じになるのですが中身は空。 エクスプローラーなどから開くとちゃんと自分のマイドキュメントへ行けます。

フォルダ名でも上手くいったものだと

  • すべてのタスク(GodMode): {ED7BA470-8E54-465E-825C-99712043E01C}
  • PC (マイコンピューター): {20D04FE0-3AEA-1069-A2D8-08002B30309D}
  • ごみ箱: {645FF040-5081-101B-9F08-00AA002F954E}
  • ライブラリ: {031E4825-7B94-4dc3-B131-E946B44C8DD5}
  • システム: .{BB06C0E4-D293-4f75-8A90-CB05B6477EEE}
  • Windows 管理ツール: {D20EA4E1-3957-11d2-A40B-0C5020524153}
  • 電源オプション: {025A5937-A6BE-4686-A844-36FE4BEC8B6D}

など。

また、ユーザーディレクトリを表す {59031a47-3f72-44a7-89c5-5595fe6b30ee}(レジストリではUserFiles)をフォルダ名につけると どのような名前を付けてもフォルダ名が現在のユーザー名に変化する、という ちょっと他とは違った現象が起こりました。

これらを一気に作るバッチファイルとして、

mktools.bat
1
2
3
4
5
6
7
mkdir "GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}"
mkdir "PC.{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
mkdir "ごみ箱.{645FF040-5081-101B-9F08-00AA002F954E}"
mkdir "ライブラリ.{031E4825-7B94-4dc3-B131-E946B44C8DD5}"
mkdir "システム.{BB06C0E4-D293-4f75-8A90-CB05B6477EEE}"
mkdir "Windows 管理ツール.{D20EA4E1-3957-11d2-A40B-0C5020524153}"
mkdir "電源オプション.{025A5937-A6BE-4686-A844-36FE4BEC8B6D}"

みたいな物をmktools.batとかの名前で保存して実行すれば一気にフォルダが作れます。

フォルダ名からCLSIDが消えなくなった?

これちょっと前に試してた時はフォルダ名を決定したと同時に CLSIDが消えていたのですが、 今やってみるとどうしても残ってしまいます。 (上のスクリーンショットはそのちょっと前に撮ったものです。)

表示オプションのファイルの拡張子のチェックも フォルダーオプションの登録されてる拡張子は表示しないも チェックがはずれてる状態でもだめ。

最近の大きなアップデートというと Anniversary Updateですが、確かこの前後で変わったような気もします。

検索してみてもこのような現象が起こってる的な話はいまいち見つけられませんでしたが、 Anniversary Update後にこの辺試してみた人がいたら どうなのが教えていただけるとありがたいです。

もし普通に消える、というようなら単に自分の環境で何かが違うだけなので。

まとめ

GodModeという大層な名前を付けた凄い隠しコマンド的な感じのものですが、 実際一覧が見れると今まで使ったことの無い機能とかも見つけられて 結構面白いです。

便利なのでスタートボタンから起動できる様に C:\ProgramData\Microsoft\Windows\Start Menu\Programs(全てのユーザー共通)もしくは C:\Users[ユーザー名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs(各ユーザー用) にショートカットを入れておくのも良いと思います。 (この場合は上のフォルダ名の方法のものだと空フォルダとみなされるのか登録できないので、 ショートカットで作ったものを入れます。)

ごみ箱などは呼び出すには デスクトップにあるアイコンから呼び出すしか無いと思ってましたが (もしくはそこから作ったショートカットから)、 CLSIDを使えばエクスプローラーに渡して起動できるので色々出来る事が増えるかも。

また、電源オプションとかコントロールパネルの中にあるような項目の CSLIDもあるので、 よく使う項目とかは適当なフォルダの中に作っておくと便利になることもあると思います。

Sponsored Links
Sponsored Links

« Windows 10でBash on Ubuntu on Windowsも含まれるAnniversary Updateの提供開始 Skype+Microsoftが昔ながらのウイルスソフト的な攻撃をしてくる »