ActiveDirectoryから値を取得
VB2005にて、ActiveDirectoryから値を取得するアプリを作成しています。
WindowsXPでは問題なく動作するのですが、Windows7だと「ローカルエラーが発生しました」
というエラーメッセージが返って来てしまいます。
OSの設定を変えれば解決するのか、プログラムの書き方を変えるのか分からないので、
こちらに質問させていただきました。以下がプログラムです。
どなたかご存知の方がいらっしゃいましたら教えて下さい。
宜しくお願いします。
Try
Dim serverPath As String = "LDAP://ドメコンのIPアドレス/DC=XXXXX,DC=co,DC=jp"
Dim userName As String = "CN=ユーザー名,CN=Users,DC=XXXXX,DC=co,DC=jp"
Dim password As String = "パスワード"
Dim entry As New System.DirectoryServices.DirectoryEntry(serverPath, userName, password)
Dim lgUser As String
Dim intPos As Integer '「,」の位置
lgUser = ユーザーID
Dim search As New System.DirectoryServices.DirectorySearcher()
'検索のルートになるDirectoryEntryを指定
search.SearchRoot = entry
'検索条件を指定します。下ではアカウント名と変数lgUserの一致が条件
search.Filter = "(samAccountName=" + lgUser + ")"
Dim result As System.DirectoryServices.SearchResult
Dim strA As String
'↓ココでエラーになります。
result = search.FindOne
Dim counter As Integer
For counter = 0 To (result.Properties("memberOf").Count) - 1
'resultで抽出したアカウントがメンバとして含まれるグループを取得
Dim groupName As String = CStr(result.Properties("memberOf")(counter))
strA = strA & groupName & vbCrLf
intPos = groupName.IndexOf(",") '「,」の位置を取得
User_Group.Add(groupName.Substring(3, intPos - 3))
Next counter
SetUser_Group = True
Catch ex As Exception
MessageBox.Show(ex.Message, "ActiveDirectoryからの取得", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
お礼
早いご回答ありがとうございます ソラヨミマスターですか サイトも参考になりました