PsExec v2.40

マーク・ルシノヴィチ

公開日: 2022 年 7 月 19 日

ダウンロード PsTools(3.5 MB)

はじめに

Telnet などのユーティリティや、Symantec の PC Anywhere のようなリモート コントロール プログラムを使用すると、リモート システムでプログラムを実行できますが、セットアップが容易ではなく、アクセスするリモート システムにクライアント ソフトウェアをインストールする必要があります。 PsExec は軽量の telnet 交換であり、他のシステムでプロセスを実行でき、コンソール アプリケーションの完全な対話機能を備えています。クライアント ソフトウェアを手動でインストールする必要はありません。 PsExec の最も強力な用途には、リモート システムでの対話型コマンド プロンプトの起動や、リモート システムに関する情報を表示できない IpConfig などのリモート対応ツールが含まれます。

注: 一部のウイルス対策スキャナーでは、1 つ以上のツールが "リモート管理者" ウイルスに感染していると報告されています。 PsToolsのどれもウイルスを含んでいません, しかし、彼らはウイルスによって使用されています, 彼らはウイルス通知をトリガーする理由です.

インストール

PsExec を実行可能パスにコピーするだけです。 「psexec」と入力すると、その使用法構文が表示されます。

PsExec を使用する

PsExec の高度な使用に関する Mark の記事については、Windows IT Pro Magazine の 2004 年 7 月号を参照してください。

使用法:

psexec [\\computer[,computer2[,...] | @file]][-u user [-p psswd][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c executable [-f|-v]][-w directory][-d][-<priority>][-a n,n,...] cmd [arguments]
パラメーター 説明
-a アプリケーションを実行できるプロセッサをコンマで区切ります。1 は最小の番号付き CPU です。 たとえば、CPU 2 と CPU 4 でアプリケーションを実行するには、「-a 2,4」と入力します。
-c 指定した実行可能ファイルをリモート システムにコピーして実行します。 このオプションを省略した場合、アプリケーションはリモート・システム上のシステム・パスに入っている必要があります。
-d プロセスが終了するまで待機しないでください (非対話型)。
-e 指定したアカウントのプロファイルを読み込まない。
-f リモート・システムにファイルが既に存在する場合でも、指定されたプログラムをコピーします。
-i リモート システム上の指定されたセッションのデスクトップと対話するようにプログラムを実行します。 セッションが指定されていない場合、プロセスはコンソール セッションで実行されます。 このフラグは、コンソール アプリケーションを対話形式で (リダイレクトされた標準 IO を使用して) 実行する場合に 必要 です。
-h ターゲット システムが Vista 以上の場合は、アカウントの昇格されたトークン (使用可能な場合) でプロセスを実行します。
-l プロセスを制限付きユーザーとして実行します (Administrators グループを削除し、ユーザー グループに割り当てられた特権のみを許可します)。 Windows Vista では、プロセスは低整合性で実行されます。
-n リモート コンピューターに接続するタイムアウトを秒単位で指定します。
-p ユーザー名の省略可能なパスワードを指定します。 これを省略すると、非表示のパスワードを入力するように求められます。
-r 作成または操作するリモート サービスの名前を指定します。
-s システム アカウントでリモート プロセスを実行します。
-u リモート コンピューターへのログインの省略可能なユーザー名を指定します。
-v 指定したファイルのバージョン番号がリモート・システムのバージョン番号より大きいか、それより新しい場合にのみコピーします。
-w プロセスの作業ディレクトリ (リモート コンピューターに対する相対ディレクトリ) を設定します。
-x Winlogon セキュア デスクトップに UI を表示します (ローカル システムのみ)。
-priority プロセスを別の優先順位で実行するには、-low、-belownormal、-abovenormal、-high、または -realtime を指定します。 -background を使用して、Vista のメモリと I/O の優先順位が低い場合に実行します。
コンピュータ 指定されたリモート コンピューターまたはコンピューターでアプリケーションを実行するように PsExec に指示します。 コンピューター名を省略すると、PsExec はローカル システムでアプリケーションを実行し、ワイルドカード (\\*) を指定すると、PsExec は現在のドメイン内のすべてのコンピューターでコマンドを実行します。
@file PsExec は、ファイルに一覧表示されている各コンピューターでコマンドを実行します。
cmd 実行するアプリケーションの名前。
引数 渡す引数 (ファイル パスはターゲット システム上の絶対パスである必要があることに注意してください)。
-accepteula このフラグは、ライセンス ダイアログの表示を抑制します。

名前にスペースがあるアプリケーションは、引用符で囲むことができます。例:

psexec \\marklap "c:\\long name app.exe"

入力は、Enter キーを押したときにのみリモート・システムに渡されます。 Ctrl キーを押しながら C キーを押して、リモート プロセスを終了します。

ユーザー名を省略した場合、プロセスはリモート システム上のアカウントのコンテキストで実行されますが、ネットワーク リソースにアクセスすることはできません (偽装しているため)。 リモート プロセスがネットワーク リソースへのアクセスまたは別のアカウントで Domain\User 実行する必要がある場合は、構文で有効なユーザー名を指定します。 パスワードとコマンドは、リモート・システムへの転送中に暗号化されることに注意してください。

PsExec によって返されるエラー コードは、PsExec ではなく、実行するアプリケーションに固有です。

この記事では、 PsExec のしくみについて説明 し、その使用方法に関するヒントを示します。

次のコマンドは、対話型のコマンド プロンプトを起動します \\marklap

psexec -i \\marklap cmd

このコマンドは、スイッチを使用してリモート システムで IpConfig を /all 実行し、結果の出力をローカルに表示します。

psexec -i \\marklap ipconfig /all

このコマンドは、プログラム test.exe をリモート システムにコピーし、対話形式で実行します。

psexec -i \\marklap -c test.exe

リモート・システムに既にインストールされているプログラムの完全パスがシステムのパスにない場合は、以下のように指定します。

psexec -i \\marklap c:\bin\test.exe

システム アカウントで Regedit を対話形式で実行して、SAM キーと SECURITY キーの内容を表示します。

psexec -i -d -s c:\windows\regedit.exe

制限付きユーザー特権と同様に Internet Explorer を実行するには、次のコマンドを使用します。

psexec -l -d "c:\program files\internet explorer\iexplore.exe"

ダウンロード PsTools(3.5 MB)

PSTools

PsExec は、 PsTools という名前のローカルおよびリモート システムの管理に役立つ Sysinternals コマンド ライン ツールの増え続けるキットの一部です。

以下で実行されます。

  • クライアント: Windows 8.1以降。
  • サーバー: Windows Server 2012以降。