是否可以创build一个“通用”脚本来检查主机名的前三个字母并将主机移动到相应的OU中?
例如,以TKYxxxxx开头的主机名是东京的主机,当脚本检测到TKY时,它将把该主机移动到东京站点OU。
如果主机名存在于AD中,是否有可能build议进一步将该脚本作为login脚本的一部分进行检查,如果主机名存在于AD中,则检查主机名并将其移至相应的站点OU。 如果不匹配,请将其保留在计算机OU中。
提前致谢。
以下将做的工作,但要小心和testing第一,了解它是如何工作的!
dsquery computer -name tky * | dsmove -newparent“ou = tokyo,dc = x,dc = com”
通过“通用”,我会说,如果你的约定是明确定义的,并且知道适当的LDAPpath,那么很可能这样做,但是你真的想要自己编写这个脚本(或者有人这么做)所有你需要做的就是遍历你的计算机对象(通常是“for each”或者“do while”循环),并且做一个“if … elseif … else”或者一个case (或开关)构造去做魔术。
提示:我通常将“else”(或case语句的默认子句)保留为“WTF”catchall。 这是针对不符合命名惯例的机器,并提醒您。 将语句输出到控制台,写入日志文件(logging所有事务的最佳实践),或发送所有WTF-S的电子邮件。
提示:在仅查找Windows服务器时,我将parsing“Windows Server ”模式的Object.operatingSystem属性。 此模式与每个Windows Server版本的文本相匹配。
我知道如何在VBScript和Perl中做到最好,但是在Powershell,JavaScript,Python中是很有可能的。 任何可以挂钩到AD / LDAP的东西,真的…
查看Microsoft Technet脚本中心存储库 。 你可能会发现一些接近你所需要的东西。