ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

Archive for the ‘VBScript’ Category

マイクロソフトは世界中の人々をみなプログラマーにする。プログラミング革命。世界が変わる。

leave a comment »

このタイトルを見て、同意できない人もいるだろう。テクノロジーやプログラミングに習熟している人ほどそう思うかもしれない。しかし間違いなくプログラミングは身近なものになっており、その速度は加速度を増している。そしてこのことが、世界を大きく変えるに違いない。そしてそれはもはや始まっている。

思い出してみよう。私の世代はコンピュータの誕生とともに歩んできたといえる。中学生のとき、私は初めてコンピュータに出会った。それは当時「マイコン」と呼ばれることが通常で、今から比べると貧弱で扱いにくく弱弱しいものだった。しかし私はそのコンピュータに出会ったとき、生まれて初めてのBASICプログラミングを夢中でやり、気が付けば空が明るくなり朝を迎えたという経験をした。

高校生の頃、ウォークマンが世の中に出た。それはカセットテープを使った持ち運びのできる、しかしスピーカーを持たない、イヤホンで自分だけが聴くためのマシンだった。ロックに目覚めた私はウォークマンの初代機を買い、ヘッドフォンをつけて町に出て音楽を聴いた。両親は嘆いた。そんなおかしな恰好をして外に出るな、と。だが今はどうだ。誰もが町で自分だけの音楽を聴いている。

大学生の頃、ようやく実用的なパソコンが庶民にも使える時代になった。就職したとき、勤務先の学校には NEC の 9800 シリーズのマシンがあった。しかしそれは予算がついて購入されたものの、誰も使える人はいなかった。使おうと考える人もいなかった。そこで私は Multiplan の表計算ソフトで成績処理のコンピュータ処理をはじめた。当時パソコンで表計算をすることは、特別な技能を持った人間のすることだった。

就職してしばらくし、ノートパソコンを買った。それは今のように軽量で小型のものではなく、バッテリーの持ちも極めて悪かったが、うれしくて毎日持ち歩き電車の中で物を書いたりした。周囲から奇異な目で見られた。あの人は何をやっているのだ、といったかんじだ。会議でもノートパソコンを使い始めた。ある教育セミナーに出席したとき、講演をノートパソコンでメモしていると隣の席の人から「キーボードの音がうるさいのでやめてくれ」と言われた。ノートパソコンを持ち歩き外出先で何かする、ということは変人のすることだった。今ではどうか。誰もがノートパソコンやタブレット、スマートフォンを外出先で使っている。

ウォークマンで外出先で音楽を聴いたり、表計算ソフトを使ったりモバイルデバイスを使うことは、最初はマニアックな変人のすることであったかもしれない。しかしそれが便利なものなら、必ず真似をする人が出てきて、そのうちに当たり前のことになってくる。プログラミングはどうか。確かにプログラミングは敷居が高い。しかし今では、デスクワーカーのほとんどが Excel の表計算ソフトウエアを使い、多くの人がマクロプログラミングをやっている。なぜか。マクロを使うと定型業務あ楽になるからだ。それがわかると人はマクロを学ぼうとする。マクロを教えるセミナーもある。

Excel でマクロを組めるようになれば、もはや一般のプログラミングも、ほんの目の前にある。Microsoft Visual Studio のようなプログラミングツールは革命的に進化し、とても簡単にプログラミングができる時代になっている。誰もが自分に必要な、仕事上の、家庭の、ホビーでのプログラミングをカジュアルにする時代になるだろう。それは、自動車の運転のように私たちの生活に浸透するだろう。今でも車の運転をしない人がいるが、ほとんどの人が運転免許を取得し、マイカーを運転して買い物へ、職場へ、旅行に行く。それと同様のことがコンピュータやプログラミングの世界でおこるに違いない。

(・・・続く)

yocface_MVP_SQLserver_936_936.png

広告

システム管理者のための考察 – Active Directoryユーザー一括作成はVBS、VBScriptでやろう

leave a comment »

Active Directoryを使うと、たいへん合理的にシステム全体を管理、運用することができる。Active Directoryの技術は、システム全体をMicrosoft Windows Systemで統合する最も大きな理由であるといえる。ファイルサーバー、プリンタなどシステムリソースへのアクセス管理、Webアクセス管理、監査、データベースのアクセス権など、ユーザー管理を一元化し権限を統合的にしかもわかりやすく簡単に扱えることは極めて大きなメリットである。

ユーザー管理においては、一般の企業であっても一定以上の従業員規模では、画面を操作するGUI環境で手作業でやっていては追いつかないだろう。ましてや私が勤める学校のようなところでは、毎年数百名規模の新入生のユーザー登録を行わなければならない。このとき、なんらかの名簿リストを用いて一括でユーザー作成をしたい。

いまでもそうだが、Active Directoryのユーザー作成を一括で行うことについてWebで検索をすると、CSVDE.EXEやLDIFDE.EXE、DSADD.EXEなどのコマンドを使う方法や、Windows 2000 Server時代のリソースキットによるADDUSERS.EXEを使う方法などが上位にあらわれる。しかしこれらの手法はユーザー作成に関して限定的な古い手法である。もちろんこれらの手法はActive Directoryに関する情報があまりない時代に極めて有用な情報であって、だからこそいまだにWeb検索で上位にヒットするのだが、Active Directoryのユーザー一括作成について今後はPower Shellに取って代わられると思うが、現時点で最も有効な方法はVBScript略してVBSを使う方法だと思う。VBScriptあるいはVBSは、Windows Script Host略してWSHとも言われるスクリプト実行環境で実行される、テキストファイルに記述したスクリプトを実行するものである。この手法はWindows 2000 ServerからWindows Server 2008 R2まで共通して使える手法である。

VBSはテキストファイルに記述する。サンプルとして次のようなスクリプトをテキストファイルに記述してみよう。少し長いがメモ帳で一行で記述する。

————————————————————————————–

Set objOU = GetObject(“LDAP://OU=生徒,dc=kyoiku,dc=local”) :Set objUser = objOU.Create(“user”, “cn=0000000 VBSでユーザー作成”) : objUser.Put “sAMAccountName”, “0000000” : objUser.SetInfo:objUser.Put “sn”,”snは姓”: objUser.Put “givenName”,”givenNameは名”: objUser.Put “displayName”,”displayNameまたはDNは表示名”: objUser.Put “initials”,”initia”: objUser.Put “description”,”descriptionは説明”: objUser.Put “userPrincipalName”,”userPrincipalNameはログオン名”: objUser.setPassword “kofu&1234” : objUser.AccountDisabled = FALSE: objUser.SetInfo

————————————————————————————–

実際にメモ帳に記述したところは次のとおりだ。

vsbでユーザー作成_メモ帳

<Fig.1 メモ帳で作ったActive Directoryにユーザーを生成するVBScript>

メモ帳でこのテキストファイルを保存すると、拡張子.txtのファイルが生成するが、この拡張子を.vbsに変更するとサーバー上でVBScriptとして実行できるようになる。実行すると「kyoiku.local」というドメインの「生徒」というOUにユーザーアカウントが生成する。実際にできたユーザーは次のようになっている。

vsbでユーザー作成001

<Fig.2 VBScriptで生成したユーザーのプロパティ「全般」>

vsbでユーザー作成003

<Fig.3 VBScriptで生成したユーザーのプロパティ「アカウント」>

VBScriptの設定項目と生成したユーザーアカウントのプロパティを比べると、設定したい項目についてVBScriptでどう記述すればよいかががわかるはずだ。

これをみると、サーバーにログオンし、管理ツールのGUI環境でやっていると意識しないが、ActiveDirectoryではユーザー情報に関して類似の異なる複数の項目が管理されていることがわかるだろう。「cn」、「sAMAccountName」、「sn」、「givenName」、「displayName」、「initials」、「description」、「userPrincipalName」などだ。

では、大量のユーザー情報からどうやってこのVBScriptを生成するかだが、それにはいろいろな方法がある。たとえばエクセルなどで生成したいユーザーの基本情報、つまりログオンIDや初期パスワード、氏名、などをリストにしておき、セルの結合でスクリプトを生成することができるだろう。もちろんアクセスデータベースを使ってもいいし、SQL Serverで生成してもいい。生成した文字列をテキスト形式でエクスポートし、拡張子を.vbs変えて実行すればよいのだ。

ただデータベースから文字列をエクスポートするとき、文字を「”」で囲んでしまうような処理を自動的にやってしまうアプリケーションもあるので注意が必要だ。その場合でも「メモ帳」の文字置換機能を使って不必要な記号を削除して実行すればよい。

Written by Yoshio Matsumoto

2011年9月8日 at 6:30 PM