- PR -

VBSでActiveDirectoryから情報を取得する方法

1
投稿者投稿内容
INVENT
常連さん
会議室デビュー日: 2006/03/10
投稿数: 42
投稿日時: 2006-08-02 10:19
はじめましてこんにちは。

会社を退社したユーザーの最終ログオン日時を
ActiveDirectoryから取得するVBSを
以下のように作成しました。
(VBSは初心者の為、効率の悪いスクリプトでしたらアドバイス願います)
(また、言葉の表現で間違いや不明な点がありましたらご指摘下さい)

Dim cn
cn = InputBox("名前を入力してください", "名前ダイアログ", "例 Taro Yamada")

If IsEmpty(cn) Then
WScript.Echo "キャンセルされました"
Else
Wscript.Echo "本来の処理: " & cn
End If


Dim ou
ou = InputBox("組織名を入力してください", "組織入力ダイアログ", "例 営業部")

If IsEmpty(ou) Then
WScript.Echo "キャンセルされました"
Else
Wscript.Echo "本来の処理: " & ou
End If

Set objUser = GetObject("LDAP://cn=" & cn & ",ou=" & ou & ",dc=jp,dc=hoge,dc=com")
Set objLastLogon = objUser.Get("lastLogon")

intLastLogonTime = objLastLogon.HighPart * (2^32) + objLastLogon.LowPart
intLastLogonTime = intLastLogonTime / (60 * 10000000)
intLastLogonTime = intLastLogonTime / 1440

Wscript.Echo "Last logon time + 9: " & DateAdd("h", 9, intLastLogonTime + #1/1/1601#)


ここで更に改良をしたいと考えております。

Dim ou、Dim cnの入力画面でキャンセルか×ボタンを選択した際
InputBox関数の場合、空欄("")が返ると思うのですが、
この状態でスクリプトを進めても最終的にデーターが入力されて
いないのでエラーが発生してしまいます。

その為、Dim ou、Dim cnのどちらか或いは両方に空欄がある場合には、
Set objUserに進まず、スクリプトを終了させたいと思います。

終了する際はデーターが入力されていないので終了します。
というダイアログを表示させ、OKをクリックすると終了するという感じです。

その場合、Dim ouやcnのデーターをチェックする関数か何かで定義して、
データーが入っていなければ、Set objUserに進まずにスクリプトを終了させる。
という感じで作成するのでしょうか?
作成する場合はどのようなスクリプトになりますか?

また、ouとcnのデーターを正しく入力してサーバーを参照した際、
ユーザーが存在しなかった場合、ユーザーは存在しませんでした。
というメッセージを表示させたいと考えております。

Webを色々と調べながらここまでスクリプトを作成しましたが、
ひよっこの為、よく分かりません。

要望を満たすスクリプトを作成するのは難しいでしょうか?
どうぞ、宜しく御願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-02 10:37
引用:

INVENTさんの書き込み (2006-08-02 10:19) より:

終了する際はデーターが入力されていないので終了します。
というダイアログを表示させ、OKをクリックすると終了するという感じです。
その場合、Dim ouやcnのデーターをチェックする関数か何かで定義して、データーが入っていなければ、Set objUserに進まずにスクリプトを終了させる。という感じで作成するのでしょうか?


そうですね。
以後の処理は不要なのですから、「ガード句」 扱いにして終了した方が良いでしょう。

引用:

終了する際はデーターが入力されていないので終了します。
というダイアログを表示させ、OKをクリックすると終了するという感じです。
作成する場合はどのようなスクリプトになりますか?


MsgBox + WScript.Quit ではダメなのでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)