株式会社ソフトクリエイト 技術本部
ネットワークソリューション部 技師長 村松 真
■主な経歴
マイクロソフト社で現在のベースとなる技術を身につけた後、当社で 10年以上、技術本部の Microsoft 技術者の中心的人物として活躍し、特にVBScript技術を利用した Active Directory 関連の移行ソリューションは数多くの納入実績を誇り、お客様からの信頼も厚い。 2015年度からは技師長としてソフトクリエイトの技術部門を牽引している。
株式会社ソフトクリエイト 技術本部
ネットワークソリューション部 技師長 村松 真
■主な経歴
マイクロソフト社で現在のベースとなる技術を身につけた後、当社で 10年以上、技術本部の Microsoft 技術者の中心的人物として活躍し、特にVBScript技術を利用した Active Directory 関連の移行ソリューションは数多くの納入実績を誇り、お客様からの信頼も厚い。 2015年度からは技師長としてソフトクリエイトの技術部門を牽引している。
2016年8月19日
村松です。 第5回目は、スクリプトについてご案内します。
現在、私は何らかの形でスクリプト活用して、業務を行なっています。もちろん、スクリプトを作ることが仕事なわけではありませんがスクリプトを活用することで業務の効率化や自動化を進めています。
今回のコラムでは、スクリプトの活用についてご案内してまいります。
現在 Windows OS上では、VBScript, JavaScript, PowerShellなど様々な言語のスクリプトを使用することができます。
機能の豊富さと先進性では、「Windows PowerShell」がもっともパワフルです。小回りの利きやすさでは、「VBScript」もお勧めです。私は、過去の利用実績を踏まえて、「Windows PowerShell」と「VBScript」を使い分けています。
Windows のサーバー管理の機能等は、すでに多くのものが「Windows PowerShell」を前提として作られており、使う機会が大幅に増えています。ただし、「Windows PowerShell」は、言語としては特殊すぎるため、動きがわかりにくくなりがちです。これからプログラミングを学ぶには、「VBScript」の方がわかりやすいかもしれません。
スクリプトとC#やJava等で作られたアプリケーションでは、どのような違いがあるのでしょうか?
基本的には、アプリケーションの開発には、Visual Studio やEclipse など専用の統合開発環境(IDE)を利用します。
IDEでの開発は、複数の人が作業を分担して開発するのに向いています。一度、実行プログラム化すると、変更する場合、再度実行プログラムを生成する必要があります。また、複数のモジュールを組み合わせたアプリケーションの場合、整合性がきちんととれている必要があるので、しっかりした設計が欠かせません。その代わり自由度が高く、細かい作りこみや効率のよいアプリケーションを開発することが可能です。
スクリプトは、メモ帳1つで開発できるため、統合開発環境は不要です。さらに実行プログラム化も不要なため、後から変更するのが簡単です。その代わり整合性を保つための仕組みがないので、大人数で分担して開発するのには向きません。
個人ベースの作業を効率化、自動化をするには、スクリプトの方が向いているといえます。
「Windows PowerShell」や「VBScript」などのスクリプトは、"オブジェクト"を経由してOS上のコンポーネントへかなり自由にアクセスできようになっています。“できること”と言う意味では、アプリケーションと遜色なくなってきています。
もうひとつ、私がスクリプトを使う理由があります。それは、OSをより深く理解するためです。
当たり前ですがOSはプログラムです。そのため、GUIでOSを操作するよりも、プログラムを経由した方がより中の動きを細かく知ることができます。GUIは、人が操作しやすいように、内部でのデータの持ち方を隠しています。しかし、プログラムを経由してOSの機能にアクセスした場合、その内部の状態が実態に近い形で現れてくるのです。それにより、トラブル時の対応や、動きの予測がしやすくなります。
Windows スクリプトでは、MS Office Excel(以後Excel)のデータやテキスト情報、SQL Sever などのデータベース上のデータやWebサイト上のデータを操作して、利用することができ、自由に組み合わせて利用することができます。
これが Windows スクリプト を利用する最大のメリットです。
ビジネスの現場において、データを操作するには、Excelが適しています。VBAなどのプログラムを駆使して、Excelを操作している人は大勢いらっしゃると思います。
VBAでなくとも、VBScriptを使ってログデータなどのデータを取得し、取得したデータをフィルタリングして、Excelに簡単に流しこむこともできます。
私は、Windows スクリプトで、お客様から預かったExcelファイル内のコンピュータやユーザのリストを加工して、Active Directoryに流しこんだり、また別のプログラム用のデータファイルに加工したりしています。これらは、Windows スクリプトを利用して簡単にできます。
また、SQL Server 等のデータベースからデータを取得して、様々な形で集計やフィルタリングを行い、BIデータとして、Excelにまとめ、活用することも日常的に行っています。
スクリプトの開発には特別なツールは必要ありません。メモ帳だけで始められます。マニュアルや参考情報はインターネット上からすぐに入手することができます。すでにスクリプトがある場合等は、過去に開発したスクリプトのパーツを再利用することで、数十分単位でデータ加工プログラムが作れるため、思考の道具としても欠かせないものになっています。
Windows スクリプトの活用例を一部ご紹介いたします。
例)
・案件データベースから、現在の案件進捗を集計
・お客様からのトラブル依頼に対応するため、ログの解析
・お客様のクライアント展開の手間を減らすため、DNSの設定スクリプト作成
・スケジュール表やタイムテーブル等のドキュメント作成の手間を減らすための自動化
・新しい技術や製品を検証するための、API調査とスクリプト作成 など
例であげたような業務の自動化・効率化が可能です。
スクリプトを作成することが仕事なのではなく、あくまで、スクリプトを通じて、作成や変更を行って業務の自動化や効率化を進めています。
下記のような、編集しやすいテンプレートスクリプトを用意しておくと、必要なときに素早くスクリプトが作れます。
複雑かつ大量データ群を指す「ビッグデータ」が、今市場で高い関心を集めています。
さまざまな事象がデータ化されている中、様々なデータをどう組み合わせ、どう加工すればどんな新しい知見が 得られるかを探り出し、実現する力の巧拙がビジネスの競争力のカギを握る時代となっています。
スクリプトをツールとして活用し、試行錯誤しながら生データ の加工に取り組むことで、データを扱う力が養われます。 スクリプト利用して、データの時代を切り開く力をつけるのはいかがでしょうか?