
Excel VBAにてActiveDirectoryのユーザなどの管理をしたいと考えています。
(理由:操作ミスなどを防ぐために、AD操作は全てExcelからにしたい)
情報を取得する対象のユーザが分かっていれば、以下の方法で、情報を取得可能かと思います。
(実行するユーザが、ADの操作権限がある前提で、suzukiというユーザの情報を取得する場合)
Dim objSysInfo
Dim objUser
Set objSysInfo = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://CN=suzuki,OU=OU123_ユーザー,OU=OU123,DC=ad,DC=test,DC=com")
AD:ad.test.com
OU:OU123→OU123_ユーザー
OU123_ユーザー配下のすべてのユーザ情報を取得する場合には、どのようにすればよろしいでしょうか?
No.2ベストアンサー
- 回答日時:
質問文に書いてある単一ユーザーを取得する書き方に沿えばこんな感じかなぁ。
Dim objOU, objUser
Set ObjOU = CreateObject("LDAP://OU=OU123_ユーザー,OU=OU123,DC=ad,DC=test,DC=com")
objOU.Filter = Array("user")
For Each objUser In objOU
Debug.Print objUser.Name
Next
複数のアカウントを取得するので ADODB で DB のように取り扱うこともできそう。(ちょっと長いけど)
Dim objConn, objComm, objRst
Set objConn = CreateObject("ADODB.Connection")
Set objComm = CreateObject("ADODB.Command")
objConn.Provider = "ADsDSOObject"
objConn.Open "Active Directory Provider"
set objComm.ActiveConnection = objConn
objComm.Properties("Page Size") = 1000 ' 検索結果の最大取得数
objComm.Properties("Searchscope") = 1 ' この OU の配下も全部なら 2 を指定
objComm.CommandText = "SELECT Name From 'LDAP://OU=OU123_ユーザー,OU=OU123,DC=ad,DC=test,DC=com' WHERE objectCategory='user'"
Set objRst = objComm.Execute
objRst.MoveFirst
Do Until objRst.EOF
Debug.Print objRst.Fields("Name").Value
objRst.MoveNext
Loop
私は今まで Excel でアカウントの台帳を作っていたので、これを元に Active Directory を操作できないかと考えていたのですが、最近になって考え方を改めました。
台帳はあくまでも Active Directory なので、ユーザーのリストがほしければ都度取得すればいいじゃないか、と。
アカウント登録や変更も、[対象アカウントの存在確認] → [更新] をすりゃいいじゃないか、と。
それで Excel 台帳による二重管理を捨て、PowerShell によるいくつかのスクリプト ファイルを作っているところです。
一覧を取得するだけなら以下の 1行でできちゃいますし。
Get-ADUser -Filter * -SearchBase "OU=OU123_ユーザー,OU=OU123,DC=ad,DC=test,DC=com" -Properties * -SearchScope OneLevel | ForEach-Object { $_.Name}
No.1
- 回答日時:
今日の質問 : OU とそのサブ OU 内のすべてのユーザーの一覧を取得する方法はありますか
http://gallery.technet.microsoft.com/scriptcente …
で解決するかも?
※当方、AD環境ではないのでここまで。
蛇足。
リモートレジストリの参照の件ですが、管理共有を復活させても良いかも?
https://support.microsoft.com/ja-jp/kb/951016
reg query \\win7pc\hklm /s では全てを取得できそうです。
(途中で止めてしまったので・・・)
ただし、セキュリティ的にゆるくなります。
\\Win7PC\C$ などでエクスプローラでも操作できるようになったり
shutdown /r /m \\win7pc とかも思いのままに・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ExcelにADのセキュリティグループのメンバーを表示させる
Visual Basic(VBA)
-
ActiveDirectoryから値を取得
Visual Basic(VBA)
-
ExcelVBAで今開いているユーザ情報を取得できますか?
Visual Basic(VBA)
-
-
4
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
5
ユーザの所属するグループを取得する
Visual Basic(VBA)
-
6
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
7
エクセル(VBA)でWindowsのサインイン情報(パスワード)と照合可能か
Windows 10
-
8
ADSIについて
Visual Basic(VBA)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
ActiveDirectory ユーザ一覧取得方法
ネットワーク
-
11
Excel VBA Windowsにログインしているユーザ名
Excel(エクセル)
-
12
Active directoryの全グループ取得
Visual Basic(VBA)
-
13
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
14
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
15
「Active Directoryプロパティがキャッシュに見つかりません」の回避
Visual Basic(VBA)
-
16
Excel 参照設定ActiveDirectory
その他(プログラミング・Web制作)
-
17
VBAでパワーシェルを実行したいのですが、なかなかうまく出来ず、有識者の知識をお借りさせてください。
その他(プログラミング・Web制作)
-
18
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
19
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
20
AdministratorsとDomain Adminsの違い
ネットワーク
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
PHP8でWarning:Undefined varia...
-
ListView 項目の選択/選択解除...
-
LAN内接続マシン数及びIP、マシ...
-
利用者側のMACアドレスを取得し...
-
エクセルVBAで複数選択できるよ...
-
ListViewで複数選択された項目...
-
JavaScriptでWindowsログオンID...
-
VBAでActiveDirectoryのユーザ...
-
データ数をカウントしたいのですが
-
EXCELのリストボックスを選択し...
-
Excel VBA でログインしてい...
-
エクセルVBAで範囲内での位置取...
-
DataGridView 複数選択で行番...
-
javaで週の最初の日(例:月曜日...
-
Spreadの選択行の取得について
-
Struts2 <s:select>タグの値取...
-
郵便番号検索APIにてget Elemen...
-
like演算子内に変数って使えな...
-
count(*)で取得した値をJAVAの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
PHP8でWarning:Undefined varia...
-
count(*)で取得した値をJAVAの...
-
ListView 項目の選択/選択解除...
-
VBAでActiveDirectoryのユーザ...
-
VBA:小数点以下の数字を取得で...
-
JSP+Servletでのページングの常識
-
データ数をカウントしたいのですが
-
Flexgridで選択行の列の値を取...
-
利用者側のMACアドレスを取得し...
-
getParameter と getAttribut...
-
like演算子内に変数って使えな...
-
JavaScriptにおいてコンピュー...
-
郵便番号検索APIにてget Elemen...
-
DataGridView 複数選択で行番...
-
URIでのページの移動について
-
Spreadの選択行の取得について
-
指定のURLのタイトルを取得...
-
EXCELのリストボックスを選択し...
-
ListViewで複数選択された項目...
おすすめ情報