質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Active Directory

Active Directoryは、 Windows Serverの機能の一つで、 マイクロソフトによって作られたディレクトリサービスです。 ネットワーク上に存在する様々なハードや利用者情報のアクセス権限などを一元管理が出来ます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

解決済

Webページからの仮想マシンリセットについて

ayuzer
ayuzer

総合スコア0

CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Active Directory

Active Directoryは、 Windows Serverの機能の一つで、 マイクロソフトによって作られたディレクトリサービスです。 ネットワーク上に存在する様々なハードや利用者情報のアクセス権限などを一元管理が出来ます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

1回答

0評価

1クリップ

6閲覧

投稿2019/03/28 23:55

編集2022/01/12 10:58

前提・実現したいこと

■概要
ユーザーより、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 の運用チームのメンバーで、これまで触ってきたのは
VBA/VBS、BAT、Powershell ぐらいで、WEB関連のコーディング経験はございません。
このようなレベルの人間でも対応できるような方法をご教示いただけると助かります。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

over
over

2019/03/29 02:27 編集

IISはCGIを実行できる環境にしているのでしょうか\?502\.2エラーであることから、IISがCGIを許容する環境になっていないと推測しています。
ayuzer
ayuzer

2019/03/29 05:15

> over 様  コメントいただきありがとうございます。後出しで申し訳ございません。  単純に以下のような記載をすれば現在の日付が呼び出せるので、CGIそのものは機能していると  思われます。 ============================ Echo "Content-Type: text/html" Echo "" Echo "<HTML><BODY><TABLE>" Echo "<TR><TD>現在の日付</TD><TD>\$\(Get-Date\)</TD></TR>" Echo "</TABLE></BODY></HTML>" ============================
over
over

2019/03/29 06:05

そうですか。ではスクリプトの内容によりますね。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Active Directory

Active Directoryは、 Windows Serverの機能の一つで、 マイクロソフトによって作られたディレクトリサービスです。 ネットワーク上に存在する様々なハードや利用者情報のアクセス権限などを一元管理が出来ます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。