
호스트 이름의 처음 세 글자를 확인하고 호스트를 적절한 OU로 이동하는 "범용" 스크립트를 만드는 것이 가능합니까?
예를 들어 TKYxxxxx로 시작하는 호스트 이름은 도쿄의 호스트이며 스크립트가 TKY를 감지하면 이 호스트를 도쿄 사이트 OU로 이동합니다.
한 단계 더 나아가 AD에 호스트 이름이 존재하는지 확인하는 로그인 스크립트의 일부로 이 스크립트를 실행하고, 그렇지 않은 경우 호스트 이름을 확인하여 적절한 사이트 OU로 이동하는 것이 가능/권장됩니까? 일치하는 항목이 없으면 컴퓨터 OU에 그대로 둡니다.
미리 감사드립니다.
답변1
다음은 작업을 수행하지만 주의 깊게 먼저 테스트하여 작동 방식을 이해하십시오!
dsquery 컴퓨터 -이름 tky* | dsmove -newparent "ou=tokyo,dc=x,dc=com"
답변2
"보편적"이라는 표현을 사용하면 규칙이 잘 정의되어 있고 적절한 LDAP 경로를 알고 있다면 이 작업을 수행하는 것이 매우 가능하지만 실제로는 이 스크립트를 직접 작성하고 싶을 것입니다(또는 다른 사람이 작성하도록 하십시오). 당신을 위해.) 당신이 해야 할 일은 컴퓨터 개체(보통 "for Each" 또는 "do while" 루프)를 반복하고 "if...elseif...else" 또는 사례를 수행하는 것뿐입니다. (또는 스위치) 마법을 수행하는 구성.
팁: 저는 일반적으로 "else"(또는 사례 문의 기본 절)를 "WTF" 캐치홀로 예약합니다. 이는 명명 규칙을 충족하지 않는 컴퓨터에 대한 경고입니다. 명령문을 콘솔에 인쇄하거나, 로그 파일에 쓰거나(항상 모든 것을 기록하는 것이 좋습니다), 모든 WTF에 대한 이메일을 보내십시오.
팁: Windows 서버만 찾을 때 "Windows" 패턴에 대한 Object.operatingSystem 속성을 구문 분석합니다.섬기는 사람". 이 패턴은 모든 Windows Server 버전의 텍스트와 일치합니다.
저는 VBScript와 Perl에서 이 작업을 가장 잘 수행하는 방법을 알고 있지만 Powershell, JavaScript, Python에서는 매우 가능합니다. AD/LDAP에 연결될 수 있는 모든 것, 실제로는...
확인해 보세요Microsoft Technet 스크립트 센터 리포지토리. 당신이 필요로 하는 것과 가까운 것을 찾을 수도 있습니다.