- - PR -
VBSでActiveDirectoryから情報を取得する方法
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 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を色々と調べながらここまでスクリプトを作成しましたが、 ひよっこの為、よく分かりません。 要望を満たすスクリプトを作成するのは難しいでしょうか? どうぞ、宜しく御願いいたします。 | ||||||||
|
投稿日時: 2006-08-02 10:37
そうですね。 以後の処理は不要なのですから、「ガード句」 扱いにして終了した方が良いでしょう。
MsgBox + WScript.Quit ではダメなのでしょうか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1