2011-01-25 43 views
1

ADsDSOObjectを照会するためのVBScriptを作成していますが、LDAPの構造がわかりません。私はActive Directoryで利用可能な仮想テーブルを見つける方法を見ていますが、使用可能な仮想カラムを探す場所を見つけることはできません。ADsDSOObjectクエリ:LDAPにクエリを実行するときに使用できる列?

また、「SELECT * FROM」と入力すると、ADsPathのみが返されます。 objectClass = 'Computer'グループから「名前」、「タイプ」、および「説明」以上のものを選択したいと思います。

Dim objCompArr 
Dim currcomp 
objCompArr = Array() 
currcomp = -1 

Set objConnection = CreateObject("ADODB.Connection") 
Set objCommand = CreateObject("ADODB.Command") 
objConnection.Provider = "ADsDSOObject" 
objConnection.Open "Active Directory Provider" 

Set objCOmmand.ActiveConnection = objConnection 
objCommand.CommandText = "SELECT Name FROM 'LDAP://DC=mydomain,DC=com' WHERE objectClass = 'Computer'" 
objCommand.Properties("Page Size") = 1000 
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
Set objRecordSet = objCommand.Execute 

If Not objRecordSet.EOF Then 
    objRecordSet.MoveFirst 
    Do Until objRecordSet.EOF 
     currcomp = currcomp + 1 
     ReDim Preserve objCompArr(currcomp) 
     objCompArr(currcomp) = objRecordSet.Fields("Name") 
     objRecordSet.MoveNext 
    Loop 
End If 

答えて

3

the one from Softerra,ADSIEdit from MicrosoftまたはActive Directory Explorer from Sysinternalsのように)事前にLDAPブラウザで視覚的にブラウズするのが最も簡単です。

オブジェクトのすべてのプロパティを表示し、それに応じてクエリを作成することができます。

姓はとなります。たとえば、最初の名前はgivenName、ログインはsAMAccountNameです。

設定されていない(または定義されていない)プロパティは常に問い合せることができます。これはエラーではありません.LDAPは拡張可能に設計されており、すべてのプロパティがすべてのオブジェクトに定義されているわけではありません。結果として空の列が得られます。

+0

私は問題は、MiscrosoftのADライブラリの属性のリストは、すべてのクラスの下にすべての属性を表示するので、反対の考えが真であると思う、私はクラス名 "コンピュータ"の下で "Desktop-Profile" 。同じことがsAMAccountNameを照会すると起こります。 – Dexter

+0

@Dexter:どのようなエラーがありますか?個人的に私は[適切なLDAPクエリ](http://support.microsoft.com/kb/187529)[参照](http://msdn.microsoft.com/を参照してください。 en-us/library/aa746385(v = vs.85).aspx)。また、私はダッシュはLDAPプロパティ名では不正だと考えています。 – Tomalak

+0

これは15行目の「一般的なエラー」です。上記の私の答えにリストアップしたMicrosoftライブラリからプロパティ名を取得しました。しかし、AD Explorerを使うと、実際にはコンピュータの所有物ではないことがわかります。アクティブなログインを表示するコンピュータのプロパティはないようで、ユーザーのプロパティにはログインしているコンピュータが表示されません。 ADや何かのどこかにあるコンピュータとその現在のユーザーのリストを見たのは覚えているようですが、それはしばらくありました...ドメインコントローラを使ってユーザーがログインしていると、 。 – Dexter

0

は、私はここで答えを見つけました:http://msdn.microsoft.com/en-us/library/ms680987%28v=vs.85%29.aspx#windows_2000_server_attributes

は、そのクラスから現在ログインしているユーザーを引っ張って、とにかくありますか?私はDesktop-Profileがそれだと思っていましたが、クエリの実行中に不特定のエラーが発生しています。

+0

回答とフォローアップの質問を回答セクションに掲載しないでください。これは、このサイトがどのように動作するはずではありません。ベストソリューション:質問に編集して削除します。 – Tomalak

関連する問題