嗨,Scripting Guy!

嗨,Scripting Guy!

歡迎使用 TechNet 專欄,Microsoft Scripting Guys 會在此為您解答有關系統管理指令碼的常見問題。您有關於系統管理指令碼方面的問題嗎?請將電子郵件傳送到 scripter@microsoft.com。我們無法保證能夠逐一回答每個問題,不過我們會盡力而為。

今天的問題:如何在特定的網域控制站上存取 Active Directory?


如何在特定的網域控制站上存取 Active Directory?

嗨,Scripting Guy!我要如何在特定的網域控制站上存取 Active Directory?

-- SD

SD,您好。Active Directory 有一點很棒,就是您通常不需要在特定的網域控制站上存取目錄服務,因為網域中的所有網域控制站都會複寫 Active Directory 資訊,所以無論與那個網域控制站繫結,資訊都是一樣的。想知道使用者所屬的部門嗎?只要使用如下的「無伺服器的繫結」即可:
Set objUser = GetObject _
    ("LDAP://CN=Ken Myer,OU=Finance,DC=fabrikam,DC=com")
Wscript.Echo objUser.department

請注意,我們沒有繫結到特定的網域控制站,而只是繫結到 Active Directory,然後讓目錄服務為我們選擇一個網域控制站。結果並沒有差別:反正使用者的部門在所有網域控制站上都一樣。

當然囉,如果真是這樣,又怎麼會想要繫結到特定的網域控制台?原因之一在於,雖然在網域中的所有網域控制台的確會複寫大部分的 Active Directory 資訊,還是有些屬性不會被複寫。就以 badPwdCount 屬性為例,這個屬性會追蹤使用者嘗試使用錯誤密碼登入的次數。各個網域控制站間並不會複寫此值;如需查看使用者的這個值,您必須獨自繫結到每個網域控制站,並從那台機器擷取此數值。然後您可以將這些值加總,以便得知該使用者要嘗試登入網域時,總共輸入幾次錯誤密碼。

有時候您會想繫結到個別的網域控制站而非舊的網域控制站,這正是其中一個例子。

那麼要如何繫結到特定的網域控制站呢?只要在 Active Directory 繫結字串中包含電腦名稱就好了。例如,以下指令碼會繫結到電腦 atl-dc-01 上的 Active Directory:

Set objUser = GetObject _
    ("LDAP://atl-dc-01/CN=Ken Myer,OU=Finance,DC=fabrikam,DC=com")
Wscript.Echo objUser.badPwdCount

想要繫結到電腦 red-dc-22 上的 Active Directory 嗎?那就使用這樣的指令碼:

Set objUser = GetObject _
    ("LDAP://red-dc-22/CN=Ken Myer,OU=Finance,DC=fabrikam,DC=com")
Wscript.Echo objUser.badPwdCount

就是這麼簡單。


如需詳細資訊

查看嗨,Scripting Guy!- 過往文件

 

回到頁首 回到頁首