見出し画像

2023-11-10「十分に発達した科学技術は(略) VBScriptの思い出」

Python/PyAutoGuiで自動でなんでもやらせてしまおう、と色々やっております。

今はPythonを使ってこういうことをやっておりますが
別にPythonじゃないとできない、というわけではありません。

他にもいろいろな方法やスクリプトがございます。

そういえば私も、以前はVBScriptを使って同じようなことをやっていたな、と思い出しました。

VBScriptは、Windows環境で使用されるスクリプト言語のひとつです。特徴としては、

「強力なWindowsに関しての制御能力」
WindowsのCOM(Component Object Model)やOLE(Object Linking and Embedding)、ActiveXコンポーネントなどを操作することができます。
まさにこれにより、多くのWindowsアプリケーションを自動化することができました。

「シンプルな文法」
Visual Basicによく似ていて簡潔な構文を持っており、初心者にも理解しやすいです。

「Windowsとの緊密な統合」
Windowsオペレーティングシステムと緊密に統合されており、
ファイル操作やシステム設定の変更など、さまざまなWindowsタスクを実行するのに適していました。

「Internet Explorer」
かつての「インターネット エクスプローラー」 いわゆる IEでのクライアントサイド・スクリプトとしてVBScriptは利用されていました。

わたしは、VBScriptで、会社でのスクリーンロック設定を変えるのに利用したりしていました。
会社のPCは3分でロック画面に移行するようになっていました。
これは、離席時に悪意のある人間に画面を見られたり勝手に操作されたりしないように、自動でロック画面に移行するようにこういう設定になっているのですが、

仕事中ずっとキーボードをたたいているかというとそんなこともありません。
紙に図を描いて考え込んだり、画面を凝視して腕組みして考え込んだりすることはあります。
そのときに画面が消えてしまうと、思考を強制的に中断させられてしまいます。
何度かそういうことが続いて、これは仕事に悪影響だな、と思ったのでスクリプトで回避することを考えたのです。

VBScriptで2分に1回自動的にシフトキーを押す、というスクリプトを作って実行させました。
これにより2分に1回はキーボードを触っている判定になってスクリーンロックが働かなくなるという仕組みです。

このように使い出のある機能なのですが、VBScriptは廃止の方向にあるそうです。

VBScriptはセキュリティ上の脆弱性やクロスプラットフォームの制約により、マイクロソフトから非推奨とされ、代替の言語や技術が推奨されています。

マルウェアなどでVBScriptは多用されたため、イメージもよくないんですよね。

OLEやCOM関連は、外部プログラムを呼び出して何とかする、という方式なので、個々のアプリケーション開発元が提供しているAPIを使う必要があります。

これらAPIについての情報は、ネット上でも分散していますし、そもそも詳細なドキュメントが提供されているのをそんなに見たことがありません。

これらを操作しようとするVBScriptは、どうしても、

「わけのわからない所を、何かいじくっている」みたいなスクリプトになりがちです。

Windowsとの親和性がよすぎて簡単にできるのがかえってよくなかったのかもしれないですね。
ユーザーによって簡単に実行できることは、ひるがえって、「ユーザーを騙しさえすれば簡単に悪意あるコードを実行できる」になってしまうので。

もちろんJavascriptだろうがPowerShellだろうがPythonだろうが、悪意あるコードを実行させられることはありえるのですが

VBScriptのようにOSにバンドル済みの機能とは違って、インストール作業や設定などがある程度必要なので
VBSにくらべてハードルが高く設定されているのが危険視されていない要因かと思われます。

とはいえ、スクリプトのことを何も知らない人から見ると

「わけのわからない所を、何かいじくっている」謎のスクリプトにしか見えないのは変わらないので

「インストール作業が簡単」と喜んでいたのですが、じつはこういう危険と隣り合わせなのかもしれないなと思いました。

十分に発達してしまった先が、「魔法→呪文 ときて →呪い」とみなされて
火あぶりにされてしまう可能性は、PythonやPowerShellのような環境にもつねにあるのかもしれません。

以上、ここまで読んでいただいてありがとうございました!

この記事が気に入ったらサポートをしてみませんか?