2017-12-07 13 views
1

Active Directoryにアクセスする必要があるSSISパッケージの作成に取り組んでいます。 ADO.NET接続を作成し、レコードを取り戻すために選択したLDAPクエリを書きました(下記参照)。私はデータを正常に取得することができますが、Active Directoryの属性の1つは、私が望む部門番号の代わりにSystem.Object []を返しています。 System.Objectをクエリを使用して実際のデータに変換する方法はありますか?前もって感謝します。Active Directory SQLクエリからSystem.Object []を返す

例クエリ:

SELECT department, departmentnumber, sAMAccountName 
FROM 'LDAP://example.com' WHERE objectClass='User' 

結果:

|department |departmentnumber |sAMAccountName| 
|Hollywood |System.Object[] |ceastwood  | 

UPDATE:私の研究の後、私はそれがシステムを返していた場合、私は、このLDAPのSQLクエリを使用することが可能であるとは考えていないことを追加しますオブジェクト。私は、コンソールアプリケーションを作成し、右SQLに私のActive Directoryのデータを挿入するためにそれを構築し、この1 HERE

のような同様の操作を実行するスクリプトタスクを使用しての多くの偉大な例を見つけました。 Stack Over Flowで見つかった記事に続いてお勧めします。彼らは私が望んでいた方法ではないが、この仕事を達成するのに大いに役立った。

+0

、それが何を示してい'departmentnumber'の構文ですか? – billinkc

+0

上記のツール(ありがとう)を使用して、CN = departmentNumberに移動すると、構文が異なるいくつかの属性がすべて含まれています。私が探しているのはどの属性ですか? attributeSyntax属性構文= DirectoryString – Clint

+0

データフローADO NETソース内でクエリをプレビューすると、そのレベルのSystem.objectが表示されるため、データフローの宛先からルールが発生しないため、問題。 – Clint

答えて

1

これをさらに読む前に、オブジェクト[]をstring []として解析できることを確認してください。私は私が私たちの環境での読みやすさのために、[]列に[]オブジェクトからmemberOf属性の出力を変換していますかのサンプル道共有よ

:(convertObjectToString、一方で

object[] membership = user.Properties["MemberOf"].Value as object[]; 
        if (membership != null) 
        { 
         string[] roles = Array.ConvertAll<object, string>(membership, convertObjectToString); 
         if (roles != null) 
         { 
          foreach (string role in roles) 
           LogInformation.log("Role " + role); 
         } 
         else 
          LogInformation.log("Member Of not found!"); 
        } 

を)されます静的メソッドは、下の宣言として:あなたは[SysInternalsのADExplorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer)のようなものを使用している場合

private static string convertObjectToString(object obj) 
    { 
     return (obj == null) ? string.Empty : obj.ToString(); 
    } 
+0

私はこれをSQLクエリを使用して実行しようとしていました。スクリプトタスクを作成してこれを正常に実行する唯一の方法はありますか? – Clint

+0

@Clint - はい、あなたが望むものを達成することは可能です。 Web上で「SQL Serverからマネージコードを呼び出す」を検索してください(例:https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr)。 - インテグレーション;覚えておいてください - それは針を使って戦争に匹敵するでしょう! –

+0

母、はい私は同意します。私はスクリプトタスクでこれを実行するためにC#を書き始めましたが、SQLクエリでこれを動作させることはできません。リンクありがとう。 – Clint

関連する問題