タグ
  ANSI (1)
  ASP.NET (10)
  Active Directory (55)
  BAT (16)
  Backup (2)
  CSharp (11)
  CentOS (4)
  C言語 (4)
  DNS (4)
  Excel (3)
  FFmpeg (1)
  Fedora (4)
  FreeBSD (6)
  IPv6 (3)
  Java (11)
  JavaScript (8)
  LAN (1)
  Link (4)
  Linux (15)
  Mac (1)
  Mail (2)
  Microsoft (3)
  NIS (1)
  Node.js (6)
  OpenIndiana (1)
  OpenLDAP (2)
  OpenSSL (1)
  OpenSolaris (4)
  PHP (2)
  Perl (2)
  Postfix (1)
  PostgreSQL (2)
  PowerShell (34)
  RFC (3)
  SQL Server (5)
  Solaris (10)
  Ubuntu (9)
  VBScript (73)
  VCpp (2)
  VMware (3)
  Visual Basic (1)
  WMI (17)
  WSF (5)
  WSH (10)
  Windows (19)
  bash (1)
  bind (1)
  iSCSI (1)
  おまけ (3)
  作成中 (8)
  慣用句 (3)
  正規表現 (6)
  運用 (8)
作成 2010.01.07
更新 2010.01.07
VBScript でスキーマの一覧取得2
このサンプルは指定したオブジェクトに設定/取得可能な属性の一覧を表示します。メッセージがたくさん出るので cscript で実行してください。
Option Explicit
Const HideNullValue = True
Dim adsUser, sch, data
Set adsUser = GetObject("LDAP://CN=Administrator,CN=Users,DC=example,DC=lan")
Set sch = GetObject(adsUser.Schema)
WScript.Echo sch.name

WScript.Echo "----- MandatoryProperties -----"
For Each data in sch.MandatoryProperties
  EnumerateProperties data
Next

WScript.Echo "----- OptionalProperties -----"
For Each data in sch.OptionalProperties
  EnumerateProperties data
Next

Sub EnumerateProperties(adsProp)
  Dim adsProperty
  Dim wStr, propData
  On Error Resume Next
  Set adsProperty = GetObject("LDAP://Schema/" & adsProp)
  If Err.Number <> 0 Then
    WScript.Echo vbTab & "null"
    Exit Sub
  End If
  On Error Goto 0
  wStr = adsProp & vbTab & adsProperty.Syntax & vbTab
  If adsProperty.MultiValued Then
    wStr = wStr & "MultiValued" & vbTab
    On Error Resume Next
    propData = adsUser.GetEx(adsProp)
    If Err.Number <> 0 Then
      On Error Goto 0
      If HideNullValue Then Exit Sub
      wStr = wStr & "(null)"
    Else
      On Error Goto 0
      wStr = wStr & TypeName(propData(0)) & "(" & (UBound(propData)+1) & ")"
    End If
  Else
    wStr = wStr & "SingleValued" & vbTab
    On Error Resume Next
    propData = adsUser.Get(adsProp)
    If Err.Number <> 0 Then
      On Error Goto 0
      Set propData = Nothing
      On Error Resume Next
      ' 64bit整数など、Getメソッドで取得できないオブジェクトはこれで取得する
      propData = adsUser.GetEx(adsProp)
      If Err.Number <> 0 Then
        On Error Goto 0
        If HideNullValue Then Exit Sub
        wStr = wStr & "(null)"
      Else
        On Error Goto 0
        wStr = wStr & TypeName(propData(0)) & "(" & (UBound(propData)+1) & ")"
      End If
    Else
      On Error Goto 0
      If VarType(propData) >= vbArray Then
        wStr = wStr & TypeName(propData) & "(" & (Ubound(propData)+1) & ")"
      Else
        wStr = wStr & TypeName(propData)
      End If
    End If
  End If
  WScript.Echo wStr
End Sub
参考

ActiveDirectorySchemaClass クラス | IADsProperty Interface | IADs インターフェース | VBScript でスキーマの一覧取得

[リロード] [記事修正] [新規作成] [使用方法]
©2004-2012 UPKEN IPv4