web-dev-qa-db-ja.com

「最後のトークンが「C」で始まる」および「change-modifyエントリにターミネータ「-」がない」のLDIFDEエラーを解決するにはどうすればよいですか。

既存のユーザーを既存のセキュリティグループとペアリングしようとしたときに、「最後のトークンが「C」で始まる」および「change-modifyエントリにターミネータ「-」がない」のLDIFDEエラーを解決するにはどうすればよいですか(ドメイン移行)?

私はこれを実行します:

C:\Users\Administrator\Downloads\ldif_files>ldifde -i -k -f test.ldf -v -j "C:\Users\Administrator\Downloads\ldif_files"
Connecting to "dc1.company.local"
Logging in as current user using SSPI
Importing directory from file "test.ldf"
Loading entries

There is a syntax error in the input file
Failed on line 6.  The last token starts with 'C'.
The change-modify entry is missing the terminator '-'.
0 entries modified successfully.
An error has occurred in the program

C:\Users\Administrator\Downloads\ldif_files>

test.ldfはこれです:

dn: CN=PrinterAdmins,OU=GL,OU=Groups,OU=CMPNY,DC=company,DC=local
changetype: modify
add: member
objectClass: top
objectClass: group
member: CN=John Doe,OU=Track-It!,OU=Admins,OU=CMPNY,DC=company,DC=local

私はこれを数時間または数時間丹念にトラブルシューティングしましたが、成功しませんでした。私が試してみました...

  • 最後に単一のリンク「-」を追加する
  • 最後に行 '-'とそれに続く空白行(合計2行)を追加します
  • 他のいくつかのもの;解決策を探してすべてを試しても成功せずに多くの時間を費やしてきました

OU、セキュリティグループ、およびユーザーが存在します。私の一生の間、私はそれを理解することができません。 'oldcompany.com'ドメインからOU構造を正常にインポートし、Notepad ++を使用して特定のスペース/入力文字を削除し、 'dc = oldcompany、dc = com'を 'dc = company、dc = local'に置き換えてインポートしましたユーザーは、セキュリティグループをインポートしました-すべて正常に..残っているのは、メンバーシップの一部をすべてのグループにインポートすることです(ユーザーをグループに結び付けます)。

助けてください。 :(

私は何をしている/しようとしている/すでに行ったのですか?数百人のユーザーをペアリングする必要がある約700のグループがあります。 OU構造、ユーザー、[空の]グループのインポートが成功しました。残っているのは、ユーザーをグループにペアリングすることだけです。古い「company.com」ドメイン(2003 DCから)から新しい2012 DCの「company.local」に移動します。 700のグループすべてを手動でユーザーを追加する必要がないようにしたい(すべてのグループのメンバー/すべてのユーザーがメンバーであるグループを示すExcelレポートがあるため)。

編集:解決策!

これは私がそれを機能させるためにしなければならなかったことです:

  • すべてのobjectClass行を削除します。次回、これをエクスポート用のコマンドパラメータから除外する必要があります
  • ファイルの最初の行は空白行で、その後に最初のグループの「dn:」行が続きます。
  • ファイルの2行目から最後の行は-である必要があり、その後に空白行が続きます(ファイルの最後の行)

したがって、ユーザー、セキュリティグループ、およびグループメンバーシップをcompany.comからcompany.localにインポートするには、次のことを行う必要がありました。

  1. Company.comからOU構造をエクスポートします。 company.comでは、すべて(セキュリティグループ、ユーザー、OU、GPO)を含むActive Directoryユーザーとコンピューターを使用すると、ドメインのルートにOU「CMPNY」がありました。 、など)
    • 実行ldifde -fexportOUs。ldf -ssrvADdc1-t 3268 -d "OU = CMPNY、DC = company、DC = com "-p subtree -r"(objectCategory = organizationalUnit) "-l" cn、objectclass、ou "は、古い会社に接続されているマシン上で実行されます。 com ADドメイン。 srvADdc1(ドメインコントローラー)に接続して、検索およびエクスポート元
  2. Company.comからのユーザーのエクスポート
    • 実行difde -fexportUsers。ldf -ssrvADdc1-t 3268 -d "OU = CMPNY、DC = company、DC = com "-p subtree -r"(&(objectCategory = Person)(objectClass = user)) "-l" cn、displayName、distinguishedName、name、objectCategory、objectClass、sAMAccountName "
  3. メンバーなしでcompany.comからグループをエクスポートする(空のセキュリティグループと同様)
    • 実行ldifde -fexportGroupsEmpty。ldf -ssrvADdc1-t 3268 -d "OU = CMPNY、DC = company、DC = com "-pサブツリー-r"(&(objectCategory = group)(objectClass = group)) "-l" cn、name、sAMAccountName、grouptype、objectclass "
  4. グループをcompany.comからメンバーとともにエクスポートします(どのユーザーオブジェクトがどのグループのメンバーであるかを識別するための最小限の情報が含まれています)
    • 実行ldifde -fexportGroupsMembers。ldf -ssrvADdc1-t 3268 -d "OU = CMPNY、DC = company、DC = com "-pサブツリー-r"(&(ObjectCategory = group)(objectClass = group)(name =)(member =)) "-l"メンバー "
  5. 古いcompany.comのOUスケルトンを新しいcompany.localドメインにインポートします。 company.localで別のOUスケルトン構造を使用しているため(ルートに「CMPNY」OUはありません)、インポートするこのOUスケルトンは、古いデータをインポートするためだけのものであり、すべてをインポートした後、次のことができます。名前を変更/クリーンアップ/削除してから、インポートしたオブジェクトを新しいcompany.localドメインで使用することにした新しい/異なるOUスケルトン構造標準に移動して配置します
    • Notepad ++(私の個人的な好み)を介してexportOUs.ldfを変更し、DC = comそして、すべてをDC = localで置き換え、ファイルを保存します
    • 実行ldifde -i -k -fexportOUs。ldf -v -j "C:\" ; -jパラメータの値のパスを変更するか、-j "C:\"を完全に削除することができます-エラーをログに記録するだけですファイルへ
  6. Company.comからcompany.local にユーザーをインポートします
    • Notepad ++経由でexportUsers.ldfを変更し、DC = comを見つけてすべて置き換えますDC = localを使用して、ファイルを保存します
    • 実行ldifde -i -k -fexportUsers。ldf -v -j "C:\"
  7. 空の[セキュリティ]グループシェルをcompany.comからcompany.local にインポートします。
    • Notepad ++を使用してexportGroupsEmpty.ldfを変更し、DC = comを見つけてすべて置き換えますDC = localで、ファイルを保存します
    • 実行ldifde -i -k -fexportGroupsEmpty。ldf -v -j "C:\"
  8. ユーザーとグループ間のメンバーシップペアをcompany.comからcompany.local にインポートします。
    • Notepad ++ でexportGroupsMembers.ldfを開きます。
      • このファイルの内容を注意深く調べてください。 1つのアイテムが複数の行に分割されていることに注意してください(誰かが1行の1/3の方法でENTERキーを押すことにした場合など)-通常、複数の行にオーバーフローするのではなく、1つの行にある必要があります
      • まず、複数行のオーバーフローの問題を修正します。これを行うには、 それを修正するために削除する必要がある2行の間のすべての文字データを選択し(その1つのインスタンスについてのみ)、文字どおり何もないものにすべて置き換えます
      • Dc = comを見つけて、すべてをdc = localに置き換えます
      • すべての空の行を2行に置き換えます。最初の行は1文字で、2番目の行は空白行である必要があります。これを行うには、そのスペースを選択し、すべてを\ r\n-\r\n\r\nとNotepad ++の拡張検索モードで置き換えます。
      • ファイルの最初の行が、最初の「dn:」行(最初のグループの場合)の前にある空白の空の行(スペースなし、空の行のみ)であることを確認してください。
      • ファイルの最後から2番目の行が-行であり、その後に空白行が続くことを確認してください(最後の行として)
    • 「changetype:add」を見つけて、すべてをchangetype:modify\r\nadd:memberに置き換えます(これにより、「add」が「modify」に変更され、この「add:member」の下に新しい行を作成します)
    • 実行ldifde -i -k -fexportGroupsMembers。ldf -v -j "C:\"

ExportGroupsMembers.ldfの例(最初の行にはスペースが含まれています。スペースは含まれていません。空白行であると想定されています。-行の後の最後の行も空白行であると想定されています):

dn: CN=ERP_User_Test,OU=GL,OU=Groups,OU=CMPNY,DC=company,DC=local
changetype: modify
add: member
member: CN=Ralph Doe,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local
member: CN=Grace McPhillip,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local
member: CN=Logan Rowley,OU=Track-It!,OU=Admins,OU=CMPNY,DC=company,DC=local
-

dn: CN=FolderSecurity_StockReportsDatabase_C,OU=GL,OU=Groups,OU=CMPNY,DC=company,DC=local
changetype: modify
add: member
member: CN=David Collins,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local
member: CN=Kelly Paris,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local
member: CN=genericSalesUser,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local
-

dn: CN=FolderSecurity_StockReportsDatabase_R,OU=GL,OU=Groups,OU=CMPNY,DC=company,DC=local
changetype: modify
add: member
member: CN=Ron Burgandy,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local
member: CN=Jane Doe,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local
member: CN=Bill Gates,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local
-

これにより主に達成されることは、共有ネットワークドライブを新しいネットワークに移行するときに、個々のフォルダーのセキュリティアクセス許可が保持されることです。すべてのグループに移動して再作成し、メンバーをグループに追加し直してから、一意のセキュリティ権限の1000を超えるフォルダーを調べる必要はありません(ばかげていると思います)。

結局のところ、できます。

  • 永久に廃止されたすべてのユーザーオブジェクト(genericITAdminとgenericITModerator、genericITTech管理者、テストアカウント、ランダムな一時アカウントなど)を削除しますが、非アクティブ化された実際の個人アカウントは保持します
  • セキュリティグループの名前を変更して命名規則を標準化し、後でセキュリティグループのクリーンアップを開始して、統合、パターンの検索、一意でないセキュリティ権限の削除などを行います。
  • オブジェクトを新しいOUスケルトン構造に移動し、古いものの除草、操作、削除、名前の変更が完了したら、ルートからCMPNYOUを削除します。

次のスレッドのレスポンダーに感謝します。- [H] ardForum - ServerFault - TechNet

エクスポートとインポートのワークフロー全体を追跡した主要リソース

私が旅で利用した、または影響を与えた追加の役立つ情報

3
BlueToast

ファイルは次のようになります。これを確認するために、Windows 8のLDSに対してこれをテストしました。

dn: CN=PrinterAdmins,OU=GL,OU=Groups,OU=CMPNY,DC=company,DC=local
changetype: modify
add: member
member: CN=John Doe,OU=Track-It!,OU=Admins,OU=CMPNY,DC=company,DC=local
-

値に特殊文字が含まれていない場合は、ANSIファイルで問題ありません。

持っている可能性はありますが、持っていない場合は http://support.Microsoft.com/kb/237677 が役立つ場合があります。

2
maweeras