.reg ファイル内で管理者として cmd を実行して所有権を変更する方法

.reg ファイル内で管理者として cmd を実行して所有権を変更する方法

これを正常に動作させるのに苦労しています。この .reg はインポートすると表面的には動作しますが、実行すると「このセキュリティ ID はこのオブジェクトの所有者として割り当てられない可能性があります」というメッセージが表示されます。

これは、cmd が管理者として起動されていないことが原因だと思います。コマンドの変更についてアドバイスをいただけますか? 過去に同様の要件があったことから、最初に PowerShell を使用して cmd などを開く必要があると思います。

regfileはこちら

[HKEY_CLASSES_ROOT\*\shell\RestoreOwnership]
"HasLUAShield"=""
"MUIVerb"="Restore Ownership"
"NoWorkingDirectory"=""
"NeverDefault"=""
"SubCommands"=""


[HKEY_CLASSES_ROOT\*\shell\RestoreOwnership\Shell]


[HKEY_CLASSES_ROOT\*\shell\RestoreOwnership\Shell\RestoreOwnershipSYSTEM]
"HasLUAShield"=""
"MUIVerb"="Restore to System"


[HKEY_CLASSES_ROOT\*\shell\RestoreOwnership\Shell\RestoreOwnershipSYSTEM\command]
@="cmd.exe /c icacls \"%1\" /setowner \"SYSTEM\" /t /c & pause"
"IsolatedCommand"="cmd.exe /c icacls \"%1\" /setowner \"SYSTEM\" /t /c & pause"


[HKEY_CLASSES_ROOT\*\shell\RestoreOwnership\Shell\RestoreOwnershipTrustedInstaller]
"HasLUAShield"=""
"MUIVerb"="Restore to TrustedInstaller"


[HKEY_CLASSES_ROOT\*\shell\RestoreOwnership\Shell\RestoreOwnershipTrustedInstaller\command]
@="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /t /c & pause"
"IsolatedCommand"="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /t /c & pause"


[HKEY_CLASSES_ROOT\Directory\shell\RestoreOwnership]
"HasLUAShield"=""
"MUIVerb"="Restore Ownership"
"NoWorkingDirectory"=""
"NeverDefault"=""
"SubCommands"=""


[HKEY_CLASSES_ROOT\Directory\shell\RestoreOwnership\Shell]


[HKEY_CLASSES_ROOT\Directory\shell\RestoreOwnership\Shell\RestoreOwnershipSYSTEM]
"HasLUAShield"=""
"MUIVerb"="Restore to System"


[HKEY_CLASSES_ROOT\Directory\shell\RestoreOwnership\Shell\RestoreOwnershipSYSTEM\command]
@="cmd.exe /c icacls \"%1\" /setowner \"SYSTEM\" /t /c & pause"
"IsolatedCommand"="cmd.exe /c icacls \"%1\" /setowner \"SYSTEM\" /t /c & pause"


[HKEY_CLASSES_ROOT\Directory\shell\RestoreOwnership\Shell\RestoreOwnershipTrustedInstaller]
"HasLUAShield"=""
"MUIVerb"="Restore to TrustedInstaller"


[HKEY_CLASSES_ROOT\Directory\shell\RestoreOwnership\Shell\RestoreOwnershipTrustedInstaller\command]
@="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /t /c & pause"
"IsolatedCommand"="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /t /c & pause"

まあ、私はSYSTEMを動作させています

[HKEY_CLASSES_ROOT\*\shell\RestoreOwnership]
"MUIVerb"="Restore Ownership"
"HasLUAShield"=""
"SubCommands"=""


[HKEY_CLASSES_ROOT\*\shell\RestoreOwnership\shell\RestoreOwnershipSYSTEM]
@="Restore Ownership SYSTEM"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\*\shell\RestoreOwnership\shell\RestoreOwnershipSYSTEM\command]
@="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"SYSTEM\" /t /c /l & pause' -Verb runAs\""
"IsolatedCommand"="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"SYSTEM\" /t /c /l & pause' -Verb runAs\""


[HKEY_CLASSES_ROOT\*\shell\RestoreOwnership\shell\RestoreOwnershipTrustedInstaller]
@="Restore Ownership TrustedInstaller"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\*\shell\RestoreOwnership\shell\RestoreOwnershipTrustedInstaller\command]
@="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"NT Service\\TrustedInstaller\" /t /c /l & pause' -Verb runAs\""
"IsolatedCommand"="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"NT Service\\TrustedInstaller\" /t /c /l & pause' -Verb runAs\""

残念ながら、TrustedInstallerはまだ失敗しています

Invalid parameter "Service\TrustedInstaller"

それは私が見逃している、とても単純な何かであるはずだとわかっています.....

答え1

最終的な答え。すべてはフォーマットに関するものでした。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\Ownership]
"HasLUAShield"=""
"MUIVerb"="Ownership"
"NoWorkingDirectory"=""
"NeverDefault"=""
"SubCommands"=""

[HKEY_CLASSES_ROOT\*\shell\Ownership\Shell]

[HKEY_CLASSES_ROOT\*\shell\Ownership\Shell\flyout01]
"HasLUAShield"=""
"MUIVerb"="Take ownership"

[HKEY_CLASSES_ROOT\*\shell\Ownership\Shell\flyout01\command]
@="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c takeown /f \\\"%1\\\" && icacls \\\"%1\\\" /grant *S-1-3-4:F /t /c /l & pause' -Verb runAs\""
"IsolatedCommand"="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c takeown /f \\\"%1\\\" && icacls \\\"%1\\\" /grant *S-1-3-4:F /t /c /l & pause' -Verb runAs\""

[HKEY_CLASSES_ROOT\*\shell\Ownership\Shell\flyout02]
"CommandFlags"=dword:00000020
"HasLUAShield"=""
"MUIVerb"="Restore to administrators"

[HKEY_CLASSES_ROOT\*\shell\Ownership\Shell\flyout02\command]
@="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"Administrators\" /t /c /l & pause' -Verb runAs\""
"IsolatedCommand"="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"Administrators\" /t /c /l & pause' -Verb runAs\""

[HKEY_CLASSES_ROOT\*\shell\Ownership\Shell\flyout03]
"HasLUAShield"=""
"MUIVerb"="Restore to system"

[HKEY_CLASSES_ROOT\*\shell\Ownership\Shell\flyout03\command]
@="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"SYSTEM\" /t /c /l & pause' -Verb runAs\""
"IsolatedCommand"="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"SYSTEM\" /t /c /l & pause' -Verb runAs\""

[HKEY_CLASSES_ROOT\*\shell\Ownership\Shell\flyout04]
"HasLUAShield"=""
"MUIVerb"="Restore to trustedinstaller"

[HKEY_CLASSES_ROOT\*\shell\Ownership\Shell\flyout04\command]
@="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"\"\"NT Service\\TrustedInstaller\"\"\" /t /c /l & pause' -Verb runAs\""
"IsolatedCommand"="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"\"\"NT Service\\TrustedInstaller\"\"\" /t /c /l & pause' -Verb runAs\""

[HKEY_CLASSES_ROOT\Directory\shell\Ownership]
"HasLUAShield"=""
"MUIVerb"="Ownership"
"NoWorkingDirectory"=""
"NeverDefault"=""
"SubCommands"=""

[HKEY_CLASSES_ROOT\Directory\shell\Ownership\Shell]

[HKEY_CLASSES_ROOT\Directory\shell\Ownership\Shell\flyout01]
"HasLUAShield"=""
"MUIVerb"="Take ownership"

[HKEY_CLASSES_ROOT\Directory\shell\Ownership\Shell\flyout01\command]
@="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c takeown /f \\\"%1\\\" && icacls \\\"%1\\\" /grant *S-1-3-4:F /t /c /l & pause' -Verb runAs\""
"IsolatedCommand"="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c takeown /f \\\"%1\\\" && icacls \\\"%1\\\" /grant *S-1-3-4:F /t /c /l & pause' -Verb runAs\""

[HKEY_CLASSES_ROOT\Directory\shell\Ownership\Shell\flyout02]
"CommandFlags"=dword:00000020
"HasLUAShield"=""
"MUIVerb"="Restore to administrators"

[HKEY_CLASSES_ROOT\Directory\shell\Ownership\Shell\flyout02\command]
@="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"Administrators\" /t /c /l & pause' -Verb runAs\""
"IsolatedCommand"="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"Administrators\" /t /c /l & pause' -Verb runAs\""

[HKEY_CLASSES_ROOT\Directory\shell\Ownership\Shell\flyout03]
"HasLUAShield"=""
"MUIVerb"="Restore to system"

[HKEY_CLASSES_ROOT\Directory\shell\Ownership\Shell\flyout03\command]
@="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"SYSTEM\" /t /c /l & pause' -Verb runAs\""
"IsolatedCommand"="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"SYSTEM\" /t /c /l & pause' -Verb runAs\""

[HKEY_CLASSES_ROOT\Directory\shell\Ownership\Shell\flyout04]
"HasLUAShield"=""
"MUIVerb"="Restore to trustedinstaller"

[HKEY_CLASSES_ROOT\Directory\shell\Ownership\Shell\flyout04\command]
@="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"\"\"NT Service\\TrustedInstaller\"\"\" /t /c /l & pause' -Verb runAs\""
"IsolatedCommand"="powershell -windowstyle hidden -command \"Start-Process cmd -ArgumentList '/c icacls \\\"%1\\\" /setowner \"\"\"NT Service\\TrustedInstaller\"\"\" /t /c /l & pause' -Verb runAs\""

関連情報