none
別アカウントのデスクトップにデスクトップアプリケーションを起動させたい RRS feed

  • 質問

  • いつも助けていただきありがとうございます。
    表題の件ですが、手段を模索中です。
    ■やりたいこと
    別アカウントのデスクトップにデスクトップアプリケーションを起動させたい
    ■どのような目的?
    自動化の一環でWindows Server上に複数のアカウントを作成し
    アカウント別にデスクトップアプリケーション(画面表示のあるアプリケーション)を起動し一定の処理を自動操作※させる予定です。
    ※ここでいう自動操作はUIを別アプリで操作するタイプです。
    ■なぜユーザーアカウントを分ける?
    願望1)GUIを含むアプリを操作する関係上、1つのデスクトップ上の操作対象は1つにしたい。
    願望2)でも効率よく(並列で同時起動可能な)アプリを起動させたい。
    短絡的なひらめき)アカウント(のデスクトップ)毎で起動すればいいのでは?
    →ので、ユーザーアカウントを分けることにこだわりはない。
    ■今わかっていることは?
    ・別ユーザーの権限で起動させてもGUIは起動したユーザーのデスクトップに現れる(と思われる)
    ・仕込み+タスクスケジューラー起動ならいけそう(だけどスマートじゃないと思う)

    ■結局何が知りたいの?
    「いろいろリソースが少ない、だから既存のツール,Windowsの標準機能でそれ※ができるか。その方法は?」です。
    ※表題の「別アカウントのデスクトップにデスクトップアプリケーションを起動させたい」

    フワッとしていて具体的な質問でなく、アイディア的質問となってしまい大変恐縮なのですが、
    皆様のお知恵を拝借いただきたく、なにとぞよろしくお願いいたします。


    2020年1月16日 8:16

回答

  • 個人的意見になりますが、対話型ログオンを前提に対話型操作を想定して作られているアプリケーションをデスクトップ非表示の状態で自動化するのはリスキーなのでお勧めできません。


    Hebikuzure aka Murachi Akira

    2020年1月16日 8:53
  • チャブーンです。

    この件ですが、Hebikuzureさんが奨めているように、他アカウントでのGUI自動操作は基本的に行うべきではないです。Windows Vista以降の思想として「デスクトップはそのユーザーのもの」として、他ユーザー権限で起動することはセキュリティ的に不推奨なためです。当然ですが、悪意のあるプログラムが「奪取した他ユーザー権限」で勝手にデスクトップにアクセスすることを阻止するためで、実際そのようなことはできないようになっています。("Session 0"などをキーワードでご自分で調べてみてください)

    最近のWindowsであれば、同一ユーザーが複数のアプリを操作することに「リソース」の問題は発生しません。また、WindowsクライアントOSで「複数同時サインイン」状態で「複数デスクトップ操作」を同時に行うこともできません。標準機能でGUI操作を何が何でもやりたい、というなら、PowerShellでSendkeysメソッドを使ったUI操作が必要ですが、オソロシイ荊の道になるでしょう。キビシイ言い方かもしれませんが、他人に質問して達成できるような方法は正直ないように思います。

    なので、「GUIなのにCUI命令も可能」なアプリケーションなら、同一デスクトップ内でそのコマンドをタスクスケジューラーで実行させ、GIUでしか使えないなら、Windows GUI用のRPAツールを使うといったところが、現実的な選択肢かと思います。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。


    2020年1月17日 3:07
  • チャブーン様

    ご回答いただきありがとうございます。ご回答いただいた内容から、私の質問については(状況から標準機能のみでは)不可能と判断しました。チャブーン様のご返信を「回答とマークさせていただきました。

    ■"Session 0"について
    私には"Session 0"について認識はありませんでした。大変勉強になりました。
    ■ご回答いただきました情報について(ご返信不要です)
    >WindowsクライアントOSで「複数同時サインイン」状態で「複数デスクトップ操作」を同時に行うこともできません。
    はい。今回の対象はWindows Server 2016だったので、複数アカウントによる複数同時サインインは必要であればライセンスを購入して対応予定でした。

    >「GUIなのにCUI命令も可能」なアプリケーションなら、同一デスクトップ内でそのコマンドをタスクスケジューラーで実行させ、GIUでしか使えないなら、Windows GUI用のRPAツールを使うといったところが、現実的な選択肢かと思います。
    手段の例をご提供いただきありがとうございます。現時点では上記の通り質問の内容について断念しました。

    よろしくお願いいたします。

    2020年1月20日 11:44

すべての返信

  • 個人的意見になりますが、対話型ログオンを前提に対話型操作を想定して作られているアプリケーションをデスクトップ非表示の状態で自動化するのはリスキーなのでお勧めできません。


    Hebikuzure aka Murachi Akira

    2020年1月16日 8:53
  • チャブーンです。

    この件ですが、Hebikuzureさんが奨めているように、他アカウントでのGUI自動操作は基本的に行うべきではないです。Windows Vista以降の思想として「デスクトップはそのユーザーのもの」として、他ユーザー権限で起動することはセキュリティ的に不推奨なためです。当然ですが、悪意のあるプログラムが「奪取した他ユーザー権限」で勝手にデスクトップにアクセスすることを阻止するためで、実際そのようなことはできないようになっています。("Session 0"などをキーワードでご自分で調べてみてください)

    最近のWindowsであれば、同一ユーザーが複数のアプリを操作することに「リソース」の問題は発生しません。また、WindowsクライアントOSで「複数同時サインイン」状態で「複数デスクトップ操作」を同時に行うこともできません。標準機能でGUI操作を何が何でもやりたい、というなら、PowerShellでSendkeysメソッドを使ったUI操作が必要ですが、オソロシイ荊の道になるでしょう。キビシイ言い方かもしれませんが、他人に質問して達成できるような方法は正直ないように思います。

    なので、「GUIなのにCUI命令も可能」なアプリケーションなら、同一デスクトップ内でそのコマンドをタスクスケジューラーで実行させ、GIUでしか使えないなら、Windows GUI用のRPAツールを使うといったところが、現実的な選択肢かと思います。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。


    2020年1月17日 3:07
  • チャブーン様

    ご回答いただきありがとうございます。ご回答いただいた内容から、私の質問については(状況から標準機能のみでは)不可能と判断しました。チャブーン様のご返信を「回答とマークさせていただきました。

    ■"Session 0"について
    私には"Session 0"について認識はありませんでした。大変勉強になりました。
    ■ご回答いただきました情報について(ご返信不要です)
    >WindowsクライアントOSで「複数同時サインイン」状態で「複数デスクトップ操作」を同時に行うこともできません。
    はい。今回の対象はWindows Server 2016だったので、複数アカウントによる複数同時サインインは必要であればライセンスを購入して対応予定でした。

    >「GUIなのにCUI命令も可能」なアプリケーションなら、同一デスクトップ内でそのコマンドをタスクスケジューラーで実行させ、GIUでしか使えないなら、Windows GUI用のRPAツールを使うといったところが、現実的な選択肢かと思います。
    手段の例をご提供いただきありがとうございます。現時点では上記の通り質問の内容について断念しました。

    よろしくお願いいたします。

    2020年1月20日 11:44
  • Hebikuzure aka Murachi Akira様
    ご意見とご回答いただきありがとうございました。
    上記の通り質問の内容は断念しました。


    2020年1月20日 11:48