内気なもんた君

時々日本語化してます

変更した所有権を TrustedInstaller に復元する

変更した所有権を TrustedInstaller に復元する

システムファイルの所有者を変更した後に、TrustedInstaller に所有者を戻します。

あまり意味のないことかもしれないけど、ファイルによっては所有権が変更されているとセキュリティ的によろしくない場合があるかも。

でもまぁ、システムファイルをいじる人はそんなにいないと思うのでこんな方法もあるんだなぁぐらいで適当に読み流してください。

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

変更前

変更後

復元後



- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

*コマンド実行前の準備

コマンドの実行には、AdvancedRun.exe が必要です。
ダウンロードしてAdvancedRun.exeをSystem32へコピーしてください。

 

追加したコンテキストメニューのデータの値を編集します。

または、こちら

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\RunSys\command]
@="AdvancedRun.exe /EXEFilename \"%1\" /RunAs 8 /Run"

RunAs 4 を RunAs 8 に変更します。

 

"C:\Program Files\WindowsTerminal\OpenConsole.exe"

を右クリでシステム権限で実行

* 標準ではターミナルの場所が違うのでOpenConsole.exeを探して実行。

* wt.exe は起動しません。

 

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

* コマンドの編集と実行

icacls "%1" /grant Administrators:F && sc config TrustedInstaller start= demand && net start TrustedInstaller && icacls "%1" /setowner "NT SERVICE\TrustedInstaller" && icacls "%1" /inheritance:d &&  icacls "%1" /remove Administrators && icacls "%1" /grant Administrators:(RX) && icacls "%1" /remove SYSTEM && icacls "%1" /grant SYSTEM:(RX) && icacls "%1" /grant "NT SERVICE\TrustedInstaller":F

 

"%1" を変更したいファイルのパスと置き換えてください。(8ヶ所)

Administrators は自身のユーザー名と置き換えてください。

 

編集後、OpenConsole.exe の窓へ貼り付けて実行。

 

これで TrustedInstaller へ復元できます。

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

備考 :

システムドライブ内で変更するだけならSYSTEMはいじる必要ないんだけど、別ドライブへコピーして編集するとSYSTEMのアクセス権が変���されてしまうので念のためSYSTEMもコマンドに入れてます。

 

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

うまくいかなかった場合 :

失敗したときはその都度アクセス権をリセットしてください。
icacls "%1" /t /q /c /reset

この時は通常のターミナルまたはCMDで大丈夫です。

 

失敗してコマンドを繰り返していると
要求したサービスは既に開始されています。
とエラーになる場合があります。

net stop TrustedInstaller

を実行するか、しばらく時間をおいてから試してください。

 

*システムリソース、レジストリの編集は自己責任でお願いします。

 

コンテキストメニューへDLLの登録/解除を追加

コンテキストメニューへDLLの登録/解除を追加

ついでなんで、もうひとつ。

多分ほとんど使う機会はないと思うけど、稀にマナーの悪いアプリやツールをアンインストールしても残っている場合があります。

こんなもののためにコマンドプロンプト開くのも癪なので、コンテキストメニューでサクッと解除しましょう。

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\dllfile\Shell\Register]
"MUIVerb"="DLLの登録"
"SubCommands"=""
"Icon"="imageres.dll,-69"
"Extended"=""

[HKEY_CLASSES_ROOT\dllfile\Shell\Register\shell\Register]
@="登録"
"Icon"="imageres.dll,-106"

[HKEY_CLASSES_ROOT\dllfile\Shell\Register\shell\Register\command]
@="regsvr32 \"%1\""

[HKEY_CLASSES_ROOT\dllfile\Shell\Register\shell\UnRegister]
@="登録解除"
"Icon"="imageres.dll,-105"

[HKEY_CLASSES_ROOT\dllfile\Shell\Register\shell\UnRegister\command]
@="regsvr32 /u \"%1\""

 

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

DLL ファイルの SHIF+右クリ で表示されます。

"Extended" は必要ないかも・・・

 

削除するには、
[-HKEY_CLASSES_ROOT\dllfile\Shell]
shellキーごと削除してください。

 

追記2 : コンテキストメニューにサブメニューを追加

コンテキストメニューにサブメニューを追加

追記1 : 
システム権限で実行が動作しないみたい。
AllFilesystemObjectsじゃだめなのかな?
今は忙しいのであとで見直してみます。

追記2 : 

バックスラッシュが多かったのかなぁ?
訂正したものを貼り付けてみました。
こちらの環境では動作しています。

 

前回のコンテキストメニューのカスタマイズにサンプルでもあった方が
分かりやすいかと思ってちょっとサブメニューを作ってみました。

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd]
"MUIVerb"="拡張コマンド"
"ExtendedSubCommandsKey"="AllFilesystemObjects\\shell\\ExCmd"

;----- パスのコピー -----
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\CopyAsPath]
@="パスのコピー"
"Icon"="imageres.dll,-5302"

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\CopyAsPath\command]
@="cmd.exe /c echo \"%1\"|clip"

;----- フォルダーリストのコピー -----
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\DirList]
@="フォルダーリストのコピー"
"Icon"="ieframe.dll,-38738"

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\DirList\command]
@="cmd /c dir \"%1\" /b /o:gn | clip"

;----- 区切り線 -----
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\O]
"CommandFlags"=dword:00000008

;----- 新しいプロセス -----
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\opennewprocess]
"ExplorerHost"="{ceff45ee-c862-41de-aee2-a022c81eda92}"
"LaunchExplorerFlags"=dword:00000003
"MUIVerb"="@shell32.dll,-8518"
"MultiSelectModel"="Document"
"icon"="C:\\Windows\\System32\\shell32.dll,-185"

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\opennewprocess\command]
"DelegateExecute"="{11dbb47c-a525-400b-9e80-a54615a090c0}"

;----- 新しいタブ -----
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\opennewtab]
"CommandStateHandler"="{11dbb47c-a525-400b-9e80-a54615a090c0}"
"CommandStateSync"=""
"LaunchExplorerFlags"=dword:00000020
"MUIVerb"="@windows.storage.dll,-8519"
"MultiSelectModel"="Document"
"OnlyInBrowserWindow"=""
"icon"="C:\\Windows\\System32\\shell32.dll,-16819"

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\opennewtab\command]
"DelegateExecute"="{11dbb47c-a525-400b-9e80-a54615a090c0}"

;----- 新しいウィンドウ -----
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\opennewwindow]
"LaunchExplorerFlags"=dword:00000001
"MUIVerb"="@windows.storage.dll,-8517"
"MultiSelectModel"="Document"
"OnlyInBrowserWindow"=""
"icon"="C:\\Windows\\System32\\imageres.dll,-116"

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\opennewwindow\command]
"DelegateExecute"="{11dbb47c-a525-400b-9e80-a54615a090c0}"

;----- 区切り線 -----
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\P]
@=""
"CommandFlags"=dword:00000008

;----- 読み取り専用 -----
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\Readonly]
"MUIVerb"="読み取り専用"
"SubCommands"="ROEnable;RODisable"
"Icon"="shell32.dll,-16777"

;----- システム権限で実行 -----
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\RunSys]
"Icon"="%systemroot%\\\\system32\\\\imageres.dll,-1028"
@="システム権限で実行"

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd\shell\RunSys\command]
@="AdvancedRun.exe /EXEFilename \"%1\" /RunAs 4 /Run"

;----- 読み取り専用(有効/無効) -----
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\RODisable]
@="無効"
"Icon"="imageres.dll,-1402"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\RODisable\command]
@="attrib -r \"%1\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\ROEnable]
@="有効"
"Icon"="imageres.dll,-1405"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\ROEnable\command]
@="attrib +r \"%1\""

;----- 元のウィンドウメニュー無効 -----
[HKEY_CLASSES_ROOT\Folder\shell\opennewprocess]
"CommandFlags"=dword:00000008
[HKEY_CLASSES_ROOT\Folder\shell\opennewtab]
"CommandFlags"=dword:00000008
[HKEY_CLASSES_ROOT\Folder\shell\opennewwindow]
"CommandFlags"=dword:00000008

;----- 元のパスのコピー削除 -----
[-HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\CopyAsPathMenu]

 

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

説明 :

AllFilesystemObjects へ追加してるので、ファイルとフォルダーのコンテキストメニューへ追加されます。

 

"ExtendedSubCommandsKey"拡張コマンドをサブメニューにしてます。

"SubCommands"読み取り専用をサブメニューにしてます。"ROEnable;RODisable"

CommandStore"ROEnable;RODisable" を登録。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

新しいプロセス、新しいタブ、新しいウィンドウは元々あるメニューを
"CommandFlags"=dword:00000008 で隠して、サブメニューに追加。

パスのコピーも同様に元々あるメニューを削除して、サブメニューに追加。

 

こはちょっと詳しく。
新しいプロセス、新しいタブ、新しいウィンドウはレジストリエントリでは削除できないのでCommandFlagsで隠してます。
CommandFlags=dword:00000008 は本来区切りです。
LegacyDisableだとエクスプローラーが起動しなくなるので、苦肉の策です。

私の環境ではきれいに隠れてくれてますが、メニューの内容によっては区切りが現れるかもしれません。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

パスのコピーはダブルクォーテーション(")付きです。

ダブルクォーテーションを付加したくない場合はこちらを参照。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

フォルダーリストのコピーは、サブディレクトリをリストしません。
サブディレクトリ以下をリストするには /s スイッチを追加してください。

詳しくは、こちらを参照してください。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

システム権限で実行は、AdvancedRun.exe が必要です。
System32にコピーしてください。

必要なのはAdvancedRun.exeのみです。他はコピーしなくてよい。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

区切り線のための O と P は、SeparatorBefore や SeparatorAfter が効果がなかったのでしょうがなく追加してます。

 

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

元に戻すには以下のエントリを登録してください。

 

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ExCmd]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\RODisable]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\ROEnable]

[HKEY_CLASSES_ROOT\Folder\shell\opennewprocess]
"CommandFlags"=-
[HKEY_CLASSES_ROOT\Folder\shell\opennewtab]
"CommandFlags"=-
[HKEY_CLASSES_ROOT\Folder\shell\opennewwindow]
"CommandFlags"=-

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\CopyAsPathMenu]
@="{f3d06e7c-1e45-4a26-847e-f9fcdee59be0}"

 

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

メニューの名前、コマンドを編集すれば自分専用のメニューを作成できます。

自由にカスタマイズしてください。

サブメニューに関してはあまり詳しくないのでもっとスマートな方法があるかもしれません。

改良してより良いものにしてください。

 

ほぼほぼ追加だけなので大丈夫かとは思いますが、

レジストリの編集は自己責任でお願いします。

 

コンテキストメニューのカスタマイズ

コンテキストメニューのカスタマイズ

カスタマイズと言っても追加する場合についてです。

備忘録を兼ねてなので簡単に。

以下ではLOCAL_MACHINEに設定しているけどCURRENT_USERの方が安全かもしれません。

 

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - 

* デスクトップへ追加する場合。

HKEY_CLASSES_ROOT\DesktopBackground\Shell

 

* すべてのファイルへ追加する場合。

HKEY_CLASSES_ROOT\*\shell

 

* すべてのファイルとフォルダーへ追加する場合。

HKEY_CLASSES_ROOT\AllFilesystemObjects\shell

 

* フォルダーへ追加する場合。

HKEY_CLASSES_ROOT\directory\shell

 

* 特殊フォルダーを含むフォルダーへ追加する場合。

HKEY_CLASSES_ROOT\Folder\shell

* ドライブへも追加される

 

* フォルダーのなにもないところへ追加する場合。

HKEY_CLASSES_ROOT\directory\BackGround\shell

 

* ドライブへ追加する場合。

HKEY_CLASSES_ROOT\Drive\shell

 

* 特定の拡張子へ追加する場合。

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\.拡張子\shell

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell など

 

* 特定の種類のファイルへまとめて追加する場合。

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\image\shell

* audio,image,text,video などがある。

 

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - 

* メニューに名前を付ける場合。

(文字列値) MUIVerb

 

* サブメニューにする場合。

・(文字列値) ExtendedSubCommandsKey

・(文字列値) SubCommands

・サブキーを作成

などなどなど・・・

 

サブメニューを作成する方法は複数あってなかなか複雑なので詳しくは自身で検索してください。

参考URL :

ExtendedSubCommandsKey レジストリ エントリを使用してカスケード メニューを作成する - Win32 apps | Microsoft Learn

ショートカット メニュー ハンドラーの作成 - Win32 apps | Microsoft Learn

レジストリキー :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell

 

* メニューに区切り線を挿入する場合。

(DWORD値) "SeparatorBefore"=dword:00000001 項目の前に追加

(DWORD値) "SeparatorAfter"=dword:00000001  項目の後ろに追加

(DWORD値) "CommandFlags"=dword:00000008  項目自体を区切りにする

 

* メニューの表示位置を指定する場合。

(文字列値) Position

値のデータ :  Top   上の方

      Middle 中央付近

      Bottom 下の方

 

* SHIF+右クリで表示する場合。

(文字列値) Extended

 

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - 

レジストリの編集は自己責任でお願いします。

とは言っても、今回は追加なので間違ったとしても動作しないぐらいだから
そんなに慎重にならなくても大丈夫だと思うけど・・・

 

grepWin x64 v2.1.3 Portable 日本語化

grepWin x64 v2.1.3 Portable 日本語化

grepWin は、正規表現を使用してgrepを実行できるシンプルな検索および置換ツールです。これにより、より強力な検索と置換が可能になります。

 

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

ダウンロード : 日本語化パッチ

SystemApps 内の画像一覧 (Windows 11 24H2 26100.994)

SystemApps 内の画像一覧 (Windows 11 24H2 26100.994)

Windows Update のアイコンを探すときに苦労したので SystemApps 内の画像を抜き出してみました。

不要なコンポーネントを削除しているのですべてではないと思います。

サイズ、テーマ違い等で同様の画像はまとめてあります。

画像は実際にはサブディレクトリ内にあります。
アドレス付きのリストは、こちらを参照してください。

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

SystemApps\Microsoft.AccountsControl_cw5n1h2txyewy

SystemApps\Microsoft.UI.Xaml.CBS_8wekyb3d8bbwe

SystemApps\Microsoft.Windows.AugLoop.CBS_8wekyb3d8bbwe

SystemApps\Microsoft.Windows.CloudExperienceHost_cw5n1h2txyewy

SystemApps\Microsoft.Windows.FileExplorer_cw5n1h2txyewy

SystemApps\Microsoft.Windows.FilePicker_cw5n1h2txyewy

SystemApps\MicrosoftWindows.Client.CBS_cw5n1h2txyewy

SystemApps\MicrosoftWindows.Client.Core_cw5n1h2txyewy

SystemApps\MicrosoftWindows.Client.FileExp_cw5n1h2txyewy

SystemApps\MicrosoftWindows.Client.OOBE_cw5n1h2txyewy

SystemApps\MicrosoftWindows.Client.Photon_cw5n1h2txyewy

SystemApps\Windows.PrintDialog_cw5n1h2txyewy

 

探すのが面倒でとりあえず画像だけ欲しい方は、こちらからダウンロードしてください。

30MBあるのでダウンロードまでにちょっと待たされるかも。

 

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

ついでなんで、SystemResources のサブディレクトリ内にある画像。

 

コンテキストメニューに [フォルダーリストのコピー] を追加

コンテキストメニューに [フォルダーリストのコピー] を追加

Folder2List の言語ファイルを投稿した後にこう言うのもなんだけど、

整形なんてしなくていいからとりあえずフォルダーのリストを

取りたいという時に便利です。

 

フォルダーのSHIFT+右クリ[フォルダーリストのコピー]を追加します。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DirList]
@="フォルダーリストのコピー"
"Extended"=""
"Icon"="ieframe.dll,-38738"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DirList\Command]
@="cmd /c dir \"%1\" /b /o:gn | clip"

dir で出力した結果をパイプでクリップボードへ送ってます。

 

サブディレクトリ以降も出力したい時は、dir に /s スイッチを追加します。

@="cmd /c dir \"%1\" /b /o:gn /s | clip"

 

SHIFT キーなしで右クリだけで表示したい時は、

"Extended"="" を削除。

 

SHIFT+右クリ なので普段はそんなに邪魔にならないと思うけど、削除する場合は

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DirList]

キーを削除。