機能 ショートカットキー
リファレンス(参考URL)一覧へ移動 R
記事URLをMarkDownとしてコピー Ctrl+M
前のコードタグへ移動 Ctrl+←
次のコードタグへ移動 Ctrl+→
ヘルプを表示・非表示 H
Tips
- ショートカットキーは記事上で有効です。ヘッダー/フッター付近では機能しないことがあります。
- コードタグ移動機能がうまく動かないときは、Shift+F5でページを更新してみてください。
- このウィンドウを閉じるには、Hキーをもう一度押してください

PsExecでPowershell経由でリモートからWindowsのアプリを起動/実行する

プログラミング

PsExecを使えば、SSH経由でホストのPowershellでアプリを実行して、開くことができます。

例えば、まぁ僕の需要だと、ubuntuのサーバーで処理をしたら、windowsにjavaかautohotkeyでも使ってツールチップ通知とかメッセージボックスする、っていうことがやりたかったのです。

windowsでPsExecをインストールして使えるようにします。

PsExec – Windows Sysinternals | Microsoft Docs

ダウンロードして解凍。PsExec64.exeへのパスをコピーしてやれば使えます。

ubuntuでwindowsにSSHログイン。

ssh ifgm2@192.168.3.19

僕の今の環境は、ホストで開いているvirtualboxのubuntuからwindowsにsshでcmdに接続し、そのsshのなかでPsExecしてアプリを実行、という流れでやっています。
ちょっと複雑…っていうか、特殊なのかもしれません。ので、ユーザー名とパスワードなしでもいけます。
ホストからホストへPsExec64しても、同じくユーザー名とパスワードなしでいけます。自分自身へSSHするのと同じ感じです。
あいにく今実機のubuntuが死んでるので、使えるようになったらそちらからはパスワードなどが必要になるか検証してみたいかと思います。

C:\Users\ifgm2\Desktop\PSTools\PsExec64.exe \\192.168.3.19 notepad # => notepadは動かない。
C:\Users\ifgm2\Desktop\PSTools\PsExec64.exe \\192.168.3.19 "java.exe -jar C:\pg\SetClipboardWithBtn\build\SetClipboardWithBtn.jar" # => エラー。
C:\Users\ifgm2\Desktop\PSTools\PsExec64.exe \\192.168.3.19 java.exe -jar C:\pg\SetClipboardWithBtn\build\SetClipboardWithBtn.jar # => エラー。
C:\Users\ifgm2\Desktop\PSTools\PsExec64.exe \\192.168.3.19 calc # => calcはなぜか正常に起動する
C:\Users\ifgm2\Desktop\PSTools\PsExec64.exe \\192.168.3.19 -d -i cmd /c notepad # => こうしてやると正常に起動する
C:\Users\ifgm2\Desktop\PSTools\PsExec64.exe \\192.168.3.19 -d -i cmd /c C:\pg\SetClipboardWithBtn\build\SetClipboardWithBtn.jar # => 同じ要領でJavaファイルでもatomでもなんでもできるようになる。
C:\Users\ifgm2\Desktop\PSTools\PsExec64.exe \\192.168.3.19 -d -i cmd /c start "" C:\pg\SetClipboardWithBtn\build\SetClipboardWithBtn.jar # => コマンドプロンプトを非表示する
C:\Users\ifgm2\Desktop\PSTools\PsExec64.exe \\192.168.3.19 -u ifgm2 -p yourPassword -d -i cmd /c start "" C:\pg\SetClipboardWithBtn\build\SetClipboardWithBtn.jar # => 外部PCから接続する場合には(おそらく)ユーザー名とパスワードの設定が必要になる。

ref:
windows – can’t start notepad on remote machine using psexec – Stack Overflow
command line – How To Execute Cmd.exe Silently? – Super User
How to get the current logged on user on PowerShell

ユーザー名の確認:

$env:UserName

or

PS C:\pg> Get-WMIObject -class Win32_ComputerSystem | select username

username
--------
DESKTOP-UHU8FSH\ifgm2

どっちを使うべきのかはよくわかっていない。ユーザー名だけ、なのか、コンピュータ名+ユーザー名としてユーザー名なのか。
cmdへのSSHログイン自体はユーザー名だけでいけたので…どうなんでしょう。

パスワードの確認:

windowsって普段PINでログインするので、通常のパスワードって忘れるんですよね。
あと、複雑にしてる要因がいくつかあって…。
windowsのパスワードはマイクロソフトアカウントと関連付けられている場合と、ローカルパスワードとして設定されている2パターンがあります。
まぁ…これは完全に忘れたらどうなるのか僕もよくわかっていません。僕は感で思い出せたんでよかったですが…。

この記事で欲しい情報が見つからなかった方へ

この記事の更新情報がある場合があります。
この記事は以下の記事とも関連性があると思われます。

UbuntuでWindowsのタスクマネージャーみたいなコマンド
Ruby windowsのソフトウェアを外部コマンドから開く・起動する
WindowsにCicaフォントをインストールしてconemuのWSL bashで使えるようにする
windows Mac Linuxの人口比率
Windows 10でGuestアカウントを有効にする方法
Ubuntu 18.04でWindows 10の共有フォルダをマウントする方法
windows atomやnotepadでshiftキーを押すと下にスクロールされてしまうバグ


管理人の方針で、既存の記事の編集はせず、新しい情報や大きな既存情報の更新があった場合には、新しい記事として公開することになっています。
当記事で欲しい情報が見つからなかった・解決に至らなかった場合、これらのリンクがお役に立てるかも知れません。

どうやってこの関連記事を生成しているの?
この機能のPHPソースコード(2500行)

コメントを残す

Close Menu