- PR -

Active Directory サーバーについて

1
投稿者投稿内容
大ベテラン
会議室デビュー日: 2003/09/16
投稿数: 193
お住まい・勤務地: 千葉県
投稿日時: 2005-11-10 18:02
いつもお世話になっております

 LDAPを使用して Active Directory の情報を取得しようとしています
 運用の仕様上 Active Directory の サーバーが5台あり、
 日によって サーバーを換えているそうです

 その際に、本日のサーバー名は XXXX だよ という情報を
 取得する事は 可能でしょうか?
 VBScript で 取得できる 方法があれば
 教えていただけませんでしょうか?

kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-11-11 00:26
こんばんわ.
引用:

七さんの書き込み (2005-11-10 18:02) より:

 運用の仕様上 Active Directory の サーバーが5台あり、
 日によって サーバーを換えているそうです


それは「日によって起動していない server がある」ということですか?
その運用自体眉唾ですが...

環境変数で logon server ってありませんでしたっけ?
それが logon 要求した server だったのではないかと.

間違っていたらゴメンナサイ.
大ベテラン
会議室デビュー日: 2003/09/16
投稿数: 193
お住まい・勤務地: 千葉県
投稿日時: 2005-11-11 12:07
引用:

kazさんの書き込み (2005-11-11 00:26) より:
こんばんわ.
それは「日によって起動していない server がある」ということですか?
その運用自体眉唾ですが...




ありがとうございます
「日によって起動していない server がある」 かどうか よく詳細が見えないのですが
ADの? or ドメインの? サーバーが5台 用意されていて
日によって、変わるらしい・・・・
そんな事 あり得る?

2003 サーバーで
5台 すべてが プライマリ で コンピュータ名が異なって
その5台を切り替えるなんて 事 出来るのでしょうか 

または
プライマリが死んでいて セカンダリが コントロールしている状態で
プライマリのコンピュータ名でADを読みに行っても 読めないんですよね?

  どちらにしても コンピュータ名 固定で ADを読みにいくのは
まずいって事になりますかねぇ?

環境変数 を VBスクリプトで読む方法って 見当がつかないのですが
申し訳ありません ヒントでもいただけるとありがたいです 

だーしの
会議室デビュー日: 2005/08/12
投稿数: 2
投稿日時: 2005-11-11 12:45
こんな感じでいけましたよ。ご参考まで。

↓↓↓↓↓↓↓↓↓↓ ここから ↓↓↓↓↓↓↓↓↓↓

Set <Object> = <WSH Object>.Environment("*****")
Wscript.echo <Object>.Item("LOGONSERVER")

↑↑↑↑↑↑↑↑↑↑ ここまで ↑↑↑↑↑↑↑↑↑↑

あとはWSHの使い方ですね。


[ メッセージ編集済み 編集者: だーしの 編集日時 2005-11-11 12:56 ]
Mattun
ぬし
会議室デビュー日: 2004/08/10
投稿数: 1391
投稿日時: 2005-11-11 15:27
引用:

「日によって起動していない server がある」 かどうか よく詳細が見えないのですが
ADの? or ドメインの? サーバーが5台 用意されていて
日によって、変わるらしい・・・・
そんな事 あり得る?


この5台ってのが全てドメインコントローラだとすると、
自分の知ってる限りでは、聞いたことありませんし、目的も想像つきません。
むしろその辺の事情が分かれば、参考までに聞いてみたい気がします。
一応、そのAD管理者の方と七さんの認識のずれがある、って可能性の方が
高いとは思ってます。理由が想像つかないですから。


ただ、ActiveDirectoryのドメインコントローラ(DC)って、
一部の機能(*)を除いて対等な関係であり、1台が死んでも影響がないような
つくりになってます。クライアントも自分が使ってるDCが死んだら、
素直に他のDCを参照しに行くように振舞います。
そういう意味では、ドメインメンバがどのDCを使っているか、
というのを意識しなければならない場面ってほとんどないはずであり、
調べる必要性がある場面ってのもあまり思いつかないです。

(*)の機能、具体的にはFSMOですが、これらも停止した場合の影響が大きいのは
PDCエミュレータくらいなもんです。
それすら、ちゃんと移行した上で切り替えとかしてるなら、
そういう構成を実現すること自体は可能です。

ただ、DC間複製処理のエラーとかまで制御するとなると、
もうどれだけ管理が大変になるか想像つきませんが。
_________________
Mattun
Microsoft MVP for Directory Services
(Oct 2006-Sep 2007)
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-11-11 21:56
こんばんわ.
引用:

七さんの書き込み (2005-11-11 12:07) より:

「日によって起動していない server がある」 かどうか よく詳細が見えないのですが
ADの? or ドメインの? サーバーが5台 用意されていて
日によって、変わるらしい・・・・
そんな事 あり得る?

2003 サーバーで
5台 すべてが プライマリ で コンピュータ名が異なって
その5台を切り替えるなんて 事 出来るのでしょうか 


日によって起動していないのではなく,
いつも起動していて「任意の Domain Controller に認証を要求する」のが
Active Directory の一般的な仕様だと思いますが,そういう意味ではなく?
Mattun 様ご指摘のように primary 云々の話はあまり意味がありませんが,
DNS さえちゃんと機能していれば,
たとえ logon した後に logon した Domain Controller が
障害などで停止した場合でも,
ほかの正常に機能している Domain Controller が補完してくれます.
これは DNS の機能を基盤にしているので,別の書き方をすると
「DNS さえ正常なら Domain Controller はどれが正常に動いていても,
或いはどれが正常でなくなって機能しなくても当面の支障はない」
と考えることができるでしょう.
なので「computer name が異なって」というのは問題になりませんよね.
引用:

または
  どちらにしても コンピュータ名 固定で ADを読みにいくのは
まずいって事になりますかねぇ?


ということで,DNS の機能によって「ほかの Domain Controller も参照できる」
ので,logon server を固定で「読みにいく」ことはないと思います.

以上,ご参考までに.
大ベテラン
会議室デビュー日: 2003/09/16
投稿数: 193
お住まい・勤務地: 千葉県
投稿日時: 2005-11-11 23:33
遅くなって 申し訳ありません

皆様 ありがとうございます
やはり 思い違いのようですね

日を変えてADを読みに行っても、毎回同じサーバーを読んでいるようなので
おかしな情報だとは思ってました

確実にAD管理者に確認をとってみます
サーバー名は意識せず ドメイン、アカウント指定 のみ で
読んで だめだったら 階層指定して アカウント検索で
終了します

みなさん たくさんのご教授 感謝いたします
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2005-11-12 02:26
ADSI でできるでしょ。

コード:
Set objRootDSE = GetObject("LDAP://RootDSE")
WScript.Echo objRootDSE.get("ServerName")



取得した文字列の整形くらいは、ご自身でやってください。

というより、LDAP使って取得ということは、Hostname は必要ありませんよね?
必要なのは、対象の AD の LDAP Path でしょう。

ということであれば、何台あろうとすべて一緒ですね。(同一 Domain の場合)
現在、Login している AD の LDAP Path を知るにはこうします。

コード:
Set objRootDSE = GetObject("LDAP://RootDSE")
WScript.Echo objRootDSE.get("defaultNamingContext")



RootDSE
1

スキルアップ/キャリアアップ(JOB@IT)