Можно ли создать «универсальный» сценарий, который проверяет первые три алфавита имени хоста и перемещает хост в соответствующее OU?
Например. Имя хоста, начинающееся с TKYxxxxx, является хостом в Токио, и когда сценарий обнаруживает TKY, он перемещает этот хост в OU сайта Tokyo.
Можно ли / рекомендуется сделать еще один шаг и запустить этот сценарий как часть сценария входа в систему, который проверяет AD, существует ли имя хоста в AD, а если нет, проверьте имя хоста и переместите его в соответствующее подразделение сайта. Если совпадений нет, оставьте его в подразделении Computers OU.
Заранее спасибо.
Следующее сделает работу, но будьте осторожны и проверьте 1-е, чтобы понять, как это работает!
dsquery имя компьютера tky * | dsmove -newparent "ou = tokyo, dc = x, dc = com"
Под «универсальным» я бы сказал, что если ваше соглашение четко определено и вы знаете соответствующие пути LDAP, то это вполне возможно, но вы действительно захотите написать этот сценарий самостоятельно (или попросите кого-нибудь сделать это. для вас.) Все, что вам нужно сделать, это перебрать объекты вашего компьютера (обычно цикл «для каждого» или «делать пока») и либо выполнить «if ... elseif ... else», либо case (или переключатель), чтобы творить магию.
Совет: я обычно резервирую "else" (или предложение по умолчанию для оператора case) как перехватчик "WTF". Это для машин, которые не соответствуют соглашению об именах и предупреждают вас. Либо распечатайте инструкцию на консоли, либо напишите в файл журнала (всегда полезно регистрировать все), либо отправьте электронное письмо обо всех WTF-файлах.
Совет: при поиске только серверов Windows я анализирую свойство Object.operatingSystem для шаблона "WindowsСервер". Этот шаблон соответствует тексту каждой версии Windows Server.
Я лучше всего знаю, как это сделать в VBScript и Perl, но это вполне возможно в Powershell, JavaScript, Python. Все, что может подключиться к AD / LDAP, правда ...
Проверьте Репозиторий Microsoft Technet Script Center. Вы можете найти что-то близкое к тому, что вам нужно.