私はSky株式会社でSKYSEA Client Viewのプリセールス業務を担当しています。
業務の中でお客様からのお問い合わせへ回答するため、自社商品の動作検証を行うことがあるのですが、先日Webサイトへのファイルアップロードや書き込みのログ取得を行う機能の検証を行う機会がありました。
検証を行うには実際にWebサイトへのファイルアップロードや書き込み操作を行わなければなりませんが、実際に外部サイトに対してそのような操作を行うのは問題があります。
そこで、最も手軽なのが、検証用のWebサーバーを作って、アップロードや書き込みを行うことなのですが、環境構築が大変ですし、Webアプリケーションを動かすためにフリーウェアをインストールする際は、別途社内規定に沿った確認も必要です。
そこで思いついたのが、「PowerShellでWebサーバーを動かせないか」というものでした。
OS標準で搭載されているPowerShellなら、各種社内ルールの確認も不要だからです。
調べてみると、PowerShellでは「HttpListener」というクラスを使って簡易的なWebサーバーが作成できるようです。
この「HttpListener」はもともと.NET Frameworkのクラスなのですが、PowerShellでも使える、ということなのだそうです。
パフォーマンスやセキュリティなど、実際のシステムを動かすには課題点もありますが、やりたいことはファイルをアップロードしたり、文字列を書き込んだりした際のログの出方を確認することだけなので、これでも問題ありません。
Sky株式会社では会社で契約したGemini Enterpriseを利用できますので、お願いして書いてもらいました。
書いてもらったスクリプトをPowerShellで実行します。

今回は「http://localhost:8080」でリッスンするようにしているので、ブラウザでアクセスします。

SKYSEA Client ViewのWebアップロードアラート機能を有効にした状態でファイルのアップロードを試したら、ちゃんとアラートが出てくれました。

文字列を書き込んでみます。

SKYSEA Client View上でちゃんとログが記録されました。

これでやりたかった、外部のサイトに書き込みやファイルアップロードをせず、SKYSEA Client Viewのログ管理機能やアラート機能の検証を行うという目的は達成できました。
実際のコードは生成AIで生成したもののため、公開は差し控えさせていただきますが、今回は「HttpListener」クラスを使ってWebサーバーを立ち上げ、次のような挙動をさせることで実現しています。
- ブラウザからGETリクエストによるアクセスを受けたら、HTMLを返してアップロードページを表示させる。
- ブラウザからPOSTメソッドでデータを受信したら、書き込まれた文字列やアップロードされたファイルを受け取る。
検証環境でフリーウェアなどを使わずに、簡易的なWebシステムを作りたいといった場合のご参考になれば幸いです。

