
是否可以建立一個「通用」腳本來檢查主機名稱的前三個字母並將主機移至適當的 OU 中?
例如,以 TKYxxxxx 開頭的主機名稱是東京的主機,當腳本偵測到 TKY 時,它會將該主機移至東京站點 OU。
是否可以/建議更進一步,啟動此腳本作為登入腳本的一部分,該腳本檢查 AD 中是否存在主機名,如果不存在,則檢查主機名稱並將其移至適當的網站 OU。如果沒有符合項,請將其保留在電腦 OU 中。
提前致謝。
答案1
以下內容可以完成這項工作,但要小心並首先測試以了解它是如何工作的!
dsquery 計算機-名稱 tky* | dsmove -newparent“ou=東京,dc=x,dc=com”
答案2
透過“通用”,我想說的是,如果您的約定定義良好,並且知道適當的 LDAP 路徑,那麼很有可能做到這一點,但您確實想要自己編寫此腳本(或讓其他人編寫) )您需要做的就是迭代計算機物件(通常是“foreach”或“do while”循環),然後執行“if...elseif...else”或case (或切換)構造來發揮魔法。
提示:我通常將“else”(或 case 語句的預設子句)保留為“WTF”包羅萬象。這是針對不符合命名約定的機器並提醒您的。要么將語句印到控制台,要么寫入日誌檔案(記錄所有內容總是好的做法),或者發送所有 WTF 的電子郵件。
提示:當只尋找 Windows 伺服器時,我會解析「Windows」模式的 Object.operatingSystem 屬性伺服器」。此模式與每個 Windows Server 版本的文字相符。
我知道如何在 VBScript 和 Perl 中最好地做到這一點,但在 Powershell、JavaScript、Python 中也很有可能。任何可以連接到 AD/LDAP 的東西,真的...
查看Microsoft Technet 腳本中心儲存庫。您可能會找到一些接近您需要的東西。