Windowsでシステム(LocalSystem)アカウントとしてプログラムを実行する方法

多くのWindowsシステムファイルとレジストリキーは、高い特権レベルを持つSYSTEM (別名LocalSystem)アカウントが所有しています。 SYSTEMアカウントが所有するレジストリキーを変更する必要がある場合、少なくとも2つのオプションがあります。

頭に浮かぶ最初のオプションは、対応するレジストリキーの所有権を取得し、自分にフルコントロールのアクセス許可を割り当てることです。 レジストリキーまたは値が更新されたら、アクセス許可と所有権をSYSTEM戻します。

ただし、 より簡単なオプションがありますSYSTEMまたはLocalSystemアカウントでコマンドプロンプトやレジストリエディターなどのプログラムを直接実行して、レジストリ値を更新できます。

この記事では、Windows 10を含むすべてのバージョンのWindowsで、 SYSTEMまたはLocalSystemアカウントでプログラムを実行できる5つの方法を示します。.exeファイルの[ システムとして実行 ]右クリックメニューオプションを追加することもできます。

関連:特定のレジストリキーまたはファイルに書き込むためにプログラムをTrustedInstallerとして実行する方法

続行する前に、用語SYSTEMLocalSystem 、およびNT AUTHORITY\SYSTEMNT AUTHORITY\SYSTEM同じであることを理解してください。

システム(LocalSystemアカウント)としてプログラムを実行する方法

SYSTEMアカウントでプログラムを実行するには、次のいずれかのツールを使用します。

$config[ads_text6] not found

Windows SysinternalsのPsExec.exeを使用する

MicrosoftのWindows SysinternalsのPsExec.exeコンソールツールを使用して、SYSTEMコンテキストでプログラムを実行します。 次の指示に従ってください。

  1. Microsoft SysinternalsからPsExecをダウンロードします。
  2. ツールを解凍して永続的なフォルダーに抽出します—例d:\tools
  3. 管理者特権または管理者のコマンドプロンプトウィンドウを開きます。
  4. SYSTEMアカウントでレジストリエディタを起動するには、次のコマンドを入力してEnterキーを押します。
     d:\ tools \ psexec.exe -sid c:\ windows \ regedit.exe 

    上記のPsExecコマンドラインは、レジストリの保護領域を変更できるように、 LOCALSYSTEMアカウントでレジストリエディターを起動します。

    関連:修正:Windows Defenderエラー577 | サービスが開始しない

    注: SYSTEMアカウントでコマンドプロンプト( cmd.exe )を実行すると、新しいコマンドプロンプトウィンドウが表示されます。 また、そのコマンドプロンプトウィンドウから起動するプログラムはすべて、特権の高いアカウントであるSYSTEM (LocalSystem)アカウントで実行されます。 不要なプログラムをSYSTEMとして誤って実行しないように、SYSTEMアカウントでプログラムを実行するときは注意が必要です。

  5. レジストリエディターウィンドウで、目的のレジストリキーに移動し、必要な値を変更します。

    たとえば、レジ​​ストリのタスクスケジューラサービスまたはWindows Updateサービスの「スタートアップの種類」を修正したい場合があります。

  6. レジストリエディタを終了します。

NirsoftからAdvanced Runを使用する

AdvancedRunは、低優先度または高優先度、開始ディレクトリ、メインウィンドウの状態(最小化/最大化)、異なるユーザーまたは権限でプログラムを実行するなど、選択したさまざまな設定でプログラムを実行できるWindowsのシンプルなツールです。システム互換性設定、および環境変数。 また、必要な設定を構成ファイルに保存し、コマンドラインから必要な設定でプログラムを自動的に実行することもできます。

Advanced Runを使用して、 SYSTEMまたは別のユーザーコンテキストでプログラムを起動することもできます。

実行するプログラム名を入力し、[実行方法]ドロップダウンボックスでSYSTEMユーザーを選択して、[実行]をクリックします。

デスクトップショートカットを作成して、プログラムをSYSTEMとして実行することもできます。 使用するコマンドライン構文は次のとおりです。

 AdvancedRun.exe / EXEFilename "C:\ Windows \ regedit.exe" / RunAs 4 / Run 

/RunAs 4は、LocalSystemアカウントでプログラムを起動するように指示します。 /RunAsスイッチの可能な値のデータは次のとおりです。

  • 1現在のユーザーとして実行(昇格)
  • 2現在のユーザーとして実行(昇格なし)
  • 3 –管理者として実行(強制昇格)
  • 4 –システムとして実行
  • 8 – TrustedInstallerとして実行

これにより、LocalSystemアカウントでプログラムが起動します。これは、タスクマネージャーの[詳細]タブで確認できます。

右クリックメニューからシステムとして実行

右クリックのコンテキストメニューからSYSTEMアカウント(詳細実行あり)でプログラムを起動するには、次の内容から.regファイルを作成して実行します。

 Windowsレジストリエディタバージョン5.00 [HKEY_CLASSES_ROOT \ exefile \ shell \ runassystem] @ = "Run as SYSTEM" [HKEY_CLASSES_ROOT \ exefile \ shell \ runassystem \ command] @ = "d:\\ tools \\ AdvancedRun.exe / EXEFilename \"% 1 \ "/ RunAs 4 / Run" 

必要に応じて、.regファイルでAdvancedRun.exeへのパスを変更します。

これにより、.exeファイルとそのショートカットの右クリックメニューに[ Run as SYSTEM ]コマンドが追加さRun as SYSTEMます。


NirSoftのNirCmd.exeを使用する

NirCmdは、以前このサイトで取り上げた多目的のコマンドラインツールです。

NirCmdは、昇格したプログラムを起動するだけでなく、 SYSTEMアカウントで起動することもできます。

次のコマンドラインを使用して、昇格されたSYSTEMアカウントでレジストリエディタを起動します。

 nircmd.exe elevatecmd runassystem c:\ windows \ regedit.exe 

コンテキストメニューの実装

以下の内容から.regファイルを作成し、実行します。

 Windowsレジストリエディターバージョン5.00 [HKEY_CLASSES_ROOT \ exefile \ shell \ runassystem] @ = "Run as SYSTEM" [HKEY_CLASSES_ROOT \ exefile \ shell \ runassystem \ command] @ = "d:\\ tools \\ nircmd.exe elevatecmd runassystem \"% 1 \ "" 


Uwe SieberのRunAsSystemの使用

RunAsSystem(Uwe Sieber製)は、SYSTEMアカウントまたはコンテキストでプログラムを起動するコンソールツールです。 また、ウィンドウスタイルとそのプロセスの優先順位を、デフォルトで実行されるプロセスに渡します。 コマンドライン引数を使用して、ウィンドウサイズと子プロセスの優先順位を上書きできます。 Uwe Sieberは、有名なUSB Drive Letter Managerプログラムを開発した人です。

開始されたプロセスが終了するのを待ってから、戻りコード(エラーレベル)を返します。 ただし、バッチファイルでは、 start /waitを追加する必要があります。

使用法:

 RunAsSystem [-min | -max | -normal | -noact | -hid] [-low | -below | -normal | -above | -high] "実行可能" [実行可能パラメータ] 

例:

 RunAsSystem "C:\ Windows \ notepad.exe" RunAsSystem "%windir%\ regedit.exe" RunAsSystem "%windir%\ System32 \ cmd.exe" / k dir / s "C:\ Systemボリューム情報" 

コンテキストメニューの実装

以下の内容から.regファイルを作成し、実行します。

 Windowsレジストリエディタバージョン5.00 [HKEY_CLASSES_ROOT \ exefile \ shell \ runassystem] @ = "Run as SYSTEM" [HKEY_CLASSES_ROOT \ exefile \ shell \ runassystem \ command] @ = "d:\\ tools \\ RunAsSystem.exe \"%1 \ 「」 

上記の.regファイルは、.exeファイルの右クリックメニューに[ システムとして実行 ]コマンドを追加します。 .regファイルは、ファイルRunAsSystem.exed:\toolsフォルダの下に配置されていることを前提としています。 そうでない場合は、.regファイルのパスを適宜変更してください。

$config[ads_text6] not found

M2Teamから「NSudo」を使用する

NSudo(GitHub)は、NSudoがデジタル署名されていないことを除いて、Advanced Runと同様のポータブルユーティリティです。 NSudoは、SYSTEM、現在のユーザー、現在のプロセス、またはTrustedInstallerアカウントでプログラムを起動できます。 NSudoを使用してプログラムをTrustedInstallerとして起動する方法についてはすでに説明しました。

関連:特定のレジストリキーまたはファイルに書き込むためにプログラムをTrustedInstallerとして実行する方法

ドロップダウンからモード( システム )を選択し、実行可能パスを入力して、[実行]をクリックします。

必要に応じて、実行可能ファイルと同じフォルダにあるNSudo.jsonという名前のファイルを編集して、[開く]ドロップダウンリストボックスに事前定義された一連のプログラムまたはコマンドを追加することもできます。

NSudoコマンドラインを使用してSYSTEMコンテキストでプログラムを実行するには、次の構文を使用します。

 NSudo -U:S c:\ windows \ system32 \ cmd.exe 

このユーティリティでサポートされているコマンドライン引数の完全なリストについては、以下を参照してください。

NSudo:コマンドラインのサポート

 NSudoバージョン6.2.1812.31 -U: [Option]指定したユーザーオプションでプロセスを作成します。 利用可能なオプション:T TrustedInstaller SシステムC現在のユーザーP現在のプロセスD現在のプロセス(右にドロップ)PS:これは必須パラメーターです。 -P: [オプション]特権オプションを指定してプロセスを作成します。 使用可能なオプション:Eすべての特権を有効にするDすべての特権を無効にするPS:デフォルトの特権を使用してプロセスを作成する場合は、「-P」パラメーターを含めないでください。 -M: [オプション]整合性レベルオプションを指定してプロセスを作成します。 利用可能なオプション:SシステムH高M中L低PS:デフォルトの整合性レベルを使用してプロセスを作成する場合は、「-M」パラメーターを含めないでください。 -Priority: [オプション] [プロセス優先順位オプションを指定してプロセスを作成します。 利用可能なオプション:Idle BelowNormal Normal AboveNormal High RealTime PS:デフォルトのプロセス優先度を使用してプロセスを作成する場合は、「-Priority」パラメーターを含めないでください。 -ShowWindowMode: [Option]指定されたウィンドウモードオプションでプロセスを作成します。 利用可能なオプション:表示非表示最大化最小化PS:デフォルトのウィンドウモードを使用してプロセスを作成する場合は、「-ShowWindowMode」パラメーターを含めないでください。 -Wait作成されたプロセスが終了するまでNSudoが待機してから終了します。 PS:待機したくない場合は、「-Wait」パラメーターを含めないでください。 -CurrentDirectory: [DirectoryPath]プロセスの現在のディレクトリを設定します。 PS:NSudoの現在のディレクトリを使用する場合は、「-CurrentDirectory」パラメーターを含めないでください。 -UseCurrentConsole現在のコンソールウィンドウでプロセスを作成します。 PS:新しいコンソールウィンドウでプロセスを作成する場合は、「-UseCurrentConsole」パラメーターを含めないでください。 -Version NSudoのバージョン情報を表示します。 -? このコンテンツを表示します。 -Hこのコンテンツを表示します。 -ヘルプこのコンテンツを表示します。 コンテキストメニュー: -Install :NSudoをWindowsディレクトリにコピーし、コンテキストメニューを追加します。 -Uninstall :WindowsディレクトリとコンテキストメニューのNSudoを削除します。 PS:1.すべてのNSudoコマンド引数は大文字と小文字を区別しません。 2.コマンドラインパラメータで「/」または「-」オーバーライド「-」を使用し、「=オーバーライド」:を使用できます。 たとえば、「/ U:T」と「-U = T」は同等です。 3.最高のエクスペリエンスを保証するために、NSudoCはコンテキストメニューをサポートしていません。 例: TrustedInstallerでコマンドプロンプトを実行する場合は、すべての権限とデフォルトの整合性レベルを有効にします。 NSudo -U:T -P:E cmd 

コンテキストメニューの追加

  • -Installパラメータを指定して-Install実行します。 NSudoをWindowsディレクトリにコピーし、コンテキストメニューを追加します。
  • コンテキストメニューを削除するには、 -Uninstallパラメータを指定して-Uninstall実行します。 WindowsディレクトリとコンテキストメニューからNSudoを削除します。

Editor's Pick: GUI(およびCLI)のAdvanced Run 、およびCLIのPsExec

関連記事