ホスト名をチェックして適切な OU に移動するスクリプト

ホスト名をチェックして適切な OU に移動するスクリプト

ホスト名の最初の 3 つのアルファベットをチェックし、ホストを適切な OU に移動する「ユニバーサル」スクリプトを作成することは可能ですか?

たとえば、TKYxxxxx で始まるホスト名は東京のホストであり、スクリプトが TKY を検出すると、このホストを東京サイトの OU に移動します。

さらに一歩進んで、このスクリプトをログイン スクリプトの一部として起動し、AD にホスト名が存在するかどうかをチェックし、存在しない場合はホスト名をチェックして適切なサイト OU に移動するといったことは可能でしょうか (または推奨されますか)。一致するものがない場合、Computers OU に残します。

前もって感謝します。

答え1

以下の手順で十分ですが、まずは慎重にテストして、どのように動作するかを理解してください。

dsquery コンピュータ -name tky* | dsmove -newparent "ou=tokyo,dc=x,dc=com"

答え2

「ユニバーサル」とは、規則が明確に定義されていて、適切な LDAP パスがわかっている場合、これを実行することは非常に可能だということですが、実際には、このスクリプトを自分で記述する (または、誰かに作成してもらう) 必要があります。必要なのは、コンピューター オブジェクトを反復処理し (通常は「for each」または「do while」ループ)、「if...elseif...else」または case (または switch) 構造を実行して魔法をかけることだけです。

ヒント: 私は通常、「else」(または case ステートメントの default 句) を「WTF」の包括的なものとして予約しています。これは、命名規則を満たしていないマシンが警告を出す場合に備えて用意されています。ステートメントをコンソールに出力するか、ログファイルに書き込むか (常にすべてをログに記録することをお勧めします)、すべての WTF を電子メールで送信します。

ヒント: Windows Serverだけを検索する場合は、Object.operatingSystemプロパティでパターン「Windowsサーバこのパターンは、すべての Windows Server バージョンのテキストと一致します。

私はこれを VBScript と Perl で行う方法を知っていますが、Powershell、JavaScript、Python でも可能です。AD/LDAP に接続できるものなら何でも...

チェックしてくださいMicrosoft Technet スクリプト センター リポジトリ必要なものに近いものが見つかるかもしれません。

関連情報