フルガイド:PowerShellでPsExecを実行する方法
PsExecをPowerShellで実行する方法を知っていますか?コンピューターにPsExecツールを設定し、Windowsファイアウォールを許可する必要があります。その後、PowerShellでPsExecを使用できます。この投稿では、画像付きのステップバイステップガイドを提供します。始めましょう!
シナリオ: PowerShellでPsExecを使用できますか?
ウェブを検索しましたが、やりたいことの方法が見つかりません。誰かPsExecをPowerShellで実行する方法を教えていただけますか?よろしくお願いします。
- ユーザーからの質問
PsExecとは何ですか?
PsExecは、コマンドプロンプトまたはPowerShellで他のシステム上でプロセスを実行することを可能にするコマンドラインベースのリモート管理ツールです。TelnetやRDPとは異なり、PsExecはPCにクライアントプログラムやリモートホストに他のソフトウェアをインストールする必要はありません。PsExecによって、コンソールプログラムの入力と出力をリダイレクトすることができます。
このガイドでは、PowerShellでPsExecを使用する方法について説明します。
PowerShellでPsExecを実行する方法
PsExecは、ITツールの一部として備えておくと便利なツールで、需要や重大な問題がある場合に、単一のPowerShellスクリプトで解決することができます。以下は、PsExecを使用してPowerShellスクリプトを実行する方法です。
パート1:必要条件
リモートコンピュータでPsExecを起動するためには、いくつかの準備が必要です。
►Windowsファイアウォールの有効化
ステップ1. Windows Defenderファイアウォール(Firewall)の高度なセキュリティ(Advanced Security)を検索して開きます。
ステップ2. ファイアウォールがすべてのドメイン、プライベート、パブリックプロファイルで有効になっていることを確認します。
►リモートコンピュータにTCP/445ポートとUDP/137ポートを開く
ステップ1. スタートメニューを右クリックし、Windows PowerShell(管理者)を開きます。
,上記のコンテンツを日本語に翻訳してください。HTMLタグaのhref属性の値とimgタグのsrc属性の値は翻訳しないでください。{{}}内のコンテンツは翻訳の対象外です。Unicode文字は翻訳しないでください。HTMLの構造と属性は変更しないでください。
ステップ2. 次のコマンドを実行して、TCP/445ポートを有効にします。
- New-NetFirewallRule -DisplayName "TCP/445" -Profile @("Domain") -Direction Inbound -Action Allow -Protocol TCP -LocalPort @("445") -RemoteAddress 192.168.100.10
「192.168.100.10」を自分のローカルIPアドレスに置き換えてください。
ステップ3. 次のコマンドを実行して、UDP/137ポートを有効にします。
- New-NetFirewallRule -DisplayName "UDP/137" -Profile @("Domain") -Direction Inbound -Action Allow -Protocol UDP -LocalPort @("137") -RemoteAddress 192.168.100.10
「192.168.100.10」を自分のローカルIPアドレスに置き換えてください。
►リモートサービス管理を開く(これは必須ではありませんが、ファイアウォールが有効でこのサービスがブロックされている場合、PsExecのパフォーマンスが非常に遅くなります。)
PowerShellを開き、次のコマンドを実行します:
- Set-NetFirewallRule -DisplayGroup “Remote Service Management” -Enabled True -Profile domain -RemoteAddress "192.168.100.10"
「"192.168.100.10"
を自分のローカルIPアドレスに置き換えてください。
パート2. ローカルコンピューターにPsExecをセットアップする
次に、ローカルコンピューターにPsExecをダウンロード、インストール、テストする必要があります。
ステップ1. 最新バージョンのPsExecをダウンロードします。
ステップ2. ダウンロードしたファイルを展開し、PsExecフォルダーのパスに移動します。
ステップ3. PowerShellで次のコマンドを実行して、リモートコンピューターでPsExecを使用してログインできるかを確認します。
- .\PsExec \\ cmd
ファイアウォールルールがpsexecをブロックしていない場合、以下のような出力が表示されます。
ファイアウォールがpsexecをブロックしている場合、以下のようなアクセスエラーが表示されます。
,上記の内容を日本語に翻訳してください。HTMLタグaのhref属性の値とimgタグのsrc属性の値は翻訳しないでください。{{}}内の内容を翻訳しないでください。Unicode文字は翻訳しないでください。HTML構造とその属性を変更しないでください。リモートコンピュータのWindowsファイアウォールがPsExecの使用を妨げる場合、リモートコンピュータから手動でWindowsファイアウォールでPsExecを受け入れるしかありません。
パート3. PowerShellでPsExecを使用する
これで、PsExecの助けを借りてリモートコンピュータでPowerShellコマンドを実行することができます。
基本的な構文は次のとおりです:
- psexec \\リモートコンピューター コマンド [引数]
いくつかの一般的な状況を例として見てみましょう。
状況1:リモートコンピューターでコマンドを実行する
リモートコンピューターでipconfigコマンドを実行するには、次のコマンドを入力します:
- psexec \\pc1 ipconfig
状況2:複数のリモートコンピューターでコマンドを実行する
複数のコンピューターでコマンドを実行するには、デバイスをカンマで区切る必要があります。以下は、pc1とsrv-vm1でipconfigを実行するコマンドです:
- psexec \\pc1,srv-vm1 ipconfig
状況3:ユーザー名とパスワードを指定する
識別されたユーザー名とパスワードを使用してリモートコンピューターへの接続を確立するには、次のコマンドを使用します:
- psexec \\pc1 -u ユーザー名 -p パスワード ipconfig
状況4:リモートコンピューターでプロセスを終了する
ステップ1. リモートコンピューターでプロセスを終了するには、まず次のコマンドを入力してタスクリストからプロセスのPIDを取得する必要があります。
- psexec \\pc1 tasklist
ステップ2. そのPID番号を見つけ、次のコマンドを実行してください:
- psexec \\pc1 taskkill /pid 2892 /f
状況5:リモートコンピューターにソフトウェアをインストールする
リモートコンピューターにソフトウェアをインストールするには、インストールファイルをリモートコンピューターにコピーする必要があります。例えば、以下のコマンドを使用して、コンピューターpc1にファイル7zipをコピーします。
- psexec \\pc1 msiexec.exe /i "c:\it\7z2201-x64.msi"
状況6:リモートコンピューターをリモートで再起動する
このコマンドを使用して、リモートPCを再起動できます。例えば、pc1を60秒後に再起動します。
- psexec \\pc1 shutdown /r /t 60
すると、リモートコンピューターに再起動するというメッセージが表示されます。
、上記の内容を日本語に翻訳してください。HTMLタグのaのhref属性の値やimgタグのsrc属性の値を翻訳しないでください。{{}}内のコンテンツは翻訳する必要はありません。Unicode文字は翻訳しないでください。HTML構造とその属性を変更または翻訳しないでください。Situation 7: リモートコンピュータからファイルを削除する
例えば、リモートコンピュータからファイルusers.txtを削除したい場合、以下のコマンドを入力します:
- psexec \\pc1 cmd /c del /f c:\it\users.txt
Situation 8: リモートコンピュータでコマンドプロンプトを開く
以下のコマンドを使用して、リモートコンピュータでコマンドプロンプトを開けます:
- psexec \\pc1 cmd
Situation 9: リモートコンピュータでプログラムを起動する
-i オプションを使用すると、リモートコンピュータでプログラムを開くことができます。例えば、リモートコンピュータでメモ帳を開く場合、以下のコマンドを入力します:
- psexec \\pc1 -i notepad
これまでに9つの便利なコマンドを紹介しましたが、正しい構文を送信すれば他のコマンドも実行できます。
Bonus tip: リモートコンピュータを簡単に管理する方法
PowerShellでPsExecを実行するには特定のIT知識が必要であり、間違ったコマンドを入力するとエラーが発生する可能性があります。また、多くのハッカーがPsExecツールを使用していたため、多くのウイルス対策プログラムがトロイの木馬としてブロックする場合があります。そのため、リモートデスクトップソフトウェアを使用してリモートコンピュータを簡単に管理することをおすすめします。例えばAnyViewerを使用すると、まるでその前に座っているかのようにコンピュータを遠隔操作できます。
AnyViewerを使用すると、PowerShellコマンドを送信せずにリモートデスクトップ上でプログラムを素早く起動または終了させることができます。また、クリック一つでコンピュータを再起動することもできます。簡単に言えば、リモートコンピュータでやりたいことは何でもできます。
AnyViewerは操作が簡単で、高度なセキュリティを備えており、無人リモートアクセスのためのアカウントを作成するだけです。セッション全体は強力な256ビット楕円曲線暗号(ECC)アルゴリズムで保護されます。
デバイスにAnyViewerをダウンロードして使用方法を確認してください:
ステップ1。ホストサーバー上でSign upをクリックして新しいアカウントを作成し、ログインします。
ステップ 2. クライアントコンピュータで、ホストコンピュータで使用したアカウントでログインしてください。
ステップ 3. デバイス インターフェースを訪れ、割り当てられたデバイスのリストを表示します。接続したいデバイスを選択し、ワンクリック制御 をクリックします。
コンピュータを遠隔操作できるようになりました。上部のツールバーには便利なオプションがたくさんあります。 ファイル転送、チャット、CMDを実行するなど。
- ★Tips: AnyViewerはビジネス利用向けにも手ごろなサブスクリプションを提供しています。追加権限のために、プロフェッショナルまたはエンタープライズプランに入会することもできます!
- ワンクリック制御で最大100の指定デバイスをセットアップできます。
- リモートデバイスの物理画面をブラックアウトし、物理キーボードを無効にする プライバシーモードアクセス。
- 高品質な画像を楽しむことができます。
The bottom line
これで、PowerShellでPsExecを実行する方法のすべてです。PsExecとPowerShellを組み合わせることができる状況のいくつかの例を挙げましたが、実際に利用し始めると、限りがないことがわかるでしょう。もしもこれらのコマンドに慣れていない場合は、リモートデスクトップソフトウェアAnyViewerを使用することもできます。これにより、デバイスやソフトウェアのリモート管理、トラブルシューティング、さらにはその他多くのことを簡単に行うことができます。