Active Directoryユーザーのリストと、SQLServer2005リンクサーバーを使用しているメンバーであるセキュリティグループを取得したいと思います。レコードを取得するためのクエリが機能していますが、memberOf属性(複数値のLDAP属性)にアクセスする方法がわかりません。
私は情報を保存するためにこれを一時的に持っています:
DROP TABLE #ADUSERGROUPS
CREATE TABLE #ADUSERGROUPS
(
sAMAccountName varchar(30),
UserGroup varchar(50)
)
各グループ/ユーザーの関連付けは1行である必要があります。
これは私のSELECTステートメントです:
SELECT sAMAccountName,memberOf
FROM OpenQuery(ADSI, '<LDAP://hqdc04/DC=nt,DC=avs>;
(&(objectClass=User)(sAMAccountName=9695)(sn=*)(mail=*)(userAccountControl=512));
sAMAccountName,memberOf;subtree')
このエラーメッセージが表示されます:
OLEDBエラートレース[OLE/DBプロバイダー'ADSDSOObject'IRowset :: GetDataが0x40edaを返しました:プロバイダーから返されたデータステータス:[COLUMN_NAME = memberOf STATUS = DBSTATUS_E_CANTCONVERTVALUE]、[COLUMN_NAME = sAMAccountName STATUS=DBSTATUS_S_OK]]。メッセージ7346、レベル16、状態2、行2OLEDBプロバイダー'ADSDSOObject'から行のデータを取得できませんでした。符号の不一致またはオーバーフロー以外の理由により、データ値を変換できませんでした。