Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

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

Windowsでは、管理者権限を持っていても実行できない操作が存在します。たとえば、システムファイルの入れ替えや削除、一部のレジストリキーの変更、システムサービスの停止など、OSの安定性に影響を及ぼしかねない操作は、通常の管理者権限では拒否されます。このような場合、システム管理者はファイルやオブジェクトの所有権を取得するか、SYSTEMアカウントとして操作を実行する必要があります。本記事では、Windows 10において特権アカウントであるSYSTEMLocalSystem)としてアプリやコマンドプロンプトを実行する方法を詳しく解説します。

はじめに:SYSTEMアカウントでの作業に関する注意

免責事項:SYSTEMアカウントとしてWindowsに変更を加えることは、標準的な運用ではありません。NT AUTHORITY\SYSTEM権限での誤った操作は、Windowsそのものを壊してしまう恐れがあります。実際のところ、Systemアカウントでプロセスを実行する必要性はそれほど多くありません。多くのケースでは、runasコマンドの利用、UACプロンプトを表示せずにアプリを実行する設定、ファイルやレジストリキーの所有権の取得、特定アプリに対してのみUACを無効化する方法、非管理者ユーザーへのサービス管理権限の付与など、標準的な手段で問題を解決できます。

SYSTEM(LocalSystem)アカウントとは?

組み込みのSYSTEMアカウントは、SCM(サービスコントロールマネージャー)がシステムサービスを実行・管理するために使用します。Systemアカウント(NT AUTHORITY\SYSTEMLocal Systemコンピューター名\LocalSystemとも呼ばれます)は、NT OSカーネルを含むほとんどのシステムサービスやプロセスの実行に使われています。サービス管理スナップイン(services.msc)を開き、「ログオン」列にローカルシステムと表示されているサービスを確認してみてください。これらのサービスはSYSTEMアカウントで動作しています。

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

Vista以前のWindowsでローカルシステムアカウントとしてCMDを実行する方法

サポートが終了しているWindows XPやWindows Server 2003では、タスクスケジューラを使ってシステム権限でプログラムや対話型のコマンドプロンプト(cmd.exe)を実行する便利な手法がありました。管理者アカウントでコマンドプロンプトを開き、次のコマンドを実行するだけです。

at 10:23 /interactive cmd.exe

ここで「10:23」は現在時刻+1分(24時間表記)を指定します。指定時刻になると、ローカルシステムアカウントで動作するコマンドプロンプトが表示されます。なお、Windows Server 2003/XPのターミナル(RDP)セッション内でこのコマンドを実行した場合、SYSTEM権限のコマンドプロンプトはコンソールセッションにのみ表示される点に注意してください(mstsc /consoleまたはmstsc /adminでコンソールに接続できます)。

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

Windows 10では、atコマンドによる対話型コマンドプロンプトの起動はサポートされていません。代わりにschtasks.exeを使用することが推奨されています。

警告: セキュリティ強化のため、このタスクは予定どおりの時刻に実行されますが、対話的には実行されません。
対話的なタスクが必要な場合は schtasks.exe ユーティリティを使用してください ('schtasks /?' を参照)。
要求はサポートされていません。

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

Windows 10でPSExecを使ってCMD/プロセスをSYSTEMとして実行する方法

Windows 7以降では、タスクスケジューラを使ってSystemアカウントで対話型のコマンドプロンプトを起動することはできません。NT Authority\Systemとしてコマンドを実行したい場合は、SysinternalsのPSExec.exeユーティリティを利用しましょう。

PSExec.exeはMicrosoftの公式サイトからダウンロードできます:https://docs.microsoft.com/en-us/sysinternals/downloads/psexec。PSExecはWindows管理者なら誰もが知っている定番ツールで、主にWindowsのリモート管理に使われますが、Systemアカウントとしてプロセスを実行できる便利な機能も備えています。なお、一部のウイルス対策ソフトはPSExec.exeを潜在的に有害なプログラムとして検出することがあります(ちなみに、悪名高いNotPetyaウイルスの拡散にもpsexecが悪用されました)。

PSExecはインストール不要です。「管理者として実行」で昇格したコマンドプロンプトを開き、PSexec.exeがあるフォルダーへ移動して、次のコマンドを実行します。

psexec -i -s cmd.exe

  • -i – プロセスやアプリを対話モードで起動します(ユーザーがデスクトップ上でアプリを操作できます。このパラメーターを付けない場合、プロセスはコンソールセッションで起動します)
  • -s – プロセス(ここではコマンドプロンプト)をSystemアカウントとして実行することを意味します

初回のPsExec実行時には、ライセンス契約への同意を求められます。

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

コマンドを実行すると、NT Authority\Systemアカウントで動作する新しいコマンドプロンプトウィンドウが開きます。実際にそうなっているかは、次のコマンドで確認できます。

whoami

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

このように、任意のプログラム、コマンド、スクリプトをSystemアカウントとして実行できます。PsExecのパラメーターにあるcmd.exeを、実行したいアプリの実行ファイル名に置き換えるだけでOKです。

開かれたコマンドプロンプトウィンドウでは、SYSTEMとして任意のコマンドを実行できます。TrustedInstallerやSYSTEMが所有するシステムファイルやレジストリキーの変更、名前変更、削除などが可能になります。このウィンドウから起動したすべてのプログラムやプロセスは、昇格されたLocalSystem権限で動作します。たとえば、システムサービスの停止や、システムプロセスが開いているファイルのクローズなども行えます。

リモートコンピューターでSYSTEM権限のコマンドプロンプトを開く

PSExecを使えば、リモートコンピューター上でNT AUTORITY\SYSTEM権限の対話型コマンドプロンプトを開くことも可能です。その場合は次のコマンドを使用します。

psexec -s \\mun-b21pc12 cmd.exe

「Couldn't install PSEXESVC service」エラーが出る場合の対処法

「PSEXESVCサービスをインストールできませんでした」というエラーが表示された場合は、以下の点を確認してください。

  • コマンドプロンプトが管理者として実行されていること
  • 別のPSEXESVCサービスのインスタンスが起動していないこと WindowsでSYSTEM(LocalSystem)アカウントとしてCMDやプログラムを実行する方法

サードパーティ製ツールについて

Systemアカウントとしてアプリを実行するためのサードパーティ製ツール(AdvancedRunRunAsSystemPowerRunなど)もありますが、あえて使うメリットは少ないと考えます。第一に、これらはサードパーティ製であり、悪意あるコードが含まれていないか保証できません。第二に、Microsoft公式のPsExecユーティリティで十分な機能を果たせるからです。

  1. Windows 10で古いプログラムを互換モードで動かす方法【トラブルシューティング付き】

    Windows XPやWindows 7の時代に使っていたお気に入りのプログラム、まだ手放せずにいませんか?Windows 10対応のアップデート版が見つからない場合、あきらめるしかないと考えがちですが、心配はいりません。実はMicrosoftがWindows 10に「互換モード」という隠し機能を搭載しており、これを活用すれば古いプログラムでも問題なく動かせる可能性があります。 互換モードを使う前の準備:プログラム互換性トラブルシューティングツール 古いプログラムを動かす前に、まずはWindows 10標準の「プログラム互換性トラブルシューティングツール」を試してみましょう。以下の手順で実行で

  2. MacでWindowsを使う方法|Parallels・Boot Campなど5つの手段を徹底比較

    Macは安全性と快適な操作性で知られています。しかし、「Windows専用のソフトウェアを使いたいから」という理由で、Windowsからの乗り換えをためらっている方も多いのではないでしょうか。 実は、その心配は不要です。仮想マシン(Virtual Machine)などの仕組みを活用すれば、1台のMac上でmacOSとWindowsの両方を利用することができます。再起動なしにOSを切り替えられる方法もあれば、ネイティブ性能でWindowsを動かせる方法もあります。 この記事では、MacでWindowsを実行する代表的な5つの方法(Parallels Desktop、VMware Fusion、B