
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で質問しましょう!
似たような質問が見つかりました
- フランス語 関係詞ou(アクサンが出ません)について 1 2022/08/16 08:36
- その他(セキュリティ) 匿名チャットアプリでの知られたくない会話 個人情報について 1 2023/03/29 18:08
- その他(セキュリティ) 匿名チャットアプリ トラッキング 個人情報について 1 2023/03/29 20:35
- ハッキング・フィッシング詐欺 スマホアプリのトラッキング 個人情報について 5 2023/03/31 08:16
- サーバー Windowsサーバでグループを検索したい 1 2023/04/17 15:30
- その他(メールソフト・メールサービス) 業務用メールアドレスをご提案ください! 2 2022/05/17 19:50
- ルーター・ネットワーク機器 NUROのルータF660Aについて 2 2022/09/07 11:44
- その他(セキュリティ) 匿名チャットアプリのトラッキングについて。顔写真や個人情報の漏洩はあるのか。 2 2023/03/28 00:00
- フランス語 フランス語文章の構成について 1 2023/01/28 18:44
- その他(開発・運用・管理) Windowsバッチファイルでリモートデスクトップを自動ログインするが確認画面が出る対処方法 1 2022/12/19 15:48
このQ&Aを見た人はこんなQ&Aも見ています
-
ExcelにADのセキュリティグループのメンバーを表示させる
Visual Basic(VBA)
-
ActiveDirectoryから値を取得
Visual Basic(VBA)
-
ユーザの所属するグループを取得する
Visual Basic(VBA)
-
-
4
ExcelVBAで今開いているユーザ情報を取得できますか?
Visual Basic(VBA)
-
5
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
6
Active directoryの全グループ取得
Visual Basic(VBA)
-
7
Excel VBA Windowsにログインしているユーザ名
Excel(エクセル)
-
8
ADSIについて
Visual Basic(VBA)
-
9
ActiveDirectory ユーザ一覧取得方法
ネットワーク
-
10
エクセル(VBA)でWindowsのサインイン情報(パスワード)と照合可能か
Windows 10
-
11
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
12
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
13
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
14
Excel 参照設定ActiveDirectory
その他(プログラミング・Web制作)
-
15
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
16
VBAでパワーシェルを実行したいのですが、なかなかうまく出来ず、有識者の知識をお借りさせてください。
その他(プログラミング・Web制作)
-
17
「Active Directoryプロパティがキャッシュに見つかりません」の回避
Visual Basic(VBA)
-
18
AdministratorsとDomain Adminsの違い
ネットワーク
-
19
VBA でActiveDirectory 上のフォルダにアクセスする。
Visual Basic(VBA)
-
20
Excelのハイパーリンクのアドレスが勝手に変わる
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP8でWarning:Undefined varia...
-
VB2010で、クリックした部分の...
-
アイコンの自動整列の属性取得 API
-
HPを作成しているのですが安価...
-
デスクトップフォルダのパスを得る
-
VB.NETで DataRow()を利用して...
-
javaで週の最初の日(例:月曜日...
-
vbaで、オートシェイプ文字幅と...
-
UWSCでhtmlソースの文字列を取...
-
ディスプレイの表示可能な解像...
-
サーバ時刻の取得
-
モニタの物理解像度を得る(Win3...
-
DBからもってきた文字を置換...
-
VBのComboBoxで項目を抜き出したい
-
javascript とスクレイピングの...
-
jqueryのセレクタについて
-
VBからDLL(VC)を呼び出すと戻り...
-
DOS窓の非表示
-
ドロップダウンリストの初期表...
-
URLパラメータの取得方法を教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
ListView 項目の選択/選択解除...
-
VBA:小数点以下の数字を取得で...
-
VBAでActiveDirectoryのユーザ...
-
Spreadの選択行の取得について
-
PHP8でWarning:Undefined varia...
-
Flexgridで選択行の列の値を取...
-
count(*)で取得した値をJAVAの...
-
VBA Shapesの座標からセル位置...
-
データ数をカウントしたいのですが
-
JavaScriptにおいてコンピュー...
-
利用者側のMACアドレスを取得し...
-
VBA リストボックス内の値を複...
-
like演算子内に変数って使えな...
-
EXCELのリストボックスを選択し...
-
「Excel VBA」 Webクエリ マク...
-
JavaScriptでWindowsログオンID...
-
gethostbyaddrでのホスト名取得...
-
現在時刻をミリ秒まで取得
-
vbaで、オートシェイプ文字幅と...
おすすめ情報