none
リモートコンピュータ上でWindowsプログラム(ユーザーインターフェイスを持つプログラム)を起動さたい RRS feed

  • 質問

  • 環境(接続するPC、接続されるPCとも同じ)
    OS:Windows 7
    PowerShell:2.0

    ・行いたいこと
    PowerShellを用いて、接続するPC(自分の操作するPC)から、
    接続されるPC上の任意のWindowsプログラム(ユーザーインターフェイスを持つプログラム)
    例えば C:\Windows\System32\calc.exe などを起動したいと考えております。


    New-PSSession で固定接続を作成し、
    Invoke-Command の ScriptBlock に接続されるPC上の実行ファイルのフルパスを指定しております。

    接続されるPC上でタスクマネージャーを起動し、
    接続するPCで Invoke-Command を実行した時に
    calc.exe のプロセスが立ち上がることは確認できたのですが、
    Windowsプログラムの画面が表示されません。


    また、get-help about_remote_faq に、以下の記述があることは確認しております。
    「ただし、Windows PowerShell コマンドを使用してリモート コンピューター上の
    プログラムのユーザー インターフェイスを開くことはできません。」

    PowerShellを用いて、他のPCのWindowsプログラムを起動し、
    画面表示させることはできないのでしょうか。

    または、PowerShell 以外の方法でも結構ですので、
    同様の動作を実現できる方法がありましたら、
    技術や処理概要の名称等でも結構ですので教えていただけませんでしょうか。


    <# 処理例 #>
    $hostname = "PCNAME"
    $username = "USERNAME"
    $password = "PASSWORD"

    $sec_str = ConvertTo-SecureString $password -AsPlainText -Force
    $psc = New-Object System.Management.Automation.PsCredential($username, $sec_str)
    $sess = New-PSSession -ComputerName $hostname -Credential $psc
    $retJob = Invoke-Command -Session $sess -AsJob -ScriptBlock { Start-Process -FilePath C:\Windows\System32\calc.exe }






    2016年3月22日 11:05

回答

  • https://technet.microsoft.com/ja-jp/sysinternals/psexec.aspx

    上記のツールを使えば可能なようです。

    例えば下記のようなコマンドを使います。

    psexec \\リモートコンピュータ名 -u ユーザー名 -p パスワード -s -i セッションID "calc"

    ※セッションIDはリモート先のコンピュータで「query session」コマンドで得られるIDを指定してください。

    • 回答の候補に設定 チャブーンMVP 2016年3月23日 1:36
    • 回答としてマーク cow bell 2016年3月24日 2:54
    • 回答としてマークされていない cow bell 2016年3月24日 2:54
    • 回答としてマーク cow bell 2016年3月24日 2:55
    2016年3月22日 11:31

すべての返信

  • https://technet.microsoft.com/ja-jp/sysinternals/psexec.aspx

    上記のツールを使えば可能なようです。

    例えば下記のようなコマンドを使います。

    psexec \\リモートコンピュータ名 -u ユーザー名 -p パスワード -s -i セッションID "calc"

    ※セッションIDはリモート先のコンピュータで「query session」コマンドで得られるIDを指定してください。

    • 回答の候補に設定 チャブーンMVP 2016年3月23日 1:36
    • 回答としてマーク cow bell 2016年3月24日 2:54
    • 回答としてマークされていない cow bell 2016年3月24日 2:54
    • 回答としてマーク cow bell 2016年3月24日 2:55
    2016年3月22日 11:31
  • kenjinote様

    ご回答いただきありがとうございました。

    教えていただきましたツールを使用すると、
    リモートPC上でWindowsプログラム(画面表示あり)を起動することができました。

    PowerShellで、
    リモートPCのプロセスの取得・終了、シャットダウン・再起動等ができますので
    プロセスの起動もできるのではないかと思いご質問させていただきました。

    できれば、外部ツール等使用せずに実現できればと思っていたのですが
    難しいのですね。

    ご教授いただきありがとうございました。




    2016年3月24日 2:55