質問: ### 前提・実現したいこと ■概要 ユーザーより、Webページを経由してサーバー上に配置されているスクリプトを実行させるような ことはできますでしょうか。実現するためのお奨めの方法があれば(ヒントだけでも結構ですので)ご教示いただけますと幸甚です。 ■前提 クラウド提供されているVDIサービスを利用しています。 このVDIサービスでは、管理者向けにいくつかスクリプト(VBSからリモートでPowershellを呼び出す方式)が用意されています。 このスクリプトの中に、仮想デスクトップ(以下VD)の電源を強制リセットするものがございます。(引数としてVD名を渡します) ex:> call.vbs reset.ps1 VDNAME これまでは、VDがフリーズするなどした場合、ユーザーから管理者へ連絡をもらい 上記管理者用スクリプトにて、電源をリセットする運用をしてきました。 しかし、都度管理者へ依頼しなければならない状況が煩雑なので、ユーザー自身でリセットを行えるような 仕組みを作りたいと考えております。 上記を実現するために、まずはPowershellで以下のような機能をもったスクリプトを作成しました。 1.ActiveDirectory のドメインコントローラーへ、ユーザーが入力した認証情報を渡し、認証判定を行う 2.認証されたら、ユーザー名とVDの紐づけが記載されたEXCELファイルから、対象ユーザーのVDの一覧を取得する 3.取得された一覧をユーザーフォームで、ラジオボタン付きで表示し、リセットしたいVDを選ばせる 4.選ばれたVD名を引数に、管理者向けのスクリプトを実行させる ### 発生している問題 ユーザーによってはVDをひとつしか割り当てられていない者もいて そもそも上記のPowershellスクリプトを実行できないケースがあることに気が付きました。 ユーザーにはシンクライアント、VD以外にもipadが支給されているため、これを利用して WEB経由で上記リセットを行うことができないかと考えております。 できれば、前述したPowershellスクリプトを流用する形で、認証情報をWEB経由でサーバーへ渡し、 サーバーからリセット対象VD一覧をWEBのフォームでユーザーに返し、更にユーザーに選択されたVD名をWEB経由でサーバーに渡し、 最終的にはリセットスクリプトを走らせる、といったことができればベストです。 ### 試したこと WEBで調査したところ、PowershellはCGIとして動作するという記述があったので、 これを経由してスクリプトを呼び出すことを試みたのですが、 502.2 のエラーが発生してしまい うまくいかない状況です。 ### 補足情報 ■環境について 本番環境については、おいそれといじることができないので 検証環境にWindows server 2012 を立てて、ActiveDirectoryとIISをインストールし、 前述したPowershellスクリプトをhttp://localhost/***.ps1 として呼び出したところ エラーとなりました。 ■技術レベルについて 私はWindows Server の運用チームのメンバーで、これまで触ってきたのは VBA/VBS、BAT、Powershell ぐらいで、WEB関連のコーディング経験はございません。 このようなレベルの人間でも対応できるような方法をご教示いただけると助かります。
回答: ざーっとしか読んでませんが、各言語にサーバーコマンドを実行できる機能があります。 PHPでいえばexec(),system()など > > これを経由してスクリプトを呼び出すことを試みた > > > どのような環境でどのようなコードを書かれたのか提示いただけるともう少し具体的な回答が得られると思います。