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

質問
-
いつも助けていただきありがとうございます。表題の件ですが、手段を模索中です。■やりたいこと
別アカウントのデスクトップにデスクトップアプリケーションを起動させたい■どのような目的?
自動化の一環でWindows Server上に複数のアカウントを作成し
アカウント別にデスクトップアプリケーション(画面表示のあるアプリケーション)を起動し一定の処理を自動操作※させる予定です。
※ここでいう自動操作はUIを別アプリで操作するタイプです。■なぜユーザーアカウントを分ける?
願望1)GUIを含むアプリを操作する関係上、1つのデスクトップ上の操作対象は1つにしたい。
願望2)でも効率よく(並列で同時起動可能な)アプリを起動させたい。
短絡的なひらめき)アカウント(のデスクトップ)毎で起動すればいいのでは?
→ので、ユーザーアカウントを分けることにこだわりはない。■今わかっていることは?
・別ユーザーの権限で起動させてもGUIは起動したユーザーのデスクトップに現れる(と思われる)
・仕込み+タスクスケジューラー起動ならいけそう(だけどスマートじゃないと思う)■結局何が知りたいの?
「いろいろリソースが少ない、だから既存のツール,Windowsの標準機能でそれ※ができるか。その方法は?」です。
※表題の「別アカウントのデスクトップにデスクトップアプリケーションを起動させたい」フワッとしていて具体的な質問でなく、アイディア的質問となってしまい大変恐縮なのですが、
皆様のお知恵を拝借いただきたく、なにとぞよろしくお願いいたします。
- 編集済み よーすけ 2020年1月16日 8:34
回答
-
チャブーンです。
この件ですが、Hebikuzureさんが奨めているように、他アカウントでのGUI自動操作は基本的に行うべきではないです。Windows Vista以降の思想として「デスクトップはそのユーザーのもの」として、他ユーザー権限で起動することはセキュリティ的に不推奨なためです。当然ですが、悪意のあるプログラムが「奪取した他ユーザー権限」で勝手にデスクトップにアクセスすることを阻止するためで、実際そのようなことはできないようになっています。("Session 0"などをキーワードでご自分で調べてみてください)
最近のWindowsであれば、同一ユーザーが複数のアプリを操作することに「リソース」の問題は発生しません。また、WindowsクライアントOSで「複数同時サインイン」状態で「複数デスクトップ操作」を同時に行うこともできません。標準機能でGUI操作を何が何でもやりたい、というなら、PowerShellでSendkeysメソッドを使ったUI操作が必要ですが、オソロシイ荊の道になるでしょう。キビシイ言い方かもしれませんが、他人に質問して達成できるような方法は正直ないように思います。
なので、「GUIなのにCUI命令も可能」なアプリケーションなら、同一デスクトップ内でそのコマンドをタスクスケジューラーで実行させ、GIUでしか使えないなら、Windows GUI用のRPAツールを使うといったところが、現実的な選択肢かと思います。
フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。
- 編集済み チャブーンMVP 2020年1月17日 3:09
- 回答の候補に設定 FarenaMicrosoft contingent staff, Moderator 2020年1月20日 7:38
- 回答としてマーク よーすけ 2020年1月20日 11:44
-
チャブーン様
ご回答いただきありがとうございます。ご回答いただいた内容から、私の質問については(状況から標準機能のみでは)不可能と判断しました。チャブーン様のご返信を「回答とマーク」させていただきました。
■"Session 0"について
私には"Session 0"について認識はありませんでした。大変勉強になりました。■ご回答いただきました情報について(ご返信不要です)
>WindowsクライアントOSで「複数同時サインイン」状態で「複数デスクトップ操作」を同時に行うこともできません。
はい。今回の対象はWindows Server 2016だったので、複数アカウントによる複数同時サインインは必要であればライセンスを購入して対応予定でした。>「GUIなのにCUI命令も可能」なアプリケーションなら、同一デスクトップ内でそのコマンドをタスクスケジューラーで実行させ、GIUでしか使えないなら、Windows GUI用のRPAツールを使うといったところが、現実的な選択肢かと思います。
手段の例をご提供いただきありがとうございます。現時点では上記の通り質問の内容について断念しました。よろしくお願いいたします。
すべての返信
-
チャブーンです。
この件ですが、Hebikuzureさんが奨めているように、他アカウントでのGUI自動操作は基本的に行うべきではないです。Windows Vista以降の思想として「デスクトップはそのユーザーのもの」として、他ユーザー権限で起動することはセキュリティ的に不推奨なためです。当然ですが、悪意のあるプログラムが「奪取した他ユーザー権限」で勝手にデスクトップにアクセスすることを阻止するためで、実際そのようなことはできないようになっています。("Session 0"などをキーワードでご自分で調べてみてください)
最近のWindowsであれば、同一ユーザーが複数のアプリを操作することに「リソース」の問題は発生しません。また、WindowsクライアントOSで「複数同時サインイン」状態で「複数デスクトップ操作」を同時に行うこともできません。標準機能でGUI操作を何が何でもやりたい、というなら、PowerShellでSendkeysメソッドを使ったUI操作が必要ですが、オソロシイ荊の道になるでしょう。キビシイ言い方かもしれませんが、他人に質問して達成できるような方法は正直ないように思います。
なので、「GUIなのにCUI命令も可能」なアプリケーションなら、同一デスクトップ内でそのコマンドをタスクスケジューラーで実行させ、GIUでしか使えないなら、Windows GUI用のRPAツールを使うといったところが、現実的な選択肢かと思います。
フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。
- 編集済み チャブーンMVP 2020年1月17日 3:09
- 回答の候補に設定 FarenaMicrosoft contingent staff, Moderator 2020年1月20日 7:38
- 回答としてマーク よーすけ 2020年1月20日 11:44
-
チャブーン様
ご回答いただきありがとうございます。ご回答いただいた内容から、私の質問については(状況から標準機能のみでは)不可能と判断しました。チャブーン様のご返信を「回答とマーク」させていただきました。
■"Session 0"について
私には"Session 0"について認識はありませんでした。大変勉強になりました。■ご回答いただきました情報について(ご返信不要です)
>WindowsクライアントOSで「複数同時サインイン」状態で「複数デスクトップ操作」を同時に行うこともできません。
はい。今回の対象はWindows Server 2016だったので、複数アカウントによる複数同時サインインは必要であればライセンスを購入して対応予定でした。>「GUIなのにCUI命令も可能」なアプリケーションなら、同一デスクトップ内でそのコマンドをタスクスケジューラーで実行させ、GIUでしか使えないなら、Windows GUI用のRPAツールを使うといったところが、現実的な選択肢かと思います。
手段の例をご提供いただきありがとうございます。現時点では上記の通り質問の内容について断念しました。よろしくお願いいたします。